Complex arg-trig functions

Bruce Evans brde at optusnet.com.au
Mon Aug 13 21:29:24 UTC 2012


On Mon, 13 Aug 2012, Stephen Montgomery-Smith wrote:

> Can you post the two files fpmath.h and local.h that are needed to build your 
> cplex.c?

fpmath.h is in libc and needs a couple of -I paths to reach.

local.h just declares everything theat might not be in math.h.  Attached.

You will have to fake log*l() or not compile clogl().

I don't like the combinatoral explosion in the number of interfaces,
but wanted to keep local.h readable.  cplex.c uses macros to avoid
repetition, but this is painful for debugging compared with a previous
version.

Bruce
-------------- next part --------------
long double expl(long double);
long double expm1l(long double);
long double logl(long double);
long double log10l(long double);
long double log1pl(long double);
long double log2l(long double);

#ifdef _COMPLEX_H
double complex	ccos(double complex);
float complex	ccosf(float complex);
double complex	ccosh(double complex);
float complex	ccoshf(float complex);
double complex	cexp(double complex);
float complex	cexpf(float complex);
double complex	csin(double complex);
float complex	csinf(float complex);
double complex	csinh(double complex);
float complex	csinhf(float complex);
double complex	ctan(double complex);
float complex	ctanf(float complex);
double complex	ctanh(double complex);
float complex	ctanhf(float complex);
#endif

#ifdef _COMPLEX_H
double complex	casin(double complex);
double complex	casinh(double complex);
double complex	cacosh(double complex);
double complex	cacos(double complex);
double complex	catan(double complex);
double complex	catanh(double complex);
double complex	clog(double complex);

float complex	casinf(float complex);
float complex	casinhf(float complex);
float complex	cacoshf(float complex);
float complex	cacosf(float complex);
float complex	catanf(float complex);
float complex	catanhf(float complex);
float complex	clogf(float complex);

long double complex	casinl(long double complex);
long double complex	casinhl(long double complex);
long double complex	cacoshl(long double complex);
long double complex	cacosl(long double complex);
long double complex	catanl(long double complex);
long double complex	catanhl(long double complex);
long double complex	clogl(long double complex);
#endif

double	rcacos(double, double);
double	rcacosh(double, double);
double	rcasin(double, double);
double	rcasinh(double, double);
double	rcatan(double, double);
double	rcatanh(double, double);
double	rclog(double, double);

float	rcacosf(float, float);
float	rcacoshf(float, float);
float	rcasinf(float, float);
float	rcasinhf(float, float);
float	rcatanf(float, float);
float	rcatanhf(float, float);
float	rclogf(float, float);

long double	rcacosl(long double, long double);
long double	rcacoshl(long double, long double);
long double	rcasinl(long double, long double);
long double	rcasinhl(long double, long double);
long double	rcatanl(long double, long double);
long double	rcatanhl(long double, long double);
long double	rclogl(long double, long double);

double	icacos(double, double);
double	icacosh(double, double);
double	icasin(double, double);
double	icasinh(double, double);
double	icatan(double, double);
double	icatanh(double, double);
double	iclog(double, double);

float	icacosf(float, float);
float	icacoshf(float, float);
float	icasinf(float, float);
float	icasinhf(float, float);
float	icatanf(float, float);
float	icatanhf(float, float);
float	iclogf(float, float);

long double	icacosl(long double, long double);
long double	icacoshl(long double, long double);
long double	icasinl(long double, long double);
long double	icasinhl(long double, long double);
long double	icatanl(long double, long double);
long double	icatanhl(long double, long double);
long double	iclogl(long double, long double);

double	rcsqrt(double, double);
float	rcsqrtf(float, float);
long double	rcsqrtl(long double, long double);

double	rccos(double, double);
float	rccosf(float, float);
double	rccosh(double, double);
float	rccoshf(float, float);
double	rcexp(double, double);
float	rcexpf(float, float);
double	rcsin(double, double);
float	rcsinf(float, float);
double	rcsinh(double, double);
float	rcsinhf(float, float);
double	rctan(double, double);
float	rctanf(float, float);
double	rctanh(double, double);
float	rctanhf(float, float);

double	icsqrt(double, double);
float	icsqrtf(float, float);
long double	icsqrtl(long double, long double);

double	iccos(double, double);
float	iccosf(float, float);
double	iccosh(double, double);
float	iccoshf(float, float);
double	icexp(double, double);
float	icexpf(float, float);
double	icsin(double, double);
float	icsinf(float, float);
double	icsinh(double, double);
float	icsinhf(float, float);
double	ictan(double, double);
float	ictanf(float, float);
double	ictanh(double, double);
float	ictanhf(float, float);


More information about the freebsd-numerics mailing list