Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

cabs(3)

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

RELATED INFORMATION

cabs(3)

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026