Ball methods
The following methods are useful for explicitly dealing with the ball representation of Arb and related values.
Construction
For constructing balls the methods below are useful. Note that there is no setinterval method, this is instead accomplished with Arb((a, b)) for constructing a ball containing the interval $[a, b]$.
Arblib.setball — Functionsetball(::Type{Arb}, m, r; prec = _precision(m))Returns an Arb with the midpoint and radius set to m and r respectively.
Note that the m is converted to an Arf and therefore rounded. So for example setball(1 // 3, 0) will not contain $1 / 3$.
Arblib.add_error — Functionadd_error(x, err)Returns a copy of x with the absolute value of err added to the radius.
For complex x it adds the error to both the real and imaginary parts. For matrices it adds it elementwise.
See also setball.
Destruction
For extracting information about the ball representation the following methods are useful.
Arblib.radius — Functionradius([T, ] x::ArbOrRef)Returns the radius of x as a Mag. If T is given convert to this type, supports Mag, Arf, Arb and Float64.
Arblib.midpoint — Functionmidpoint([T, ] x::ArbOrRef)Returns the midpoint of x as an Arf. If T is given convert to this type, supports Arf and Arb.
midpoint([T, ] z::AcbOrRef)Returns the midpoint of z as a Complex{Arf}. If T is given and equal to Arf or Arb, convert to Complex{T}. If T is equal to Acf or Acb then convert to that.
Arblib.lbound — Functionlbound([T, ] x::ArbOrRef)Returns a lower bound of x as an Arf. If T is given convert to this type, supports Arf and Arb.
If x contains NaN it returns NaN.
Arblib.ubound — Functionubound([T, ] x::ArbOrRef)Returns an upper bound of x as an Arf. If T is given convert to this type, supports Arf and Arb.
If x contains NaN it returns NaN.
Arblib.abs_lbound — Functionabs_lbound([T, ] x::Union{ArbOrRef,AcbOrRef})Returns a lower bound of abs(x) as an Arf. If T is given convert to this type, supports Arf and Arb.
If x contains NaN it returns NaN.
Arblib.abs_ubound — Functionabs_ubound([T, ] x::Union{ArbOrRef,AcbOrRef})Returns an upper bound of abs(x) as an Arf. If T is given convert to this type, supports Arf and Arb.
If x contains NaN it returns NaN.
Arblib.getinterval — Functiongetinterval([T, ] x::ArbOrRef)Returns a tuple (l, u) representing an interval [l, u] enclosing the ball x, both of them are of type Arf. If T is given convert to this type, supports Arf, BigFloat and Arb.
If x contains NaN both l and u will be NaN.
See also getball.
Arblib.getball — Functiongetball([T, ] x::ArbOrRef)Returns a tuple (m::Arf, r::Mag) where m is the midpoint of the ball and r is the radius. If T is given convert both m and r to this type, supports Arf and Arb.
See also setball and getinterval.
Union and intersection
The methods Arblib.union and Arblib.intersection compute the union and intersection of balls. Note that these methods are not exported and different from Base.union and Base.intersect.
Arblib.union — Functionunion(x::ArbOrRef, y::ArbOrRef)
union(x::AcbOrRef, y::AcbOrRef)
union(x::T, y::T) where {T<:Union{ArbPoly,AcbPoly,ArbSeries,AcbSeries}}
union(x, y, z...)Returns a ball containing the union of x and y. For polynomials and series the union is taken coefficient-wise.
union(x, y, z...) returns a ball containing the union of all given balls.
Arblib.intersection — Functionintersection(x::ArbOrRef, y::ArbOrRef)
intersection(x::T, y::T) where {T<:Union{ArbPoly,ArbSeries}}
intersection(x, y, z...)intersection(x, y) returns a ball containing the intersection of x and y. If x and y do not overlap (as given by overlaps(a, b)) throws an ArgumentError. For polynomials and series the intersection is taken coefficient-wise.
intersection(x, y, z...) returns a ball containing the intersection of all given balls. If all the balls do not overlap throws an ArgumentError.