Elements
Elements in orders have two representations: they can be viewed as elements in the
Creation
Elements are constructed either as linear combinations of basis elements or via explicit coercion. Elements will be of type AbsNumFieldOrderElem, the type if actually parametrized by the type of the surrounding field and the type of the field elements. E.g. the type of any element in any order of an absolute simple field will be AbsSimpleNumFieldOrderElem
(O::NumFieldOrder)(a::NumFieldElem, check::Bool = true) -> NumFieldOrderElemGiven an element check is true.
(O::NumFieldOrder)(a::NumFieldOrderElem, check::Bool = true) -> NumFieldOrderElemGiven an element check is true.
(O::NumFieldOrder)(a::IntegerUnion) -> NumFieldOrderElemGiven an element ZZRingElem or Integer, this function coerces the element into
(O::AbsNumFieldOrder)(arr::Vector{ZZRingElem})Returns the element of arr.
(O::AbsNumFieldOrder)(arr::Vector{Integer})Returns the element of arr.
Basic properties
parent(a::NumFieldOrderElem) -> NumFieldOrderReturns the order of which
elem_in_nf(a::NumFieldOrderElem) -> NumFieldElemReturns the element
coordinates(a::AbsNumFieldOrderElem) -> Vector{ZZRingElem}Returns the coefficient vector of
discriminant(B::Vector{NumFieldOrderElem})Returns the discriminant of the family
discriminant(E::EllipticCurve) -> FieldElemReturn the discriminant of
discriminant(C::HypellCrv{T}) -> TCompute the discriminant of
discriminant(O::AlgssRelOrd)Returns the discriminant of
==(x::NumFieldOrderElem, y::NumFieldOrderElem) -> BoolReturns whether
Arithmetic
All the usual arithmetic operatinos are defined:
-(::NUmFieldOrdElem)+(::NumFieldOrderElem, ::NumFieldOrderElem)-(::NumFieldOrderElem, ::NumFieldOrderElem)*(::NumFieldOrderElem, ::NumFieldOrderElem)^(::NumFieldOrderElem, ::Int)mod(::AbsNumFieldOrderElem, ::Int)mod_sym(::NumFieldOrderElem, ::ZZRingElem)powermod(::AbsNumFieldOrderElem, ::ZZRingElem, ::Int)
Miscellaneous
representation_matrix(a::AbsNumFieldOrderElem) -> ZZMatrixReturns the representation matrix of the element
representation_matrix(a::AbsNumFieldOrderElem, K::AbsSimpleNumField) -> FakeFmpqMatReturns the representation matrix of the element
absolute_norm(a::NumFieldOrderElem) -> ZZRingElemReturn the absolute norm as an integer.
absolute_tr(a::NumFieldOrderElem) -> ZZRingElemReturn the absolute trace as an integer.
rand(O::AbsSimpleNumFieldOrder, n::IntegerUnion) -> AbsNumFieldOrderElemComputes a coefficient vector with entries uniformly distributed in
minkowski_map(a::NumFieldOrderElem, abs_tol::Int) -> Vector{ArbFieldElem}Returns the image of ArbFieldElem with radius less then 2^-abs_tol.
conjugates_arb(x::NumFieldOrderElem, abs_tol::Int) -> Vector{AcbFieldElem}Compute the conjugates of AcbFieldElem. Recall that we order the complex conjugates
Every entry radius(real(y)) < 2^-abs_tol, radius(imag(y)) < 2^-abs_tol respectively.
conjugates_arb_log(x::NumFieldOrderElem, abs_tol::Int) -> Vector{ArbFieldElem}Returns the elements ArbFieldElem radius less then 2^-abs_tol.
t2(x::NumFieldOrderElem, abs_tol::Int = 32) -> ArbFieldElemReturn the 2^-abs_tol.
minpoly(a::AbsNumFieldOrderElem) -> ZZPolyRingElemThe minimal polynomial of
charpoly(a::AbsNumFieldOrderElem) -> ZZPolyRingElem
charpoly(a::AbsNumFieldOrderElem, FlintZZ) -> ZZPolyRingElemThe characteristic polynomial of
factor(a::AbsSimpleNumFieldOrderElem) -> Fac{AbsSimpleNumFieldOrderElem}Computes a factorization of fac, which satisfies a = unit(fac) * prod(p^e for (p, e) in fac).
The function requires that
denominator(a::NumFieldElem, O::AbsSimpleNumFieldOrder) -> ZZRingElemReturns the smallest positive integer
discriminant(B::Vector{NumFieldOrderElem})Returns the discriminant of the family
discriminant(E::EllipticCurve) -> FieldElemReturn the discriminant of
discriminant(C::HypellCrv{T}) -> TCompute the discriminant of
discriminant(O::AlgssRelOrd)Returns the discriminant of