/* citrg.c CCMATH mathematics library source code.
*
* Copyright (C) 2000 Daniel A. Atkinson All rights reserved.
* This code may be redistributed under the terms of the GNU library
* public license (LGPL). ( See the lgpl.license file for details.)
* ------------------------------------------------------------------------
*/
#include "complex.h"
struct complex casin(Cpx z)
{ struct complex u;
u.re=1.; u.im=0.;
u=csqrt(csub(u,cmul(z,z)));
u.re-=z.im; u.im+=z.re; z=clog(u);
u.re=z.im; u.im= -z.re;
return u;
}
struct complex cacos(Cpx z)
{ struct complex u;
u.re=1.; u.im=0.;
u=csqrt(csub(u,cmul(z,z)));
z.re-=u.im; z.im+=u.re; z=clog(z);
u.re=z.im; u.im= -z.re;
return u;
}
struct complex catan(Cpx z)
{ struct complex u;
/*
int kf;
if(z.re==0. && z.im<0.) kf=1; else kf=0;
*/
u.re= -z.im; u.im=z.re; z.re=1.; z.im=0.;
u=cdiv(cadd(z,u),csub(z,u));
u=cimu(-.5,clog(u));
/*
if(kf) u.re= -u.re;
*/
return u;
}
syntax highlighted by Code2HTML, v. 0.9.1