TYoshimura.DoubleDouble
2.2.0
See the version list below for details.
dotnet add package TYoshimura.DoubleDouble --version 2.2.0
NuGet\Install-Package TYoshimura.DoubleDouble -Version 2.2.0
<PackageReference Include="TYoshimura.DoubleDouble" Version="2.2.0" />
paket add TYoshimura.DoubleDouble --version 2.2.0
#r "nuget: TYoshimura.DoubleDouble, 2.2.0"
// Install TYoshimura.DoubleDouble as a Cake Addin #addin nuget:?package=TYoshimura.DoubleDouble&version=2.2.0 // Install TYoshimura.DoubleDouble as a Cake Tool #tool nuget:?package=TYoshimura.DoubleDouble&version=2.2.0
DoubleDouble
double-double arithmetic implements
Requirement
.NET 5.0
Install
- To install, just import the DLL.
- This library does not change the environment at all.
More Precision ?
Types
type | mantissa bits | significant digits |
---|---|---|
ddouble | 104 | 30 |
Functions
function | domain | mantissa error bits | note | usage |
---|---|---|---|---|
sqrt | [0,+inf) | 2 | ddouble.Sqrt(x) | |
cbrt | (-inf,+inf) | 2 | ddouble.Cbrt(x) | |
log2 | (0,+inf) | 2 | ddouble.Log2(x) | |
log | (0,+inf) | 3 | ddouble.Log(x) | |
log10 | (0,+inf) | 3 | ddouble.Log10(x) | |
log1p | (-1,+inf) | 3 | log(1+x) | ddouble.Log1p(x) |
pow2 | (-inf,+inf) | 1 | ddouble.Pow2(x) | |
pow | (-inf,+inf) | 4 | ddouble.Pow(x, y) | |
pow10 | (-inf,+inf) | 4 | ddouble.Pow10(x) | |
exp | (-inf,+inf) | 4 | ddouble.Exp(x) | |
expm1 | (-inf,+inf) | 4 | exp(x)-1 | ddouble.Expm1(x) |
sin | (-inf,+inf) | 2 | ddouble.Sin(x) | |
cos | (-inf,+inf) | 2 | ddouble.Cos(x) | |
tan | (-inf,+inf) | 3 | ddouble.Tan(x) | |
sinpi | (-inf,+inf) | 1 | sin(πx) | ddouble.SinPI(x) |
cospi | (-inf,+inf) | 1 | cos(πx) | ddouble.CosPI(x) |
tanpi | (-inf,+inf) | 2 | tan(πx) | ddouble.TanPI(x) |
sinh | (-inf,+inf) | 2 | ddouble.Sinh(x) | |
cosh | (-inf,+inf) | 2 | ddouble.Cosh(x) | |
tanh | (-inf,+inf) | 2 | ddouble.Tanh(x) | |
asin | [-1,1] | 2 | Accuracy deteriorates near x=-1,1. | ddouble.Asin(x) |
acos | [-1,1] | 2 | Accuracy deteriorates near x=-1,1. | ddouble.Acos(x) |
atan | (-inf,+inf) | 2 | ddouble.Atan(x) | |
atan2 | (-inf,+inf) | 2 | ddouble.Atan2(y, x) | |
arsinh | (-inf,+inf) | 2 | ddouble.Arsinh(x) | |
arcosh | [1,+inf) | 2 | ddouble.Arcosh(x) | |
artanh | (-1,1) | 4 | Accuracy deteriorates near x=-1,1. | ddouble.Artanh(x) |
sinc | (-inf,+inf) | 2 | ddouble.Sinc(x, normalized) | |
gamma | (-inf,+inf) | 5 | Accuracy deteriorates near non-positive intergers. If x is Natual number lass than 35, an exact integer value is returned. | ddouble.Gamma(x) |
loggamma | (0,+inf) | 5 | ddouble.LogGamma(x) | |
digamma | (-inf,+inf) | 5 | Near the positive zero point, polynomial interpolation is used. | ddouble.Digamma(x) |
beta | [0,+inf) | 5 | ddouble.Beta(a, b) | |
incomplete_beta | [0,1] | 8 | Accuracy decreases when the radio of a,b is too large. a,b ≤ 64 | ddouble.IncompleteBeta(x, a, b) |
erf | (-inf,+inf) | 5 | ddouble.Erf(x) | |
erfc | (-inf,+inf) | 5 | ddouble.Erfc(x) | |
inverse_erf | (-1,1) | 8 | ddouble.InverseErf(x) | |
inverse_erfc | (0,2) | 8 | ddouble.InverseErfc(x) | |
erfi | (-inf,+inf) | 8 | ddouble.Erfi(x) | |
dawson_f | (-inf,+inf) | 4 | ddouble.DawsonF(x) | |
bessel_j | [0,+inf) | 16 | Accuracy deteriorates near zero points. abs(nu) ≤ 8 | ddouble.BesselJ(nu, x) |
bessel_y | [0,+inf) | 16 | Accuracy deteriorates near zero points. abs(nu) ≤ 8 | ddouble.BesselY(nu, x) |
bessel_i | [0,+inf) | 16 | abs(nu) ≤ 8 | ddouble.BesselI(nu, x) |
bessel_k | [0,+inf) | 16 | abs(nu) ≤ 8 | ddouble.BesselK(nu, x) |
elliptic_k | [0,1] | 4 | k: elliptic modulus, m=k^2 | ddouble.EllipticK(m) |
elliptic_e | [0,1] | 4 | k: elliptic modulus, m=k^2 | ddouble.EllipticE(m) |
elliptic_pi | [0,1] | 4 | k: elliptic modulus, m=k^2 | ddouble.EllipticPi(n, m) |
incomplete_elliptic_k | [0,2pi] | 4 | k: elliptic modulus, m=k^2 | ddouble.EllipticK(x, m) |
incomplete_elliptic_e | [0,2pi] | 4 | k: elliptic modulus, m=k^2 | ddouble.EllipticE(x, m) |
incomplete_elliptic_pi | [0,2pi] | 4 | k: elliptic modulus, m=k^2 Argument order follows wolfram. | ddouble.EllipticPi(n, x, m) |
elliptic_theta1 | (-inf,+inf) | 4 | q ≤ 0.995 | ddouble.EllipticTheta1(x, q) |
elliptic_theta2 | (-inf,+inf) | 4 | q ≤ 0.995 | ddouble.EllipticTheta2(x, q) |
elliptic_theta3 | (-inf,+inf) | 4 | q ≤ 0.995 | ddouble.EllipticTheta3(x, q) |
elliptic_theta4 | (-inf,+inf) | 4 | q ≤ 0.995 | ddouble.EllipticTheta4(x, q) |
fresnel_c | (-inf,+inf) | 8 | ddouble.FresnelC(x) | |
fresnel_s | (-inf,+inf) | 8 | ddouble.FresnelS(x) | |
ei | (-inf,+inf) | 8 | exponential integral | ddouble.Ei(x) |
ein | (-inf,+inf) | 8 | complementary exponential integral | ddouble.Ein(x) |
li | [0,+inf) | 10 | logarithmic integral li(x)=ei(log(x)) | ddouble.Li(x) |
si | (-inf,+inf) | 8 | sin integral, limit_zero=true: si(x) | ddouble.Si(x, limit_zero) |
ci | [0,+inf) | 8 | cos integral | ddouble.Ci(x) |
lambertw | [-1/e,+inf) | 8 | ddouble.LambertW(x) | |
airy_ai | (-inf,+inf) | 10 | Accuracy deteriorates near zero points. | ddouble.AiryAi(x) |
airy_bi | (-inf,+inf) | 10 | Accuracy deteriorates near zero points. | ddouble.AiryBi(x) |
lower_incomplete_gamma | [0,+inf) | 10 | nu ≤ 128 | ddouble.LowerIncompleteGamma(nu, x) |
upper_incomplete_gamma | [0,+inf) | 10 | nu ≤ 128 | ddouble.UpperIncompleteGamma(nu, x) |
jacobi_sn | (-inf,+inf) | 4 | k: elliptic modulus, m=k^2 | ddouble.JacobiSn(x, m) |
jacobi_cn | (-inf,+inf) | 4 | k: elliptic modulus, m=k^2 | ddouble.JacobiCn(x, m) |
jacobi_dn | (-inf,+inf) | 4 | k: elliptic modulus, m=k^2 | ddouble.JacobiDn(x, m) |
jacobi_amplitude | (-inf,+inf) | 4 | k: elliptic modulus, m=k^2 | ddouble.JacobiAm(x, m) |
inverse_jacobi_sn | [-1,+1] | 4 | k: elliptic modulus, m=k^2 | ddouble.JacobiArcSn(x, m) |
inverse_jacobi_cn | [-1,+1] | 4 | k: elliptic modulus, m=k^2 | ddouble.JacobiArcCn(x, m) |
inverse_jacobi_dn | [0,1] | 4 | k: elliptic modulus, m=k^2 | ddouble.JacobiArcDn(x, m) |
carlson_rd | [0,+inf) | 4 | ddouble.CarlsonRD(x, y, z) | |
carlson_rc | [0,+inf) | 4 | ddouble.CarlsonRC(x, y) | |
carlson_rf | [0,+inf) | 4 | ddouble.CarlsonRF(x, y, z) | |
carlson_rj | [0,+inf) | 4 | ddouble.CarlsonRJ(x, y, z, w) | |
carlson_rg | [0,+inf) | 4 | ddouble.CarlsonRG(x, y, z) | |
riemann_zeta | (-inf,+inf) | 3 | ddouble.RiemannZeta(x) | |
dirichlet_eta | (-inf,+inf) | 3 | ddouble.DirichletEta(x) | |
ldexp | (-inf,+inf) | N/A | ddouble.Ldexp(x, y) | |
min | N/A | N/A | ddouble.Min(x, y) | |
max | N/A | N/A | ddouble.Max(x, y) | |
floor | N/A | N/A | ddouble.Floor(x) | |
ceiling | N/A | N/A | ddouble.Ceiling(x) | |
round | N/A | N/A | ddouble.Round(x) | |
truncate | N/A | N/A | ddouble.Truncate(x) | |
array sum | N/A | N/A | IEnumerable<ddouble>.Sum() | |
array average | N/A | N/A | IEnumerable<ddouble>.Average() | |
array min | N/A | N/A | IEnumerable<ddouble>.Min() | |
array max | N/A | N/A | IEnumerable<ddouble>.Max() |
Constants
constant | value | note | usage |
---|---|---|---|
Pi | 3.141592653589793238462... | ddouble.PI | |
Napier's E | 2.718281828459045235360... | ddouble.E | |
Euler's Gamma | 0.577215664901532860606... | ddouble.EulerGamma | |
ζ(3) | 1.202056903159594285399... | Apery const. | ddouble.Zeta3 |
ζ(5) | 1.036927755143369926331... | ddouble.Zeta5 | |
ζ(7) | 1.008349277381922826839... | ddouble.Zeta7 | |
ζ(9) | 1.002008392826082214418... | ddouble.Zeta9 |
Sequence
sequence | note | usage |
---|---|---|
Taylor | 1/n! | ddouble.TaylorSequence |
Bernoulli | B(2k) | ddouble.BernoulliSequence |
HarmonicNumber | H_n | ddouble.HarmonicNumber |
Casts
long (accurately)
ddouble v0 = 123;
long n0 = (long)v0;
double (accurately)
ddouble v1 = 0.5;
double n1 = (double)v1;
decimal (approximately)
ddouble v1 = 0.1m;
decimal n1 = (decimal)v1;
string (approximately)
ddouble v2 = "3.14e0";
string s0 = v2.ToString();
string s1 = v2.ToString("E8");
string s2 = $"{v2:E8}";
I/O
BinaryWriter, BinaryReader
Licence
Author
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 is compatible. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
-
net5.0
- No dependencies.
NuGet packages (11)
Showing the top 5 NuGet packages that depend on TYoshimura.DoubleDouble:
Package | Downloads |
---|---|
TYoshimura.Algebra
Linear Algebra |
|
TYoshimura.DoubleDouble.Complex
Double-Double Complex and Quaternion Implements |
|
TYoshimura.CurveFitting
Curvefitting - linear, polynomial, pade, arbitrary function |
|
TYoshimura.DoubleDouble.Statistic
Double-Double Statistic Implements |
|
TYoshimura.DoubleDouble.Integrate
Double-Double Numerical Integration Implements |
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
4.0.1 | 60 | 11/1/2024 |
4.0.0 | 96 | 10/31/2024 |
3.3.4 | 79 | 10/23/2024 |
3.3.3 | 55 | 10/21/2024 |
3.3.2 | 154 | 10/14/2024 |
3.3.1 | 68 | 10/13/2024 |
3.3.0 | 70 | 10/13/2024 |
3.2.9 | 86 | 10/11/2024 |
3.2.8 | 95 | 9/18/2024 |
3.2.7 | 117 | 9/10/2024 |
3.2.6 | 285 | 8/22/2024 |
3.2.5 | 129 | 8/22/2024 |
3.2.4 | 153 | 7/12/2024 |
3.2.3 | 102 | 6/9/2024 |
3.2.2 | 369 | 4/26/2024 |
3.2.1 | 372 | 2/22/2024 |
3.2.0 | 741 | 1/20/2024 |
3.1.6 | 472 | 11/12/2023 |
3.1.5 | 437 | 11/3/2023 |
3.1.4 | 472 | 11/3/2023 |
3.1.3 | 449 | 10/30/2023 |
3.1.2 | 463 | 10/28/2023 |
3.1.1 | 421 | 10/28/2023 |
3.1.0 | 497 | 10/21/2023 |
3.0.9 | 435 | 10/20/2023 |
3.0.8 | 478 | 10/19/2023 |
3.0.7 | 479 | 10/14/2023 |
3.0.6 | 486 | 10/13/2023 |
3.0.5 | 477 | 10/12/2023 |
3.0.4 | 461 | 10/11/2023 |
3.0.3 | 524 | 10/8/2023 |
3.0.2 | 505 | 10/7/2023 |
3.0.1 | 444 | 9/30/2023 |
3.0.0 | 497 | 9/30/2023 |
2.9.8 | 496 | 9/29/2023 |
2.9.7 | 501 | 9/16/2023 |
2.9.6 | 566 | 9/9/2023 |
2.9.5 | 562 | 9/9/2023 |
2.9.4 | 574 | 9/8/2023 |
2.9.3 | 539 | 9/8/2023 |
2.9.2 | 473 | 9/6/2023 |
2.9.1 | 501 | 9/5/2023 |
2.9.0 | 751 | 9/4/2023 |
2.8.6 | 827 | 3/18/2023 |
2.8.5 | 1,205 | 3/13/2023 |
2.8.4 | 719 | 3/11/2023 |
2.8.3 | 668 | 2/23/2023 |
2.8.2 | 668 | 2/17/2023 |
2.8.1 | 752 | 2/16/2023 |
2.8.0 | 665 | 2/13/2023 |
2.7.2 | 1,763 | 10/30/2022 |
2.7.1 | 789 | 10/28/2022 |
2.7.0 | 804 | 10/25/2022 |
2.6.1 | 811 | 10/14/2022 |
2.6.0 | 852 | 10/13/2022 |
2.5.6 | 852 | 9/18/2022 |
2.5.5 | 859 | 9/17/2022 |
2.5.4 | 804 | 9/16/2022 |
2.5.3 | 820 | 9/15/2022 |
2.5.2 | 802 | 9/7/2022 |
2.5.1 | 859 | 9/5/2022 |
2.5.0 | 2,095 | 9/4/2022 |
2.4.5 | 755 | 9/3/2022 |
2.4.4 | 790 | 9/2/2022 |
2.4.3 | 789 | 8/31/2022 |
2.4.2 | 879 | 2/8/2022 |
2.4.1 | 1,349 | 1/26/2022 |
2.4.0 | 830 | 1/25/2022 |
2.3.1 | 977 | 1/21/2022 |
2.3.0 | 937 | 1/20/2022 |
2.2.0 | 841 | 1/13/2022 |
2.1.2 | 878 | 1/12/2022 |
2.1.1 | 861 | 1/12/2022 |
2.1.0 | 643 | 1/11/2022 |
2.0.5 | 783 | 1/9/2022 |
2.0.4 | 717 | 1/8/2022 |
2.0.2 | 673 | 1/8/2022 |
2.0.1 | 695 | 1/7/2022 |
2.0.0 | 699 | 1/7/2022 |
1.9.4 | 690 | 1/6/2022 |
1.9.3 | 669 | 1/6/2022 |
1.9.2 | 718 | 1/5/2022 |
1.9.0 | 671 | 1/5/2022 |
1.8.0 | 664 | 1/4/2022 |
1.7.0 | 666 | 1/3/2022 |
1.6.1 | 681 | 12/25/2021 |
1.6.0 | 1,208 | 12/25/2021 |
1.5.2 | 639 | 12/22/2021 |
1.5.1 | 713 | 12/22/2021 |
1.5.0 | 702 | 12/22/2021 |
1.4.3 | 842 | 12/11/2021 |
1.4.2 | 809 | 12/11/2021 |
1.4.1 | 695 | 12/2/2021 |
1.4.0 | 1,183 | 12/1/2021 |
+ erfi, dawson_f