complex(3) — Subroutines
NAME
csin, ccos, cdiv, cexp, clog, cmul, cpow, csqrt − Complex functions
LIBRARY
Math Library (libm.a)
SYNOPSIS
#include <math.h>
double_complex csin(double x, double y);
float_complex csinf(float x, float y);
double_complex ccos(double x, double y);
float_complex ccosf(float x, float y);
double_complex cdiv(double a, double b, double c, double d);
float_complex cdivf(float a, float b, float c, float d);
double_complex cexp(double x, double y);
float_complex cexpf(float x, float y);
double_complex clog(double x, double y);
float_complex clogf(float x, float y);
double_complex cmul(double a, double b, double c, double d);
float_complex cmulf(float a, float b, float c, float d);
double_complex cpow(double a, double b, double c, double d);
float_complex cpowf(float a, float b, float c, float d);
double_complex csqrt(double x, double y);
float_complex csqrtf(float x, float y);
DESCRIPTION
These functions can only be called from languages that support the double_complex and float_complex data types.
csin() and csinf() compute the sine of a complex number.
ccos() and ccosf() return the cosine of a complex number.
cdiv() and cdivf() return the quotient of two complex numbers: (a+ib)/(c+id).
cexp() and cexpf() return the exponential of a complex number.
clog() and clogf() return the natural logarithm of a complex number.
cmul() and cmulf() return the product of two complex numbers. cmul(a,b,c,d) is equivalent to (a + ib) ∗ (c + id).
cpow() and cpowf() raise a complex base (a + ib) to a complex exponent (c + id). cpow(a,b,c,d) is equivalent to e∗∗((c + id) ln(a + ib)).
csqrt() and csqrtf() compute the square root of a complex number, x + iy. The real part of csqrt is greater than or equal to zero.
| Function | Exceptional Argument | Routine Behavior |
| csin(), csinf() | |y| = infinity | invalid argument |
| csin(), csinf() | (sinh x sin y) > max_float | overflow |
| csin(), csinf() | (cosh x cos y) > max_float | overflow |
| ccos(), ccosf() | |y| = infinity | invalid argument |
| ccos(), ccosf() | (sin x sinh y) > max_float | overflow |
| ccos(), ccosf() | (cos x cosh y) > max_float | overflow |
| cdiv(), cdivf() | c=0 and d=0 | divide by zero |
| cdiv(), cdivf() | a=b=c=d=0 | invalid argument |
| cexp(), cexpf() | |y| = infinity | invalid argument |
| cexp(), cexpf() | |e∗∗x cos y| > max_float | overflow |
| cexp(), cexpf() | |e∗∗x sin y| > max_float | overflow |
| cexp(), cexpf() | |e∗∗x cos y| < min_float | underflow |
| cexp(), cexpf() | |e∗∗x sin y| < min_float | underflow |
| clog(), clogf() | y=0 and x=0 | invalid argument |
| clog(), clogf() | |x| = |y| = infinity | invalid argument |
| cpow(), cpowf() | sqrt(a∗∗2 + b∗∗2) > max_float | overflow |
| cpow(), cpowf() | c/2 ∗ ln(a∗∗2 + b∗∗2) > max_float | overflow |
| cpow(), cpowf() | c/2 ∗ ln(a∗∗2 + b∗∗2) | overflow |
| − (d ∗ atan2(b,c)) > max_float |
| Value | Data | Hexadecimal Value | Decimal Value |
| Name | Type | ||
| max_float | F_FLOAT | FFFF7FFF | 1.701411e38 |
| G_FLOAT | FFFFFFFFFFFF7FFF | 8.988465674311579e307 | |
| S_FLOAT | 7F7FFFFF | 3.402823e38 | |
| T_FLOAT | 7FEFFFFFFFFFFFFF | 1.797693134862316e308 | |
| min_float | F_FLOAT | 00000080 | 2.9387359e-39 |
| G_FLOAT | 0000000000000010 | 5.562684646268003e-309 | |
| S_FLOAT | 00000001 | 1.4012985e-45 | |
| T_FLOAT | 0000000000000001 | 4.940656458412465e-324 |