Node:Primitive Numerics, Next:, Previous:Scientific, Up:Numbers



21.2.13 Primitive Numeric Functions

Many of Guile's numeric procedures which accept any kind of numbers as arguments, including complex numbers, are implemented as Scheme procedures that use the following real number-based primitives. These primitives signal an error if they are called with complex arguments.

$abs x Scheme Procedure
Return the absolute value of x.

$sqrt x Scheme Procedure
Return the square root of x.

$expt x y Scheme Procedure
scm_sys_expt (x, y) C Function
Return x raised to the power of y. This procedure does not accept complex arguments.

$sin x Scheme Procedure
Return the sine of x.

$cos x Scheme Procedure
Return the cosine of x.

$tan x Scheme Procedure
Return the tangent of x.

$asin x Scheme Procedure
Return the arcsine of x.

$acos x Scheme Procedure
Return the arccosine of x.

$atan x Scheme Procedure
Return the arctangent of x in the range -PI/2 to PI/2.

$atan2 x y Scheme Procedure
scm_sys_atan2 (x, y) C Function
Return the arc tangent of the two arguments x and y. This is similar to calculating the arc tangent of x / y, except that the signs of both arguments are used to determine the quadrant of the result. This procedure does not accept complex arguments.

$exp x Scheme Procedure
Return e to the power of x, where e is the base of natural logarithms (2.71828...).

$log x Scheme Procedure
Return the natural logarithm of x.

$sinh x Scheme Procedure
Return the hyperbolic sine of x.

$cosh x Scheme Procedure
Return the hyperbolic cosine of x.

$tanh x Scheme Procedure
Return the hyperbolic tangent of x.

$asinh x Scheme Procedure
Return the hyperbolic arcsine of x.

$acosh x Scheme Procedure
Return the hyperbolic arccosine of x.

$atanh x Scheme Procedure
Return the hyperbolic arctangent of x.

For the hyperbolic arc-functions, the Guile library exports C functions corresponding to these Scheme procedures, but taking and returning arguments of type double rather than the usual SCM.

double scm_asinh (double x) C Function
double scm_acosh (double x) C Function
double scm_atanh (double x) C Function
Return the hyperbolic arcsine, arccosine or arctangent of x respectively.

For all the other Scheme procedures above, except expt and atan2 (whose entries specifically mention an equivalent C function), the equivalent C functions are those provided by the standard mathematics library. The mapping is as follows.

Scheme Procedure C Function
$abs fabs
$sqrt sqrt
$sin sin
$cos cos
$tan tan
$asin asin
$acos acos
$atan atan
$exp exp
$log log
$sinh sinh
$cosh cosh
$tanh tanh

Naturally, these C functions expect and return double arguments.