## 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)