You want to calculate values for trigonometric functions like sine, tangent, or arc-cosine.

Perl provides only
`sin`

, `cos`

, and
`atan2`

as standard functions. From these, you can
derive `tan`

and the other trig functions:

sub tan { my $theta = shift; return sin($theta)/cos($theta); }

The POSIX module provides a wider range of trig functions:

use POSIX; $y = acos(3.7);

The Math::Trig module provides a complete set of functions and supports operations on or resulting in complex numbers:

use Math::Trig; $y = acos(3.7);

The `tan`

function will cause a
division-by-zero exception when `$theta`

is

,

, and so on, because the
cosine is for these values. Similarly, `tan`

and many
other functions from Math::Trig may generate the same error. To trap
these, use `eval`

:

eval { $y = tan($pi/2); } or return undef;

The `sin`

, `cos`

, and
`atan2`

functions in *perlfunc*
(1) and Chapter 3 of *Programming Perl*; we
talk about trigonometry in the context of imaginary numbers in Section 2.15; we talk about the use of
`eval`

to catch exceptions in Section 10.12

Start Free Trial

No credit card required