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
Arblib.Arf
— TypeArf <: AbstractFloat
Arblib.Acf
— TypeAcf <: AbstractFloat
Complex arbitrary precision floating point number type.
The internal representation of the real and imaginary parts are the same as for Arf
. It is a wrapper of the type acf
in Flint.
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
Arblib.Acb
— TypeAcb <: Number
Arblib.ArbVector
— TypeArbVector <: 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.AcbVector
— TypeAcbVector <: 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.ArbPoly
— TypeArbPoly
Arblib.AcbPoly
— TypeAcbPoly
Arblib.ArbMatrix
— TypeArbMatrix <: 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.AcbMatrix
— TypeAcbMatrix <: 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.
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
Arblib.ArfRef
— TypeArfRef <: AbstractFloat
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
Arblib.AcbRef
— TypeAcbRef <: Number
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 |