TYoshimura.DoubleDouble 2.1.1

There is a newer version of this package available.
See the version list below for details.
dotnet add package TYoshimura.DoubleDouble --version 2.1.1
NuGet\Install-Package TYoshimura.DoubleDouble -Version 2.1.1
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="TYoshimura.DoubleDouble" Version="2.1.1" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add TYoshimura.DoubleDouble --version 2.1.1
#r "nuget: TYoshimura.DoubleDouble, 2.1.1"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install TYoshimura.DoubleDouble as a Cake Addin
#addin nuget:?package=TYoshimura.DoubleDouble&version=2.1.1

// Install TYoshimura.DoubleDouble as a Cake Tool
#tool nuget:?package=TYoshimura.DoubleDouble&version=2.1.1

DoubleDouble

double-double arithmetic implements

Requirement

.NET 5.0

Install

Download DLL
Download Nuget

  • To install, just import the DLL.
  • This library does not change the environment at all.

More Precision ?

MultiPrecision

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)
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)
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^2Argument 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)
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

MIT

Author

T.Yoshimura

Product 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • net5.0

    • No dependencies.

NuGet packages (8)

Showing the top 5 NuGet packages that depend on TYoshimura.DoubleDouble:

Package Downloads
TYoshimura.Algebra

Linear Algebra

TYoshimura.CurveFitting

Curvefitting - linear, polynomial, pade, arbitrary function

TYoshimura.DoubleDouble.Complex

Double-Double Complex and Quaternion Implements

TYoshimura.DoubleDouble.Integrate

Double-Double Numerical Integration Implements

TYoshimura.DoubleDouble.Differentiate

Double-Double Numerical Differentiation Implements

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
3.2.1 215 2/22/2024
3.2.0 395 1/20/2024
3.1.6 415 11/12/2023
3.1.5 386 11/3/2023
3.1.4 421 11/3/2023
3.1.3 399 10/30/2023
3.1.2 412 10/28/2023
3.1.1 380 10/28/2023
3.1.0 448 10/21/2023
3.0.9 389 10/20/2023
3.0.8 427 10/19/2023
3.0.7 425 10/14/2023
3.0.6 433 10/13/2023
3.0.5 428 10/12/2023
3.0.4 415 10/11/2023
3.0.3 465 10/8/2023
3.0.2 462 10/7/2023
3.0.1 395 9/30/2023
3.0.0 448 9/30/2023
2.9.8 445 9/29/2023
2.9.7 446 9/16/2023
2.9.6 505 9/9/2023
2.9.5 504 9/9/2023
2.9.4 518 9/8/2023
2.9.3 497 9/8/2023
2.9.2 438 9/6/2023
2.9.1 457 9/5/2023
2.9.0 657 9/4/2023
2.8.6 773 3/18/2023
2.8.5 1,095 3/13/2023
2.8.4 681 3/11/2023
2.8.3 625 2/23/2023
2.8.2 607 2/17/2023
2.8.1 708 2/16/2023
2.8.0 622 2/13/2023
2.7.2 1,665 10/30/2022
2.7.1 737 10/28/2022
2.7.0 756 10/25/2022
2.6.1 761 10/14/2022
2.6.0 824 10/13/2022
2.5.6 810 9/18/2022
2.5.5 823 9/17/2022
2.5.4 761 9/16/2022
2.5.3 770 9/15/2022
2.5.2 755 9/7/2022
2.5.1 822 9/5/2022
2.5.0 1,979 9/4/2022
2.4.5 712 9/3/2022
2.4.4 749 9/2/2022
2.4.3 739 8/31/2022
2.4.2 841 2/8/2022
2.4.1 1,278 1/26/2022
2.4.0 809 1/25/2022
2.3.1 926 1/21/2022
2.3.0 892 1/20/2022
2.2.0 793 1/13/2022
2.1.2 850 1/12/2022
2.1.1 821 1/12/2022
2.1.0 611 1/11/2022
2.0.5 728 1/9/2022
2.0.4 666 1/8/2022
2.0.2 640 1/8/2022
2.0.1 654 1/7/2022
2.0.0 655 1/7/2022
1.9.4 645 1/6/2022
1.9.3 623 1/6/2022
1.9.2 673 1/5/2022
1.9.0 632 1/5/2022
1.8.0 613 1/4/2022
1.7.0 623 1/3/2022
1.6.1 650 12/25/2021
1.6.0 1,129 12/25/2021
1.5.2 613 12/22/2021
1.5.1 675 12/22/2021
1.5.0 661 12/22/2021
1.4.3 799 12/11/2021
1.4.2 770 12/11/2021
1.4.1 668 12/2/2021
1.4.0 1,137 12/1/2021

+ beta