The Bivariate Normal Integral via Owen’s T Function as a Modified Euler’s Arctangent Series

Abstract

The Owen’s T function is presented in four new ways, one of them as a series similar to the Euler’s arctangent series divided by 2π, which is its majorant series. All possibilities enable numerically stable and fast convergent computation of the bivariate normal integral with simple recursion. When tested  computation on a random sample of one million parameter triplets with uniformly distributed components and using double precision arithmetic, the maximum absolute error was 3.45 × 10-16. In additional testing, focusing on cases with correlation coefficients close to one in absolute value, when the computation may be very sensitive to small rounding errors, the accuracy was retained. In rare potentially critical cases, a simple adjustment to the computation procedure was performedone potentially critical computation was replaced with two equivalent non-critical ones. All new series are suitable for vector and high-precision computation, assuming they are supplemented with appropriate efficient and accurate computation of the arctangent and standard normal cumulative distribution functions. They are implemented by the R package Phi2rho, available on CRAN. Its functions allow vector arguments and are ready to work with the Rmpfr package, which enables the use of arbitrary precision instead of double precision numbers. A special test with up to 1024-bit precision computation is also presented.

Share and Cite:

Komelj, J. (2023) The Bivariate Normal Integral via Owen’s T Function as a Modified Euler’s Arctangent Series. American Journal of Computational Mathematics, 13, 476-504. doi: 10.4236/ajcm.2023.134026.

1. Introduction

Let Φ ( x ) = 1 2 π x e 1 2 t 2 d t be the standard normal cumulative distribution function (cdf) and φ ( x ) = 1 2 π e 1 2 x 2 the standard normal probability density function (pdf). The bivariate standard normal cdf

Φ ρ 2 ( x , y ) = 1 2 π 1 ρ 2 x y e s 2 2 ρ s t + t 2 2 ( 1 ρ 2 ) d s d t (1)

with a correlation coefficient ρ ( 1,1 ) has the bivariate standard normal pdf

φ ρ 2 ( x , y ) = 2 Φ ρ 2 ( x , y ) x y = 1 2 π 1 ρ 2 e x 2 2 ρ x y + y 2 2 ( 1 ρ 2 ) . (2)

If ρ = 0 , then Φ 0 2 ( x , y ) = Φ ( x ) Φ ( y ) , while for | ρ | = 1 we have the degenerated cases

