Creation and basic properties

Order(B::Array{nf_elem, 1}, check::Bool = true) -> NfOrd

Returns the order with -basis . If check is set, it is checked whether defines an order.

Order(K::AnticNumberField, A::FakeFmpqMat, check::Bool = true) -> NfOrd

Returns the order which has basis matrix with respect to the power basis of . If check is set, it is checked whether defines an order.

Order(A::NfOrdFracIdl) -> NfOrd

Returns the fractional ideal as an order of the ambient number field.


  Order(K::RelativeExtension, M::PMat) -> NfRelOrd

Returns the order which has basis pseudo-matrix with respect to the power basis of .

EquationOrder(K::AnticNumberField) -> NfOrd

Returns the equation order of the number field .


MaximalOrder(K::AnticNumberField) -> NfOrd

Returns the maximal order of .

Example

julia> Qx, xx = FlintQQ["x"];
julia> K, a = NumberField(x^3 + 2, "a");
julia> O = MaximalOrder(K);

MaximalOrder(K::NfOrd) -> NfOrd

Returns the maximal order of .


maximal_order(K::AnticNumberField) -> NfOrd
ring_of_integers(K::AnticNumberField) -> NfOrd

Returns the maximal order of .

lll(M::NfOrd) -> NfOrd

The same order, but with the basis now being LLL reduced wrt. the Minkowski metric.

By Chistov's fundamental theorem, the computation of the maximal order is basically as hard as the factorisation of the discriminant. In order to help the computer, Hecke also provides the following signatures:


maximal_order(K::AnticNumberField, primes::Array{fmpz, 1}) -> NfOrd
maximal_order(K::AnticNumberField, primes::Array{Integer, 1}) -> NfOrd

Assuming that contains all the prime numbers at which the equation order of is not maximal (e.g. may contain all prime divisors of the discriminant of ), this function returns the maximal order of .


ring_of_integers(K::AnticNumberField, primes::Array{fmpz, 1}) -> NfOrd
ring_of_integers(K::AnticNumberField, primes::Array{Integer, 1}) -> NfOrd

Assuming that contains all the prime numbers at which the equation order of is not maximal, this function returns the maximal order of .

It is also possible the execute the steps individually:


pradical(O::NfOrd, p::fmpz) -> NfOrdIdl

Given a prime number , this function returns the -radical of , which is just . It is not checked that is prime.


ring_of_multipliers(I::NfOrdIdl) -> NfOrd

Computes the order , which is the set of all with .

Example

julia> Qx, x = PolynomialRing(FlintQQ, "x");

julia> K, a = NumberField(x^2 - 2, "a");

julia> O = EquationOrder(K)
Order of Number field over Rational Field with defining polynomial x^2-2
with Z-basis Hecke.NfOrdElem[1, a]
parent(::NfOrd)
isequation_order(::NfOrd)
signature(::NfOrd)
nf(::NfOrd)
degree(::NfOrd)
basis(::NfOrd)
basis(::NfOrd, ::AnticNumberField)
basis_mat(::NfOrd)
basis_mat_inv(::NfOrd)
discriminant(::NfOrd)
gen_index(::NfOrd)
index(::NfOrd)
isindex_divisor(::NfOrd, ::fmpz)
minkowski_mat(::NfOrd, ::Int)
in(::nf_elem, ::NfOrd)
denominator(::nf_elem, ::NfOrd)
norm_change_const(::NfOrd)
trace_matrix(::NfOrd)
+(::NfOrd, ::NfOrd)
poverorder(::NfOrd, ::fmpz)
pmaximal_overorder(::NfOrd, ::fmpz)
parent(::NfOrd)
deepcopy(::NfOrd)

Elements

Creation

Basic properties


parent(a::NfOrdElem) -> NfOrd

Returns the order of which is an element.


elem_in_nf(a::NfOrdElem) -> nf_elem

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


elem_in_basis(a::NfOrdElem) -> Array{fmpz, 1}

Returns the coefficient vector of .


  elem_in_basis(a::NfRelOrdElem{T}) -> Vector{T}

Returns the coefficient vector of .


discriminant(B::Array{NfOrdElem, 1}) -> fmpz

Returns the discriminant of the family .


==(x::NfOrdElem, y::NfOrdElem) -> Bool

Returns whether and are equal.


zero(O::NfOrd) -> NfOrdElem

Returns the zero element of .


one(O::NfOrd) -> NfOrdElem

Returns the one element of .


iszero(a::NfOrd) -> Bool

Tests if is zero.


isone(a::NfOrd) -> Bool

Tests if is one.

Arithmetic


-(x::NfOrdElem) -> NfOrdElem

Returns the additive inverse of .


+(x::NfOrdElem, y::NfOrdElem) -> NfOrdElem

Returns .


-(x::NfOrdElem, y::NfOrdElem) -> NfOrdElem

Returns .


*(x::NfOrdElem, y::NfOrdElem) -> NfOrdElem

Returns .


^(x::NfOrdElem, y::Union{fmpz, Int})

