Metropoli BBS
VIEWER: circular.c MODE: TEXT (ASCII)
/* Copyright (C) 1994 by Thomas Glen Smith.  All Rights Reserved. */
/* circular APL2 V1.0.0 ************************************************
* Implementation of the APL circular, hyperbolic, and Pythagorean      *
* functions for real numbers.                                          *
***********************************************************************/
#define INCLUDES MATH+TRIGKEYS
#include "includes.h"
double circular(left,rite)
double left,rite;
{
	Acosh; Asinh; Atanh;
	extern int aplerr;

	switch ((int) left) {
		case ATANH: return(atanh(rite));
		case ACOSH: return(acosh(rite));
		case ASINH: return(asinh(rite));
		case -4: return(sqrt(-1.0+rite*rite));
		case ATAN: return(atan(rite)); /* Arctan */
		case ACOS: return(acos(rite)); /* Arccos */
		case ASIN: return(asin(rite)); /* Arcsin */
		case  0: return(sqrt(1-rite*rite));
		case  SIN: return(sin(rite)); /* Sine */
		case  COS: return(cos(rite)); /* Cosine */
		case  TAN: return(tan(rite)); /* Tangent */
		case  4: return(sqrt(1+rite*rite));
		case  SINH: return(sinh(rite)); /* Hyperbolic sine */
		case  COSH: return(cosh(rite)); /* Hyperbolic cosine */
		case  TANH: return(tanh(rite)); /* Hyperbolic tangent */
		default: aplerr = 85; return(0.0); /* left invalid */
	} /* end switch */
}
[ RETURN TO DIRECTORY ]