Φ ± 1 2 ( x , y ) = ( min { Φ ( x ) , Φ ( y ) } , if ρ = + 1 , max { Φ ( x ) + Φ ( y ) 1 , 0 } , if ρ = 1. (3)

Additionally, for ρ ( 1,1 ) define

L ( x , y , ρ ) = 1 2 π 1 ρ 2 x y e s 2 2 ρ s t + t 2 2 ( 1 ρ 2 ) d s d t ,

L ( x , y , 1 ) = max { 1 Φ ( x ) Φ ( y ) ,0 } and L ( x , y ,1 ) = 1 max { Φ ( x ) , Φ ( y ) } . The functions Φ ρ 2 ( x , y ) and L ( x , y , ρ ) are symmetric regarding x and y, and because they are complementary, it suffices to analyze only one of them. In this respect, L is often preferred, but not in this paper where some equations for L are also rewritten using Φ ρ 2 ( x , y ) = L ( x , y , ρ ) and some other auxiliary equations.

Noting that (3) implies Φ 1 2 ( x , x ) = Φ ( x ) = 2 Φ 0 2 ( x , 0 ) and Φ 1 2 ( x , x ) = 0 = Φ 0 2 ( x , 0 ) + Φ 0 2 ( x , 0 ) 1 2 , the equations from ( [1] , p. 937, 26.3.19 and 26.3.20), which do not cover these cases if x 0 , as we get an indefinite expression 0 0 for the auxiliary correlation coefficients ρ x and ρ y , can be transformed into

Φ ρ 2 ( x , y ) = ( 1 4 + 1 2 π arcsin ρ , if x = y = 0 , Φ ρ x 2 ( x , 0 ) + Φ ρ y 2 ( y , 0 ) β , if x 0 or y 0 , (4)

where β = 0 if x y > 0 or x y = 0 and x + y 0 , and β = 1 2 otherwise,

ρ x = { 0 if | ρ | = 1 and x 0 and x y sgn ( ρ ) = 0 0 ( ρ x y ) sgn ( x ) x 2 2 ρ x y + y 2 otherwise ( ρ y x ) sgn ( y ) x 2 2 ρ x y + y 2 } = ρ y , (5)

where sgn ( x ) = 1 , if x 0 and sgn ( x ) = 1 , if x < 0 . Note that although | ρ | is not close to 1, | ρ x | or | ρ y | can be, and that | ρ | = 1 and the lower Equations (5) imply | ρ x | = 1 and | ρ y | = 1 .

Since ( [1] , p. 936, 26.3.9 and 26.3.8) imply

Φ ρ 2 ( x , 0 ) = Φ ρ 2 ( x , 0 ) Φ ( x ) + 1 2 and Φ ρ 2 ( x , 0 ) = Φ ( x ) Φ ρ 2 ( x , 0 ) , (6)

and Φ ρ 2 ( x ,0 ) = 1 2 Φ ρ 2 ( x ,0 ) , the problem how to compute Φ ρ 2 ( x , y ) is reduced to the computation of Φ ρ 2 ( x ,0 ) for x 0 and ρ [ 0,1 ) .

Extensive older bibliography exists about how Φ ρ 2 ( x , y ) can be computed (see Gupta [2] ). Many old methods, e.g. Donnelly’s method [3] based on Owen’s results [4] , Divgi’s method [5] and the method of Drezner and Wesolowsky [6] , are sufficiently effective and accurate for the majority of present needs, but new methods still appear, e.g. [7] [8] [9] [10] . More details and comparisons of some methods can be found in [11] [12] [13] .

The Owen’s T function is defined by ( [4] , pp. 1078-1079)

T ( h , a ) = 1 2 π 0 a e 1 2 h 2 ( 1 + x 2 ) 1 + x 2 d x = arctan a 2 π 1 2 π k = 0 ( 1 ) k a 2 k + 1 2 k + 1 ( 1 e 1 2 h 2 i = 0 k h 2 i 2 i i ! ) (7)

for a , h . It appears frequently in the extensive Owen’s table of integrals involving Gaussian functions ( [14] , pp. 393-413) and can be used for computing Φ ρ 2 ( x , y ) , as will be explained in the next section. The series (7) is used in Donnelly’s algorithm [3] and, based on it, is also realized in pbinorm() function from the VGAM package [15] . Since it alternates, there are problems with numerical stability, e.g. using double precision arithmetic, it may provide only single precision results. More about Owen’s T function and older ways of calculating it are given by Patefield and Tandy [7] , who developed a hybrid method to compute it. To achieve double precision accuracy, they use the series (7) or one of five other methods. Which method is chosen and which its parameters are used depends on which of the 18 regions ( h , a ) belongs to—see ( [7] , p. 7, Fig. 2). Their method is also implemented in OwenT() function from the OwenQ package [16] , hereafter OwenQ::OwenT().

The method presented in this paper extends the theoretical knowledge and can be easily implemented. Its great advantage over the already mentioned methods, which enable Φ ρ 2 ( x , y ) computation via Owen’s T function, is its simplicity, faster convergence and ensured numerical stability. Regarding other methods that have proven to be good or even excellent in terms of Φ ρ 2 ( x , y ) computation speed and accuracy, e.g. the one implemented in the pmvnorm() function from the mvtnorm package [17] , the main advantages are simplicity and independence from various constants. Both enable easy portability between different environments and using high-precision arithmetic. There is no need to adjust the number and precision of various constants, such as weights and knots in quadrature formulas, which are used in many Φ ρ 2 ( x , y ) computational methods.

In Section 2, the background results are presented, which are the starting point for the development of a new method, as well as for the acceleration of the tetrachoric series, which was used for the benchmark values computation. In Section 3, auxiliary results are derived. In core Section 4, new series for Φ ρ 2 ( x ,0 ) are derived in Theorems 3 and 4, and in Corollary 2 they are combined in a unified series for Φ ρ 2 ( x , y ) . However, in all cases, the series must be supplemented by the standard normal cdf and some of them also by the arctangent function computation. Four series for computing the Owen’s T function are presented in Theorem 5. Among them (40b) can be viewed as a modified Euler’s arctangent series. In Sections 5 and 6, algorithmic and numeric issues are discussed, and testing results are presented.

Using double precision arithmetic and testing on a random sample of one million triplets ( x , y , ρ ) with uniformly distributed components, the maximum absolute error was 3.45 × 10−16, which is approximately 3.11-times the machine epsilon 2−53. On the same random sample, but with ρ transformed so that more than half of | ρ | were greater than 0.9999, and by equivalent computing of two function values instead of Φ ρ 2 ( x , y ) in rare cases with φ ρ 2 ( x , y ) > 1 , the maximum absolute error was even slightly smaller.

All new series are suitable for vector and high-precision computation. The

fastest one asymptotically converges as k q k + 1 e q ( k + 1 ) ! min { a 2 k ,1 } k + 1 ( 1 + a 2 ) k , where q = 1 2 ( 1 + a 2 ) h 2 . Using the Rmpfr package [18] and 1024-bit precision computation, 199 iterations were needed to compute Φ 2 / 2 2 ( 2.1,0 ) , achieving an absolute error smaller than 2 1024 5.56 × 10 309 .

2. Background Results

The bivariate standard normal cdf can be expanded into tetrachoric series ( [19] , p. 196), ( [1] , p. 940, 26.3.29)

Φ ρ 2 ( x , y ) = Φ ( x ) Φ ( y ) + φ ( x ) φ ( y ) k = 0 H e k ( x ) H e k ( y ) ρ k + 1 ( k + 1 ) ! , (8)

where H e k ( x ) are the “probabilist’s” Hermite polynomials defined by

H e k ( x ) = ( 1 ) k e 1 2 x 2 d k d x k e 1 2 x 2 ( k 0 ) .

The tetrachoric series (8) converges a bit faster than a geometric series with a quotient ρ and slowly converges for | ρ | close to or equal to 1.

Let 1 = { 1,0 } . Extending the usual double factorial function definition for k 0 to k 1 with ( 1 ) ! ! = 1 , we have

H e k ( 0 ) = ( 0, if k is odd , ( 1 ) k 2 ( k 1 ) ! ! , if k is even .

Setting y = 0 in (8), transforming the summation index k 2 k , and using ( 2 k 1 ) ! ! = ( 2 k ) ! 2 k k ! for k 0 , we get a slightly faster converging series

Φ ρ 2 ( x ,0 ) = 1 2 Φ ( x ) + φ ( x ) 2 π k = 0 H e 2 k ( x ) ( 1 ) k ρ 2 k + 1 2 k k ! ( 2 k + 1 ) . (9)

Vasicek ( [20] , p. 7) found an alternative series for the computation of Φ ρ 2 ( x ,0 ) , which is a good alternative to the series (9) if ρ 2 > 1 2 .

Integrating the well known equation ( [21] , p. 352)

ρ Φ ρ 2 ( x , y ) = 2 Φ ρ 2 ( x , y ) x y = φ ρ 2 ( x , y ) (10)

with respect to ρ , using equations Φ 0 2 ( x , y ) = Φ ( x ) Φ ( y ) and (3), we get

Φ ρ 2 ( x , y ) = Φ ( x ) Φ ( y ) + 0 ρ φ s 2 ( x , y ) d s = min { Φ ( x ) , Φ ( y ) } ρ 1 φ s 2 ( x , y ) d s = max { Φ ( x ) + Φ ( y ) 1,0 } + 1 ρ φ s 2 ( x , y ) d s . (11)

Due to historical reasons, the variates h and k are often used instead of x and y. We will use h instead of x but will not need k in the role of y.

In the sequel, let ρ ( 1,1 ) and r be permanently connected by the

one-to-one correspondence r = ρ 1 ρ 2 and ρ = r 1 + r 2 . Notice that (4) and arcsin ρ = arctan r imply Φ ρ 2 ( 0,0 ) = 1 4 + 1 2 π arctan r . Setting x = h , y = 0 , and writing e 1 2 h 2 a b e 1 2 h 2 φ s 2 ( h ,0 ) d s instead of a b φ s 2 ( h ,0 ) d s , the Equations (11) can be rewritten to

Φ ρ 2 ( h ,0 ) = 1 2 Φ ( h ) + φ ( h ) T r ( 1 2 h 2 ) = min { Φ ( h ) , 1 2 } φ ( h ) T ˜ r ( 1 2 h 2 ) = max { Φ ( h ) 1 2 ,0 } + φ ( h ) T ¯ r ( 1 2 h 2 ) , (12)

where, using a substitution s = x 1 + x 2 ,

T r ( w ) = 1 2 π 0 ρ 1 1 s 2 e w s 2 1 s 2 d s = 1 2 π 0 r e w x 2 1 + x 2 d x ( w ) .

Analogously, T ˜ r ( w ) and T ¯ r ( w ) are defined for w 0 by integrals with limits ( ρ ,1 ) and ( 1, ρ ) , and ( r , ) and ( , r ) respectively, which do not exist for w > 0 . The computation of Φ ρ 2 ( h ,0 ) is reduced to the computation

of one of the integrals T r ( 1 2 h 2 ) , T ˜ r ( 1 2 h 2 ) and T ¯ r ( 1 2 h 2 ) .

The special cases (12) of the Equations (11) in combination with (4) are a starting point for some computation methods for Φ ρ 2 ( x , y ) which are based on

the integration. Owen’s is one of them—note that φ ( h ) T a ( 1 2 h 2 ) = T ( h , a ) . Using r instead of a in the sequel and resolving the problem with 0 0 as before, Owen’s equation ( [14] , p. 416, 3.1) can be rewritten as

Φ ρ 2 ( x , y ) = ( 1 4 + 1 2 π arcsin ρ , if x = y = 0 , 1 2 ( Φ ( x ) + Φ ( y ) ) T ( x , r x ) T ( y , r y ) β , if x 0 or y 0 , (13)

where β = 0 if x y > 0 or x y = 0 and x + y 0 , and β = 1 2 otherwise, and

r x = { 0 if | ρ | = 1 and x 0 and x y sgn ( ρ ) = 0 0 y ρ x x 1 ρ 2 otherwise x ρ y y 1 ρ 2 } = r y . (14)

Another Owen’s important equation is ( [14] , p. 414, 2.7)

T ( h , r ) + T ( r h , 1 r ) = 1 2 ( Φ ( h ) + Φ ( r h ) ) Φ ( h ) Φ ( r h ) β , (15)

where β = 0 if r 0 and β = 1 2 if r < 0 . It implies φ ( h ) T 1 ( 1 2 h 2 ) = T ( h ,1 ) = 1 2 Φ ( h ) ( 1 Φ ( h ) ) . If ρ = 2 2 , then r = 1 . Using (12) and the right Equation (6), we get

Φ 2 / 2 2 ( h , 0 ) = Φ ( h ) ( 1 1 2 Φ ( h ) ) and Φ 2 / 2 2 ( h , 0 ) = 1 2 ( Φ ( h ) ) 2 . (16)

Let ρ ( 1,1 ) , ρ ¯ = sgn ( ρ ) 1 ρ 2 , r = ρ 1 ρ 2 , r ¯ = ρ ¯ 1 ρ ¯ 2 = 1 r and h . By adding 1 2 ( Φ ( h ) + Φ ( r h ) ) on both sides of (15) and using (7) and (12), it follows

Φ ρ 2 ( h ,0 ) + Φ ρ ¯ 2 ( r h ,0 ) = Φ ( h ) + Φ ( r h ) Φ ( h ) Φ ( r h ) β , (17)

where β = 0 if r 0 and β = 1 2 if r < 0 .

If | ρ | > 2 2 , then | r | > 1 , | r ¯ | < 1 and | ρ ¯ | < 2 2 . Φ ρ 2 ( h ,0 ) can be computed by computing Φ ρ ¯ 2 ( r h ,0 ) and using (17). Consequently, the right Equation (6) and the transformation of the parameters r h h ¯ and 1 r r ¯ , if needed, reduce the condition ρ ( 1,1 ) to ρ [ 0, 2 2 ] with a corresponding r [ 0,1 ] . The problem how to compute Φ ρ 2 ( x , y ) is reduced to the computation of Φ ρ 2 ( h ,0 ) for h 0 and ρ [ 0, 2 2 ] .

The theorems in the sequel do not depend on the restriction to ρ 2 1 2 with a corresponding | r | 1 found in [7] . However, if | r | > 1 , the transformation of r h h ¯ and 1 r r ¯ speeds up convergence significantly. This is, for example,

also the case for the Vasicek’s series and the tetrachoric series (9), which transforms into

Φ ρ 2 ( h ,0 ) = Φ ( h ) + 1 2 Φ ( r h ) Φ ( h ) Φ ( r h ) φ ( r h ) 2 π k = 0 H e 2 k ( r h ) ( 1 ) k ρ ¯ 2 k + 1 2 k k ! ( 2 k + 1 ) β , (18)

where ρ ¯ = sgn ( ρ ) 1 ρ 2 , β = 0 if r 0 and β = 1 2 if r < 0 . Since the

results calculated with the Vasicek’s series in Section 6 only supplement benchmark values calculated with the tetrachoric series, details about it are not given here.

3. Auxiliary Results

This paper pays attention to the estimation of the method error due to truncation of infinite series, while the analysis of rounding errors is out of its scope. The following lemma is intended for this. In it and all the theorems below, the phrase “truncated after the nth term” also means omitting the entire series. In these cases, set n = 1 and assume the empty sum is 0.

Lemma 1. If the Euler’s series

arctan r = r 1 + r 2 k = 0 ( 2 k ) ! ! ( 2 k + 1 ) ! ! ( r 2 1 + r 2 ) k ( r ) (19)

is truncated after the nth term, then the remainder

R n = r 1 + r 2 k = n + 1 ( 2 k ) ! ! ( 2 k + 1 ) ! ! ( r 2 1 + r 2 ) k ( n 1 )

has the same sign as r and is bounded in absolute value by

B n | R n | ( 1 + r 2 ) B n , where B n = ( 2 n + 2 ) ! ! ( 2 n + 3 ) ! ! | r | 1 + r 2 ( r 2 1 + r 2 ) n + 1 . (20)

Proof. Let α ( 0,1 ] . Noting that k n + 1 0 and 0 1 ( 1 x 2 ) k d x = 0 π 2 cos 2 k + 1 t d t = ( 2 k ) ! ! ( 2 k + 1 ) ! ! for k 0 ( [22] , p. 397, 3.621, 4.), and using Tonelli’s theorem, it follows

S ( r , α ) = k = n + 1 ( 2 k ) ! ! ( 2 k + 1 ) ! ! ( α r 2 1 + r 2 ) k = k = n + 1 ( α r 2 1 + r 2 ) k 0 1 ( 1 x 2 ) k d x = 0 1 k = n + 1 ( α r 2 ( 1 x 2 ) 1 + r 2 ) k d x = ( 1 + r 2 ) ( α r 2 1 + r 2 ) n + 1 0 1 ( 1 x 2 ) n + 1 d x 1 + ( 1 α ) r 2 + α r 2 x 2 . (21)

The denominator in the last integrand is an increasing function of x. Inserting 1 and 0 instead of x implies

( 2 n + 2 ) ! ! ( 2 n + 3 ) ! ! α | r | 1 + r 2 ( α r 2 1 + r 2 ) n + 1 | α r 2 1 + r 2 S ( r , α ) | ( 2 n + 2 ) ! ! ( 2 n + 3 ) ! ! α | r | 1 + ( 1 α ) r 2 ( α r 2 1 + r 2 ) n + 1 (22)

and, together with B n = r 1 + r 2 S ( r ,1 ) , (20). □

If r 0 , arctan r = sgn ( r ) π 2 arctan 1 r , (19) with 1 r instead of r, and r = sgn ( r ) | r | imply

arctan r = sgn ( r ) ( π 2 | r | 1 + r 2 k = 0 ( 2 k ) ! ! ( 2 k + 1 ) ! ! 1 ( 1 + r 2 ) k )

and (20) with B n = ( 2 n + 2 ) ! ! ( 2 n + 3 ) ! ! | r | ( 1 + r 2 ) n + 2 . This series for | r | > 1 converges faster than (19), so we can already sense some kind of similarity with (15).

In the sequel, the lower and upper regularized gamma functions

P ( a , x ) = γ ( a , x ) Γ ( a ) and Q ( a , x ) = Γ ( a , x ) Γ ( a ) respectively, where

γ ( a , x ) = 0 x t a 1 e t d t and Γ ( a , x ) = x t a 1 e t d t are the lower and upper incomplete gamma functions respectively, both defined for a > 0 and x 0 , will be very important, as well as their lower and upper bounds.

In the Alzer’s inequality

( 1 e s k + 1 x ) a P ( a , x ) ( 1 e x ) a ( a 1, x 0 ) , (23)

where s k + 1 = ( ( k + 1 ) ! ) 1 k + 1 ( [23] , p. 772, Theorem 1), ( [24] , p. 221, (5.4)), allowing a = 1 resulted in strict inequalities becoming non-strict. It implies

1 ( 1 e x ) a Q ( a , x ) 1 ( 1 e s k + 1 x ) a . (24)

For n 0 and x 0 , we have I n ( x ) = e x P ( n + 1, x ) ( [22] , p. 908, 8.352, 1.), where I n ( x ) = e x k = 0 n x k k ! is the remainder of the Taylor series of the exponential function. The Lagrangian form of the remainder I n ( x ) = x n + 1 e ξ n ( x ) ( n + 1 ) ! , where 0 < ξ n ( x ) < x , implies I n ( x ) x n + 1 ( n + 1 ) ! for x 0 . Since I n ( x ) < n + 2 n + 2 x x n + 1 ( n + 1 ) ! for x ( 0, n + 2 ) ( [25] , pp. 323-324, 3.8.25), it follows

x k + 1 e x ( k + 1 ) ! P ( k + 1, x ) 2 x k + 1 e x ( k + 1 ) ! ( k 0 ,0 x k + 2 2 ) , (25)

where the equality holds only for x = 0 .

Theorem 2. Let f ^ ( x ) = k = 0 c ^ k x 2 k and f ˜ ( x ) = k = 0 c ˜ k x 2 k + 1 be absolutely convergent series for x . Then

F ^ ( x ) = 0 x φ ( β t ) f ^ ( t ) d t = 1 2 k = 0 ( 2 k 1 ) ! ! c ^ k | β | 2 k + 1 P ( k + 1 2 , 1 2 β 2 x 2 ) (26)

and

F ˜ ( x ) = 0 x φ ( β t ) f ˜ ( t ) d t = 1 2 π k = 0 ( 2 k ) ! ! c ˜ k β 2 k + 2 P ( k + 1, 1 2 β 2 x 2 ) (27)

for x 0 and β 0 .

Proof. Let f k ( t ) = c ^ k φ ( β t ) t 2 k and F k ( x ) = 0 x f k ( t ) d t for x 0 . Using ( 2 k 1 ) ! ! = 2 k π Γ ( k + 1 2 ) and a substitution 1 2 β 2 t 2 = u , we get

F k ( x ) = c ^ k 2 π 0 x e 1 2 β 2 t 2 t 2 k d t = 2 k 1 c ^ k π | β | 2 k + 1 0 1 2 β 2 x 2 u k 1 2 e u d u = ( 2 k 1 ) ! ! c ^ k 2 | β | 2 k + 1 γ ( k + 1 2 , 1 2 β 2 x 2 ) Γ ( k + 1 2 ) = ( 2 k 1 ) ! ! c ^ k 2 | β | 2 k + 1 P ( k + 1 2 , 1 2 β 2 x 2 ) .

Setting j = β 2 x 2 + 1 implies 0 u < j + 2 2 for u [ 0, 1 2 β 2 x 2 ] . Then

k = 0 | F k ( x ) | = k = 0 j | F k ( x ) | + k = j + 1 | F k ( x ) | , where the first sum is finite. Using the fact that P ( a , x ) is a decreasing function of a ( [26] , p. 154), (25) and the absolute convergence assumption of f ^ ( x ) , it follows

P ( k + 1 2 , 1 2 β 2 x 2 ) P ( k , 1 2 β 2 x 2 ) 2 β 2 k x 2 k e 1 2 β 2 x 2 2 k k ! ( k j + 1 )

and

k = j + 1 | F k ( x ) | = k = j + 1 ( 2 k 1 ) ! ! | c ^ k | 2 | β | 2 k + 1 P ( k + 1 2 , 1 2 β 2 x 2 ) e 1 2 β 2 x 2 | β | k = j + 1 ( 2 k 1 ) ! ! ( 2 k ) ! ! | c ^ k | x 2 k < .

Noting that 0 x | f k ( t ) | d t = | F k ( x ) | , we proved that k = 0 0 x | f k ( t ) | d t < . By Fubini’s theorem it follows that 0 x φ ( β t ) f ^ ( t ) d t = k = 0 F k ( x ) , hence (26).

Let f k ( t ) = c ˜ k φ ( β t ) t 2 k + 1 and F k ( x ) = 0 x f k ( t ) d t for x 0 . Analogously to above, and using ( 2 k ) ! ! = 2 k k ! = 2 k Γ ( k + 1 ) , we get F k ( x ) = ( 2 k ) ! ! c ˜ k 2 π β 2 k + 2 P ( k + 1, 1 2 β 2 x 2 ) ,

k = j + 1 | F k ( x ) | | x | e 1 2 β 2 x 2 2 π k = j + 1 | c ˜ k | | x | 2 k + 1 k + 1 <

and (27). □

Note that in the same way as the Equations (26) and (27) were derived, analogous equations can be derived if the integration limits 0 and x are replaced by x and respectively, and lower regularized gamma function is replaced by the upper one. However, for each case it should be checked whether the order of integration and summation can be reversed.

The usefulness of Theorem 2 is that if the sequences { c ^ k } and { c ˜ k } can be computed recursively, then the terms of the series (26) and (27) can be too. Let

q = 1 2 β 2 x 2 . Crucial is the calculation of d ^ k = Q ( k + 1 2 , q ) and d ˜ k = P ( k + 1, q ) ,

k 0 , the rest is trivial. Since P ( k + 1, q ) = 1 Q ( k + 1, q ) , we will calculate d k = Q ( k + 1, q ) instead of d ˜ k = 1 d k .

Using P ( 1 2 , q ) = 2 Φ ( 2 q ) 1 ( [1] , p. 934, 26.2.30), we get d ^ 0 = 1 P ( 1 2 , q ) = 2 ( 1 Φ ( 2 q ) ) , and d 0 = e q . Since P ( a + 1, x ) = P ( a , x ) x a e x Γ ( a + 1 ) ( [1] , p. 262, 6.5.21) implies Q ( a + 1, x ) = Q ( a , x ) + x a e x Γ ( a + 1 ) , using auxiliary variables b ^ k = q k 1 2 e q Γ ( k + 1 2 ) and b k = q k e q Γ ( k + 1 ) , it follows

b ^ 0 = e q q π , d ^ 0 = 2 ( 1 Φ ( 2 q ) ) and b ^ k + 1 = q b ^ k k + 1 2 , d ^ k + 1 = d ^ k + b ^ k + 1

for q 0 and k = 0,1,2,... , and

b 0 = e q , d 0 = b 0 and b k + 1 = q b k k + 1 , d k + 1 = d k + b k + 1 (28)

for k = 0,1,2,...

4. Main Results

The core of this article are Theorems 3, 4 and 5. Since the first two do not specify variants for the transformed parameters, the last one, together with (13) and (14), is more practically useful. It also justifies the title of the article.

Theorem 3. Let h , ρ ( 1,1 ) , r = ρ 1 ρ 2 and q = 1 2 ( 1 + r 2 ) h 2 = h 2 2 ( 1 ρ 2 ) . Then

Φ ρ 2 ( h ,0 ) = 1 2 Φ ( h ) + arctan r 2 π r 2 π ( 1 + r 2 ) k = 0 c k ( r 2 1 + r 2 ) k = 1 2 Φ ( h ) + arcsin ρ 2 π 1 ρ 2 2 π k = 0 c k ρ 2 k + 1 , (29)

where c k = ( 2 k ) ! ! ( 2 k + 1 ) ! ! P ( k + 1, q ) . The series S = k = 0 c k ( r 2 1 + r 2 ) k converges for every r , h . If it is truncated after the nth term, then

Φ ρ 2 ( h ,0 ) = 1 2 Φ ( h ) + arctan r 2 π r S n 2 π ( 1 + r 2 ) sgn ( r ) R n ( n 1 ) , (30)

where S n = k = 0 n c k ( r 2 1 + r 2 ) k and R n = | r | 2 π ( 1 + r 2 ) k = n + 1 c k ( r 2 1 + r 2 ) k is bounded by

0 R n B n 1 + e q r 2 B n , (31)

where B n = ( 2 n + 2 ) ! ! ( 2 n + 3 ) ! ! | r | 2 π ( 1 e q ) n + 2 ( r 2 1 + r 2 ) n + 1 .

Proof. From (7) and Φ ( x ) 1 2 = φ ( x ) k = 0 x 2 k + 1 ( 2 k + 1 ) ! ! for x ( [1] , p. 932, 26.2.11), it follows

T ( h , r ) h = h 2 π 0 r e 1 2 h 2 ( 1 + x 2 ) d x = φ ( h ) ( Φ ( r h ) 1 2 ) = φ ( β h ) k = 0 c ˜ k h 2 k + 1 , (32)

r , h , where β = 1 + r 2 and c ˜ k = r 2 k + 1 2 π ( 2 k + 1 ) ! ! . Since

k = 0 c ˜ k h 2 k + 1 = φ ( h ) φ ( β h ) ( Φ ( r h ) 1 2 ) = e 1 2 r 2 h 2 ( Φ ( r h ) 1 2 ) ,

the series on the left side converges for every r , h and is an odd function of r h . If r h < 0 , then all its terms are positive, implying that it converges absolutely.

All requirements of Theorem 2 are fulfilled. Assuming r 0 and using T ( 0, r ) = arctan r 2 π , (32) and (27), it follows

T ( h , r ) = arctan r 2 π 1 2 π k = 0 ( 2 k ) ! ! ( 2 k + 1 ) ! ! r 2 k + 1 β 2 k + 2 P ( k + 1, 1 2 β 2 h 2 ) ,

which, together with (12), (7), r 2 β 2 = r 2 1 + r 2 = ρ 2 , r 1 + r 2 = ρ 1 ρ 2 and 1 2 β 2 h 2 = q , imply (29) for r 0 . Since (7) implies T ( h , r ) = T ( h , r ) , (29) is also valid for r < 0 . Let α = 1 e q . Using (23), (21) and (22), it follows

0 R n α | r | 2 π ( 1 + r 2 ) k = n + 1 ( 2 k ) ! ! ( 2 k + 1 ) ! ! ( α r 2 1 + r 2 ) k = α | r | 2 π ( 1 + r 2 ) S ( r , α )

and (31). □

Note that if r h 0 , then c k > 0 and c k + 1 c k = 2 k + 2 2 k + 3 P ( k + 2 , q ) P ( k + 1 , q ) < 1 . Hence the sequence { c k ( r 2 1 + r 2 ) k } is decreasing.

Corollary 1. For every h we have

Φ ( h ) = 1 2 + sgn ( h ) S , where S = 1 2 π k = 0 ( 2 k ) ! ! ( 2 k + 1 ) ! ! P ( k + 1, h 2 ) 2 k . (33)

Proof. Using (29) with ρ = 2 2 , hence r = 1 , q = h 2 and the right Equation (16), it follows

1 2 Φ ( h ) 1 8 + 1 4 π k = 0 ( 2 k ) ! ! ( 2 k + 1 ) ! ! P ( k + 1, h 2 ) 2 k = 1 2 ( Φ ( h ) ) 2

and a quadratic equation ( Φ ( h ) ) 2 Φ ( h ) + 1 4 S = 0 . If h = 0 , then S = 0 and (33) is valid. If h 0 , since Φ ( h ) > 1 2 if h > 0 and Φ ( h ) < 1 2 if h < 0 , only 1 2 + sgn ( h ) S is a proper root of the two. Note that sending h implies k = 0 k ! ( 2 k + 1 ) ! ! = π 2 . □

Theorem 4. Let h , ρ ( 1,1 ) , r = ρ 1 ρ 2 and q = 1 2 ( 1 + r 2 ) h 2 = h 2 2 ( 1 ρ 2 ) . Then

Φ ρ 2 ( h ,0 ) = 1 2 Φ ( h ) + r 2 π ( 1 + r 2 ) k = 0 c k ( r 2 1 + r 2 ) k = 1 2 Φ ( h ) + 1 ρ 2 2 π k = 0 c k ρ 2 k + 1 , (34)

where c k = ( 2 k ) ! ! ( 2 k + 1 ) ! ! Q ( k + 1, q ) . The series S = k = 0 c k ( r 2 1 + r 2 ) k converges for every r , h . If it is truncated after the nth term, then

Φ ρ 2 ( h ,0 ) = 1 2 Φ ( h ) + r S n 2 π ( 1 + r 2 ) + sgn ( r ) R n ( n 1 ) , (35)

where S n = k = 0 n c k ( r 2 1 + r 2 ) k and R n = | r | 2 π ( 1 + r 2 ) k = n + 1 c k ( r 2 1 + r 2 ) k is bounded by

0 R n B n , where B n = ( 2 n + 2 ) ! ! ( 2 n + 3 ) ! ! | r | 2 π ( r 2 1 + r 2 ) n + 1 . (36)

Proof. Using (29), (19), P ( k + 1, x ) = 1 Q ( k + 1, x ) , r 2 1 + r 2 = ρ 2 and

r 1 + r 2 = ρ 1 ρ 2 , it follows (34). Noting that R n = | r | 2 π ( 1 + r 2 ) S ( r ,1 ) and (22) imply (36). □

Note that the upper bound (24) is not suitable for a simple estimation of R n here because lim k s k + 1 = 0 , hence Q ( k + 1, q ) 1 was implicitly used instead.

Q ( a , x ) is an increasing function of a. The ratio c k + 1 c k = 2 k + 2 2 k + 3 Q ( k + 2, q ) Q ( k + 1, q ) can be greater than 1, e.g. if h = 3 and r = 1 , we get c 2 c 1 = 4 Q ( 3 , 9 ) 5 Q ( 2 , 9 ) 4.04 . In Theorem 4, the sequence { c k ( r 2 1 + r 2 ) k } is not always decreasing, but, in any case, the well-behaved arctan | r | series (19) divided by 2π is a majorant series for | r | S 2 π ( 1 + r 2 ) from Theorems 3 and 4.

Corollary 2. Let x , y , x 2 + y 2 > 0 , ρ ( 1,1 ) , ρ x = ( ρ x y ) sgn ( x ) x 2 2 ρ x y + y 2 , ρ y = ( ρ y x ) sgn ( y ) x 2 2 ρ x y + y 2 and q = x 2 2 ρ x y + y 2 2 ( 1 ρ 2 ) . Let c k = ( 2 k ) ! ! ( 2 k + 1 ) ! ! P ( k + 1, q ) and c ˜ k = ( 2 k ) ! ! ( 2 k + 1 ) ! ! Q ( k + 1, q ) for k 0 . Then

Φ ρ 2 ( x , y ) = 1 2 ( Φ ( x ) + Φ ( y ) ) + arcsin ρ x + arcsin ρ y 2 π S β = 1 2 ( Φ ( x ) + Φ ( y ) ) + S ˜ β , (37)

where

S = 1 2 π 2 q k = 0 c k ( | x | ρ x 2 k + 1 + | y | ρ y 2 k + 1 ) ,

S ˜ is S with c ˜ k instead of c k , and β = 0 if x y > 0 or x y = 0 and x + y 0 , and β = 1 2 otherwise.

Proof. Since q x = x 2 2 ( 1 ρ x 2 ) = x 2 2 ρ x y + y 2 2 ( 1 ρ 2 ) = q and q y = y 2 2 ( 1 ρ y 2 ) = x 2 2 ρ x y + y 2 2 ( 1 ρ 2 ) = q , 1 ρ x 2 = | x | 1 ρ 2 x 2 2 ρ x y + y 2 = | x | 2 q and

1 ρ y 2 = | y | 2 q , (4), (5), (29) and (34) imply (37). □

Note that r 1 + r 2 = r ¯ 1 + r ¯ 2 and q = 1 2 ( 1 + r 2 ) h 2 = 1 2 ( 1 + r ¯ 2 ) h ¯ 2 = q ¯ , therefore they are invariant on the transformation of r h h ¯ and 1 r r ¯ , but S n , R n and B n from Theorems 3 and 4 are not because ρ 2 = r 2 1 + r 2 1 1 + r 2 = r ¯ 2 1 + r ¯ 2 = ρ ¯ 2 and ρ 2 ρ ¯ 2 if | r | 1 . They transform to S ¯ n , R ¯ n and B ¯ n . By transforming the parameters and using (17), the Equations (30) and (35) can be rewritten to

Φ ρ 2 ( h , 0 ) = 1 2 Φ ( r h ) + Φ ( h ) ( 1 Φ ( r h ) ) arctan r ¯ 2 π + r S ¯ n 2 π ( 1 + r 2 ) + sgn ( r ) R ¯ n β (38)

and

Φ ρ 2 ( h , 0 ) = 1 2 Φ ( r h ) + Φ ( h ) ( 1 Φ ( r h ) ) r S ¯ n 2 π ( 1 + r 2 ) sgn ( r ) R ¯ n β (39)

respectively, where β = 0 if r 0 and β = 1 2 if r < 0 .

The transformation makes sense if | r | > 1 , implying ρ ¯ 2 < 1 2 and faster con

vergence. For example, the inequality 0 R n B n from Theorem 4 transforms into 0 R ¯ n B ¯ n , where the upper bound B ¯ n is r 2 n + 4 -times smaller than a corresponding upper bound B n . The noteworthy cost for faster convergence is the additional computation of Φ ( r h ) .

Theorem 5. If | r | < , the Owen’s T function (7) can be written as

T ( h , r ) = arctan r 2 π r 2 π ( 1 + r 2 ) k = 0 ( 2 k ) ! ! ( 2 k + 1 ) ! ! P ( k + 1, q ) ( r 2 1 + r 2 ) k (40a)

= r 2 π ( 1 + r 2 ) k = 0 ( 2 k ) ! ! ( 2 k + 1 ) ! ! Q ( k + 1, q ) ( r 2 1 + r 2 ) k (40b)

= U ( h , r ) arctan r 2 π + r 2 π ( 1 + r 2 ) k = 0 ( 2 k ) ! ! ( 2 k + 1 ) ! ! P ( k + 1, q ) ( 1 1 + r 2 ) k (40c)

= U ( h , r ) r 2 π ( 1 + r 2 ) k = 0 ( 2 k ) ! ! ( 2 k + 1 ) ! ! Q ( k + 1, q ) ( 1 1 + r 2 ) k , (40d)

where q = 1 2 ( 1 + r 2 ) h 2 , U ( h , r ) = 1 2 ( Φ ( h ) + Φ ( r h ) ) Φ ( h ) Φ ( r h ) β , and β = 0 if r 0 and β = 1 2 if r < 0 .

Proof. Using (12) and (7), the Equations (29) and (34) imply (40a) and (40b) respectively, which, together with (17), imply (40c) and (40d) respectively. □

Note that when truncating the series (40a) and (40b), the truncation error in absolute value can be estimated by (31) and (36) respectively. The same upper

bounds with r ¯ = 1 r instead of r also apply to (40c) and (40d).

Because of (40b) and 0 Q ( k + 1, q ) 1 , the Owen’s T function can be seen as a modified Euler’s arctangent series (19) divided by 2π, which is its majorant series.

5. Recursion and Asymptotic Speed of Convergence

Let S ˜ = r S 2 π ( 1 + r 2 ) and e ˜ k = B k , where S and B k relate to Theorem 4. Using (34) and (28), the series S ˜ can be calculated by Recursion 1 (tildes are omitted). Analogously, let S ^ = r S 2 π ( 1 + r 2 ) and e ^ k = B k , where S and B k relate to Theorem

3. The series S ^ can be calculated by Recursion 2 (hats are omitted). In practice, both recursions can be easily combined, since only four steps, marked with , are different.

In both cases, given ε > 0 , the recursion is terminated when the condition e k + 1 < ε is met and S k + 1 is taken as its result. However, if ε > 0 is too small, or even intentionally negative, the calculation proceeds up to the actual accuracy threshold—the recursion is terminated when the condition S k + 1 S k is met. This criterion was used in the calculations presented in the next section.

In both recursions, all variables are positive and are bounded upward. If q 0 , the sequence { d k } strictly increases and, due to (24), converges to 1. The sequence { S k } is strictly increasing if r 0 . If r = 0 , the recursion terminates

with S 1 = 0 . Note that (7) implies | T ( r , h ) | arctan | r | 2 π . If step 7 in Recursion 2 is replaced by S 0 a 0 ( 1 d 0 ) arctan | r | 2 π , the sequence { S k } changes its sign but keeps the direction. However, the modified Recursion 2 computes S ^ = r S 2 π ( 1 + r 2 ) arctan r 2 π .

Let S ˜ n and S ^ n be the results of Recursion 1 and modified Recursion 2 respectively, calculated with the same h and r if | r | 1 , or with h ¯ and r ¯ if | r | > 1 . Let Φ ˜ ρ 2 ( h ,0 ) be calculated by (35) or (39), where unknown remainders are ignored. Analogously, let Φ ^ ρ 2 ( h ,0 ) be calculated by (30) or (38), where also

arctan r 2 π is ignored. If | r | 1 , then Φ ˜ ρ 2 ( h ,0 ) Φ ρ 2 ( h ,0 ) Φ ^ ρ 2 ( h ,0 ) if r 0

and Φ ˜ ρ 2 ( h ,0 ) Φ ρ 2 ( h ,0 ) Φ ^ ρ 2 ( h ,0 ) if r < 0 . Even if | r | > 1 , one of Φ ˜ ρ 2 ( h ,0 ) and Φ ^ ρ 2 ( h ,0 ) underestimates and the other overestimates Φ ρ 2 ( h ,0 ) . Consequently, the upper bounds (31) and (36) are not needed if S ˜ and modified S ^ are calculated in the same recursion which terminates when | S ^ k + 1 S ˜ k + 1 | become small enough. Upper bounds are also not needed if in Recursions 1 and 2 step 17 is replaced so that S k + 1 S k is the only termination condition. In this case, steps 3, 8 and 15 are unnecessary.

Given q, which one of the series (29) and (34) converges faster? Since P ( k + 1, x ) is a cdf of the gamma distribution with the median

ν ( k + 2 3 , k + 1 ) , it follows P ( k + 1, q ) Q ( k + 1, q ) if q ν < k + 1 . The an

swer depends on the number of considered terms, which depends on the prescribed accuracy. On this basis, it seems that series (29) is more suitable than (34) for “small” q and vice versa for “large” q. Table 1 and Table 4 in the next section show how this is reflected in practice.

Gautschi’s inequality x 1 s < Γ ( x + 1 ) Γ ( x + s ) < ( x + 1 ) 1 s ( [27] , p. 138, 5.6.4) with s = 1 2 implies k π 2 k + 1 < ( 2 k ) ! ! ( 2 k + 1 ) ! ! < ( k + 1 ) π 2 k + 1 . Combining it with (25), sending k and neglecting non-essential constants imply that the series (29) asymptotically converges as k q k + 1 e q ( k + 1 ) ! ρ 2 k k + 1 . Assuming calculation with h ¯ , r ¯ and (38) instead of h, r and (30) respectively if | r | > 1 , hence ρ 2 > 1 2 , and recalling that q is invariant on the transformation of r h h ¯ and 1 r r ¯ , we get an asymptotic convergence as k q ¯ k + 1 e q ¯ ( k + 1 ) ! ρ ¯ 2 k k + 1 = k q k + 1 e q ( k + 1 ) ! ( 1 ρ 2 ) k k + 1 . The series (29) or its corresponding transformed version, unwritten and based on (40c), asymptotically converges as k q k + 1 e q ( k + 1 ) ! ( min { ρ 2 , 1 ρ 2 } ) k k + 1 = k q k + 1 e q ( k + 1 ) ! min { r 2 k , 1 } k + 1 ( 1 + r 2 ) k , where q = 1 2 ( 1 + r 2 ) h 2 = h 2 2 ( 1 ρ 2 ) . On the other hand, since (24) implies lim k Q ( k + 1, x ) = 1 , the series (34) or its corresponding transformed version, unwritten and based on (40d), asymptotically converges as k ( min { ρ 2 ,1 ρ 2 } ) k k + 1 = k min { r 2 k ,1 } k + 1 ( 1 + r 2 ) k , hence in the worst case as k 1 2 k k + 1 .

Based on both asymptotic convergences, comparing (34) to (29) would be unfair because the calculation of arctan | r | should also be taken into account for (29). Since it is implicitly embedded in Recursion 1, it is calculated on the fly at the cost of worse speed of convergence. Each of the recursions is executable with the basic four arithmetic operations, two calls of elementary functions (if the calculation of r from ρ is also considered), and arctan | r | in the modified Recursion 2. However, the computational cost of Φ ( h ) (and Φ ( r h ) if needed) should also be taken in account, but it is the same in (29) and (34).

6. Numeric Issues and Testing Results

A common cause of numerical instability, where two absolutely large values give an absolutely small result when added or subtracted, cannot occur in Recursions 1 and 2. The calculation by them is stable, but something may happen that needs

to be pointed out. The side effect of transforming r h h ¯ and 1 r r ¯ is that

| h ¯ | can become unusually large. When computing Φ ( h ) , according to Marsaglia ( [28] , p. 2), “[...] the region of interest may not be the statistician’s 0 < x < 5 , say, but rather 10 < x < 14 [...]’’. Assume the same needs when computing Φ ρ 2 ( h ,0 ) ,

and using transformed parameters if ρ 2 > 1 2 . If h = 14 and

ρ = 10 1 + 10 2 0.995 , then r 10 , r ¯ 0.1 and h ¯ 140 , implying that the

region of interest could be | h | < 140 . Even the usual | h | < 5 transformed to | h ¯ | < 50 is well beyond the established limits.

The “problem” of too large | h | is mentioned because we have to be aware of it if we are going to perform high-precision computation. In any case, the recursion must be complemented by a suitable computation of Φ ( h ) and arctan r if needed. As an example that not all are like that, the computation by the well

known series Φ ( x ) = 1 2 + 1 2 π k = 0 ( 1 ) k x 2 k + 1 2 k k ! ( 2 k + 1 ) ( [1] , p. 932, 26.2.10) and the

standard double precision arithmetic is numerically unstable even for moderately large | h | , e.g. using the programming language R [29] , for h = 10 we get a completely wrong result, approximately −1683. A similar problem can lead to a significant decrease in accuracy if T ( h , r ) is calculated with (7), as will be seen in Subsection 6.1.

In double precision arithmetic, the minimal positive non-zero number is η 2.23 × 10 308 . Assuming b 0 = e q η , it follows q max = log ( η ) 708.40 and

h max ( r ) = 2 log ( η ) 1 + r 2 . If | r | 1 , then h max ( r ) is between h max ( 1 ) 26.62 and

h max ( 0 ) 37.64 . If e q < η , then all elements of the sequence { b k } are zero. Consequently, all elements of { d k } are one and all elements of { S k } in Recursion 2 are zero.

From the integral in (7), it follows | T ( h , r ) | φ ( h ) Φ ( | r | | h | ) 1 2 | h | φ ( h ) 2 | h | if h 0 , where the upper bound is a decreasing function of | h | . If e q < η and | r | 1 , then | h | > h max ( 1 ) and | T ( h , r ) | φ ( h max ( 1 ) ) 2 h max ( 1 ) 1.12 × 10 156 . Analogously to the case when r = 0 , the recursion terminates with S 1 = 0 , which is practically a correct result for T ( h , r ) , as well as Φ ρ 2 ( h , 0 ) = 1 2 if h > 0 , and Φ ρ 2 ( h , 0 ) = 0 if h < 0 .

The Recursions 1 and 2 with adjustment of their results according to (40a)—(40d) are implemented in the package Phi2rho [30] . It contains the functions OwenT(), hereafter Phi2rho::OwenT(), and Phi2xy(), which compute T ( h , r ) and Φ ρ 2 ( x , y ) respectively. They also enable computation with the tetrachoric and Vasicek’s series, original or accelerated. The latter means that h and r are transformed if r > 1 and r < 1 for the tetrachoric and Vasicek’s series respectively, and the Equation (15) is used, so (18) instead of (9) in the case of tetrachoric series. For the sake of comparison, all series were considered during testing in Subsection 6.1. In Subsection 6.2, the original tetrachoric and Vasicek’s series were excluded because they converge too slowly for unfavorable ρ .

During testing, the values of T ( r , h ) and Φ ρ 2 ( x , y ) were computed for a selected and randomly generated set of parameters. Reference values were computed using the accelerated tetrachoric series and quadruple (128-bit) precision. Absolute differences between tested and reference values are declared as absolute errors. The maximum absolute error is considered a measure of accuracy. Since the mean values and some quantiles are also important, they are shown in the tables in Subsection 6.2. An integral part of the testing was also a comparison of the results obtained with the Phi2rho package and competing packages available on CRAN.

6.1. Numeric Issues and Results When Computing T ( h , r )

Numerical calculations of T ( h , r ) were performed on 39,999 grid points ( h , r ) ,

where h ranges from −10 to 10 in increments of 0.1, r = ρ 1 ρ 2 and ρ ranges

from −0.99 to 0.99 in increments of 0.01. Since for ρ = ± 0.99 we get r ± 7 , the actual range of h for which Φ ( h ) must be computed is approximately from −70 to 70, so well beyond the h max ( 0 ) 37.64 .

Note atanExt = no in tables means that Recursion 1 was executed, hence (40b) was used if | r | 1 and (40d) if | r | > 1 , and atanExt = yes means that Recursion 2 was executed, hence (40a) was used if | r | 1 and (40c) if | r | > 1 . Both recursions are well suited for vectors, so each of the parameters h and r can be a scalar or a vector. If they are both vectors, they must be of the same length, if one of h and r is a vector and the other is a scalar, the latter is replicated to the length of the former. Since the number of iterations is determined by the “worst’’ component, we would expect execution to be faster if function calls are done in a loop for each component of the vector separately, but usually the run time is significantly increased due to the overhead of the loop, more initialization, etc.

For the consistency test, T ( h , r ) was calculated on the test grid with h and r both scalars, one a scalar and the other a vector. For all three calculations with Recursion 1, the results matched perfectly, as well as for all three with Recursion 2. The maximum absolute difference between calculations with Recursions 1 and 2 was approximately 9.49 × 10−17.

When testing accuracy, the tetrachoric and Vasicek’s series, original and accelerated, were also tested, using T ( h , r ) = Φ ρ 2 ( h , 0 ) 1 2 Φ ( h ) . By transforming the

parameters, if appropriate, both comparison methods gained a lot, as can be concluded from Table 1. The absolute errors, the maximum values of which are

Table 1. Double precision computation of T ( h , r ) = Φ ρ 2 ( h , 0 ) 1 2 Φ ( h ) on the test grid.

collected in this table, were calculated against the reference values computed with the accelerated tetrachoric series and 128-bit precision.

Since the vector computations were performed, there are two average numbers of iterations. The first is empirical because the iterations were terminated according to the “worst’’ component of the vector, and the second is hypothetical, if the computations were performed for each component separately. Since all iterations ran to the accuracy limit and with an unbounded number of iterations, the original Vasicek’s series needed the enormous number of iterations, not only for the worse case, but also in average, when calculating with scalar h and vector

r. However, it is not intended for cases with ρ 2 < 1 2 , and its error can be well estimated, which was ignored here.

Comparative computations with competing packages were also performed on

the test grid, using T ( h , r ) = Φ ρ 2 ( h , 0 ) 1 2 Φ ( h ) . The pbinorm() function from

the VGAM package [15] , i.e. using (7), had an average and maximum absolute error of 1.12 × 10−8 and 3.62 × 10−7 respectively. Similar maximum absolute errors were obtained by the function pbvnorm() from the pbv package [31] , which is based on [6] , and pmvnorm() from the mvtnorm package, but only with the parameter algorithm = Miwa.

6.2. Numeric Issues and Results When Computing Φ ρ 2 ( x , y )

In all Φ ρ 2 ( x , y ) computational methods based on (4) and (5), or (13) and (14), exceptional cases with | ρ | = 1 , x 0 and x y sgn ( ρ ) = 0 are not problematic because (3) can be used, however, nearby cases are their weak point. Recalling

that q x = q y = x 2 2 ρ x y + y 2 2 ( 1 ρ 2 ) = q and using (10) and (2), it follows ρ Φ ρ 2 ( x , y ) = e q 2 π 1 ρ 2 and lim | ρ | 1 ρ Φ ρ 2 ( x , y ) = 0 , except if

x y sgn ( ρ ) = 0 . If | ρ | is close to 1 and x y sgn ( ρ ) 0 , then

x 2 2 ρ x y + y 2 0 and q may be small enough that ρ Φ ρ 2 ( x , y ) is moderate

or even large. As a result, even a small rounding error in the calculation of key variables that depend on ρ can cause a much larger error in the result. The calculation of r x and r y with (14) is particularly problematic. In a similar situation, Meyer ( [9] , p. 5) recommends an equivalent but less sensitive calculation

by r x = x y x 1 ρ 2 1 ρ 1 + ρ if ρ 1 and r x = x + y x 1 ρ 2 1 + ρ 1 ρ if ρ 1 , and

analogously for r y . In our case, his proposal improves accuracy, but does not solve the problem sufficiently.

The problem could be solved by a hybrid computation along the lines of some other methods, e.g. the series from ( [32] , pp. 242-245) could be used if | ρ | 1 and x y sgn ( ρ ) 0 . Using the initial idea to develop these series, i.e. axis rotation in a way that removes the cross product term 2 ρ s t in (1), by setting

s = u + v 2 and t = u v 2 the Equation (1) transforms to

Φ ρ 2 ( x , y ) = 1 2 π 1 ρ 2 x y 2 e u 2 2 ( 1 ρ ) ( u + 2 y e v 2 2 ( 1 + ρ ) d v ) d u + 1 2 π 1 ρ 2 x y 2 e u 2 2 ( 1 ρ ) ( u + 2 x e v 2 2 ( 1 + ρ ) d v ) d u

and, using u 1 ρ = u ˜ and v 1 + ρ = v ˜ , to

Φ ρ 2 ( x , y ) = x y 2 ( 1 ρ ) φ ( u ˜ ) Φ ( u ˜ 1 ρ 1 + ρ + y 2 1 + ρ ) d u ˜ + x y 2 ( 1 ρ ) φ ( u ˜ ) Φ ( u ˜ 1 ρ 1 + ρ + x 2 1 + ρ ) d u ˜ .

By transforming u ˜ u ˜ in the second integral and using ( [14] , p. 402, 10,010.1),

it follows Φ ρ 2 ( x , y ) = Φ ρ * 2 ( x y 2 ( 1 ρ ) , y ) + Φ ρ * 2 ( x y 2 ( 1 ρ ) , x ) , where ρ * = 1 ρ 2 . This equation is suitable for ρ 1 . From it and Φ ρ 2 ( x , y ) = Φ ( x ) Φ ρ 2 ( x , y ) we obtain the equation

Φ ρ 2 ( x , y ) = Φ ( x ) Φ ρ ^ 2 ( x + y 2 ( 1 + ρ ) , y ) Φ ρ ^ 2 ( x + y 2 ( 1 + ρ ) , x ) ,

where ρ ^ = 1 + ρ 2 , that is suitable for ρ 1 . Both are combined in

Φ ρ 2 ( x , y ) = 1 sgn ( ρ ) 2 Φ ( x ) + sgn ( ρ ) ( Φ ρ ˜ 2 ( z , y ˜ ) + Φ ρ ˜ 2 ( z , x ) ) , (41)

where ρ ˜ = 1 | ρ | 2 , y ˜ = y sgn ( ρ ) and z = x y ˜ 2 ( 1 | ρ | ) . Noting that

q ˜ = y ˜ 2 2 ρ ˜ y ˜ z + z 2 2 ( 1 ρ ˜ 2 ) = x 2 + 2 ρ ˜ x z + z 2 2 ( 1 ρ ˜ 2 ) = x 2 2 ρ x y + y 2 2 ( 1 ρ 2 ) = q ,

hence φ ρ ˜ 2 ( z , y ˜ ) = φ ρ ˜ 2 ( z , x ) = e q π 2 ( 1 + | ρ | ) , we stop here because one potentially critical case is replaced with two non-critical ones.

If we continued to simplify the right side of (41) by (13), we would get (13). This actually happens when calculating with the functions used in tests, but it turns out that the results are more accurate than if we start with (13) if | ρ | 1 and x y sgn ( ρ ) 0 . Of course, the Equation (41) could be used as a starting point instead of (13) in all cases, but this is not rational because it requires 4 calculations of the T function instead of 2, two of which cancel each other out, at least in theory, and as a result, in non-critical cases the error may be larger than when starting with (13). When testing, (41) was used as a starting point instead

of (13) if φ ρ 2 ( x , y ) > 1 . However, since min { | ρ | , 1 | ρ | 2 } 1 2 , using (41) may

also make sense in some other circumstances, e.g. when computing directly with (8).

In this case, testing was performed on the randomly generated set of parameters. After setting the random generator seed to 123 to allow replication and independent verification, one million x values, one million y values, and one million ρ values were drawn from a uniform distribution on the intervals ( 10,10 ) , ( 10,10 ) , and ( 1,1 ) respectively.

For each triplet ( x , y , ρ ) , auxiliary values q = x 2 2 ρ x y + y 2 2 ( 1 ρ 2 ) and

φ ρ 2 ( x , y ) = e q 2 π 1 ρ 2 were calculated. For the new series, the tested Φ ρ 2 ( x , y )

values were computed using (41) as a branch point and (13) for both branches if φ ρ 2 ( x , y ) > 1 , and using (13) directly otherwise. The same applies for the tetrachoric and Vasicek’s series, only (4) must be used instead of (13). However, the described procedure is built in the Phi2xy() function. The tested Φ ρ 2 ( x , y ) values needed for the preparation of Table 2 were computed with:

row 1: Phi2xy(x, y, ρ, fun = "tOwenT");

row 2: Phi2xy(x, y, ρ, fun = "vOwenT");

row 3: Phi2xy(x, y, ρ, fun = "mOwenT", opt = FALSE);

row 4: Phi2xy(x, y, ρ, fun = "mOwenT", opt = TRUE).

The absolute errors, which statistics are collected in Table 2, were calculated against reference values computed with the accelerated tetrachoric series as described, but with 128-bit precision. From a user’s point of view, only the parameters x, y and ρ needed to be converted into 128-bit “mpfr-numbers’’ before calling Phi2xy(x, y, ρ, fun = "tOwenT"), hence x <- mpfr(x, precBits = 128) and analogously for y and ρ. In this case, the computation took significantly more time, since all intermediate and final results were 128-bit “mpfr-numbers’’.

In this test, ρ min 0.99999991 , ρ max 0.99999775 , there are 5 cases with φ ρ 2 ( x , y ) > 1 and max φ ρ 2 ( x , y ) 1.38 .

In order to better check the accuracy if | ρ | is close to 1, the computation was repeated with the same x and y, and ρ * = 2 Φ ( 8 ρ ) 1 . In this case, more than half of | ρ * | are greater than 0.9999 and none is equal to 1. The results are in Table 3.

In this test, there are 178 cases with φ ρ 2 ( x , y ) > 1 and max φ ρ 2 ( x , y ) 376 . For both novel series in Table 3, the maximum absolute error is 1.54 × 10−14 if (41) is not used, improving to 1.21 × 10−15 if Meyer’s advice is followed. Similarly applies to the other two series.

Table 2. Φ ρ 2 ( x , y ) computation—absolute error comparison.

Table 3. Φ ρ * 2 ( x , y ) computation—absolute error comparison.

Due to the time-consuming 128-bit precision computation, the presented tests are the only performed tests based on the 128-bit precision reference values. However, additional tests were made by comparing the results of Phi2xy() with the results obtained by other functions from packages available on CRAN. For three functions, the accuracy was found to be worse than 2 × 10−7 as measured by the maximum absolute error on the test grid from Subsection 6.1. Regarding accuracy, only the function pmvnorm() with the parameter algorithm = TVPACK from the mvtnorm package proved to be equivalent to Phi2xy() and even slightly more accurate with the maximum absolute errors 2.58 × 10−16 and 2.19 × 10−16 on the test sets of triplets ( x , y , ρ ) and ( x , y , ρ * ) respectively. The same function with algorithm = GenzBretz achieved 2.58 × 10−16 and 2.20 × 10−11.

The OwenQ::OwenT() function also proved to be equivalent to Phi2xy() as measured by the maximum absolute error on the test sets of triplets, but only when upgraded to compute Φ ρ 2 ( x , y ) in the manner used in Phi2xy(). This function and Phi2rho::OwenT() are essentially wrappers for the internal functions tOwenT(), vOwenT() and mOwenT(), which as workhorses compute series.

In terms of reliability, stability and accuracy of the new methods, no problems or significant differences according to the parameters from the different data sets were detected, except those already described and related to | ρ | 1 and x y sgn ( ρ ) 0 . To eliminate them, the Equation (44) was derived, which also proved to be successful when using the OwenQ::OwenT() function, upgraded to compute Φ ρ 2 ( x , y ) . Regarding parameters from different data sets, the only detected big difference is in the number of iterations, as can be seen from Figure 1.

Two million Φ ρ 2 ( x , y ) computations on Windows 10 and 64-bit R 4.3.1 on the old Intel i7-6500U CPU @ 2.50 GHz and 8 GB RAM, using only one thread

Figure 1. T ( h , r ) computation with the new series (atanExt = yes) with double (left) and 128-bit (right) precision—number of iterations.

of four, lasted 26, 31 and 286 seconds for Phi2xy(), upgraded OwenQ::OwenT() and pmvnorm() with algorithm = TVPACK respectively. The 128-bit precision reference values computation took over 17 hours, compared to 43 seconds for the double precision one. Based on Table 1 and Table 4, we can conclude that the increased number of iterations has only an insignificant effect on the huge time extension factor.

6.3. High-Precision Computation

All functions in the Phi2rho package are ready to use the Rmpfr package, which enables using arbitrary precision numbers instead of double precision ones and provides all the high-precision functions needed. It interfaces R to the widely used C Library MPFR [33] . Assuming that the Rmpfr package is loaded, the functions should only be called with the parameters, which are “mpfr-numbers’’ of the same precision. All 128-bit precision benchmark values used in Subsections 6.1 and 6.2 were calculated using Rmpfr.

To get a sense of how the number of iterations depends on the required precision, the test from Subsection 6.1 was partially repeated using the 128-bit precision computation. The results are collected in Table 4. Note that 2 128 2.94 × 10 39 and that in this case the values in the table are not the maximum absolute errors because the comparison values are computed with the same precision.

From Table 1 and Table 4 can be concluded that there is no significant difference in accuracy between the compared series if the accelerated series are considered, but one of the new series converges significantly faster than the others. It can also be concluded that the Vasicek’s series with ρ ¯ instead of ρ is a

reasonable alternative to the tetrachoric series (8) also for ρ 2 < 1 2 and remains a reasonable alternative for ρ 2 > 1 2 if compared to the transformed tetrachoric series (9).

Table 4. 128-bit precision computation of T ( h , r ) = Φ ρ 2 ( h , 0 ) 1 2 Φ ( h ) on the test grid.

Table 5. A special case of high-precision computing—absolute error comparison.

The number of iterations for the computation with the new series with double and 128-bit precision can be compared in Figure 1. Only the first quadrant is presented because others are its mirror images.

We also provide examples with r = 1 and r = 1 for which reference values can be computed alternatively. A = Φ 2 / 2 2 ( 2.1,0 ) and B = Φ 2 / 2 2 ( 2.1,0 ) were computed by (13) and (14), and by the right side of (16) by the pnorm() function from the package Rmpfr as a benchmark. In all cases, the latter was computed by double the precision expressed in bits and used for the former. Both reference values were used to compare how quickly the compared series converge when computing with more than 128-bit precision. In Table 5 and Table 6, for each of them the absolute error and the number of iterations, which is the same for both computations, is presented. Since | r | = 1 , there is no difference between the original and accelerated tetrachoric series, and the same applies to Vasicek’s series.

Time-consuming high precision testing was less intensive than double precision one. Since there is no competing package on CRAN ready for high-precision computation of Φ ρ 2 ( x , y ) , it could not be supplemented by comparison computations with competing packages.

Table 6. A special case of high-precision computing—absolute error comparison.

7. Conclusions

If the generally applicable Theorem 2 is not considered, Theorems 3 and 4, and Corollary 2 are interesting mainly theoretically, because Theorem 5, together with (13) and (14), replaces and supplements them in practice. The series (40a)—(40d) enable fast and numerically stable computation, which is often more important than the speed of convergence. From Table 1 and Table 4 can be concluded that the computation with (40a) or (40c) needs significantly fewer iterations than the computation with the accelerated tetrachoric and Vasicek’s series, and from Table 5 and Table 6 can be assumed that the advantage increases with increasing precision. For 53-bit precision (double precision), it required a half, and for 1024-bit precision only a fifth, of the iterations demanded by the competing series. However, the cost of calculating arctan r is not taken into account. In connection with this, let us just mention two more questions.

Recalling that e x I n ( x ) = P ( n + 1, x ) , the Taylor series of the arctangent function and (7) imply

T ( h , r ) = arctan r 2 π 1 2 π k = 0 ( 1 ) k r 2 k + 1 2 k + 1 P ( k + 1, 1 2 h 2 ) = 1 2 π k = 0 ( 1 ) k r 2 k + 1 2 k + 1 Q ( k + 1, 1 2 h 2 ) ,

which Fayed and Atiya ( [32] , p. 241) have already noticed. If the above series, (29) and (34) are viewed as functions of the variable h, they have a similar structure, but the coefficients, depending on r, belong to different arctangent series. Whether the similarity could be explained by a similar Euler transform as the one which transforms the Taylor arctangent series to the Euler’s arctangent series seems interesting question, but was not deeply explored.

In Recursion 1, the external calculation of the arctangent function is avoided, assuming that the Euler’s series (19) is used for it, and the expectation that there would be no difference in the number of iterations for Recursions 1 and 2 if those for calculating the arctangent were also taken into account. However, the use of the external arctangent calculation allows the use of already known and possible future faster converging series. Such is the case with

arctan r = r 1 + r 2 k = 0 ( 2 k 1 ) ! ! ( 2 k ) ! ! ( 2 k + 1 ) ( r 2 1 + r 2 ) k ( r ) , (42)

which is based on the Taylor series of arcsin r and arctan r = arcsin r 1 + r 2 .

Indeed, the number of iterations is not significantly smaller if | r | 1 and the accuracy obtained by double precision computation is sufficient, and even the square root must be calculated, but it could be significantly smaller in high-precision computation. The Euler’s series (19) is included in [1] and [27] , but (42) is not, even though it converges faster. It can be found in ( [22] , p. 61, 1.644 1.) as

arctan r = r 1 + r 2 k = 0 ( 2 k ) ! 2 2 k ( k ! ) 2 ( 2 k + 1 ) ( r 2 1 + r 2 ) k

with a reference to the 1922 source. Due to equations ( 2 k 1 ) ! ! = ( 2 k ) ! 2 k k ! and

( 2 k ) ! ! = 2 k k ! , the coefficients are the same as those in (42). Whether we could also find a corresponding series for the Owen’s T function, which would converge faster than (40b), remains an open challenge.

Conflicts of Interest

The author declares no conflicts of interest regarding the publication of this paper.

References

[1] Abramowitz, M. and Stegun, I.A. (1972) Handbook of Mathematical Functions. 9th Edition, Dover Publications, Inc., New York.
[2] Gupta, S.S. (1963) Bibliography on the Multivariate Normal Integrals and Related Topics. The Annals of Mathematical Statistics, 34, 829-838.
https://doi.org/10.1214/aoms/1177704005
[3] Donnelly, T.G. (1973) Algorithm 462: Bivariate Normal Distribution. Communications of the ACM, 16, 638.
https://doi.org/10.1145/362375.362414
[4] Owen, D.B. (1956) Tables for Computing Bivariate Normal Probabilities. The Annals of Mathematical Statistics, 27, 1075-1090.
https://doi.org/10.1214/aoms/1177728074
[5] Divgi, D.R. (1979) Calculation of Univariate and Bivariate Normal Probability Functions. The Annals of Statistics, 7, 903-910.
https://doi.org/10.1214/aos/1176344739
[6] Drezner, Z. and Wesolowsky, G.O. (1990) On the Computation of the Bivariate Normal Integral. Journal of Statistical Computation and Simulation, 35, 101-107.
https://doi.org/10.1080/00949659008811236
[7] Patefield, M. and Tandy, D. (2000) Fast and Accurate Calculation of Owen’s T Function. Journal of Statistical Software, 5, 1-25.
https://doi.org/10.18637/jss.v005.i05
[8] Genz, A. (2004) Numerical Computation of Rectangular Bivariate and Trivariate Normal and t Probabilities. Statistics and Computing, 14, 251-260.
https://doi.org/10.1023/B:STCO.0000035304.20635.31
[9] Meyer, C. (2013) Recursive Numerical Evaluation of the Cumulative Bivariate Normal Distribution. Journal of Statistical Software, 52, 1-14.
https://doi.org/10.18637/jss.v052.i10
[10] Fayed, H.A. and Atiya, A.F. (2014) A Novel Series Expansion for the Multivariate Normal Probability Integrals Based on Fourier Series. Mathematics of Computation, 83, 2385-2402.
https://doi.org/10.1090/S0025-5718-2014-02844-5
[11] Terza, J.V. and Welland, U. (1991) A Comparison of Bivariate Normal Algorithms. Journal of Statistical Computation and Simulation, 39, 115-127.
https://doi.org/10.1080/00949659108811343
[12] Gai, J. (2001) A Computational Study of the Bivariate Normal Probability Function. Master’s Thesis, Queen’s University, Kingston.
[13] Ağca, Ş.A. and Chance, D.M. (2003) Speed and Accuracy Comparison of Bivariate Normal Distribution Approximations for Option Pricing. The Journal of Computational Finance, 6, 61-96.
https://doi.org/10.21314/JCF.2003.102
[14] Owen, D.B. (1980) A Table of Normal Integrals. Communications in Statistics—Simulation and Computation, 9, 389-419.
https://doi.org/10.1080/03610918008812164
[15] Yee, T.W. (2023) VGAM: Vector Generalized Linear and Additive Models, R Package Version 1.1-8.
https://CRAN.R-project.org/package=VGAM
[16] Laurent, S. (2023) OwenQ: Owen Q-Function, R Package Version 1.0.7.
https://CRAN.R-project.org/package=OwenQ
[17] Genz, A. and Bretz, F. (2009) Computation of Multivariate Normal and t Probabilities. Lecture Notes in Statistics, Springer-Verlag, Heidelberg.
https://doi.org/10.1007/978-3-642-01689-9
[18] Maechler, M. (2023) Rmpfr: R MPFR—Multiple Precision Floating-Point Reliable, R Package Version 0.9-3.
https://CRAN.R-project.org/package=Rmpfr
[19] Kendall, M.G. (1941) Proof of Relations Connected with the Tetrachoric Series and Its Generalization. Biometrika, 32, 196-198.
https://doi.org/10.1093/biomet/32.2.196
[20] Vasicek, O.A. (1998) A Series Expansion for the Bivariate Normal Integral. The Journal of Computational Finance, 1, 5-10.
https://doi.org/10.21314/JCF.1998.015
[21] Plackett, R.L. (1954) A Reduction Formula for Normal Multivariate Integrals. Biometrika, 41, 351-360.
https://doi.org/10.1093/biomet/41.3-4.351
[22] Gradshteyn, I.S. and Ryzhik, I.M. (2015) Table of Integrals, Series, and Products. 8th Edition, Academic Press, Amsterdam.
[23] Alzer, H. (1997) On Some Inequalities for the Incomplete Gamma Function. Mathematics of Computation, 66, 771-778.
https://doi.org/10.1090/S0025-5718-97-00814-4
[24] Gautschi, W. (1998) The Incomplete Gamma Functions since Tricomi. In: Tricomi’s Ideas and Contemporary Applied Mathematics, Atti Convegni Lincei, Vol. 147, Accademia Nazionale dei Lincei, Rome, 203-237.
[25] Mitrinović, D.S. (1970) Analytic Inequalities. Springer-Verlag, Berlin.
https://doi.org/10.1007/978-3-642-99970-3
[26] Alzer, H. (1998) Inequalities for the Chi Square Distribution Function. Journal of Mathematical Analysis and Applications, 223, 151-157.
https://doi.org/10.1006/jmaa.1998.5965
[27] Olver, F.W.J., Lozier, D.W., Boisvert, R.F. and Clark C.W. (2010) NIST Handbook of Mathematical Functions. National Institute of Standards and Technology & Cambridge University Press, Cambridge.
[28] Marsaglia, G. (2004) Evaluating the Normal Distribution. Journal of Statistical Software, 11, 1-11.
https://doi.org/10.18637/jss.v011.i04
[29] R Core Team (2023) R: A Language and Environment for Statistical Computing. R Foundation for Statistical Computing, Vienna.
https://www.R-project.org/
[30] Komelj, J. (2023) Phi2rho: Owen’s T Function and Bivariate Normal Integral, R Package Version 1.0.
https://CRAN.R-project.org/package=Phi2rho
[31] Robitzsch, A. (2020) pbv: Probabilities for Bivariate Normal Distribution, R Package Version 0.4-22.
https://CRAN.R-project.org/package=pbv
[32] Fayed, H.A. and Atiya, A.F. (2014) An Evaluation of the Integral of the Product of the Error Function and the Normal Probability Density with Application to the Bivariate Normal Integral. Mathematics of Computation, 83, 235-250.
https://doi.org/10.1090/S0025-5718-2013-02720-2
[33] Fousse, L., Hanrot, G., Lefèvre, V., Pélissier, P. and Zimmermann, P. (2007) MPFR: A Multiple-Precision Binary Floating-Point Library with Correct Rounding. ACM Transactions on Mathematical Software, 33, 13-es.
https://doi.org/10.1145/1236463.1236468

Copyright © 2024 by authors and Scientific Research Publishing Inc.

Creative Commons License

This work and the related PDF file are licensed under a Creative Commons Attribution 4.0 International License.