# Re: no tests for trigonometric functions? need help / hints how to adapt tests for gnumeric 'long' version,

• From: Steven D'Aprano <steve pearwood info>
• To: John Denker via gnumeric-list <gnumeric-list gnome org>
• Subject: Re: no tests for trigonometric functions? need help / hints how to adapt tests for gnumeric 'long' version,
• Date: Sun, 29 May 2022 17:59:50 +1000

```On Sat, May 28, 2022 at 12:43:45AM -0700, John Denker via gnumeric-list wrote:

```
```In any serious application it would be better to use tanpi(0.5)
which produces #NUM! which is IMHO the right answer. Note that
cospi(0.5) is exactly zero, as it should be.
```
```
Can you point me at the source code for cospi please?

```
```OTOH if for some reason we can't do that, the value of pi()/2
is 1.5707963267948966192313217 (to high accuracy). However an
IEEE double cannot represent that; the closest it can come is
1.5707963267948965579989817

If you take the tangent of that (to high accuracy) you get
16331239353195369.755 for which the closest IEEE double is
16331239353195370. So I don't consider that a failure.
```
```
Using Python 3.10 on Linux, I get tan(pi/2) as

1.633123935319537e+16

```
```tan() produces an output that is grossly
nonlinear (indeed wildly non-monotonic).
```
```
Why is that? The mathematical function tan is monotonically increasing
in the range [0, π/2). Shouldn't tan() be the same?

Using Python (as above), and starting at pi/2 and working backwards, I
was unable to find any non-monotonic behaviour in tan() in the range
1.5707963260321207 through pi/2. (That's 3435237 doubles.)

Obviously this result can depend on the quality of your platform's maths
library. Do you have any examples of where it fails?

Thanks,

--
Steve
```

• Follow-Ups:
• References: