Types
The package defines a number of types for the high level interface.
Basic
These types directly map to corresponding Arb types.
Arblib.Mag — Type
Mag <: RealFixed-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.
Arblib.Arf — Type
Arf <: AbstractFloatArbitrary 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.
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.
Arblib.Acf — Type
Acf <: AbstractFloatComplex 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.
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.
Arblib.Arb — Type
Arb <: AbstractFloatArbitrary 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.
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.
Arblib.Acb — Type
Acb <: NumberComplex 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.
Arblib.ArbVector — Type
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.
Arblib.AcbVector — Type
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.
Arblib.ArbPoly — Type
ArbPolyArblib.AcbPoly — Type
AcbPolyArblib.ArbMatrix — Type
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.
Arblib.AcbMatrix — Type
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.
Series
The package defines two series types, which are wrapper for the polynomial types with a specified degree.
Arblib.ArbSeries — Type
ArbSeries <: NumberArblib.AcbSeries — Type
AcbSeries <: NumberRef
In addition to these there are a number of Ref types, which allow for non-allocating access in a number of cases.
Arblib.MagRef — Type
MagRef <: RealType handling references to Mag objects.
This type cannot be constructed directly, but is returned by other functions such as radref.
Arblib.ArfRef — Type
ArfRef <: AbstractFloatType handling references to Arf objects.
This type cannot be constructed directly, but is returned by other functions such as midref.
Arblib.AcfRef — Type
AcfRef <: NumberType handling references to Acf objects.
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.
Arblib.AcbRef — Type
AcbRef <: NumberType handling references to Acb objects.
This type cannot be constructed directly, but is returned by other functions such as ref.
Arblib.ArbRefVector — Type
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.AcbRefVector — Type
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.ArbRefMatrix — Type
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.AcbRefMatrix — Type
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.
| Arb | Wrapper | High level | Ref |
|---|---|---|---|
mag_t | mag_struct | Mag | MagRef |
arf_t | arf_struct | Arf | ArfRef |
acf_t | acf_struct | Acf | AcfRef |
arb_t | arb_struct | Arb | ArbRef |
acb_t | acb_struct | Acb | AcbRef |
arb_t* | arb_vec_struct | ArbVector | ArbRefVector |
acb_t* | acb_vec_struct | AcbVector | AcbRefVector |
arb_poly_t | arb_poly_struct | ArbPoly or ArbSeries | |
acb_poly_t | acb_poly_struct | AcbPoly or AcbSeries | |
arb_mat_t | arb_mat_struct | ArbMatrix | ArbRefMatrix |
acb_mat_t | acb_mat_struct | AcbMatrix | AcbRefMatrix |