Metropoli BBS
VIEWER: acosx.c MODE: TEXT (ASCII)
/*Copyright (C) 1997 by Thomas Glen Smith.  All Rights Reserved.*/
/* acosx APL2 V1.0.0 ***************************************************
* Arc-cosine for complex numbers.								 *
***********************************************************************/
#define INCLUDES MATH+TRIGKEYS
#include "includes.h"
void acosx(rrr,ret)
double *rrr,*ret;
{
	Logx; Minusx; Powerx; Timesx;
	double ixr[2],wa[2],wb[2],wc[2];
	static double
		half[2]={0.5,0.0},
		iii[2]={0.0,1.0},
		one[2]={1.0,0.0};

	timesx(rrr,rrr,wa);		/* wa = r*2 */
	minusx(one,wa,wb);		/* wb = 1_r*2 */
	powerx(wb,half,wa);		/* wa = (1_r*2)*.5 */
	timesx(iii,wa,wb);		/* wb = iX(1_r*2)*.5 */
	minusx(rrr,wb,wa);		/* wa = r_iX(1_r*2)*.5 */
	logx(wa,wb);			/* wb = @r_iX(1_r*2)*.5 */
	timesx(iii,wb,ret);		/*ret = iX@r_iX(1_r*2)*.5 */
	PREFIX_MINUS(ret);		/*ret = _iX@r_iX(1_r*2)*.5 */
}

[ RETURN TO DIRECTORY ]