Types

The package defines a number of types for the high level interface.

Basic

These types directly map to corresponding Arb types.

Arblib.ArbVectorType
ArbVector <: DenseVector{Arb}
ArbVector(n::Integer; prec::Integer = DEFAULT_PRECISION[])
ArbVector(v::ArbVectorLike; shallow::Bool = false, prec::Integer = precision(v))
ArbVector(v::AbstractVector; prec::Integer = _precision(v))

The constructor with n::Integer returns a vector with n elements filled with zeros. The other two constructors returns a copy of the given vector. If shallow = true then the returned vector shares the underlying data with the input, mutating one of them mutates both.

See also ArbRefVector.

Arblib.AcbVectorType
AcbVector <: DenseVector{Acb}
AcbVector(n::Integer; prec::Integer = DEFAULT_PRECISION[])
AcbVector(v::AcbVectorLike; shallow::Bool = false, prec::Integer = precision(v))
AcbVector(v::AbstractVector; prec::Integer = _precision(v))

The constructor with n::Integer returns a vector with n elements filled with zeros. The other two constructors returns a copy of the given vector. If shallow = true then the returned vector shares the underlying data with the input, mutating one of them mutates both.

See also AcbRefVector.

Arblib.ArbMatrixType
ArbMatrix <: DenseMatrix{Arb}
ArbMatrix(r::Integer, c::Integer; prec::Integer = DEFAULT_PRECISION[])
ArbMatrix(A::ArbMatrixLike; shallow::Bool = false, prec::Integer = precision(v))
ArbMatrix(A::AbstractMatrix; prec::Integer = _precision(v))
ArbMatrix(v::AbstractVector; prec::Integer = _precision(v))

The constructor with r::Integer, c::Integer returns a r × c filled with zeros. The other three constructors returns a copy of the given matrix or vector. If shallow = true then the returned matrix shares the underlying data with the input, mutating one of them mutates both.

See also ArbRefMatrix.

Arblib.AcbMatrixType
AcbMatrix <: DenseMatrix{Acb}
AcbMatrix(r::Integer, c::Integer; prec::Integer = DEFAULT_PRECISION[])
AcbMatrix(A::AcbMatrixLike; shallow::Bool = false, prec::Integer = precision(v))
AcbMatrix(A::AbstractMatrix; prec::Integer = _precision(v))
AcbMatrix(v::AbstractVector; prec::Integer = _precision(v))

The constructor with r::Integer, c::Integer returns a r × c filled with zeros. The other three constructors returns a copy of the given matrix or vector. If shallow = true then the returned matrix shares the underlying data with the input, mutating one of them mutates both.

See also AcbRefMatrix.

Series

The package defines two series types, which are wrapper for the polynomial types with a specified degree.

Ref

In addition to these there are a number of Ref types, which allow for non-allocating access in a number of cases.

Arblib.ArbRefVectorType
ArbRefVector <: DenseMatrix{ArbRef}

Similar to ArbVector but indexing elements returns an ArbRef referencing the corresponding element instead of an Arb copy of the element. The constructors are the same as for ArbVector

Arblib.AcbRefVectorType
AcbRefVector <: DenseMatrix{AcbRef}

Similar to AcbVector but indexing elements returns an AcbRef referencing the corresponding element instead of an Acb copy of the element. The constructors are the same as for AcbVector

Arblib.ArbRefMatrixType
ArbRefMatrix <: DenseMatrix{ArbRef}

Similar to ArbMatrix but indexing elements returns an ArbRef referencing the corresponding element instead of an Arb copy of the element. The constructors are the same as for ArbMatrix

Arblib.AcbRefMatrixType
AcbRefMatrix <: DenseMatrix{AcbRef}

Similar to AcbMatrix but indexing elements returns an AcbRef referencing the corresponding element instead of an Acb copy of the element. The constructors are the same as for `AcbMatrix

Correspondence between types

We have the following table for the correspondence with between the Low level wrapper types and the high level interface types.

ArbWrapperHigh levelRef
mag_tmag_structMagMagRef
arf_tarf_structArfArfRef
arb_tarb_structArbArbRef
acb_tacb_structAcbAcbRef
arb_t*arb_vec_structArbVectorArbRefVector
acb_t*acb_vec_structAcbVectorAcbRefVector
arb_poly_tarb_poly_structArbPoly or ArbSeries
acb_poly_tacb_poly_structAcbPoly or AcbSeries
arb_mat_tarb_mat_structArbMatrixArbRefMatrix
acb_mat_tacb_mat_structAcbMatrixAcbRefMatrix