NBSIR 78-1478

I \ a: jl

A Universal Set of Test Data

for Computer Implementations

of Elementary Mathematical

Functions

Mathematical Analysis Division

Center for Applied Mathematics

National Engineering Laboratory

National Bureau of Standards

Washington, D.C. 20234

Final Report

May 1978

Daniel W. Lozier

U S. DEPARTMENT OF COMMERCE

NATIONAL BUREAU OF STANDARDS

NBSIR 78-1478

A UNIVERSAL SET OF TEST DATA

FOR COMPUTER IMPLEMENTATIONS

OF ELEMENTARY MATHEMATICAL

FUNCTIONS

Daniel W. Lozier

Mathematical Analysis Division

Center for Applied Mathematics

National Engineering Laboratory

National Bureau of Standards

Washington, D C. 20234

Final Report

May 1978

U.S. DEPARTMENT OF COMMERCE, Juanita M. Kreps, Secretary

Dr. Sidney Harman, Under Secretary

Jordan J. Baruch, Assistant Secretary for Science and Technology

NATIONAL BUREAU OF STANDARDS, Ernest Ambler. Director

1. Introduction

Computer implementations of algorithms for the evaluation of

mathematical functions have been an essential feature of computer

systems since the very first days of the stored-program computer.

This does not mean, however, that these implementations have always

been done correctly. Because of the fundamental Importance of

accurate function evaluation, the programmer needs to have the

utmost confidence in the quality of computed function values

.

Comparing computed function values with published tables in an

effort to gain this confidence is often unsatisfactory because

either the precision or argument range of the tabulated function

is inadequate. Published tables were often intended as an aid

to hand computation. The density of data in such tables is

highest In regions of presumed highest usage, whereas most possible

inputs to a computer subroutine lie outside these regions. Thus

there is a need for test data that is specifically created for

the purpose of testing computer subroutines.

.The ideal approach would be to create a different set of test

j data for each particular computer implementation of a function.

Then every feature of the algorithm, the computer arithmetic, or

1 the. actual coded implementation could be tested. But this ideal

would require a means of generating function values correct to the

precision of the subroutine being tested. The tester may lack
2

such a capability or the will to use it. The approach taken here

is much more modest. The objective is to provide a small amount

of data chosen to sample the function over a large range of arguments and in regions where special difficulties might be expected.

The serious limitations of such an approach will become apparent

later in this note.

The data presented here was developed about four years ago in

response to needs at the NBS . No general method of data selection was used, and other data could undoubtedly be found that

would serve the purpose as well or better. More recently, a project has been started to develop a general theory of test data

selection for mathematical functions that we hope will lead to a sound and unified basis for mathematical function testing in the

future

2. Interpreting Test Results

The reader will note that the test data is presented in

decimal form with five digit test arguments. Although many

pocket calculators use decimal arithmetic, most computers use

binary (or hexadecimal) . The data may be used to test decimal or non- decimal implementations of functions, but the

interpretation of the results is slightly different in these

two cases. Let us first consider the decimal case. We may as

well assume the computing device is a calculator. In this case
3

there is no conversion between incommensurate internal and external number bases. The test arguments are exactly representable, provided at least five digits can be accommodated by the

calculator, so any error in the function value is entirely attributable to the implementation.

This section is mainly concerned with real functions of one

real variable, although test data is given in this report for

other functions. The other functions have simple definitions in

terms of the real functions for which test data is presented.

It is assumed that computer implementations will make use of this

fact. Therefore, data for the other functions is intended only

to test these definitions.

The calculator very likely uses one or more guard figures.

These are extra decimal places that are used for calculations

but are not ordinarily displayed. Their purpose is to make all

of the displayed figures correct for most calculations.

Let us consider the effect of guard digits on the trigonometric functions. These functions make the heaviest demand for

guard figures, of the functions considered in this note. Let

t(x) be one of the trigonometric functions, and let p be the

period of t(x). We first consider x restricted to the interval

0 < x < p .

Then, depending on the particular trigonometric function, t(x)

has 0, 1, or 2 zeros and 0, 1, or 2 poles in this interval.
4

(Note that we are excluding the left end point.) In a neighborhood of a zero Xq or a pole x^, t(x) is asymptotic to +(x - Xq)

or +(x - x^) . Let x* denote either a zero or a pole. In

order to compute t(x) in a neighborhood of x*, the difference

x - x* must be formed. Suppose the normally displayed precision

of the calculator is d digits, and suppose x is exactly representable. As x approaches x*, there is an increase in the

number of leading digits that are the same. Therefore, there is

a progressive loss of precision through cancellation that occurs

in forming x - x'

1', as x gets closer to x*. Guard digits

mitigate this loss; let us see how.

Suppose g guard digits are used, and that the period p is

known to d + g digits. Then x* is known essentially to d + g

digits also, because the zeros and poles of the trigonometric function are rational fractions of p. Since, for x in radians, x,v is

irrational, its (d + l)st digit is unlikely to be zero. Thus

not more than d digits are likely to match between x and x*

.

Put another way, at least g digits will usually survive in the

difference x - x* . This suggests that nothing much is to be

gained by taking more than d guard digits

.

We remark that g

= d permits the calculation of t(x) to

full relative precision even in the neighborhoods of zeros and

poles. This advantage is illusory if x is not stored exactly,

as will be the usual case when x is generated by prior calculation. In this case the digits of x would not be known beyond
5

the d-th, and there would be no basis for forming x - x* beyond

the d-th digit. It is common, therefore, to advocate the use of

J* no guard digits in neighborhoods of zeros of functions. This

corresponds to using the absolute error criterion rather than the

relative error criterion in the calculation of t(x).

Because only one irrational number is needed to specify all

zeros and poles of the trigonometric functions, and because the

other elementary functions commonly found in computer libraries

require not more than d guard digits, an unofficial standard is

adhered to by many of today's digital computers: fmotion values

are computed to full relative accuracy through the use of up to

d guard digits, as necessary. In calculators, however, we typically find g < d. Thus in calculators, if x* is approached too

closely, then t(xv) will have reduced relative precision. The

better calculators display only the digits that are likely to be

correct

.

So far we have considered t(x) only for x in a single

period interval. Now suppose x satisfies

np < x <_ np + p

for some integer n. Then the usual way of proceeding Is to determine the number pf such that 0 < f £ 1 and

x = pn + pf .

At least one guard digit is essential to obtain desirable

rounding error behavior in floating-point arithmetic. See

Olver [4] or Sterbenz [5] for a full account.
6

Then the relation

t(x) = t(pf)

may be employed. Determination of pf is done, in effect, by

dividing x by p, taking the integer part of the result, subtracting this from x/p and finally multiplying by p. The subtraction step causes a loss of precision in f, which will be

propagated to pf. Clearly, a measure of the number of digits

lost is the number of digits in the integer part of x/p, which

is given by

int {log 1Q | |

| }

.

Here, int{ •

}

is the integer part of the quantity in braces. If

g guard digits are used, then the number of significant digits

s in pf is estimated by

s = d + g

- int {l°g

10 I |

I }

•

If g = d, then s > d as long as x satisfies x £

10^p. Recalling our earlier remarks, we see that if d guard digits are

used, then full relative precision can be maintained uniformly,

not only for x in the fundamental period interval, but for very

large values of x as well. A new feature of the present analysis

is that a fixed number of guard digits does not suffice for all x;

computer implementations of t(x) must have an error path for

inputs that are too large. We remark, as we did before, that g

= d

can in no way be considered an irrefutable requirement. The advantage, as before, is only of value for exactly representable arguments .
7

Before turning to a consideration of non-decimal implementations, let us briefly consider how to interpret the results of

tests based on comparing the computed function values against the

data. It is clear that successful comparison to the full displayed precision of the calculator does not guarantee the function

is accurate at other arguments. An attempt has been made, however, to

select the data so that this would be a good indication that the

accuracy of the function is nearly constant throughout the tested

range. Obviously, the loophole here is that the data cannot test

the algorithmic details of the computer implementation. There

may be an interval of arguments, perhaps very short but with reasonable probability of use under normal circumstances, for which

an approximation to the function is incorrectly coded or improperly chosen. It is highly unlikely that such an interval would

be tested by any universal set of test data.

On the other hand, if some

- of the computed function values do

not compare well against the data, it does not necessarily mean the

function is unacceptable. The preceding discussion of trigonometric functions indicates there are limits to what one can

reasonably require. It is reasonable for a subroutine designer

to specify a function so that loss of accuracy occurs under certain stated conditions. One purpose of testing is to verify that

a subroutine conforms to the specification of its designer. The

tester, however, may not know what specification the designer had

in mind. But he can infer quite a lot about the function from
8

the test results, such as whether the internal base of calculation is two or ten (as we shall see) and what the number of guard

figures is. In this way he can construct a plausible model of the

