Types
The package defines a number of types for the high level interface.
Basic
These types directly map to corresponding Arb types.
Arblib.Mag — TypeMag <: 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 — TypeArf <: 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 — TypeAcf <: 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 — TypeArb <: 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 — TypeAcb <: 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 — TypeArbVector <: 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 — TypeAcbVector <: 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 — TypeArbPolyArblib.AcbPoly — TypeAcbPolyArblib.ArbMatrix — TypeArbMatrix <: 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 — TypeAcbMatrix <: 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 — TypeArbSeries <: NumberArblib.AcbSeries — TypeAcbSeries <: 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 — TypeMagRef <: RealType handling references to Mag objects.
This type cannot be constructed directly, but is returned by other functions such as radref.
Arblib.ArfRef — TypeArfRef <: AbstractFloatType handling references to Arf objects.
This type cannot be constructed directly, but is returned by other functions such as midref.
Arblib.AcfRef — TypeAcfRef <: 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.ArbRef — TypeArbRef <: AbstractFloatType handling references to Arb objects.
Arblib.AcbRef — TypeAcbRef <: NumberType handling references to Acb objects.
This type cannot be constructed directly, but is returned by other functions such as ref.
Arblib.ArbRefVector — TypeArbRefVector <: 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 — TypeAcbRefVector <: 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 — TypeArbRefMatrix <: 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 — TypeAcbRefMatrix <: 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 |