Returns .


mod(a::NfOrdElem, m::Union{fmpz, Int}) -> NfOrdElem

Reduces the coefficient vector of modulo and returns the corresponding element. The coefficient vector of the result will have entries with .


powermod(a::NfOrdElem, i::fmpz, m::Integer) -> NfOrdElem

Returns the element modulo .

Miscallenous


representation_mat(a::NfOrdElem) -> fmpz_mat

Returns the representation matrix of the element .


representation_mat(a::NfOrdElem, K::AnticNumberField) -> FakeFmpqMat

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


trace(a::NfOrdElem) -> fmpz

Returns the trace of .


norm(a::NfOrdElem) -> fmpz

Returns the norm of .


rand(O::NfOrd, n::Union{Integer, fmpz}) -> NfOrdElem

Computes a coefficient vector with entries uniformly distributed in and returns the corresponding element of the order .


minkowski_map(a::NfOrdElem, abs_tol::Int) -> Array{arb, 1}

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


conjugates_arb(x::NfOrdElem, abs_tol::Int) -> Array{acb, 1}

Compute the the conjugates of x as elements of type acb. Recall that we order the complex conjugates such that for .

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


conjugates_arb_log(x::NfOrdElem, abs_tol::Int) -> Array{arb, 1}

Returns the elements as elements of type arb radius less then 2^-abs_tol.


t2(x::NfOrdElem, abs_tol::Int = 32) -> arb

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

minpoly{T <: RingElement}(S::Ring, M::AbstractAlgebra.MatElem{T}, charpoly_only = false)

Returns the minimal polynomial of the matrix . The polynomial ring of the resulting polynomial must be supplied and the matrix must be square.

charpoly{T <: RingElement}(V::Ring, Y::AbstractAlgebra.MatElem{T})

Returns the characteristic polynomial of the matrix . The polynomial ring of the resulting polynomial must be supplied and the matrix is assumed to be square.

Ideals

Creation

ideal(::NfOrd, ::Int)
ideal(::NfOrd, ::Integer)
ideal(::NfOrd, ::fmpz)
ideal(::NfOrd, ::fmpz_mat)
ideal(::NfOrd, ::NfOrdElem)
ideal(::NfOrd, ::Integer, ::NfOrdElem)
ideal(::NfOrd, ::fmpz, ::NfOrdElem)
*(::NfOrd, ::NfOrdElem)
prime_decomposition(::NfOrd, ::Integer)
prime_decomposition(::NfOrd, ::fmpz)

Arithmetic


==(x::NfOrdIdl, y::NfOrdIdl)

Returns whether and are equal.


+(x::NfOrdIdl, y::NfOrdIdl)

Returns .

*(x::NfOrdIdl, y::NfOrdIdl)

Returns .

intersection(x::NfOrdIdl, y::NfOrdIdl) -> NfOrdIdl
lcm(x::NfOrdIdl, y::NfOrdIdl) -> NfOrdIdl

Returns .

Miscaellenous

order(::NfOrdIdl)
basis(::NfOrdIdl)
basis_mat(::NfOrdIdl)
basis_mat_inv(::NfOrdIdl)
minimum(::NfOrdIdl)
norm(::NfOrdIdl)
in(::NfOrdElem, ::NfOrdIdl)
idempotents(::NfOrdIdl, ::NfOrdIdl)
mod(::NfOrdElem, ::NfOrdIdl)
pradical(::NfOrd, p::fmpz)
isprime(::NfOrdIdl)
valuation(::nf_elem, ::NfOrdIdl)
valuation(::NfOrdElem, ::NfOrdIdl)
valuation(::NfOrdIdl, ::NfOrdIdl)
valuation(::Integer, ::NfOrdIdl)
valuation(::fmpz, ::NfOrdIdl)
valuation(::NfOrdFracIdl, ::NfOrdIdl)

Fractional ideals

Creation

frac_ideal(::NfOrd, ::fmpz_mat)
frac_ideal(::NfOrd, ::fmpz_mat, ::fmpz)
frac_ideal(::NfOrd, ::FakeFmpqMat)
frac_ideal(::NfOrd, ::NfOrdIdl)
frac_ideal(::NfOrd, ::NfOrdIdl, ::fmpz)
frac_ideal(::NfOrd, ::nf_elem)
frac_ideal(::NfOrd, ::NfOrdElem)

Arithmetic


==(x::NfOrdFracIdl, y::NfOrdFracIdl) -> Bool

Returns whether and are equal.


inv(A::NfOrdFracIdl) -> NfOrdFracIdl

Returns the fractional ideal such that .


integral_split(A::NfOrdFracIdl) -> NfOrdIdl, NfOrdIdl

Computes the unique coprime integral ideals and s.th.

Miscaellenous

order(::NfOrdFracIdl)
basis_mat(::NfOrdFracIdl)
basis_mat_inv(::NfOrdFracIdl)
basis(::NfOrdFracIdl)
norm(::NfOrdFracIdl)