Types

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

Basic

These types directly map to corresponding Arb types.

Arblib.MagType
Mag <: Real

Fixed-precision unsigned floating-point numbers for bounds. Used to represent the radius for the Arb type.

It is a wrapper of the type mag in Flint, see that page for more detailed information.

See also MagRef for handling pointers to mag objects.

Limited capabilities

The Mag type only implements very basic functionalities and should rarely be used directly.

source
Arblib.ArfType
Arf <: AbstractFloat

Arbitrary precision floating point number type. Used to represent the midpoint for the Arb type.

It is a wrapper of the type arf in Flint, see that page for more detailed information.

See also ArfRef for handling pointers to arf objects, Acf for a complex version and Arb for a number type with rigorous error tracking.

Limited capabilities

The Arf type only implements basic functionalities. For most purposes it is better to use the Arb type, this is true even in situations where the rigorous error tracking done by Arb is not needed.

source
Arblib.AcfType
Acf <: AbstractFloat

Complex arbitrary precision floating point number type.

It is internally represented by a pair of Arf values.

It is a wrapper of the type acf in Flint, see that page for more detailed information.

See also AcfRef for handling pointers to acf objects and Acb for a complex number type with rigorous error tracking.

Limited capabilities

The Acf type only implements very basic functionalities. For most purposes it is better to use the Acb type, this is true even in situations where the rigorous error tracking done by Acb is not needed.

source
Arblib.ArbType
Arb <: AbstractFloat

Arbitrary precision floating point number type with rigorous error tracking.

It is given by an interval $[m ± r] = [m - r, m + r]$ where the midpoint m is internally represented by an Arf value and radius r is internally represented by a Mag value. The result of an (approximate) operation done on Arb variables is a ball which contains the result of the (mathematically exact) operation applied to any choice of points in the input balls. In general, the output ball is not the smallest possible.

It is a wrapper of the type arb in Flint, see that page for more detailed information.

See also ArbRef for handling pointers to arb objects and Acb for a complex version.

Printing of `Arb` values

When printing Arb values, care is taken to only print accurate digits. In some cases, in particular when the radius is large, this can lead to confusing results. See string as well as the online documentation about printing for more details.

source
Arblib.AcbType
Acb <: Number

Complex arbitrary precision floating point number type with rigorous error tracking.

It is internally represented by a pair of Arb values.

It is a wrapper of the type acb in Flint, see that page for more detailed information.

See also AcbRef for handling pointers to acb objects.

source
Arblib.ArbVectorType
ArbVector <: DenseVector{Arb}
ArbVector(n::Integer; prec::Integer = _current_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.

source
Arblib.AcbVectorType
AcbVector <: DenseVector{Acb}
AcbVector(n::Integer; prec::Integer = _current_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.

source
Arblib.ArbMatrixType
ArbMatrix <: DenseMatrix{Arb}
ArbMatrix(r::Integer, c::Integer; prec::Integer = _current_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.

source
Arblib.AcbMatrixType
AcbMatrix <: DenseMatrix{Acb}
AcbMatrix(r::Integer, c::Integer; prec::Integer = _current_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.

source

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.MagRefType
MagRef <: Real

Type handling references to Mag objects.

No standard constructors

This type cannot be constructed directly, but is returned by other functions such as radref.

source
Arblib.ArfRefType
ArfRef <: AbstractFloat

Type handling references to Arf objects.

No standard constructors

This type cannot be constructed directly, but is returned by other functions such as midref.

source
Arblib.AcfRefType
AcfRef <: Number

Type handling references to Acf objects.

No standard constructors

There are currently no types from which AcfRef can be natively constructed. It can as of now only be constructed from a raw point to an acf_struct.

source
Arblib.ArbRefType
ArbRef <: AbstractFloat

Type handling references to Arb objects.

No standard constructors

This type cannot be constructed directly, but is returned by other functions such as ref, realref and imagref.

source
Arblib.AcbRefType
AcbRef <: Number

Type handling references to Acb objects.

No standard constructors

This type cannot be constructed directly, but is returned by other functions such as ref.

source
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

source
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

source
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

source
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

source

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
acf_tacf_structAcfAcfRef
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