algorithm that will explain the test results . Without such a model, he has no basis for predicting the accuracy of the function at other arguments.

Here again we see how the power of testing with a universal

set of data is limited. Without the possibility of generating additional test data, there is no way the tester can

refine his model of the algorithm.

When the implementation is non-decimal, the test arguments

are not necessarily exactly representable in the computer. Thus

the subroutine may receive not x, but an approximation x. Let 0

be the base and d the number of base-B digits in the computer

arithmetic. Then it is known that, with proper base conversion

procedures, the relative error e in x satisfies a bound at

least as good as

Thus the error in representing x, if indeed the error is

non- zero, is dependent only on parameters of the floatingpoint representation. The error in f(x) resulting from an

error in x, however, satisfies no bound independent of x
9

and f. The size of the error in f(x) is predicted by standard

analytical (calculus) methods and a catalog of cases will not be

given here. Three handbooks of particular value are given in the

references" [1, Z~ 3] . By what we have just stated, the test data is divided into two

classes: that for which x is exactly representable, and that

for which this is not true. Interpretation of test results for

data of the first class is identical to what we stated for the case

of decimal implementations. For data of the second class, the

tester must take into account the effect that an input error of

the indicated size will have on the function value. Any loss of

accuracy that is predicted by this effect is intrinsic and cannot

be reduced by any such device as the use of guard digits . Thus

the tester may observe dramatic differences in the sizes of the

errors in function values at neighboring arguments, just because

one argument is exactly representable and another is not.

3. The Test Data

The functions for which test data is given are listed in

Table 1. There are 13 real functions, five complex functions,

the complex modulus, and the special arctangent function of two

variables that is useful for converting from rectangular coordinates to polar coordinates. In the table, x is a real

variable and z is a complex variable. All angles are expressed

in radians

.
10

Table 1. Functions for which test data is given.

x . z e sm x e sinh X cos X /z

cosh X tan x In z tanh X arcsin X sin z

/x arccos X cos z

In x arc tan X 1 z 1 lo ®10 arctan (x x

2

)

The test data is presented in Tables 2, 3 and 4. There is

one sample point per line in each table, and each line has 80

positions. A function identification code and seouence number

appear in positions 74-80 of each line. Table 2 presents the

data for real functions g(x). The line format is

Starting

Position

1

12

25

Width Content

10 x, 5D

12 g(x), 7D

16 g(x) , 11D

42 21 g(x), 16D
11

Table 3 presents the data for complex functions g(z ) . The

line format is

Starting

Position Width Content

1 10 Re (z) , 5D

12 10 Im(z) , 5D

23 12 Re{g(z) }

,

7D

36 12 Im{g(z) }

,

7D

Table 4 presents the data for g(x

1

, x

2

) = | x^

+ ix

2

| and

