## Creation

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


Returns the order with $\mathbf Z$-basis $B$. If check is set, it is checked whether $B$ defines an order.

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


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

EquationOrder(K::AnticNumberField) -> NfOrd


Returns the equation order of the number field $K$.

### Example

julia> Qx, x = PolynomialRing(QQ, "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]

maximal_order(::AnticNumberField)
maximal_order(::AnticNumberField, ::Array{fmpz, 1})
make_maximal(::NfOrd)

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

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

julia> R = EquationOrder(K)
Order of Number field over Rational Field with defining polynomial x^2 - 2
with Z-basis Hecke.NfOrdElem[1,a]

julia> T = maximal_order(R)
ERROR: MethodError: no method matching maximal_order(::Hecke.NfOrd)
Closest candidates are:
maximal_order(!Matched::Nemo.AnticNumberField, !Matched::Array{Nemo.fmpz,1}) at /home/travis/.julia/v0.5/Hecke/src/NfOrd/NfOrd.jl:969
maximal_order(!Matched::Nemo.AnticNumberField) at /home/travis/.julia/v0.5/Hecke/src/NfOrd/NfOrd.jl:943
maximal_order{T}(!Matched::Nemo.AnticNumberField, !Matched::Array{T,1}) at /home/travis/.julia/v0.5/Hecke/src/NfOrd/NfOrd.jl:973


## Basic properties

signature(::NfOrd)
degree(::NfOrd)
norm_change_const(::NfOrd)
isequationorder(::NfOrd)
nf(::NfOrd)
basis(::NfOrd)
basis_mat(::NfOrd)
basis_mat_inv(::NfOrd)
discriminant(::NfOrd)
gen_index(::NfOrd)
index(::NfOrd)
isindex_divisor(::NfOrd, p::Int)
minkowski_mat(::NfOrd)
in(::nf_elem, ::NfOrd)
den(::nf_elem, ::NfOrd)
+(::NfOrd, ::NfOrd)
poverorder(::NfOrd, ::fmpz)
pmaximal_overorder(::NfOrd, ::fmpz)


## Elements

### Creation

call(::NfOrd, ::nf_elem)
call(::NfOrd, ::fmpz)
call(::NfOrd, ::Array{fmpz, 1})
call(::NfOrd, ::Array{Int, 1})
call(::NfOrd)


### Basic properties

parent(a::NfOrdElem) -> NfOrd


Returns the order of which $a$ is an element.

elem_in_nf(a::NfOrdElem) -> nf_elem


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

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


Returns the coefficient vector of $a$.

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


Returns the discriminant of the family $B$.

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


Returns whether $x$ and $y$ are equal.

zero(O::NfOrd) -> NfOrdElem


Returns the zero element of $\mathcal O$.

one(O::NfOrd) -> NfOrdElem


Returns the zero element of $\mathcal O$.

iszero(a::NfOrd) -> Bool


Tests if $a$ is one.

isone(a::NfOrd) -> Bool


Tests if $a$ is one.

### Arithmetic

-(x::NfOrdElem) -> NfOrdElem


Returns the additive inverse of $x$.

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


Returns $x + y$.

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


Returns $x - y$.

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


Returns $x \cdot y$.

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


Returns $x^y$.

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


Reduces the coefficient vector of $a$ modulo $m$ and returns the corresponding element. The coefficient vector of the result will have entries $x$ with $0 \leq x \leq m$.

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


Returns the element $a^i$ modulo $m$.

### Miscallenous

representation_mat(a::NfOrdElem) -> fmpz_mat


Returns the representation matrix of the element $a$.

representation_mat(a::NfOrdElem, K::AnticNumberField) -> 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$.

trace(a::NfOrdElem) -> fmpz


Returns the trace of $a$.

norm(a::NfOrdElem) -> fmpz


Returns the norm of $a$.

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


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

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


Returns the image of $a$ 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 $\sigma_{r+1}(x),...,\sigma_{r+2s}(x)$ such that $\sigma_{i}(x) = \overline{\sigma_{i + s}(x)}$ for $r + 2 \leq i \leq r + s$.

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 $(\log(\lvert \sigma_1(x) \rvert),\dotsc,\log(\lvert\sigma_r(x) \rvert), \dotsc,2\log(\lvert \sigma_{r+1}(x) \rvert),\dotsc, 2\log(\lvert \sigma_{r+s}(x)\rvert))$ as elements of type arb radius less then 2^-abs_tol.

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


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

## Ideals

### Creation

ideal(O::NfOrd, a::Int) -> NfOrdIdl


Returns the ideal of $\mathcal O$ which is generated by $a$.

ideal(O::NfOrd, a::fmpz) -> NfOrdIdl


Returns the ideal of $\mathcal O$ which is generated by $a$.

ideal(O::NfOrd, x::fmpz_mat, check::Bool = false) -> NfOrdIdl


Creates the ideal of $\mathcal O$ with basis matrix $x$. If check is set, then it is checked whether $x$ defines an ideal (expensive).

ideal(O::NfOrd, x::NfOrdElem) -> NfOrdIdl


Creates the principal ideal $(x)$ of $\mathcal O$.

ring_of_multipliers(I::NfOrdIdl) -> NfOrd


Computes the order $(I : I)$, which is the set of all $x \in K$ with $xI \subseteq I$.

*(O::NfOrd, x::NfOrdElem) -> NfOrdIdl
*(x::NfOrdElem, O::NfOrd) -> NfOrdIdl


Returns the principal ideal $(x)$ of $\mathcal O$.

### Arithmetic

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


Returns whether $x$ and $y$ are equal.

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


Returns $x + y$.

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


Returns $x \cdot y$.

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


Returns $x \cap y$.

### Miscaellenous

parent(I::NfOrdIdl) -> NfOrd


Returns the order of $I$.

basis(A::NfOrdIdl) -> Array{NfOrdElem, 1}


Returns the basis of A.

basis_mat(A::NfOrdIdl) -> fmpz_mat

Returns the basis matrix of $A$.

basis_mat_inv(A::NfOrdIdl) -> fmpz_mat

Returns the inverse basis matrix of $A$.

minimum(A::NfOrdIdl) -> fmpz


Returns the smallest nonnegative element in $A \cap \mathbf Z$.

norm(A::NfOrdIdl) -> fmpz


Returns the norm of $A$, that is, the cardinality of $\mathcal O/A$, where $\mathcal O$ is the order of $A$.

in(x::NfOrdElem, y::NfOrdIdl)
in(x::nf_elem, y::NfOrdIdl)
in(x::fmpz, y::NfOrdIdl)


Returns whether $x$ is contained in $y$.

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


Returns a tuple (e, f) consisting of elements e in x, f in y such that 1 = e + f.

If the ideals are not coprime, an error is raised.

mod(x::NfOrdElem, I::NfOrdIdl)


Returns the unique element $y$ of the ambient order of $x$ with $x \equiv y \bmod I$ and the following property: If $a_1,\dotsc,a_d \in \Z_{\geq 1}$ are the diagonal entries of the unique HNF basis matrix of $I$ and $(b_1,\dotsc,b_d)$ is the coefficient vector of $y$, then $0 \leq b_i < a_i$ for $1 \leq i \leq d$.

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


Given a prime number $p$, this function returns the $p$-radical $\sqrt{p\mathcal O}$ of $\mathcal O$, which is just $\{ x \in \mathcal O \mid \exists k \in \mathbf Z_{\geq 0} \colon x^k \in p\mathcal O \}$. It is not checked that $p$ is prime.

## 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 $x$ and $y$ are equal.

### Miscaellenous

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