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 <: 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.
Arblib.Arf
— TypeArf <: 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.
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 <: 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.
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 <: 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.
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 <: 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.
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
— TypeArbPoly
Arblib.AcbPoly
— TypeAcbPoly
Arblib.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 <: Number
Arblib.AcbSeries
— TypeAcbSeries <: Number
Ref
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 <: Real
Type handling references to Mag
objects.
This type cannot be constructed directly, but is returned by other functions such as radref
.
Arblib.ArfRef
— TypeArfRef <: AbstractFloat
Type handling references to Arf
objects.
This type cannot be constructed directly, but is returned by other functions such as midref
.
Arblib.AcfRef
— TypeAcfRef <: Number
Type 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 <: AbstractFloat
Type handling references to Arb
objects.
Arblib.AcbRef
— TypeAcbRef <: Number
Type 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 |