g(xL ,x

2

) = arctan (x^x^. The line format is

Starting

Position Width Content

1 10 x , 5D

12 10 x

2

, 5D

23 12 g(x

1

,x

2

)

,

7D

36 16 g(xL ,x

2

) , 11D

53 21 g(x

1 ,x

2

)

,

16D

The notation 5D, 7D, etc

.

indicates the number of decimal places

to which a number is given All function values are believed

to be in error by not more than one unit in the last place

.
12

i

X

- g(x) Ident.

-.87000+02 .1645811-37 .16458114311-37 .1645811431082274-37 EXP 1

| -.80590+02 .1000478-34 .10004783692-34 .1000478369173656-34 EXP 2 i -.50000+02 .1928750-21 .19287498480-21 .1928749847963918-21 EXP 3

-.36841+02 .1000362-15 .10003615532-15 .1000361553249357-15 EXP 4

-.18421+02 .9996808-08 .99968079491-08 .9996807949091546-08 EXP 5 : -.16000+02 .1125352-06 .11253517472-06 .1125351747192591-06 EXP 6

-.92103+01 .1000040-03 .10000403728-03 .1000040372791142-03 EXP 7

-.80000+01 .3354626-03 .33546262790-03 .3354626279025118-03 EXP 8

-.46052+01 .9999702-02 .99997018643-02 .9999701864325246-02 EXP 9

-.40000+01 .1831564-01 .18315638889-01 .1831563888873418-01 EXP 10

-.23979+01 .9090866-01 .90908661165-01 .9090866116450398-01 EXP 11

-.20000+01 .1353353+00 .13533528324+00 .1353352832366127+00 EXP 12

-.16094+01 .2000076+00 .20000758263+00 .2000075826305572+00 EXP 13

-.10986+01 .3333374+00 .33333742958+00 .3333374295812052+00 EXP 14

-.33333+00 .7165337+00 .71653369902+00 .7165336990154719+00 EXP 15

.00000 .1000000+01 .10000000000+01 .1000000000000000+01 EXP 16 i .25000+00 .1284025+01 .12840254167+01 .1284025416687741+01 EXP 17

.50000+00 .1648721+01 .16487212707+01 .1648721270700128+01 EXP 18

.69315+00 .2000006+01 .20000056389+01 .2000005638888059+01 EXP 19

.10000+01 .2718282+01 .27182818285+01 .2718281828459045+01 EXF 20

.13863+01 .4000023+01 .40000225556+01 .4000022555584032+01 EXP 21

.20794+01 .7999668+01 .79996676735+01 .7999667673464062+01 EXP 22

.23026+01 .1000015+02 .10000149071+02 .1000014907117064+02 EXP 23

.27726+01 .1600018+02 .16000180445+02 .1600018044518101+02 EXP 24

.50000+01 .1484132+03 .14841315910+03 .1484131591025766+03 EXP 25

.69078+01 .1000045+04 .10000447220+04 .1000044722017863+04 EXP 26

.11000+02 .5987414+05 .59874141715+05 .5987414171519782+05 EXP 27

.11513+02 .1000075+06 .10000745378+06 .1000074537807576+06 EXP 28

.25000+02 .7200490+11 .72004899337+11 .7200489933738587+11 EXP 29 . .25328+02 .9995641+11 .99956407211+11 .9995640721096829+11 EXP 30

.46052+02 .1000298+21 .10002981846+21 .1000298184567269+21 EXP 31

.75000+02 .3733242+33 .37332419968+33 .3733241996799002+33 EXP 32

.85000+02 .8223013+37 .82230127146+37 .8223012714622913+37 EXP 33

-.85000+02 -.4111506+37 -.41115063573+37 -.4111506357311457+37 SINH 1 -.50000+02 -.2592353+22 -.25923527643+22 -.2592352764293536+22 SINH 2

-.16000+02 -.4443055+07 -.44430552603+07 -.4443055260253880+07 SINH 3

-.80000+01 -.1490479+04 -.14904788258+04 -.1490478825789550+04 SINH 4

-.40000+01 -.2728992+02 -.27289917197+02 -.2728991719712775+02 SINH 5

-.20000+01 -.3626860+01 -.36268604078+01 -.3626860407847019+01 SINH 6

-.80000+00 -.8881060+00 -.88810598219+00 -.8881059821876230+00 SINH 7

-.41421+00 -.4261564+00 -.42615635230+00 -.4261563523008389+00 SINH 8

-.30000+00 -.3045203+00 -.30452029345+00 -.3045202934471426+00 SINH 9

-.19891+00 -.2002242+00 -.20022424916+00 - . 2002242491609640+00 SINH 10

-.10000+00 -.1001668+00 -.10016675002+00 -.1001667500198440+00 SINH 11

-.10000-02 -.1000000-02 -.10000001667-02 -.1000000166666675-02 SINH 12

-.10000-04 -.1000000-04 -.10000000000-04 -.1000000000016667-04 SINH 13

-.10000-10 -.1000000-10 -.10000000000-10 -.1000000000000000-10 SINH 14

-.10000-24 -.1000000-24 -.10000000000-24 -.1000000000000000-24 SINH 15

.00000 .0000000 .00000000000 .0000000000000000 SINH 16

.10000-34 .1000000-34 .10000000000-34 .1000000000000000-34 SINH 17

.10000-15 .1000000-15 .10000000000-15 .1000000000000000-15 SINH 18

.10000-07 .1000000-07 .10000000000-07 .1000000000000000-07 SINH 19

.10000-03 .1000000-03 .10000000017-03 .1000000001666667-03 SINH 20

.10000-01 .1000017-01 .10000166668-01 .1000016666750000-01 SINH 21

.98491-01 .9865031-01 .98650312199-01 .9865031219861936-01 SINH 22

Table 2. Test data for the real functions.
13

X g(x) Ident

.

.20000+00 .2013360+00 .20133600254+00 .2013360025410940+00 SINE 23

.26795+00 .2711679+00 .27116787342+00 .2711678734220111+00 SINH 24

.50000+00 .5210953+00 .52109530549+00 .5210953054937474+00 SINK 25

.10000+01 .1175201+01 .11752011936+01 .1175201193643801+01 SINH 26

.30000+01 .1001787+02 .10017874927+02 .1001787492740990+02 SINH 27

.50000+01 .7420321+02 .74203210578+02 .7420321057778876+02 SINH 28

.11000+02 .2993707+05 .29937070849+05 .2993707084924806+05 SINH 29

.25000+02 .3600245+11 .36002449669+11 .3600244966869294+11 SINH 30

.75000+02 .1866621+33 .18666209984+33 .1866620998399501+33 SINH 31

-.85000+02 .4111506+37 .41115063573+37 .4111506357311457+37 COSH 1 -.50000+02 .2592353+22 .25923527643+22 .2592352764293536+22 COSH 2

-.16000+02 .4443055+07 .44430552603+07 .4443055260253993+07 COSH 3

-.80000+01 .1490479+04 .14904791613+04 .1490479161252178+04 COSH 4 -.40000+01 .2730823+02 .27308232836+02 .2730823283601649+02 COSH 5

-.20000+01 .3762196+01 .37621956911+01 .3762195691083631+01 COSH 6

-.80000+00 .1337435+01 .13374349463+01 .1337434946304845+01 COSH 7

-.41421+00 .1087019+01 .10870185079+01 .1087018507941036+01 COSH 8

-.30000+00 .1045339+01 .10453385141+01 .1045338514128860+01 COSH 9

-.19891+00 .1019848+01 .10198479053+01 .1019847905303566+01 COSH 10

-.10000+00 .1005004+01 .10050041681+01 .1005004168055804+01 COSH 11

-.10000-02 .1000001+01 .10000005000+01 .1000000500000042+01 COSH 12

-.10000-04 .1000000+01 .10000000000+01 .1000000000050000+01 COSH 13

-.10000-10 .1000000+01 .10000000000+01 .1000000000000000+01 COSH 14

-.10000-24 .1000000+01 .10000000000+01 .1000000000000000+01 COSH 15

.00000 .1000000+01 .10000000000+01 .1000000000000000+01 COSH 16

.10000-34 .1000000+01 .10000000000+01 .1000000000000000+01 COSH 17

.10000-15 .1000000+01 .10000000000+01 .1000000000000000+01 COSH 18

.10000-07 .1000000+01 .10000000000+01 .1000000000000000+01 COSH 19

.10000-03 .1000000+01 .10000000050+01 .1000000005000000+01 COSH 20

.10000-01 .1000050+01 .10000500004+01 .1000050000416668+01 COSH 21

.98491-01 .1004854+01 .10048541606+01 .1004854160610825+01 COSH 22

.20000+00 .1020067+01 .10200667556+01 .1020066755619076+01 COSH 23

.26795+00 .1036114+01 .10361139009+01 .1036113900870081+01 COSH 24

.50000+00 .1127626+01 .11276259652+01 .1127625965206381+01 COSH 25

.10000+01 .1543081+01 .15430806348+01 .1543080634815244+01 COSH 26

.30000+01 .1006766+02 .10067661996+02 .1006766199577777+02 COSH 27

.50000+01 .7420995+02 .74209948525+02 .7420994852478784+02 COSH 28

.11000+02 .2993707+05 .29937070866+05 .2993707086594976+05 COSH 29

.25000+02 .3600245+11 .36002449669+11 .3600244966869294+11 COSH 30

.75000+02 .1866621+33 .18666209984+33 .1866620998399501+33 COSH 31

-.10000+26 -.1000000+01 - .10000000000+01 -.1000000000000000+01 TANH 1 -.10000+03 -.1000000+01 - .10000000000+01 -.1000000000000000+01 TANH 2

-.85000+02 -.1000000+01 - .10000000000+01 -.1000000000000000+01 TANH 3 -.50000+02 -.1000000+01 - .10000000000+01 -.1000000000000000+01 TANH 4

-.16000+02 -.1000000+01 - .10000000000+01 -.9999999999999747+00 TANH 5

-.80000+01 -.9999998+00 - .99999977493+00 -.9999997749296759+00 TANH 6

-.40000+01 -.9993293+00 - .99932929974+00 -.9993292997390670+00 TANH 7

-.20000+01 -.9640276+00 - .96402758008+00 -.9640275800758169+00 TANH 8

-.80000+00 -.6640368+00 - .66403677027+00 -.6640367702678490+00 TANH 9

-.41421+00 -.3920415+00 - .39204148705+00 -.3920414870470219+00 TANH 10

-.30000+00 -.2913126+00 - .29131261245+00 -.2913126124515909+00 TANH 11

-.19891+00 -.1963276+00 - .19632755837+00 -.1963275583738789+00 TANH 12

-.10000+00 -.9966799-01 - .99667994625-01 -.9966799462495582-01 TANH 13

-.10000-02 -.9999997-03 - .99999966667-03 -.9999996666668000-03 TANH 14

-.10000-04 -.1000000-04 - .99999999997-05 -.9999999999666667-05 TANH 15

Table 2 (cont . ) . Test data for the real functions.

X g(x) I dent

.

-.10000-10 -.1000000-10 -.10000000000-10 -.1000000000000000-10 TANH 16

-.10000-24 -.1000000-24 -.10000000000-24 -.1000000000000000-24 TANH 17

.00000 .0000000 .00000000000 .0000000000000000 TANK 18

.10000-34 .1000000-34 .10000000000-34 .1000000000000000-34 TANH 19

.10000-15 .1000000-15 .10000000000-15 .1000000000000000-15 TANH 20

.10000-07 .1000000-07 .10000000000-07 .1000000000000000-07 TANH 21

.10000-03 .1000000-03 .99999999667-04 .9999999966666667-04 TANH 22

.10000-01 .9999667-02 .99996666800-02 .9999666679999460-02 TANH 23

.98491-01 .9817376-01 .98173760995-01 .9817376099498100-01 TANH 24

.20000+00 .1973753+00 .19737532022+00 .1973753202249040+00 TANH 25

.26795+00 .2617163+00 .26171627771+00 .2617162777126113+00 TANH 26

.50000+00 .4621172+00 .46211715726+00 .4621171572600098+00 TANH 27

.10000+01 .7615942+00 .76159415596+00 .7615941559557649+00 TANH 28

.30000+01 .9950548+00 .99505475369+00 .9950547536867305+00 TAffl 29

.50000+01 .9999092+00 .99990920426+00 .9999092042625951+00 TANH 30

.11000+02 .1000000+01 .99999999944+00 .9999999994421064+00 TANH 31

.25000+02 .1000000+01 .10000000000+01 .1000000000000000+01 TANH 32

.75000+02 .1000000+01 .10000000000+01 .1000000000000000+01 TANK 33

.10000+11 .1000000+01 .10000000000+01 .1000000000000000+01 TANH 34

.10000+36 .1000000+01 .10000000000+01 .1000000000000000+01 TANH 35

.00000 .0000000 .00000000000 .0000000000000000 SQRT A

1 .10000-34 .3162278-17 .31622776602-17 .3162277660168379-17 SQRT 2

.10000-15 .1000000-07 .10000000000-07 .1000000000000000-07 SQRT 3

.10000-07 .1000000-03 .10000000000-03 .1000000000000000-03 SQRT 4 .10000-03 .1000000-01 .10000000000-01 .1000000000000000-01 SQRT 5

.10000-01 .1000000+00 .10000000000+00 .1000000000000000+00 SQRT 6

.98491-01 .3138328+00 .31383275801+00 .3138327580097400+00 SQRT 7

.20000+00 .4472136+00 .44721359550+00 .4472135954999579+00 SQRT 8

.26795+00 .5176389+00 .51763887026+00 .5176388702560889+00 SQRT 9

.50000+00 .7071068+00 .70710678119+00 .7071067811865475+00 SQRT 10

.10000+01 .1000000+01 .10000000000+01 .1000000000000000+01 SQRT 11

.30000+01 .1732051+01 .17320508076+01 .1732050807568877+01 SQRT 12

.50000+01 .2236068+01 .22360679775+01 .2236067977499790+01 SQRT 13

.11000+02 .3316625+01 .33166247904+01 .3316624790355400+01 SQRT 14

.25000+02 .5000000+01 .50000000000+01 .5000000000000000+01 SQRT 15

.75000+02 .8660254+01 .86602540378+01 .8660254037844386+01 SQRT 16

.10000+11 .1000000+06 .10000000000+06 .1000000000000000+06 SQRT 17

.10000+36 .3162278+18 .31622776602+18 .3162277660168379+18 SQRT 18

.10000-19 -.4605170+02 -.46051701860+02 -.4605170185988091+02 DOGE 1 .10000-07 -.1842068+02 -.18420680744+02 -.1842068074395237+02 LOGE 2

.11254-06 -.1599996+02 -.15999957123+02 -.1599995712294128+02 LOGE 3

.10000-04 -.1151293+02 -.11512925465+02 -.1151292546497023+02 LOGE 4

.33546-03 -.8000008+01 -.80000078337+01 -.8000007833697665+01 LOGE 5

.10000-01 -.4605170+01 -.46051701860+01 -.4605170185988091+01 LOGE 6

.18316-01 -.3999980+01 -.39999802842+01 -.3999980284187288+01 LOGE 7

.31250-01 -.3465736+01 -.34657359028+01 -.3465735902799727+01 LOGE 8

.90909-01 -.2397896+01 -.23978962728+01 -.2397896272798871+01 LOGE 9

.13534+00 -.1999965+01 -.19999651482+01 - .1999965148178058+01 LOGE 10

.20000+00 -.1609438+01 -.16094379124+01 -.1609437912434100+01 LOGE 11

.33333+00 -.1098622+01 -.10986222887+01 -.1098622288718110+01 LOGE 12

.50000+00 -.6931472+00 -.69314718056+00 -.6931471805599453+00 LOGE 13

.75000+00 -.2876821+00 -.28768207245+00 -.2876820724517809+00 LOGE 14

.90000+00 -.1053605+00 -.10536051566+00 -.1053605156578263+00 LOGE 15

.99000+00 -.1005034-01 -.10050335854-01 -.1005033585350144-01 LOGE 16

.99900+00 -.1000500-02 -.10005003336-02 -.1000500333583534-02 LOGE 17

Table 2 (cont . ) . Test data for the real functions.
.
X g(x ) Ident

.

.99990+00 -.1000050-03 -.10000500033-03 -.1000050003333583-03 LOGE 18

.99999+00 -.1000005-04 -.10000050000-04 -.1000005000033334-04 LOGE 19

.10000+01 .0000000 .00000000000 .0000000000000000 LOGE 20

.10001+01 .9999500-04 .99995000333-04 .9999500033330834-04 LOGE 21

.10010+01 .9995003-03 .99950033308-03 .9995003330835332-03 LOGE 22

.10100+01 .9950331-02 .99503308532-02 .9950330853168083-02 LOGE 23

.11000+01 .9531018-01 .95310179804-01 .9531017980432486-01 LOGE 24

.15000+01 .4054651+00 .40546510811+00 .4054651081081644+00 LOGE 25

.20000+01 .6931472+00 .69314718056+00 .6931471805599453+00 LOGE 26

.27183+01 .1000007+01 .10000066849+01 .1000006684913988+01 LOGE 27

.40000+01 .1386294+01 .13862943611+01 .1386294361119891+01 LOGE 28

.80000+01 .2079442+01 .20794415417+01 .2079441541679836+01 LOGE 29

.10000+02 .2302585+01 .23025850930+01 .2302585092994046+01 LOGE 30

.16000+02 .2772589+01 .27725887222+01 .2772588722239781+01 LOGE 31

.20086+02 .3000023+01 .30000230550+01 .3000023054971147+01 LOGE 32

.64000+02 .4158883+01 .41588830834+01 .4158883083359672+01 LOGE 33

.14841+03 .4999979+01 .49999787139+01 .4999978713907727+01 LOGE 34

.10000+04 .6907755+01 .69077552790+01 .6907755278982137+01 LOGE 35

.10000+05 .9210340+01 .92103403720+01 .9210340371976183+01 LOGE 36

.59874+05 .1100000+02 .10999997633+02 .1099999763311237+02 LOGE 37

.10000+11 .2302585+02 .23025850930+02 .2302585092994046+02 LOGE 38

.10000+36 .8059048+02 .80590478255+02 .8059047825479160+02 LOGE 39

.10000-19 -.2000000+02 -.20000000000+02 -.2000000000000000+02 LG1

0

1 .10000-07 -.8000000+01 -.80000000000+01 -.8000000000000000+01 LG10 2

.11254-06 -.6948693+01 -.69486930892+01 -.6948693089182026+01 LG1

0

3

.10000-04 -.5000000+01 -.50000000000+01 -.5000000000000000+01 LG1

0

4

.33546-03 -.3474359+01 -.34743592574+01 -.3474359257357683+01 LG10 5

.10000-01 -.2000000+01 -.20000000000+01 -.2000000000000000+01 LG1

0

6

.18316-01 -.1737169+01 -.17371693651+01 -.1737169365144340+01 LG10 7

.31250-01 -.1505150+01 -.15051499783+01 -.1505149978319906+01 LG10 8

.90909-01 -.1041393+01 -.10413931195+01 -.1041393119452924+01 LG10 9

.13534+00 -.8685738+00 -.86857382785+00 -.8685738278525498+00 LG1

0

10

.20000+00 -.6989700+00 -.69897000434+00 -.6989700043360188+00 LG1

0

11

.33333+00 -.4771256+00 -.47712559769+00 -.4771255976861963+00 LG10 12

.50000+00 -.3010300+00 -.30102999566+00 -.3010299956639812+00 LG10 13

.75000+00 -.1249387+00 -.12493873661+00 -.1249387366083000+00 LG10 14

.90000+00 -.4575749-01 -.45757490561-01 -.4575749056067513-01 LG10 15

.99000+00 -.4364805-02 -.43648054025-02 -.4364805402450085-02 LG10 16

.99900+00 -.4345118-03 -.43451177402-03 -.4345117740176913-03 L310 17

.99990+00 -.4343162-04 -.43431619808-04 -.4343161980751038-04 LG1

0

18

.99999+00 -.4342967-05 -.43429665339-05 -.4342966533901379-05 LG10 19

.10000+01 .0000000 .00000000000 .0000000000000000 LG10 20

.10001+01 .4342728-04 .43427276863-04 .4342727686266964-04 LG10 21

.10010+01 .4340775-03 .43407747932-03 .4340774793186407-03 LG10 22

.10100+01 .4321374-02 .43213737826-02 .4321373782642574-02 LG1

0

23

.11000+01 .4139269-01 .41392685158-01 .4139268515822504-01 LG1

0

24

.15000+01 .1760913+00 .17609125906+00 .1760912590556812+00 LG1

0

25

.20000+01 .3010300+00 .30102999566+00 .3010299956639812+00 LG10 26

.27183+01 .4342974+00 .43429738512+00 .4342973851245086+00 LG1

0

27

.40000+01 .6020600+00 .60205999133+00 .6020599913279624+00 D310 28

.80000+01 .9030900+00 .90308998699+00 .9030899869919436+00 LG1

0

29

.10000+02 .1000000+01 .10000000000+01 .1000000000000000+01 LG10 30

.16000+02 .1204120+01 .12041199827+01 .1204119982655925+01 LG10 31

.20086+02 .1302893+01 .13028934584+01 .1302893458356505+01 LG10 32

.64000+02 .1806180+01 .18061799740+01 .1806179973983887+01 LG10 33

Table 2 (cont.). Test data for the real functions
-

.
X .. g.(x) Ident

.

.14841+03 .2171463+01 .21714631651+01 .2171463165083844+01 LG1Q 34

.10000+04 .3000000+01 .30000000000+01 .3000000000000000+01 1X310 35

. 10000+05 .4000000+01 .40000000000+01 . 4000000000000000+0

1

D310 36

.59874+05 .4777238+01 .47772382730+01 .4777238273009532+01 1X310 37

. 10000+11 . 1000000+02 .10000000000+02 .1000000000000000+02 1X310 38

. 10000+36 .3500000+02 .35000000000+02 . 3500000000000000+02 1X310 39

-. 10000+05 .3056144+00 .30561438889+00 .3056143888882521+00 SIN 1 -.10000+03 .50636564-00 .50636564111+00 .5063656411097588+00 SIN 2 -. 50000+02 .2623749+00 .26237485370+00 .2623748537039288+00 sm 3

-.16000+02 . 2879033+00 .28790331667+00 .2879033166650653+00 SIN 4

-.80000+01 -.9893582+00 -.98935824662+00 - .989358246623381 8+QO SIN 5

-.40000+01 .7568025+00 .75680249531+00 .7568024953079283+00 SIN 6 -. 20000+01 -.9092974+00 -.90929742683+00 - . 909297426825681 7+00 SIN 7 -. 50000+00 -.4794255+00 -.47942553860+00 - . 4794255386042030+00 SIN 8 -. 10000+00 -.9983342-01 -.99833416647-01 -.9983341664682815-01 SIN 9

-. 10000-02 -.9999998-03 -.99999983333-03 -.9999998333333417-03 SIN 10

-.10000-04 -.1000000-04 -.99999999998-05 - . 9999999999833333-05 SIN 11 -. 10000-10 -. 1000000-10 -.10000000000-10 - . 1 000000000000000-1

0

SIN 12

-. 10000-24 -.1000000-24 -.10000000000-24 - . 1 000000000000000-24 SIN 13

.00000 .0000000 .00000000000 .0000000000000000 SIN' 14

.10000-34 .1000000-34 .10000000000-34 .1000000000000000-34 SIN' 15

.10000-15 .1000000-15 .10000000000-15 .1000000000000000-15 SIN 16

.10000-07 .1000000-07 .10000000000-07 .1000000000000000-07 SIN 17

. 10000-03 .1000000-03 .99999999833-04 .9999999983333333-04 SIN 18

. 10000-01 .9999833-02 .99998333342-02 .9999833334166665-02 SIN 19

. 25000+00 .2474040+00 .24740395925+00 .2474039592545229+00 SIN 20

. 26179+00 .2588100+00 .25880997717+00 .2588099771734655+00 SIN 21

. 52360+00 .5000011+00 .50000106036+00 .5000010603626028+00 SIN 22

. 75000+00 .6816388+00 .68163876002+00 .6816387600233342+00 SIN 23

. 78539+00 .7071010+00 .70710100877+00 .7071010087692932+00 SIN 24

. 10000+01 .8414710+00 .84147098481+00 .8414709848078965+00 SIN 25

. 10472+01 .8660266+00 .86602662818+00 .8660266281835432+00 SIN 26

. 13089+01 . 9659007+00 .96590073209+00 .9659007320923110+00 SIN 27

. 15708+01 . 1000000+01 . 99999999999+00 . 9999999999932538+00 SIN 28

. 18325+01 .9659506+00 .96595059462+00 . 9659505946243037+00 SIN 29

.20944+01 .8660230+00 .86602295497+00 .8660229549706499+00 SIN 30

.23561+01 .7071736+00 .70717359269+00 .7071735926855460+00 SIN 31

.26180+01 .4999947+00 .49999469818+00 .4999946981757422+00 SIN' 32

. 28797+01 .2589091+00 .25890913181+00 .2589091318126125+00 SIN 33

.30000+01 .1411200+00 .14112000806+00 .1411200080598672+00 SIN 34

. 31416+01 -.7346410-05 -.73464102067-05 -.7346410206695457-05 SIN 35

.34033+01 -.2587301+00 - . 2587301 3885+00 -.2587301388516711+00 SIN 36

. 36652+01 -.5000074+00 -.50000742252+00 - . 5000074225224785+00 SIN 37

. 39269+01 -.7070426+00 -.70704256096+00 - . 7070425609630992+00 SIN 38

. 41888+01 -.8660303+00 - . 866030301 35+00 -.8660303013496971+00 SIN 39

. 44505+01 -.9659026+00 -.96590263414+00 - . 9659026341 449996+00 SIN 40

. 47124+01 -.1000000+01 -.99999999994+00 - .9999999999392840+00 SIN 41

. 49741+01 -.9659487+00 -.96594869389+00 - . 9659486938865708+00 SIN 42

.50000+01 -.9589243+00 -.95892427466+00 - . 9589242746631 385+00 Sffi 43

. 52360+01 -.8660193+00 -.86601928171+00 -.8660192817110177+00 SIN 44

. 54977+01 -.7071684+00 -.70716839846+00 - . 7071 683984608595+00 SIN 45

. 57596+01 -.4999883+00 -.49998833596+00 - . 499988335961 8970+00 SIN 46

.60213+01 -.2589020+00 -.25890203590+00 - . 2589020358956423+00 SIN 47

.62832+01 . 1469282-04 .14692820413-04 .1469282041299443-04 SXN 48

. 11000+02

Table 2

-.9999902+00 -.99999020655+00 -.9999902065507035+00

(cont.). Test data for the real functions.

SIN 49
-

-

'

'
X g(x) Ident

.

.25000+02 -.1323518+00 -.13235175010+00 -.1323517500977730+00 SIN 50

.75000+02 -.3877816+00 -.38778163541+00 -.3877816354094304+00 SIN 51

.10000+04 .8268795+00 .82687954053+00 .8268795405320026+00 SIN 52

.10000+06 .3574880-01 .35748797972.-01 .3574879797201651-01 SIN 53

-.10000+05 -.9521554+00 -.95215536826+00 -.9521553682590149+00 COS 1 -.10000+03 .8623189+00 .86231887229+00 .8623188722876839+00 COS 2

-.50000+02 .9649660+00 .96496602849+00 .9649660284921133+00 COS 3

-.16000+02 -.9576595+00 -.95765948032+00 -.9576594803233846+00 COS 4 -.80000+01 -.1455000+00 -.14550003381+00 -.1455000338086135+00 COS 5

-.40000+01 -.6536436+00 -.65364362086+00 -.6536436208636119+00 COS 6

-.20000+01 -.4161468+00 -.41614683655+00 -.4161468365471424+00 COS 7

-.50000+00 .8775826+00 .87758256189+00 .8775825618903727+00 COS 8

-.10000+00 .9950042+00 .99500416528+00 .9950041652780258+00 COS 9

-.10000-02 .9999995+00 .99999950000+00 .9999995000000417+00 COS 10

-.10000-04 .1000000+01 .99999999995+00 .9999999999500000+00 COS 11

-.10000-10 .1000000+01 .10000000000+01 .1000000000000000+01 COS 12

-.10000-24 .1000000+01 .10000000000+01 .1000000000000000+01 COS 13

.00000 .1000000+01 .10000000000+01 .1000000000000000+01 COS 14

.10000-34 .1000000+01 .10000000000+01 .1000000000000000+01 COS 15

.10000-15 .1000000+01 .10000000000+01 .1000000000000000+01 COS 16

.10000-07 .1000000+01 .10000000000+01 .1000000000000000+01 cos 17

.10000-03 .1000000+01 .99999999500+00 .9999999950000000+00 cos 18

.10000-01 .9999500+00 .99995000042+00 .9999500004166653+00 cos 19

.25000+00 .9689124+00 .96891242171+00 .9689124217106448+00 cos 20

.26179+00 .9659283+00 .96592825599+00 .9659282559877158+00 cos 21

.52360+00 .8660248+00 .86602479158+00 .8660247915829389+00 cos 22

.75000+00 .7316889+00 .73168886887+00 .7316888688738209+00 cos 23

.78539+00 .7071126+00 .70711255356+00 .7071125535566795+00 cos 24

.10000+01 .5403023+00 .54030230587+00 .5403023058681397+00 cos 25

.10472+01 .4999979+00 .49999787927+00 .4999978792725456+00 cos 26

.13089+01 .2589127+00 .25891267977+00 .2589126797658577+00 cos 27

.15708+01 -.3673205-05 -.36732051034-05 -.3673205103372509-05 cos 28

.18325+01 -.2587266+00 -.25872659072+00 -.2587265907187627+00 cos 29

.20944+01 -.5000042+00 -.50000424145+00 -.5000042414459138+00 cos 30

.23561+01 -.7070400+00 -.70703996337+00 -.7070399633742194+00 cos 31

.26180+01 -.8660285+00 -.86602846477+00 -.8660284647724626+00 cos 32

.28797+01 -.9659017+00 -.96590168313+00 -.9659016831251715+00 cos 33

.30000+01 -.9899925+00 -.98999249660+00 -.9899924966004455+00 cos 34

.31416+01 -.1000000+01 -.99999999997+00 -.9999999999730151+00 cos 35

.34033+01 -.9659496+00 -.96594964426+00 -.9659496442619537+00 cos 36

.36652+01 -.8660211+00 -.86602111835+00 -.8660211183466762+00 cos 37

.39269+01 -.7071710+00 -.70717099558+00 -.7071709955779735+00 cos 38

.41888+01 -.4999915+00 -.49999151707+00 -.4999915170721927+00 cos 39

.44505+01 -.2589056+00 -.25890558386+00 -.2589055838558741+00 cos 40

.47124+01 .1101962-04 .11019615310-04 .1101961530991928-04 cos 41

.49741+01 .2587337+00 .25873368698+00 .2587336869810885+00 cos 42

.50000+01 .2836622+00 .28366218546+00 .2836621854632263+00 cos 43

.52360+01 .5000106+00 .50001060359+00 .5000106035922969+00 cos 44

.54977+01 .7070452+00 .70704515854+00 .7070451585424392+00 cos 45

.57596+01 .8660321+00 .86603213792+00 .8660321379152469+00 cos 46

.60213+01 .9659036+00 .96590358515+00 .9659035851517953+00 cos 47

.62832+01 .1000000+01 .99999999989+00 .9999999998920605+00 cos 48

.11000+02 .4425698-02 .44256979881-02 .4425697988050786-02 cos 49

.25000+02 .9912028+00 .99120281186+00 .9912028118634736+00 cos 50

.75000+02 .9217513+00 .92175126972+00 .9217512697247493+00 cos 51

Table 2 (cont.). Test data for the real functions
•

-
18

X g ( x ) Ident

.

. 10000+04 . 5623791+00 . 56237907629+00 . 5623790762907030+00 CCS 52

. 10000+06 -. 9993608+00 -. 99936080744+00 -

.

99936080743821 25+00 cos 53

-. 10000+05 -. 3209711+00 -. 32097113462+00 -. 3209711346238147+00 TAN 1 -. 10000+03 . 5872139+00 . 58721391516+00 . 5872139151569291+00 TAN 2 -. 50000+02 . 2719006+00 . 27190061200+00 . 2719006119976307+00 TAN 3 -. 16000+02 -. 3006322+00 -. 30063224202+00 -

.

3006322420239034+00 TAN 4 -. 80000+01 . 6799711+01 . 67997114552+01 . 6799711455220379+01 TAN 5 -. 40000+01 -. 1157821+01 -. 11578212823+01 -. 1157821282349578+01 TAN 6 -. 20000+01 . 2185040+01 . 21850398633+01 . 2185039863261519+01 TAN 7

-. 50000+00 -. 5463025+00 -. 54630248984+00 -

.

5463024898437905+00 TAN 8 -. 10000+00 -. 1003347+00 -. 10033467209+00 -. 1003346720854505+00 TAN 9 -. 10000-02 -. 1000000-02 -. 10000003333-02 -. 1000000333333467-02 TAN 10

-. 10000-04 -. 1000000-04 -. 10000000000-04 -. 1000000000033333-04 TAN' 11 -. 10000-10 -. 1000000-10 -. 10000000000-10 -. 1000000000000000-10 TAN 12

-. 10000-24 -. 1000000-24 -. 10000000000-24 -

.

1 000000000000000-24 TAN 13

.00000 .0000000 .00000000000 .0000000000000000 TAN 14

. 10000-34 . 1000000-34 . 10000000000-34 . 1000000000000000-34 TAN 15

. 10000-15 . 1000000-15 . 10000000000-15 . 1000000000000000-15 TAN 16

. 10000-07 . 1000000-07 . 10000000000-07 . 1000000000000000-07 TAN 17

. 10000-03 . 1000000-03 . 10000000033-03 . 1000000003333333-03 TAN 18

. 10000-01 . 1000033-01 . 10000333347-01 . 1000033334666721-01 TAN 19

. 25000+00 . 2553419+00 . 25534192122+00 . 2553419212210363+00 TAN 20

. 26179+00 . 2679391+00 . 26793913064+00 . 2679391306436292+00 TAN 21

. 52360+00 . 5773519+00 . 57735190173+00 . 5773519017263813+00 TAN 22

. 75000+00 . 9315965+00 . 93159645994+00 . 9315964599440725+00 TAN 23

. 78539+00 . 9999837+00 . 99998367334+00 . 9999836733383840+00 TAN 24

. 10000+01 . 1557408+01 . 15574077247+01 . 1557407724654902+01 TAN 25

. 10472+01 . 1732061+01 . 17320606028+01 . 1732060602824032+01 TAN 26

. 13089+01 . 3730604+01 . 37306042059+01 . 3730604205888268+01 TAN 27

. 15708+01 -. 2722418+06 -. 27224180841+06 -. 2722418084073541+06 TAN 28

. 18325+01 -. 3733480+01 -. 37334801651+01 -. 3733480165068527+01 TAN 29

. 20944+01 -. 1732031+01 -. 17320312173+01 -. 1732031217307841+01 TAN 30

. 23561+01 -. 1000189+01 -. 10001889982+01 -. 1000188998243733+01 TAN' 31

. 26180+01 -. 5773421+00 -. 57734210654+00 -

.

5773421065404694+00 TAN 32

. 28797+01 -. 2680492+00 -. 26804915690+00 -. 2680491569027118+00 TAN 33

. 30000+01 -. 1425465+00 -. 14254654307+00 -

.

1 425465430742778+00 TAN 34

. 31416+01 . 7346410-05 . 73464102069-05 . 7346410206893699-05 TAN 35

. 34033+01 . 2678505+00 . 26785054520+00 . 2678505452003734+00 TAN 36

. 36652+01 . 5773617+00 . 57736169700+00 . 5773616969953855+00 TAN 37

. 39269+01 . 9998184+00 . 99981838252+00 . 9998183825189700+00 TAN 38

. 41888+01 . 1732090+01 . 17320899891+01 . 1732089989088061+01 TAN 39

. 44505+01 . 3730714+01 . 37307137983+01 . 3730713798288306+01 TAN 40

. 47124+01 -. 9074727+05 -. 90747269466+05 - . 9074726946585296+05 TAN 41

. 49741+01 -. 3733370+01 -. 37333704210+01 -. 3733370420981070+01 TAN 42

. 50000+01 -. 3380515+01 -. 33805150062+01 -. 3380515006248586+01 TAN 43

. 52360+01 -. 1732002+01 -. 17320018325+01 -. 1732001832539456+01 TAN 44

. 54977+01 -. 1000174+01 -. 10001743028+01 -. 1000174302754119+01 TAN 45

. 57596+01 -. 5773323+00 -. 57733231144+00 -. 5773323114376475+00 TAN 46

. 60213+01 -. 2680413+00 -. 26804128267+00 - . 268041 2826858625+00 TAN 47

. 62832+01 . 1469282-04 . 14692820415-04 . 1469282041458037-04 TAN 48

. 11000+02 -. 2259508+03 -. 22595084645+03 - . 2259508464541 951+03 TAN 49

. 25000+02 -. 1335264+00 -. 13352640702+00 -. 1335264070215359+00 TAN 50

. 75000+02 -. 4207010+00 -. 42070095062+00 -. 4207009506211244+00 TAN 51

. 10000+04 . 1470324+01 . 14703241557+01 . 1 4703241 55702718+01 TAN 52

. 10000+06 -. 3577166-01 -. 35771662953-01 - . 35771 66295289877-01 TAN 53
-
19

X ft (x) -. 10000+01 -. 1570796+01 -. 15707963268+01

-. 99990+00 -. 1556654+01 -. 15566540733+01

-. 99000+00 -. 1429257+01 -. 14292568535+01

-. 80000+00 -. 9272952+00 -. 92729521800*00

-. 60000+00 -. 6435011+00 -. 64350110879+00

-

.

40000+00 -. 4115168+00 -. 41151684607+00

-. 20000+00 -. 2013579+00 -. 20135792079+00

-. 10000-01 -. 1000017-01 -. 10000166674-01

-. 10000-03 -. 1000000-03 -. 10000000017-03

-. 10000-07 -. 1000000-07 -. 10000000000-07

-. 10000-15 -. 1000000-15 -. 10000000000-15

-. 10000-34 -. 1000000-34 -. 10000000000-34

.00000 .0000000 .00000000000

. 10000-24 . 1000000-24 . 10000000000-24

.10000-10 .1000000-10 .10000000000-10

. 10000-04 . 1000000-04 . 10000000000-04

. 10000-02 . 1000000-02 . 10000001667-02

. 10000+00 . 1001674+00 . 10016742116+00

. 30000+00 . 3046927+00 . 30469265402+00

. 50000+00 . 5235988+00 . 52359877560+00

. 70000+00 . 7753975+00 . 77539745661+00

. 90000+00 . 1119770+01 . 11197695150+01

. 99900+00 . 1526071+01 . 15260712396+01

. 99999+00 . 1566324+01 . 15663241871+01

-. 10000+01 . 3141593+01 . 31415926536+01

-. 99990+00 . 3127450+01 . 31274504001+01

-. 99000+00 . 3000053+01 . 30000531803+01

-. 80000+00 . 2498092+01 . 24980915448+01

-. 60000+00 . 2214297+01 . 22142974356+01

-. 40000+00 . 1982313+01 . 19823131729+01

-. 20000+00 . 1772154+01 . 17721542476+01

-. 10000-01 . 1580796+01 . 15807964935+01

-. 10000-03 . 1570896+01 . 15708963268+01

-. 10000-07 . 1570796+01 . 15707963368+01

-. 10000-15 . 1570796+01 . 15707963268+01

-. 10000-34 . 1570796+01 . 15707963268+01

.00000 . 1570796+01 . 15707963268+01

. 10000-24 . 1570796+01 . 15707963268+01

. 10000-10 . 1570796+01 . 15707963268+01

. 10000-04 . 1570786+01 . 15707863268+01

. 10000-02 . 1569796+01 . 15697963266+01

. 10000+00 . 1470629+01 . 14706289056+01

. 30000+00 . 1266104+01 . 12661036728+01

. 50000+00 . 1047198+01 . 10471975512+01

. 70000+00 . 7953988+00 . 79539883018+00

. 90000+00 . 4510268+00 . 451026811801-00

. 99900+00 . 4472509-01 . 44725087169-01

. 99999+00 . 4472140-02 . 44721396818-02

-. 10000+26 -. 1570796+01 -. 15707963268+01

-. 10000+03 -. 1560797+01 -. 15607966601+01

-. 85000+02 -. 1559032+01 -. 15590321636+01

-. 50000+02 -. 1550799*01 -. 15507989928+01

-. 16000+02 -. 1508378+01 -. 15083775168+01

-. 80000+01 -. 1446441+01 -. 14464413322+01

-. 400001-01 -. 1325818+01 -. 13258176637+01

Ident

.

- . 1570796326794897+01 ASIN 1

-.1556654073317384+01 ASIN 2

-.1429256853470469+01 ASIN 3 - . 9272952180016122+00 ASIN 4

-.6435011087932844+00 ASIN 5 - . 4115168460674880+00 ASIN 6 - . 2013579207903308+00 ASIN 7 - . 1000016667416711-01 ASIN 8 - . 1000000001666667-03 ASIN 9 - . 1000000000000000-07 ASIN 10

-.1000000000000000-15 ASIN 11

- . 1000000000000000-34 ASIN 12

.0000000000000000 ASIN 13

.1000000000000000-24 ASIN 14

.1000000000000000-10 ASIN 15

.1000000000016667-04 ASIN 16

.1000000166666742-02 ASIN 17

.1001674211615598+00 ASIN 18

.3046926540153975+00 ASIN 19

.5235987755982989+00 ASIN 20

.7753974966107531+00 ASIN 21

.1119769514998634+01 ASIN 22

.1526071239626163+01 ASIN 23

.1566324187113109+01 ASIN 24

.3141592653589793+01 AGGS 1

. 3127450400112280+01 ACQS 2

.3000053180265366+01 AOQS 3

.2498091544796509+01 AOOS 4

.2214297435588181+01 ACQS 5

.1982313172862385+01 AOOS 6

.1772154247585227+01 NCOS 7

.1580796493469064+01 AOOS 8

.1570896326795063+01 ACCS 9

.1570796336794897+01 NCOS 10

.1570796326794897+01 ADDS 11

.1570796326794897+01 ACCS 12

.1570796326794897+01 ACQS 13

.1570796326794897+01 AOOS 14

.1570796326784897+01 ACQS 15

.1570786326794896+01 ACCS 16

.1569796326628230+01 AOOS 17

.1470628905633337+01 ACQS 18

.1266103672779499+01 ACOS 19

.1047197551196598+01 ACCS 20

.7953988301841436+00 AOOS 21

.4510268117962624+00 NX

S

22

.4472508716873343-01 Mm 23

.4472139681787927-02 ACOS 24

- . 1570796326794897+01 ATAN 1 - . 1560796660108231+01 MAN 2

-.1559032163645138+01 . ATAN 3 - . 1550798992821746+01 ATAN 4 - . 1508377516798939+01 ATAN 5

-.1446441332248135+01 ATAN 6 - . 1325817663668032+01 ATAN 7
*

-
20

X EL(x) Ident * -.20000+01 -.1107149+01 -.11071487178+01 - . 1107148717794091+01 ATM 8

-.80000+00 -.6747409+00 -.67474094222+00 - . 6747409422235527+00 ATM 9

-.41421+00 -.3926960+00 -.39269604102+00 -.3926960410192606+00 ATAN 10

-.30000+00 -.2914568+00 -.29145679448+00 -.2914567944778671+00 ATAN 11

-.19891+00 -.1963473+00 -.19634726357+00 -.1963472635716957+00 ATAN 12

-.10000+00 -.9966865-01 -.99668652491-01 - . 9966865249116203-01 ATAN 13

-.10000-02 -.9999997-03 -.99999966667-03 - . 9999996666668667-03 ATAN 14

-.10000-04 -.1000000-04 -.99999999997-05 -. 9999999999666667-05 ATAN 15

-.10000-10 -.1000000-10 -.10000000000-10 -.1000000000000000-10 ATAN 16

-.10000-24 -.1000000-24 -.10000000000-24 - . 1000000000000000-24 ATM 17

.00000 .0000000 .00000000000 .0000000000000000 ATAN 18

.10000-34 .1000000-34 .10000000000-34 .1000000000000000-34 ATAN 19

.10000-15 .1000000-15 .10000000000-15 .1000000000000000-15 ATAN 20

.10000-07 .1000000-07 .10000000000-07 .1000000000000000-07 ATAN 21

.10000-03 .1000000-03 .99999999667-04 .9999999966666667-04 ATAN 22

.10000-01 .9999667-02 .99996666867-02 .9999666686665238-02 ATAN 23

.98491-01 .9817437-01 .98174370943-01 .9817437094269847-01 ATM 24

.20000+00 .1973956+00 .19739555985+00 .1973955598498808+00 ATM 25

.26795+00 .2618001+00 .26180014127+00 .2618001412710175+00 ATM 26

.50000+00 .4636476+00 .46364760900+00 .4636476090008061+00 ATAN 27

.10000+01 .7853982+00 .78539816340+00 .7853981633974483+00 ATM 28

.30000+01 .1249046+01 .12490457724+01 .1249045772398254+01 ATAN 29

.50000+01 .1373401+01 .13734007669+01 .1373400766945016+01 ATAN' 30

.11000+02 .1480136+01 .14801364396+01 .1480136439594152+01 ATM 31

.25000+02 .1530818+01 .15308176397+01 .1530817639671607+01 ATM 32

.75000+02 .1557464+01 .15574637835+01 .1557463783500751+01 ATM 33

.10000+11 .1570796+01 .15707963267+01 . 1570796326694897+01 ATM 34

.10000+36 .1570796401 .15707963268+01 .1570796326794897+01 ATM 35

Table 2 (cont.). Test data for the real functions.
.

.

.

-
21

X

1 x2 g(x

1 + ix

2

> Ident

.00000 .00000 .1000000+01 .0000000 CE2& 1

.10000-34 .00000 .1000000+01 .0000000 CEXP 2

.00000 .10000-34 .1000000+01 .1000000-34 CEXP 3

-.10000-34 .10000-34 .1000000+01 .1000000-34 CEXP 4

-.10000+01 .10000-34 .3678794+00 .3678794-35 CEXP 5

-.10000+01 -.10000+01 .1987661+00 -.3095599+00 CEXP 6

-.10000-34 -.10000+01 .5403023+00 -.8414710+00 CEXP 7

.85000+02 -.10000+01 .4442913+37 -.6919427+37 CEXP 8

.85000+02 .85000+02 -.8094542+37 -.1447372+37 CEXP 9

.10000+01 .85000+02 -.2675813+01 -.4786232+00 10

.00000 .00000 .0000000 .0000000 CSQR 1

.10000+01 .00000 .1000000+01 .0000000 CSQR 2

.10000+01 .10000-34 .1000000+01 .5000000-35 CSQR 3

.10000+01 .10000-04 .1000000+01 .5000000-05 CSQR 4

.10000+01 .50000+00 .1029086+01 .2429341+00 CSQR 5

.10000+01 .10000+01 .1098684+01 .4550899+00 CSQR 6

.10000+01 .20000+01 .1272020+01 .7861514+00 CSQR 7

.10000+01 .10000+06 .2236079+03 .2236057+03 CSQR a .10000+01 .10000+36 .2236068+18 .2236068+18 CSQR 9

.10000-34 .10000+36 .2236068+18 .2236068+18 CSQR 10

.00000 .10000+01 .7071068+00 .7071068+00 CSQR 11

-.10000+01 .10000+01 .4550899+00 .1098684+01 CSQR 12

-.10000+01 .00000 .0000000 .1000000+01 CSQR 13

-.10000+01 -.10000+01 .4550899+00 -.1098684+01 CSQR 14

.00000 -.10000+01 .7071068+00 -.7071068+00 • CSQR 15

.10000+01 -.10000+01 .1098684+01 -.4550899+00 CSQR 16

.10000+01 .00000 .0000000 .0000000 CLOG 1

.10000+01 .10000-04 .5000000-10 .1000000-04 CLOG 2

.10000+01 .50000+00 .1115718+00 .4636476+00 CLOG 3

.10000+01 .10000+01 .3465736+00 .7853982+00 CLOG 4

.10000+01 .20000+01 .8047190+00 .1107149+01 CLOG 5

.10000+01 .10000+06 .1151293+02 .1570786+01 CLOG 6

.10000+01 .10000+36 .8059048+02 .1570796+01 CLOG 7

.10000-34 .10000+36 .8059048+02 .1570796+01 CLOG 8

. 00000 .10000+01 .0000000 .1570796+01 CLOG 9

-.10000+01 .10000+01 .3465736+00 .2356194+01 CLOG 10

-.10000+01 .00000 .0000000 .3141593+01 CLOG 11

-.10000+01 -.10000+01 .3465736+00 -.2356194+01 CLOG 12

.00000 -.10000+01 .0000000 -.1570796+01 CLOG 13

. 10000+01 -.10000+01 .3465736+00 -.7853982+00 clog 14

.00000 .00000 .0000000 .0000000 CSIN 1

.10000-34 .00000 .1000000-34 .0000000 CSIN 2

.00000 .10000-34 .0000000 .1000000-34 CSIN 3

-.10000-34 .10000-34 -.1000000-34 .1000000-34 CSIN 4

-.10000+01 .10000-34 -.8414710+00 .5403023-35 CSIN 5

-.10000+01 -.10000+01 -.1298458+01 -.6349639+00 CSIN 6

-.10000-34 -.10000+01 -.1543081-34 -.1175201+01 CSIN 7

.85000+02 -.10000+01 -.2716989+00 .1156841+01 CSIN 8

.85000+02 .85000+02 -.7239360+36 -.4047271+37 CSIN 9

.10000+01 .85000+02 .3459713+37 .2221456+37 CSIN 10

Table 3 . Test data for the complex functions.
.
22

X

1

X

2 g(x

x + ix

2

> Ident

.

.00000 .00000 .1000000+01 .0000000 ccos 1

.10000-34 .00000 .1000000+01 .0000000 CCOS 2

.00000 .10000-34 .1000000+01 .0000000 CCOS 3

-.10000+01 .10000-34 .5403023+00 .8414710-35 CCDS 4

-.10000+01 -.10000+01 .8337300+00 -.9888977+00 CCOS 5

-.10000-34 -.10000+01 .1543081+01 -.1175201-34 ccos 6

.85000+02 -.10000+01 -.1518973+01 -.2069243+00 ccos ? .85000+02 .85000+02 -.4047271+37 .7239360+36 ccos 8

.10000+01 .85000+02 .2221456+37 -.3453713+37 ccos 9

59:

Table 3 (cont.) . Test data for the complex functions.

23

X

1 X

2 g(x ,x ) .00000 .00000 .0000000 .00000000000

. 10000+01 .00000 . 1000000+01 . 10000000000+01

. 10000+01 . 10000-34 . 1000000+01 . 10000000000+01

. 10000+01 . 10000-04 . 1000000+01 . 10000000000+01

. 10000+01 . 50000+00 . 1118034+01 . 11180339887+01

. 10000+01 . 10000+01 . 1414214+01 . 14142135624+01

. 10000+01 . 20000+01 . 2236068+01 . 22360679775+01

. 10000+01 . 10000+06 . 1000000+06 . 10000000000+06

. 10000+01 . 10000+36 . 1000000+36 . 10000000000+36

. 10000-34 . 10000+36 . 1000000+36 . 10000000000+36

.00000 . 10000+01 . 1000000+01 . 10000000000+01

-. 10000+01 . 10000+01 . 1414214+01 . 14142135624+01

-. 10000+01 .00000 . 1000000+01 . 10000000000+01

-. 10000+01 -. 10000+01 . 1414214+01 . 14142135624+01

.00000 -. 10000+01 . 1000000+01 . 10000000000+01

. 10000+01 -. 10000+01 . 1414214+01 . 14142135624+01

. 10000+01 .00000 . 1570796+01 . 15707963268+01

. 10000+01 . 10000-34 . 1570796+01 . 15707963268+01

. 10000+01 . 10000-04 . 1570786+01 . 15707863268+01

. 10000+01 . 50000+00 . 1107149+01 . 11071487178+01

. 10000+01 . 10000+01 . 7853982+00 . 78539816340+00

. 10000+01 . 20000+01 . 4636476+00 . 46364760900+00

. 10000+01 . 10000+06 . 1000000-04 . 99999999997-05

. 10000+01 . 10000+36 . 1000000-34 . 10000000000-34

.00000 . 10000+01 .0000000 .00000000000

-. 10000+01 . 10000+01 -. 7853982+00 -. 78539816340+00 -

-. 10000+01 . 00000 -. 1570796+01 -. 15707963268+01 -

-. 10000+01 -. 10000+01 -. 2356194+01 -. 23561944902+01 - .00000 -. 10000+01 . 3141593+01 . 31415926536+01

. 10000+01

30:

-. 10000+01 . 2356194+01 . 23561944902+01

Table 4 . Test data for g(x f x ) = jx . + i^! an<^

Ident.

0000000000000000 CABS r

lOOOOOOGOGQQOQQO+OlQffiS 2

. IQOOQQQOOOOOOQQO+OlCABS 3

10Q000Q00O05Q0Q0+O1CABS 4

. 1118033988749895+01CABS 5

. 1414213 562373095+01CABS 6

. 2236067977499790+01CABS 7

. 1QOQOQQQQQQ5OQQ0+O6CABS 8

. 10000000000QGQOO+36CABS 9

. 100Q0QQ00G0000Q0+36CABS 10

. 1000000000000000401CABS 11

. 1414213562373095+01CABS 12

. 1000000000000000+01CABS 13

. 1414213562373095+01CAB3 14

. lOOOQOGOOOOQOOQO+OlCABS 15

. 1414213562373095+01CABS 16

. 1570796326794897+01ATO2 1

. 1570796326794897+01ATN2 2

. 1570786326794897+01A.TN2 3

. 1107148717794091+01ATN2 4

. 7853981633974483+O0ATN2 5

. 4636476090008061+00ATN2 6

. 9999999999666667-05ATN2 7

. 100Q00Q0Q0G00000-34ATN2 8

.0000000000000000 Nm2 9

. 7853981633974483+0QATN2 10

. 1570796326794897+01ATN2 11

. 2356194490192345+01MN2 12

. 3141592653589793+01ATN2 13

. 2356194490192345+01ATN2 14

g ( x,

( J x

2

) = arctan (x^

x^.
-
24

4. References

1. Abramowitz, M. and Stegun, I. A., Eds. Handbook of Mathema -

tical Functions with Formulas, Graphs, and Mathematical

Tables , National Bureau of Standards, AMS 55, 1964.

2. Hart, J.F., et.al. Computer Approximations , SIAM Series

in Applied Mathematics, John Wiley & Sons, Inc., 1968.

3. Lyusternik, L.A.

,

Chervonenkis , O.A., and Yanpol'skii, A.R.

,

Handbook for Computing Elementary Functions , Pergamon Press,

1965.

4. Olver, F.W.J., A New Approach to Error Arithmetic , SIAM

J. Numer. Analysis, 15, pp . 368-393, 1978.

5. Sterbenz, P.H., Floating-Point Computation , Prentice-Hall,

Inc .

,

1974.

N BS-1 1 4A ' O E V / 731

U.S. DEPT. OF COMM

BIBLIOGRAPHIC DATA

SHEET

1. PUBLIC ATTON OR REPORT NO. NBSIR 78-1478

2. Gov’t Accession

No.

3. Recipient’s Accession No.

4 . tit le: and subtitle

A Universal Set of Test Data for Computer Implementations

of Elementary Mathematical Functions

5. Publication Date

6. Performing Organization C ode

7. AirmoRfS) . Daniel W. Lozier 8. Performing Organ. Report No.

9. performing organization name and address

NATIONAL BUREAU OF STANDARDS

DEPARTMENT OF COMMERCE

WASHINGTON, D.C. 20234

10. Project /Task/Work Unit No. 7110143

11. Contract/Grant No.

12. Sponsoring Organization Name and Complete Address (Street, City, State, ZIP) 13. Type of Report & Period Covered

14. Sponsoring Agency Code

15. SUPPLEMENTARY NOTES

16.

ABSTRACT (A 200- word or less factual summary o( most significant in formation. If document includes a significant

bibliography or literature survey, mention it here.)

A short table of values of 20 mathematical functions commonly found in computer

libraries is given. The data was chosen to sample the functions throughout the

range of a typical floating-point arithmetic. Computer implementations can be

tested by comparing computed function values against the tabular values. A

discussion on how to interpret the test results is included, for both decimal

and non-decimal implementations.

17.

KEY WORDS (six to twelve entries; alphabetical order; capitalize only the first letter of the first key word unless a proper name; separated by semicolons

Fortran library testing; Mathematical function testing; Elementary function testing;

Fortran library test data; Test data for mathematical functions; Test data for

elementary functions.

18.

AVAILABILITY [x Unlimited

For Official Distribution. Do Not Kolea.se to NTIS

i Order From Sup. of Doc., IJ.S. Government Printing Office Washington, D.C . 20402, SD ( at. No. (13

I Order From National Technical Information Service (N I IS) Springfield, Virginia 22151

19. SECURITY CLASS 21. NO. OF PAGES

(THIS REPORT)

UNCLASSIFIED 29

20. SECURITY ( LASS 22. Price (THIS PAGE)

$4.50

UNC LASSIE I ED

USCOMM-DC 29042-P74
-

I 6 4 3 4 4