#ifndef LIBA_COMPLEX_H
#define LIBA_COMPLEX_H
#include "a.h"
#define A_COMPLEX_PRI(RF, RC, IF, IC) "(" A_FLOAT_PRI(RF, RC) "," A_FLOAT_PRI(IF, IC) ")"
#if !defined __cplusplus
#define A_COMPLEX_C(R, I) (a_complex){A_FLOAT_C(R), A_FLOAT_C(I)}
#else
#define A_COMPLEX_C(R, I) {A_FLOAT_C(R), A_FLOAT_C(I)}
#endif
#if !defined __cplusplus
#define a_complex_c(r, i) (a_complex){a_float_c(r), a_float_c(i)}
#else
#define a_complex_c(r, i) {a_float_c(r), a_float_c(i)}
#endif
typedef struct a_complex
{
a_float real; a_float imag; } a_complex;
#if defined(__cplusplus)
extern "C" {
#endif
#if defined(LIBA_COMPLEX_C)
#undef A_INTERN
#define A_INTERN A_INLINE
#endif
static A_INLINE void a_complex_rect(a_complex *ctx, a_float real, a_float imag)
{
ctx->real = real;
ctx->imag = imag;
}
A_EXTERN void a_complex_polar(a_complex *ctx, a_float rho, a_float theta);
A_EXTERN unsigned int a_complex_parse(a_complex *ctx, char const *str);
A_EXTERN a_bool a_complex_eq(a_complex x, a_complex y);
A_EXTERN a_bool a_complex_ne(a_complex x, a_complex y);
A_EXTERN a_float a_complex_logabs(a_complex z);
A_EXTERN a_float a_complex_abs2(a_complex z);
A_EXTERN a_float a_complex_abs(a_complex z);
A_EXTERN a_float a_complex_arg(a_complex z);
#if !defined A_HAVE_INLINE || defined(LIBA_COMPLEX_C)
A_EXTERN void a_complex_proj(a_complex *ctx, a_complex z);
#endif
A_EXTERN void a_complex_proj_(a_complex *ctx);
#if defined(A_HAVE_INLINE) || defined(LIBA_COMPLEX_C)
A_INTERN void a_complex_proj(a_complex *ctx, a_complex z)
{
a_complex_proj_(&z);
*ctx = z;
}
#endif
#if !defined A_HAVE_INLINE || defined(LIBA_COMPLEX_C)
A_EXTERN void a_complex_conj(a_complex *ctx, a_complex z);
#endif
#if defined(A_HAVE_INLINE) || defined(LIBA_COMPLEX_C)
A_INTERN void a_complex_conj(a_complex *ctx, a_complex z)
{
ctx->real = +z.real;
ctx->imag = -z.imag;
}
#endif
#if !defined A_HAVE_INLINE || defined(LIBA_COMPLEX_C)
A_EXTERN void a_complex_conj_(a_complex *ctx);
#endif
#if defined(A_HAVE_INLINE) || defined(LIBA_COMPLEX_C)
A_INTERN void a_complex_conj_(a_complex *ctx)
{
ctx->imag = -ctx->imag;
}
#endif
#if !defined A_HAVE_INLINE || defined(LIBA_COMPLEX_C)
A_EXTERN void a_complex_neg(a_complex *ctx, a_complex z);
#endif
#if defined(A_HAVE_INLINE) || defined(LIBA_COMPLEX_C)
A_INTERN void a_complex_neg(a_complex *ctx, a_complex z)
{
ctx->real = -z.real;
ctx->imag = -z.imag;
}
#endif
#if !defined A_HAVE_INLINE || defined(LIBA_COMPLEX_C)
A_EXTERN void a_complex_neg_(a_complex *ctx);
#endif
#if defined(A_HAVE_INLINE) || defined(LIBA_COMPLEX_C)
A_INTERN void a_complex_neg_(a_complex *ctx)
{
ctx->real = -ctx->real;
ctx->imag = -ctx->imag;
}
#endif
#if !defined A_HAVE_INLINE || defined(LIBA_COMPLEX_C)
A_EXTERN void a_complex_add(a_complex *ctx, a_complex x, a_complex y);
#endif
#if defined(A_HAVE_INLINE) || defined(LIBA_COMPLEX_C)
A_INTERN void a_complex_add(a_complex *ctx, a_complex x, a_complex y)
{
ctx->real = x.real + y.real;
ctx->imag = x.imag + y.imag;
}
#endif
#if !defined A_HAVE_INLINE || defined(LIBA_COMPLEX_C)
A_EXTERN void a_complex_add_(a_complex *ctx, a_complex z);
#endif
#if defined(A_HAVE_INLINE) || defined(LIBA_COMPLEX_C)
A_INTERN void a_complex_add_(a_complex *ctx, a_complex z)
{
ctx->real += z.real;
ctx->imag += z.imag;
}
#endif
#if !defined A_HAVE_INLINE || defined(LIBA_COMPLEX_C)
A_EXTERN void a_complex_add_real(a_complex *ctx, a_complex x, a_float y);
#endif
#if defined(A_HAVE_INLINE) || defined(LIBA_COMPLEX_C)
A_INTERN void a_complex_add_real(a_complex *ctx, a_complex x, a_float y)
{
ctx->real = x.real + y;
ctx->imag = x.imag;
}
#endif
#if !defined A_HAVE_INLINE || defined(LIBA_COMPLEX_C)
A_EXTERN void a_complex_add_real_(a_complex *ctx, a_float x);
#endif
#if defined(A_HAVE_INLINE) || defined(LIBA_COMPLEX_C)
A_INTERN void a_complex_add_real_(a_complex *ctx, a_float x)
{
ctx->real += x;
}
#endif
#if !defined A_HAVE_INLINE || defined(LIBA_COMPLEX_C)
A_EXTERN void a_complex_add_imag(a_complex *ctx, a_complex x, a_float y);
#endif
#if defined(A_HAVE_INLINE) || defined(LIBA_COMPLEX_C)
A_INTERN void a_complex_add_imag(a_complex *ctx, a_complex x, a_float y)
{
ctx->real = x.real;
ctx->imag = x.imag + y;
}
#endif
#if !defined A_HAVE_INLINE || defined(LIBA_COMPLEX_C)
A_EXTERN void a_complex_add_imag_(a_complex *ctx, a_float x);
#endif
#if defined(A_HAVE_INLINE) || defined(LIBA_COMPLEX_C)
A_INTERN void a_complex_add_imag_(a_complex *ctx, a_float x)
{
ctx->imag += x;
}
#endif
#if !defined A_HAVE_INLINE || defined(LIBA_COMPLEX_C)
A_EXTERN void a_complex_sub(a_complex *ctx, a_complex x, a_complex y);
#endif
#if defined(A_HAVE_INLINE) || defined(LIBA_COMPLEX_C)
A_INTERN void a_complex_sub(a_complex *ctx, a_complex x, a_complex y)
{
ctx->real = x.real - y.real;
ctx->imag = x.imag - y.imag;
}
#endif
#if !defined A_HAVE_INLINE || defined(LIBA_COMPLEX_C)
A_EXTERN void a_complex_sub_(a_complex *ctx, a_complex z);
#endif
#if defined(A_HAVE_INLINE) || defined(LIBA_COMPLEX_C)
A_INTERN void a_complex_sub_(a_complex *ctx, a_complex z)
{
ctx->real -= z.real;
ctx->imag -= z.imag;
}
#endif
#if !defined A_HAVE_INLINE || defined(LIBA_COMPLEX_C)
A_EXTERN void a_complex_sub_real(a_complex *ctx, a_complex x, a_float y);
#endif
#if defined(A_HAVE_INLINE) || defined(LIBA_COMPLEX_C)
A_INTERN void a_complex_sub_real(a_complex *ctx, a_complex x, a_float y)
{
ctx->real = x.real - y;
ctx->imag = x.imag;
}
#endif
#if !defined A_HAVE_INLINE || defined(LIBA_COMPLEX_C)
A_EXTERN void a_complex_sub_real_(a_complex *ctx, a_float x);
#endif
#if defined(A_HAVE_INLINE) || defined(LIBA_COMPLEX_C)
A_INTERN void a_complex_sub_real_(a_complex *ctx, a_float x)
{
ctx->real -= x;
}
#endif
#if !defined A_HAVE_INLINE || defined(LIBA_COMPLEX_C)
A_EXTERN void a_complex_sub_imag(a_complex *ctx, a_complex x, a_float y);
#endif
#if defined(A_HAVE_INLINE) || defined(LIBA_COMPLEX_C)
A_INTERN void a_complex_sub_imag(a_complex *ctx, a_complex x, a_float y)
{
ctx->real = x.real;
ctx->imag = x.imag - y;
}
#endif
#if !defined A_HAVE_INLINE || defined(LIBA_COMPLEX_C)
A_EXTERN void a_complex_sub_imag_(a_complex *ctx, a_float x);
#endif
#if defined(A_HAVE_INLINE) || defined(LIBA_COMPLEX_C)
A_INTERN void a_complex_sub_imag_(a_complex *ctx, a_float x)
{
ctx->imag -= x;
}
#endif
#if !defined A_HAVE_INLINE || defined(LIBA_COMPLEX_C)
A_EXTERN void a_complex_mul(a_complex *ctx, a_complex x, a_complex y);
#endif
A_EXTERN void a_complex_mul_(a_complex *ctx, a_complex z);
#if defined(A_HAVE_INLINE) || defined(LIBA_COMPLEX_C)
A_INTERN void a_complex_mul(a_complex *ctx, a_complex x, a_complex y)
{
a_complex_mul_(&x, y);
*ctx = x;
}
#endif
#if !defined A_HAVE_INLINE || defined(LIBA_COMPLEX_C)
A_EXTERN void a_complex_mul_real(a_complex *ctx, a_complex x, a_float y);
#endif
#if defined(A_HAVE_INLINE) || defined(LIBA_COMPLEX_C)
A_INTERN void a_complex_mul_real(a_complex *ctx, a_complex x, a_float y)
{
ctx->real = x.real * y;
ctx->imag = x.imag * y;
}
#endif
#if !defined A_HAVE_INLINE || defined(LIBA_COMPLEX_C)
A_EXTERN void a_complex_mul_real_(a_complex *ctx, a_float x);
#endif
#if defined(A_HAVE_INLINE) || defined(LIBA_COMPLEX_C)
A_INTERN void a_complex_mul_real_(a_complex *ctx, a_float x)
{
ctx->real *= x;
ctx->imag *= x;
}
#endif
#if !defined A_HAVE_INLINE || defined(LIBA_COMPLEX_C)
A_EXTERN void a_complex_mul_imag(a_complex *ctx, a_complex x, a_float y);
#endif
#if defined(A_HAVE_INLINE) || defined(LIBA_COMPLEX_C)
A_INTERN void a_complex_mul_imag(a_complex *ctx, a_complex x, a_float y)
{
ctx->real = -x.imag * y;
ctx->imag = x.real * y;
}
#endif
#if !defined A_HAVE_INLINE || defined(LIBA_COMPLEX_C)
A_EXTERN void a_complex_mul_imag_(a_complex *ctx, a_float x);
#endif
#if defined(A_HAVE_INLINE) || defined(LIBA_COMPLEX_C)
A_INTERN void a_complex_mul_imag_(a_complex *ctx, a_float x)
{
a_float const real = ctx->real;
ctx->real = -ctx->imag * x;
ctx->imag = real * x;
}
#endif
#if !defined A_HAVE_INLINE || defined(LIBA_COMPLEX_C)
A_EXTERN void a_complex_div(a_complex *ctx, a_complex x, a_complex y);
#endif
A_EXTERN void a_complex_div_(a_complex *ctx, a_complex z);
#if defined(A_HAVE_INLINE) || defined(LIBA_COMPLEX_C)
A_INTERN void a_complex_div(a_complex *ctx, a_complex x, a_complex y)
{
a_complex_div_(&x, y);
*ctx = x;
}
#endif
#if !defined A_HAVE_INLINE || defined(LIBA_COMPLEX_C)
A_EXTERN void a_complex_div_real(a_complex *ctx, a_complex x, a_float y);
#endif
#if defined(A_HAVE_INLINE) || defined(LIBA_COMPLEX_C)
A_INTERN void a_complex_div_real(a_complex *ctx, a_complex x, a_float y)
{
ctx->real = x.real / y;
ctx->imag = x.imag / y;
}
#endif
#if !defined A_HAVE_INLINE || defined(LIBA_COMPLEX_C)
A_EXTERN void a_complex_div_real_(a_complex *ctx, a_float x);
#endif
#if defined(A_HAVE_INLINE) || defined(LIBA_COMPLEX_C)
A_INTERN void a_complex_div_real_(a_complex *ctx, a_float x)
{
ctx->real /= x;
ctx->imag /= x;
}
#endif
#if !defined A_HAVE_INLINE || defined(LIBA_COMPLEX_C)
A_EXTERN void a_complex_div_imag(a_complex *ctx, a_complex x, a_float y);
#endif
#if defined(A_HAVE_INLINE) || defined(LIBA_COMPLEX_C)
A_INTERN void a_complex_div_imag(a_complex *ctx, a_complex x, a_float y)
{
ctx->real = -x.imag / y;
ctx->imag = x.real / y;
}
#endif
#if !defined A_HAVE_INLINE || defined(LIBA_COMPLEX_C)
A_EXTERN void a_complex_div_imag_(a_complex *ctx, a_float x);
#endif
#if defined(A_HAVE_INLINE) || defined(LIBA_COMPLEX_C)
A_INTERN void a_complex_div_imag_(a_complex *ctx, a_float x)
{
a_float const real = ctx->real;
ctx->real = -ctx->imag / x;
ctx->imag = real / x;
}
#endif
#if !defined A_HAVE_INLINE || defined(LIBA_COMPLEX_C)
A_EXTERN void a_complex_inv(a_complex *ctx, a_complex z);
#endif
A_EXTERN void a_complex_inv_(a_complex *ctx);
#if defined(A_HAVE_INLINE) || defined(LIBA_COMPLEX_C)
A_INTERN void a_complex_inv(a_complex *ctx, a_complex z)
{
a_complex_inv_(&z);
*ctx = z;
}
#endif
#if !defined A_HAVE_INLINE || defined(LIBA_COMPLEX_C)
A_EXTERN void a_complex_sqrt(a_complex *ctx, a_complex z);
#endif
A_EXTERN void a_complex_sqrt_(a_complex *ctx);
A_EXTERN void a_complex_sqrt_real(a_complex *ctx, a_float x);
#if defined(A_HAVE_INLINE) || defined(LIBA_COMPLEX_C)
A_INTERN void a_complex_sqrt(a_complex *ctx, a_complex z)
{
a_complex_sqrt_(&z);
*ctx = z;
}
#endif
#if !defined A_HAVE_INLINE || defined(LIBA_COMPLEX_C)
A_EXTERN void a_complex_pow(a_complex *ctx, a_complex z, a_complex a);
#endif
A_EXTERN void a_complex_pow_(a_complex *ctx, a_complex a);
#if defined(A_HAVE_INLINE) || defined(LIBA_COMPLEX_C)
A_INTERN void a_complex_pow(a_complex *ctx, a_complex z, a_complex a)
{
a_complex_pow_(&z, a);
*ctx = z;
}
#endif
#if !defined A_HAVE_INLINE || defined(LIBA_COMPLEX_C)
A_EXTERN void a_complex_pow_real(a_complex *ctx, a_complex z, a_float a);
#endif
A_EXTERN void a_complex_pow_real_(a_complex *ctx, a_float a);
#if defined(A_HAVE_INLINE) || defined(LIBA_COMPLEX_C)
A_INTERN void a_complex_pow_real(a_complex *ctx, a_complex z, a_float a)
{
a_complex_pow_real_(&z, a);
*ctx = z;
}
#endif
#if !defined A_HAVE_INLINE || defined(LIBA_COMPLEX_C)
A_EXTERN void a_complex_exp(a_complex *ctx, a_complex z);
#endif
A_EXTERN void a_complex_exp_(a_complex *ctx);
#if defined(A_HAVE_INLINE) || defined(LIBA_COMPLEX_C)
A_INTERN void a_complex_exp(a_complex *ctx, a_complex z)
{
a_complex_exp_(&z);
*ctx = z;
}
#endif
#if !defined A_HAVE_INLINE || defined(LIBA_COMPLEX_C)
A_EXTERN void a_complex_log(a_complex *ctx, a_complex z);
#endif
A_EXTERN void a_complex_log_(a_complex *ctx);
#if defined(A_HAVE_INLINE) || defined(LIBA_COMPLEX_C)
A_INTERN void a_complex_log(a_complex *ctx, a_complex z)
{
a_complex_log_(&z);
*ctx = z;
}
#endif
#if !defined A_HAVE_INLINE || defined(LIBA_COMPLEX_C)
A_EXTERN void a_complex_log2(a_complex *ctx, a_complex z);
#endif
A_EXTERN void a_complex_log2_(a_complex *ctx);
#if defined(A_HAVE_INLINE) || defined(LIBA_COMPLEX_C)
A_INTERN void a_complex_log2(a_complex *ctx, a_complex z)
{
a_complex_log2_(&z);
*ctx = z;
}
#endif
#if !defined A_HAVE_INLINE || defined(LIBA_COMPLEX_C)
A_EXTERN void a_complex_log10(a_complex *ctx, a_complex z);
#endif
A_EXTERN void a_complex_log10_(a_complex *ctx);
#if defined(A_HAVE_INLINE) || defined(LIBA_COMPLEX_C)
A_INTERN void a_complex_log10(a_complex *ctx, a_complex z)
{
a_complex_log10_(&z);
*ctx = z;
}
#endif
#if !defined A_HAVE_INLINE || defined(LIBA_COMPLEX_C)
A_EXTERN void a_complex_logb(a_complex *ctx, a_complex z, a_complex b);
#endif
A_EXTERN void a_complex_logb_(a_complex *ctx, a_complex b);
#if defined(A_HAVE_INLINE) || defined(LIBA_COMPLEX_C)
A_INTERN void a_complex_logb(a_complex *ctx, a_complex z, a_complex b)
{
a_complex_logb_(&z, b);
*ctx = z;
}
#endif
#if !defined A_HAVE_INLINE || defined(LIBA_COMPLEX_C)
A_EXTERN void a_complex_sin(a_complex *ctx, a_complex z);
#endif
A_EXTERN void a_complex_sin_(a_complex *ctx);
#if defined(A_HAVE_INLINE) || defined(LIBA_COMPLEX_C)
A_INTERN void a_complex_sin(a_complex *ctx, a_complex z)
{
a_complex_sin_(&z);
*ctx = z;
}
#endif
#if !defined A_HAVE_INLINE || defined(LIBA_COMPLEX_C)
A_EXTERN void a_complex_cos(a_complex *ctx, a_complex z);
#endif
A_EXTERN void a_complex_cos_(a_complex *ctx);
#if defined(A_HAVE_INLINE) || defined(LIBA_COMPLEX_C)
A_INTERN void a_complex_cos(a_complex *ctx, a_complex z)
{
a_complex_cos_(&z);
*ctx = z;
}
#endif
#if !defined A_HAVE_INLINE || defined(LIBA_COMPLEX_C)
A_EXTERN void a_complex_tan(a_complex *ctx, a_complex z);
#endif
A_EXTERN void a_complex_tan_(a_complex *ctx);
#if defined(A_HAVE_INLINE) || defined(LIBA_COMPLEX_C)
A_INTERN void a_complex_tan(a_complex *ctx, a_complex z)
{
a_complex_tan_(&z);
*ctx = z;
}
#endif
#if !defined A_HAVE_INLINE || defined(LIBA_COMPLEX_C)
A_EXTERN void a_complex_sec(a_complex *ctx, a_complex z);
#endif
A_EXTERN void a_complex_sec_(a_complex *ctx);
#if defined(A_HAVE_INLINE) || defined(LIBA_COMPLEX_C)
A_INTERN void a_complex_sec(a_complex *ctx, a_complex z)
{
a_complex_sec_(&z);
*ctx = z;
}
#endif
#if !defined A_HAVE_INLINE || defined(LIBA_COMPLEX_C)
A_EXTERN void a_complex_csc(a_complex *ctx, a_complex z);
#endif
A_EXTERN void a_complex_csc_(a_complex *ctx);
#if defined(A_HAVE_INLINE) || defined(LIBA_COMPLEX_C)
A_INTERN void a_complex_csc(a_complex *ctx, a_complex z)
{
a_complex_csc_(&z);
*ctx = z;
}
#endif
#if !defined A_HAVE_INLINE || defined(LIBA_COMPLEX_C)
A_EXTERN void a_complex_cot(a_complex *ctx, a_complex z);
#endif
A_EXTERN void a_complex_cot_(a_complex *ctx);
#if defined(A_HAVE_INLINE) || defined(LIBA_COMPLEX_C)
A_INTERN void a_complex_cot(a_complex *ctx, a_complex z)
{
a_complex_cot_(&z);
*ctx = z;
}
#endif
#if !defined A_HAVE_INLINE || defined(LIBA_COMPLEX_C)
A_EXTERN void a_complex_asin(a_complex *ctx, a_complex z);
#endif
A_EXTERN void a_complex_asin_(a_complex *ctx);
A_EXTERN void a_complex_asin_real(a_complex *ctx, a_float x);
#if defined(A_HAVE_INLINE) || defined(LIBA_COMPLEX_C)
A_INTERN void a_complex_asin(a_complex *ctx, a_complex z)
{
a_complex_asin_(&z);
*ctx = z;
}
#endif
#if !defined A_HAVE_INLINE || defined(LIBA_COMPLEX_C)
A_EXTERN void a_complex_acos(a_complex *ctx, a_complex z);
#endif
A_EXTERN void a_complex_acos_(a_complex *ctx);
A_EXTERN void a_complex_acos_real(a_complex *ctx, a_float x);
#if defined(A_HAVE_INLINE) || defined(LIBA_COMPLEX_C)
A_INTERN void a_complex_acos(a_complex *ctx, a_complex z)
{
a_complex_acos_(&z);
*ctx = z;
}
#endif
#if !defined A_HAVE_INLINE || defined(LIBA_COMPLEX_C)
A_EXTERN void a_complex_atan(a_complex *ctx, a_complex z);
#endif
A_EXTERN void a_complex_atan_(a_complex *ctx);
#if defined(A_HAVE_INLINE) || defined(LIBA_COMPLEX_C)
A_INTERN void a_complex_atan(a_complex *ctx, a_complex z)
{
a_complex_atan_(&z);
*ctx = z;
}
#endif
#if !defined A_HAVE_INLINE || defined(LIBA_COMPLEX_C)
A_EXTERN void a_complex_asec(a_complex *ctx, a_complex z);
#endif
A_EXTERN void a_complex_asec_(a_complex *ctx);
A_EXTERN void a_complex_asec_real(a_complex *ctx, a_float x);
#if defined(A_HAVE_INLINE) || defined(LIBA_COMPLEX_C)
A_INTERN void a_complex_asec(a_complex *ctx, a_complex z)
{
a_complex_asec_(&z);
*ctx = z;
}
#endif
#if !defined A_HAVE_INLINE || defined(LIBA_COMPLEX_C)
A_EXTERN void a_complex_acsc(a_complex *ctx, a_complex z);
#endif
A_EXTERN void a_complex_acsc_(a_complex *ctx);
A_EXTERN void a_complex_acsc_real(a_complex *ctx, a_float x);
#if defined(A_HAVE_INLINE) || defined(LIBA_COMPLEX_C)
A_INTERN void a_complex_acsc(a_complex *ctx, a_complex z)
{
a_complex_acsc_(&z);
*ctx = z;
}
#endif
#if !defined A_HAVE_INLINE || defined(LIBA_COMPLEX_C)
A_EXTERN void a_complex_acot(a_complex *ctx, a_complex z);
#endif
A_EXTERN void a_complex_acot_(a_complex *ctx);
#if defined(A_HAVE_INLINE) || defined(LIBA_COMPLEX_C)
A_INTERN void a_complex_acot(a_complex *ctx, a_complex z)
{
a_complex_acot_(&z);
*ctx = z;
}
#endif
#if !defined A_HAVE_INLINE || defined(LIBA_COMPLEX_C)
A_EXTERN void a_complex_sinh(a_complex *ctx, a_complex z);
#endif
A_EXTERN void a_complex_sinh_(a_complex *ctx);
#if defined(A_HAVE_INLINE) || defined(LIBA_COMPLEX_C)
A_INTERN void a_complex_sinh(a_complex *ctx, a_complex z)
{
a_complex_sinh_(&z);
*ctx = z;
}
#endif
#if !defined A_HAVE_INLINE || defined(LIBA_COMPLEX_C)
A_EXTERN void a_complex_cosh(a_complex *ctx, a_complex z);
#endif
A_EXTERN void a_complex_cosh_(a_complex *ctx);
#if defined(A_HAVE_INLINE) || defined(LIBA_COMPLEX_C)
A_INTERN void a_complex_cosh(a_complex *ctx, a_complex z)
{
a_complex_cosh_(&z);
*ctx = z;
}
#endif
#if !defined A_HAVE_INLINE || defined(LIBA_COMPLEX_C)
A_EXTERN void a_complex_tanh(a_complex *ctx, a_complex z);
#endif
A_EXTERN void a_complex_tanh_(a_complex *ctx);
#if defined(A_HAVE_INLINE) || defined(LIBA_COMPLEX_C)
A_INTERN void a_complex_tanh(a_complex *ctx, a_complex z)
{
a_complex_tanh_(&z);
*ctx = z;
}
#endif
#if !defined A_HAVE_INLINE || defined(LIBA_COMPLEX_C)
A_EXTERN void a_complex_sech(a_complex *ctx, a_complex z);
#endif
A_EXTERN void a_complex_sech_(a_complex *ctx);
#if defined(A_HAVE_INLINE) || defined(LIBA_COMPLEX_C)
A_INTERN void a_complex_sech(a_complex *ctx, a_complex z)
{
a_complex_sech_(&z);
*ctx = z;
}
#endif
#if !defined A_HAVE_INLINE || defined(LIBA_COMPLEX_C)
A_EXTERN void a_complex_csch(a_complex *ctx, a_complex z);
#endif
A_EXTERN void a_complex_csch_(a_complex *ctx);
#if defined(A_HAVE_INLINE) || defined(LIBA_COMPLEX_C)
A_INTERN void a_complex_csch(a_complex *ctx, a_complex z)
{
a_complex_csch_(&z);
*ctx = z;
}
#endif
#if !defined A_HAVE_INLINE || defined(LIBA_COMPLEX_C)
A_EXTERN void a_complex_coth(a_complex *ctx, a_complex z);
#endif
A_EXTERN void a_complex_coth_(a_complex *ctx);
#if defined(A_HAVE_INLINE) || defined(LIBA_COMPLEX_C)
A_INTERN void a_complex_coth(a_complex *ctx, a_complex z)
{
a_complex_coth_(&z);
*ctx = z;
}
#endif
#if !defined A_HAVE_INLINE || defined(LIBA_COMPLEX_C)
A_EXTERN void a_complex_asinh(a_complex *ctx, a_complex z);
#endif
A_EXTERN void a_complex_asinh_(a_complex *ctx);
#if defined(A_HAVE_INLINE) || defined(LIBA_COMPLEX_C)
A_INTERN void a_complex_asinh(a_complex *ctx, a_complex z)
{
a_complex_asinh_(&z);
*ctx = z;
}
#endif
#if !defined A_HAVE_INLINE || defined(LIBA_COMPLEX_C)
A_EXTERN void a_complex_acosh(a_complex *ctx, a_complex z);
#endif
A_EXTERN void a_complex_acosh_(a_complex *ctx);
A_EXTERN void a_complex_acosh_real(a_complex *ctx, a_float x);
#if defined(A_HAVE_INLINE) || defined(LIBA_COMPLEX_C)
A_INTERN void a_complex_acosh(a_complex *ctx, a_complex z)
{
a_complex_acosh_(&z);
*ctx = z;
}
#endif
#if !defined A_HAVE_INLINE || defined(LIBA_COMPLEX_C)
A_EXTERN void a_complex_atanh(a_complex *ctx, a_complex z);
#endif
A_EXTERN void a_complex_atanh_(a_complex *ctx);
A_EXTERN void a_complex_atanh_real(a_complex *ctx, a_float x);
#if defined(A_HAVE_INLINE) || defined(LIBA_COMPLEX_C)
A_INTERN void a_complex_atanh(a_complex *ctx, a_complex z)
{
a_complex_atanh_(&z);
*ctx = z;
}
#endif
#if !defined A_HAVE_INLINE || defined(LIBA_COMPLEX_C)
A_EXTERN void a_complex_asech(a_complex *ctx, a_complex z);
#endif
A_EXTERN void a_complex_asech_(a_complex *ctx);
#if defined(A_HAVE_INLINE) || defined(LIBA_COMPLEX_C)
A_INTERN void a_complex_asech(a_complex *ctx, a_complex z)
{
a_complex_asech_(&z);
*ctx = z;
}
#endif
#if !defined A_HAVE_INLINE || defined(LIBA_COMPLEX_C)
A_EXTERN void a_complex_acsch(a_complex *ctx, a_complex z);
#endif
A_EXTERN void a_complex_acsch_(a_complex *ctx);
#if defined(A_HAVE_INLINE) || defined(LIBA_COMPLEX_C)
A_INTERN void a_complex_acsch(a_complex *ctx, a_complex z)
{
a_complex_acsch_(&z);
*ctx = z;
}
#endif
#if !defined A_HAVE_INLINE || defined(LIBA_COMPLEX_C)
A_EXTERN void a_complex_acoth(a_complex *ctx, a_complex z);
#endif
A_EXTERN void a_complex_acoth_(a_complex *ctx);
#if defined(A_HAVE_INLINE) || defined(LIBA_COMPLEX_C)
A_INTERN void a_complex_acoth(a_complex *ctx, a_complex z)
{
a_complex_acoth_(&z);
*ctx = z;
}
#endif
#if defined(LIBA_COMPLEX_C)
#undef A_INTERN
#define A_INTERN static A_INLINE
#endif
#if defined(__cplusplus)
}
#endif
#endif