Skip to content

Elements

Elements in orders have two representations: they can be viewed as elements in the Zn giving the coefficients wrt to the order basis where they are elements in. On the other hand, as every order is in a field, they also have a representation as number field elements. Since, asymptotically, operations are more efficient in the field (due to fast polynomial arithmetic) than in the order, the primary representation is that as a field element.

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

AbsNumFieldOrder Type
julia
  (O::NumFieldOrder)(a::NumFieldElem, check::Bool = true) -> NumFieldOrderElem

Given an element a of the ambient number field of O, this function coerces the element into O. It will be checked that a is contained in O if and only if check is true.

source

julia
  (O::NumFieldOrder)(a::NumFieldOrderElem, check::Bool = true) -> NumFieldOrderElem

Given an element a of some order in the ambient number field of O, this function coerces the element into O. It will be checked that a is contained in O if and only if check is true.

source

julia
  (O::NumFieldOrder)(a::IntegerUnion) -> NumFieldOrderElem

Given an element a of type ZZRingElem or Integer, this function coerces the element into O.

source

julia
  (O::AbsNumFieldOrder)(arr::Vector{ZZRingElem})

Returns the element of O with coefficient vector arr.

source

julia
  (O::AbsNumFieldOrder)(arr::Vector{Integer})

Returns the element of O with coefficient vector arr.

source

Basic properties

parent Method
julia
parent(a::NumFieldOrderElem) -> NumFieldOrder

Returns the order of which a is an element.

source

elem_in_nf Method
julia
elem_in_nf(a::NumFieldOrderElem) -> NumFieldElem

Returns the element a considered as an element of the ambient number field.

source

coordinates Method
julia
coordinates(a::AbsNumFieldOrderElem) -> Vector{ZZRingElem}

Returns the coefficient vector of a with respect to the basis of the order.

source

discriminant Method
julia
discriminant(B::Vector{NumFieldOrderElem})

Returns the discriminant of the family B of algebraic numbers, i.e. det((tr(B[i]B[j]))i,j)2.

source

julia
discriminant(E::EllipticCurve) -> FieldElem

Return the discriminant of E.

source

julia
discriminant(C::HypellCrv{T}) -> T

Compute the discriminant of C.

source

julia
discriminant(O::AlgssRelOrd)

Returns the discriminant of O.

source

== Method
julia
==(x::NumFieldOrderElem, y::NumFieldOrderElem) -> Bool

Returns whether x and y are equal.

source

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 Method
julia
representation_matrix(a::AbsNumFieldOrderElem) -> ZZMatrix

Returns the representation matrix of the element a.

source

representation_matrix Method
julia
representation_matrix(a::AbsNumFieldOrderElem, K::AbsSimpleNumField) -> FakeFmpqMat

Returns the representation matrix of the element a considered as an element of the ambient number field K. It is assumed that K is the ambient number field of the order of a.

source

tr Method
julia
tr(a::NumFieldOrderElem)

Returns the trace of a as an element of the base ring.

source

norm Method
julia
norm(a::NumFieldOrderElem)

Returns the norm of a as an element in the base ring.

source

absolute_norm Method
julia
absolute_norm(a::NumFieldOrderElem) -> ZZRingElem

Return the absolute norm as an integer.

source

absolute_tr Method
julia
absolute_tr(a::NumFieldOrderElem) -> ZZRingElem

Return the absolute trace as an integer.

source

rand Method
julia
rand(O::AbsSimpleNumFieldOrder, n::IntegerUnion) -> AbsNumFieldOrderElem

Computes a coefficient vector with entries uniformly distributed in {n,,1,0,1,,n} and returns the corresponding element of the order O.

source

minkowski_map Method
julia
minkowski_map(a::NumFieldOrderElem, abs_tol::Int) -> Vector{ArbFieldElem}

Returns the image of a under the Minkowski embedding. Every entry of the array returned is of type ArbFieldElem with radius less then 2^-abs_tol.

source

conjugates_arb Method
julia
conjugates_arb(x::NumFieldOrderElem, abs_tol::Int) -> Vector{AcbFieldElem}

Compute the conjugates of x as elements of type AcbFieldElem. Recall that we order the complex conjugates σr+1(x),...,σr+2s(x) such that σi(x)=σi+s(x) for r+2ir+s.

Every entry y of the array returned satisfies radius(real(y)) < 2^-abs_tol, radius(imag(y)) < 2^-abs_tol respectively.

source

conjugates_arb_log Method
julia
conjugates_arb_log(x::NumFieldOrderElem, abs_tol::Int) -> Vector{ArbFieldElem}

Returns the elements (log(|σ1(x)|),,log(|σr(x)|),,2log(|σr+1(x)|),,2log(|σr+s(x)|)) as elements of type ArbFieldElem radius less then 2^-abs_tol.

source

t2 Method
julia
t2(x::NumFieldOrderElem, abs_tol::Int = 32) -> ArbFieldElem

Return the T2-norm of x. The radius of the result will be less than 2^-abs_tol.

source

minpoly Method
julia
minpoly(a::AbsNumFieldOrderElem) -> ZZPolyRingElem

The minimal polynomial of a.

source

charpoly Method
julia
charpoly(a::AbsNumFieldOrderElem) -> ZZPolyRingElem
charpoly(a::AbsNumFieldOrderElem, ZZ) -> ZZPolyRingElem

The characteristic polynomial of a.

source

factor Method
julia
factor(a::AbsSimpleNumFieldOrderElem) -> Fac{AbsSimpleNumFieldOrderElem}

Computes a factorization of a into irreducible elements. The return value is a factorization fac, which satisfies a = unit(fac) * prod(p^e for (p, e) in fac).

The function requires that a is non-zero and that all prime ideals containing a are principal, which is for example satisfied if class group of the order of a is trivial.

source

denominator Method
julia
denominator(a::NumFieldElem, O::AbsSimpleNumFieldOrder) -> ZZRingElem

Returns the smallest positive integer k such that ka is contained in O.

source

discriminant Method
julia
discriminant(B::Vector{NumFieldOrderElem})

Returns the discriminant of the family B of algebraic numbers, i.e. det((tr(B[i]B[j]))i,j)2.

source

julia
discriminant(E::EllipticCurve) -> FieldElem

Return the discriminant of E.

source

julia
discriminant(C::HypellCrv{T}) -> T

Compute the discriminant of C.

source

julia
discriminant(O::AlgssRelOrd)

Returns the discriminant of O.

source