Package org.apfloat.internal
Class FloatModMath
- java.lang.Object
-
- org.apfloat.internal.FloatElementaryModMath
-
- org.apfloat.internal.FloatModMath
-
- Direct Known Subclasses:
FloatFactor3NTTStepStrategy
,FloatNTTConvolutionStepStrategy
,FloatTableFNT
,FloatWTables
public class FloatModMath extends FloatElementaryModMath
Modulo arithmetic functions forfloat
data.- Version:
- 1.0
-
-
Constructor Summary
Constructors Constructor Description FloatModMath()
Default constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description float[]
createWTable(float w, int n)
Create a table of powers of n:th root of unity.float
getForwardNthRoot(float primitiveRoot, long n)
Get forward n:th root of unity.float
getInverseNthRoot(float primitiveRoot, long n)
Get inverse n:th root of unity.float
modDivide(float a, float b)
Modular division.float
modInverse(float a)
Modular inverse, that is1 / a
.float
modPow(float a, float n)
Modular power.float
negate(float a)
Modular negation.-
Methods inherited from class org.apfloat.internal.FloatElementaryModMath
getModulus, modAdd, modMultiply, modSubtract, setModulus
-
-
-
-
Method Detail
-
createWTable
public final float[] createWTable(float w, int n)
Create a table of powers of n:th root of unity.- Parameters:
w
- The n:th root of unity modulo the current modulus.n
- The table length (= transform length).- Returns:
- Table of
table[i]=wi mod m
, i = 0, ..., n-1.
-
getForwardNthRoot
public float getForwardNthRoot(float primitiveRoot, long n)
Get forward n:th root of unity. This isw
.Assumes that the modulus is prime.
- Parameters:
primitiveRoot
- Primitive root of the modulus.n
- The transform length.- Returns:
- Forward n:th root of unity.
-
getInverseNthRoot
public float getInverseNthRoot(float primitiveRoot, long n)
Get inverse n:th root of unity. This isw-1
.Assumes that the modulus is prime.
- Parameters:
primitiveRoot
- Primitive root of the modulus.n
- The transform length.- Returns:
- Inverse n:th root of unity.
-
modInverse
public final float modInverse(float a)
Modular inverse, that is1 / a
. Assumes that the modulus is prime.- Parameters:
a
- The operand.- Returns:
a-1 mod m
.
-
modDivide
public final float modDivide(float a, float b)
Modular division. Assumes that the modulus is prime.- Parameters:
a
- The dividend.b
- The divisor.- Returns:
a*b-1 mod m
.
-
negate
public final float negate(float a)
Modular negation.- Parameters:
a
- The argument.- Returns:
-a mod m
.
-
modPow
public final float modPow(float a, float n)
Modular power. Assumes that the modulus is prime.- Parameters:
a
- The base.n
- The exponent.- Returns:
an mod m
.
-
-