You are looking at historical revision 14119 of this page. It may differ significantly from its current revision.

mathh

Documentation

Provides access to ISO C math functions in <math.h> that are not defined by the Chicken core.

Floating-point Functions

The following procedures are provided, with their usual meaning:

N, N1, N2 are double.

O, P2} are {{integer.

bessel-j0

bessel-j1

bessel-jn

bessel-jn

bessel-y0

bessel-y1

bessel-yn

[procedure] (bessel-j0 N) => NUMBER
[procedure] (bessel-j1 N) => NUMBER
[procedure] (bessel-jn O N) => NUMBER
[procedure] (bessel-y0 N) => NUMBER
[procedure] (bessel-y1 N) => NUMBER
[procedure] (bessel-yn O N) => NUMBER

The Bessel functions are prefixed by 'bessel-' to distinguish the names from common variables.

cosh

sinh

tanh

hypot

[procedure] (cosh N) => NUMBER
[procedure] (sinh N) => NUMBER
[procedure] (tanh N) => NUMBER
[procedure] (hypot N1 N2) => NUMBER

gamma

lgamma

[procedure] (gamma N) => NUMBER
[procedure] (lgamma N) => NUMBER

gamma and lgamma are unavailable on Windows.

log10

log2

log1p

[procedure] (log10 N) => NUMBER
[procedure] (log2 N) => NUMBER
[procedure] (log1p N) => NUMBER

log1p is potentially inaccurate on Windows.

ldexp

scalbn

[procedure] (ldexp N P2) => NUMBER
[procedure] (scalbn N P2) => NUMBER

scalbn is inefficient on Windows.

make-log/base

[procedure] (make-log/base BASE) => PROCEDURE/1-NUMBER

Returns a procedure of one argument, the logarithm function for BASE.

BASE is a number.

cbrt

[procedure] (cbrt N) => NUMBER

Returns the cube root of N.

N is double.

nextafter

[procedure] (nextafter N M) => NUMBER

Returns the next number N in the direction of M.

N and M are double.

fpmod

[procedure] (fpmod N M) => NUMBER

Returns the modulus of N for M.

N and M are double.

modf

[procedure] (modf N) => (values NUMBER NUMBER)

Returns two values, the integral and fractional components of N.

N is double.

frexp

[procedure] (frexp N) => (values NUMBER NUMBER)

Returns two values, the fraction and the exponent components of N.

N is double.

signbit

[procedure] (signbit N) => NUMBER

Returns #t when negative, #f otherwise.

N is double.

copysign

[procedure] (copysign N M) => NUMBER

Returns N with same sign as M.

N and M are double.

Float Classification

(procedure (fpclassify N))

Returns a symbol denoting the floating-point kind of N.

N is double.

infinite
nan
normal
subnormal
zero
unclassified

(procedure (fpclass N))

Returns a symbol denoting the floating-point kind of N.

N is double.

positive-infinite
negative-infinite
quiet-nan
signaling-nan
positive-normal
negative-normal
positive-subnormal
negative-subnormal
positive-zero
negative-zero
unclassified

Math Constants

Common constants, using 'define-constant'. As such they must be textually included.

E
e
1/E
1/e
E^2
e^2
E^PI/4
e^(pi/4)
LOG2E
log2(e)
LOG10E
log10(e)
LN2
log(2)
LN3
ln(3)
LNPI
ln(pi)
LN10
log(10)
1/LN2
1/ln(2)
1/LN10
1/ln(10)
PI
pi
PI/2
pi/2
PI/4
pi/4
1/PI
1/pi
2/PI
2/pi
2/SQRTPI
2/sqrt(pi)
SQRTPI
sqrt(pi)
PI^2
pi^2
DEGREE
pi/180
SQRT2
sqrt(2)
1/SQRT2
1/sqrt(2)
SQRT3
sqrt(3)
SQRT5
sqrt(5)
SQRT10
sqrt(10)
CUBERT2
cubert(2)
CUBERT3
cubert(3)
4THRT2
fourthrt(2)
GAMMA1/2
gamma(1/2)
GAMMA1/3
gamma(1/3)
GAMMA2/3
gamma(2/3)
PHI
phi
LNPHI
ln(phi)
1/LNPHI
1/ln(phi)
EULER
euler
E^EULER
e^euler
SIN1
sin(1)
COS1
cos(1)
ZETA3
theta(3

Usage

Math functions

(require-library mathh)
(import mathh)

or

(require-extension mathh)

Math constants

(include mathh-constants)

Examples

Notes

Requirements

Bugs and Limitations

Author

kon lovett and john cowan

Version history

2.1.0
Added 'signbit', 'copysign', 'nextafter' and 'cbrt'.
2.0.0
Chicken 4 release. fpclass and fpclassify are now part of the mathh extension.

License

This code is in the public domain.