Returns the array of ::modulus's of size n.
Where self is defined recursively as the
AlgebraicExtensionField
of height n and base field k0.
This method is defined for the residue class ring k[x]/(p(x))
which is the return value of ::create.
Example: Make the extension field of cubic roots of 2, 3, 5 over Rational.
require "algebra"
# K0 == Rational
K1 = AlgebraicExtensionField(Rational, "x1") { |x|
x ** 3 - 2
}
K2 = AlgebraicExtensionField(K1, "x2") { |y|
y ** 3 - 3
}
K3 = AlgebraicExtensionField(K2, "x3") { |z|
z ** 3 - 5
}
p K3.def_polys #=> [x1^3 - 2, x2^3 - 3, x3^3 - 5]
x1, x2, x3 = K1.var, K2.var, K3.var
f = x1**2 + 2*x2**2 + 3*x3**2
f0 = f.abs_lift
p f0.type #=> (Polynomial/(Polynomial/(Polynomial/Rational)))
p f0.type == K3.env_ring #=> true
p f #=> 3x3^2 + 2x2^2 + x1^2
p f0.evaluate(x3.abs_lift, x2.abs_lift, x1.abs_lift)
#=> x3^2 + 2x2^2 + 3x3^2
Returns the multi-variate polynomial ring k0[x1, x2,.., xn].
Where self is defined recursively as the
AlgebraicExtensionField
of height n and base field k0.
This method is defined for the residue class ring k[x]/(p(x))
which is the return value of ::create.