COHERENT manpages

This page displays the COHERENT manpage for tan() [Calculate tangent].

List of available manpages
Index


tan() -- Mathematics Function (libm)

Calculate tangent
#include <math.h>
double tan(radian) double radian;

tan()  calculates the  tangent of  its  argument radian,  which must  be in
radian measure.

Example

The following  program implements the Fresnel  equation, which computes the
percentage of  light or energy  reflected from perfect glass,  based on the
angle of incidence.  It  is by Dmitry Gringauz (dmitry@golem.com).  Be sure
to compile it with the options -f and -lm.

#include <math.h>
#include <stdio.h>

double deg_to_rad(deg)
double deg;
{
    return deg*PI/180.0;
}

double rad_to_deg(rad)
double rad;
{
    return rad*180.0/PI;
}

main()
{
    double i=0.0; /* incidence angle */
    double Ra=0.0; /* angle of refraction */
    double Rho=0.0; /* % reflection of the beam */
    double Ri=1.52; /* refractive index of glass */

    printf("\tAngle\t\tRho\n");
    printf("\t-----\t\t---\n");

    for (i = 5.0; i <= 90.0; i = i+5.0) {
        double x = 0.0, y = 0.0; /* temporaries */

        /* find the angle of refraction */
        Ra = rad_to_deg(asin( sin(deg_to_rad(i)) / Ri));

        /* makes sense to calculate these only once */
        x = deg_to_rad(i - Ra);
        y = deg_to_rad(i + Ra);

        /* find out percent of reflected energy */
        Rho = pow(sin(x), 2.0) / pow(sin(y), 2.0) +
                pow(tan(x), 2.0) / pow(tan(y), 2.0);
        Rho = Rho/2.0*100.00;
        printf("\t%f\t%f\n", i, Rho);
    } /* for */
} /* main */

See Also

libm,
tanh()
ANSI Standard, §7.5.2.7
POSIX Standard, §8.1

Diagnostics

tan() returns a  very large number where it is  singular, and sets errno to
ERANGE.