/*Copyright (C) 1997 by Thomas Glen Smith. All Rights Reserved.*/
/* atanx APL2 V1.0.0 ***************************************************
* Arc-tangent for complex numbers. *
***********************************************************************/
#define INCLUDES MATH+TRIGKEYS
#include "includes.h"
void atanx(rrr,ret)
double *rrr,*ret;
{
Dividex; Logx; Minusx; Plusx; Timesx;
double ixr[2],wa[2],wb[2],wc[2];
static double
iii[2]={0.0,1.0},
one[2]={1.0,0.0},
two[2]={2.0,0.0};
IXR /* build ixr */
minusx(one,ixr,wa); /* wa = 1_iXr */
plusx(one,ixr,wb); /* wb = 1+iXr */
dividex(wa,wb,wc); /* wc = (1_iXr)%1+iXr */
logx(wc,wa); /* wa = @(1_iXr)%1+iXr */
timesx(iii,wa,wb); /* wb = iX@(1_iXr)%1+iXr */
dividex(wb,two,ret); /* ret= (iX@(1_iXr)%1+iXr)%2 */
}