AngouriMath
AngouriMath.Numerics
Classes within the AngouriMath.Numerics namespace
ComplexInterval
Summary
A rectangle of two Intervals holding a complex value.Interval
Summary
A closed interval of doubles,[Low, High] , that holds a real value: every operation
rounds its bounds outward, so the exact value of what was evaluated is inside.
IntervalEvaluation
Summary
A number an expression stands for, as a ComplexInterval that holds it: in
double arithmetic rounded outward, with no settings read -- neither the precision of the
decimal evaluation nor the downcasting -- so that a question needing a dozen digits is
answered in a dozen and gets the same answer however the caller's settings are set. The
pilot of #1019's item 10, evaluation to a requested accuracy, for the checks inside the
library; EvalNumerical stays as it is beside it.
Remarks
An interval is an answer with its error attached, so a comparison has three outcomes, not
two: the values agree to the accuracy asked, they differ by more, or the intervals are too
wide to tell -- where cancellation has eaten the digits, or a node is not one this reads,
and the caller asks the decimal evaluation instead.
https://github.com/asc-community/AngouriMath/issues/1019
PreciseComplexInterval
Summary
A rectangle of two PreciseIntervals.PreciseEvaluation
Summary
IntervalEvaluation at a requested number of significant digits, for the
points where double intervals are too wide to tell -- the digits lost to cancellation --
or land on a cut by a rounding. The precision is an argument, never a setting.
PreciseInterval
Summary
An interval of decimals at a working precision the evaluation carries: every operation
rounds its lower bound down and its upper bound up in that many digits, so the exact value
is inside. Interval's second tier, for where doubles cannot tell.
SpecialFunctions
Summary
The special functions in double precision:erf ,erfc ,erfi ,Ei ,
li ,Si ,Ci ,Shi andChi . Both compilers call them, and they
sit beside the numerical evaluation so that its fast tier can take them up too.
The interpreter's kernels, Erf(AngouriMath.Entity.Number.Complex) and the
others, work in arbitrary precision. At 20 digits they take 0.7 to 5.5 ms a call. Newton's
method makes thousands of calls. These take a microsecond or two.
https://github.com/asc-community/AngouriMath/issues/1607
Remarks
Each is the kernel's function, with the kernel's branch cuts and the kernel's values on the
axes. They were measured against the kernels at 30 digits on some ten thousand points: a
grid of[-14, 14]^2 , both axes out to 40 and down to1e-4 , either side of the
negative real axis, and circles out to 300. The integrals agree to within6e-14 of the
value. The error functions agree to within3e-13 , which is the rounding of
z^2 in theire^(-z^2) where|z| is large. An imaginary part of
either sign of zero is read as the axis, as the kernels read it.
The error functions come from the Faddeeva function
w(z) = e^(-z^2) erfc(-i z) , by Weideman's rational approximation with 40 terms
(J. A. C. Weideman, Computation of the complex error function, SIAM J. Numer. Anal.
31, 1994), and near the origin from the Taylor series oferf .
Ei is summed as its series where the terms cancel little, which is where
|z| - Re z is at most 3 or|z| at most 2. Out to|z| = 40 it is
-E1(-z) otherwise, byE1 's continued fraction, plus the branch term. From
40 on it is the asymptotic series.li isEi of the logarithm.Shi and
Chi are summed as their own series by the same rule with|Re z| , and
otherwise come fromEi(z) andEi(-z) .Si andCi are those at
i z . Every relation is one the kernels state.
Angouri © 2019-2023 · Project's repo · Site's repo · Octicons · Transparency · 4378 pages online