You are looking at historical revision 41113 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. Please refer to your documentation for <math.h> for a description of the various calls.
Math Functions
: O ; fixnum. : P2 ; integer. : N, M, N1, N2 ; float.
Usage
(import "mathh")
bessel-j0
bessel-j1
bessel-jn
bessel-jn
bessel-y0
bessel-y1
bessel-yn
[procedure] (bessel-j0 N) --> float[procedure] (bessel-j1 N) --> float
[procedure] (bessel-jn O N) --> float
[procedure] (bessel-y0 N) --> float
[procedure] (bessel-y1 N) --> float
[procedure] (bessel-yn O N) --> float
cosh
[procedure] (cosh N) --> floatsinh
[procedure] (sinh N) --> floattanh
[procedure] (tanh N) --> floatacosh
[procedure] (acosh N) --> floatasinh
[procedure] (asinh N) --> floatatanh
[procedure] (atanh N) --> floathypot
[procedure] (hypot N1 N2) --> floatgamma
[procedure] (gamma N) --> floatlgamma
[procedure] (lgamma N) --> floaterf
[procedure] (erf N) --> floaterfc
[procedure] (erfc N) --> floatlog10
[procedure] (log10 N) --> floatlog2
[procedure] (log2 N) --> floatlog1p
[procedure] (log1p N) --> floatlog-with-base
log/base
[procedure] (log-with-base N) --> (float --> float)[procedure] (log/base N) --> (float --> float)
Returns a function for the logarithm of base N.
ldexp
[procedure] (ldexp N P2) --> floatscalbn
[procedure] (scalbn N P2) --> floatcbrt
[procedure] (cbrt N) --> floatnextafter
[procedure] (nextafter N M) --> floatReturns the next N in the direction of M.
fpmod
[procedure] (fpmod N M) --> floatReturns the modulus of N for M.
modf
modf*
[procedure] (modf N) --> float float[procedure] (modf* N) --> integer float
Returns two values, the integral and fractional components of N.
frexp
[procedure] (frexp N) --> float floatReturns two values, the fraction and the exponent components of N.
signbit
[procedure] (signbit N) --> booleanReturns #t when negative, #f otherwise.
copysign
[procedure] (copysign N M) --> floatReturns N with same sign as M.
fpclassify
[procedure] (fpclassify N) --> symbolReturns a symbol denoting the floating-point kind of N.
- infinite
- nan
- normal
- subnormal
- zero
- unclassified
fpclass
[procedure] (fpclass N) --> symbolReturns a symbol denoting the floating-point kind of N.
- positive-infinite
- negative-infinite
- quiet-nan
- signaling-nan
- positive-normal
- negative-normal
- positive-subnormal
- negative-subnormal
- positive-zero
- negative-zero
- unclassified
Math Constants (Module)
Usage
(import mathh-consts)
Constants
These are all float.
- 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)
Math Constants (Include)
Common constants, using 'define-constant'. As such they must be textually included.
Usage
(include "mathh-constants")
Constants
- 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)
Miscellaneous Math Functions
Note that unlike mathh the domain & range are number, not float.
Usage
(include "misc-math-utils")
- Common arguments
: N[#] : number
fibonacci*
[procedure] (fibonacci* N) --> numberReturns an approximate fibonacci for N.
binomial
[procedure] (binomial N1 N2) --> numbercross-ratio
[procedure] (cross-ratio N1 N2 N3 N4) --> numbersquare
sqr
[procedure] (square N) --> number[procedure] (sqr N) --> number
cube
[procedure] (cube N) --> numberaverage
avg
[procedure] (average N1 N2) --> number[procedure] (avg N1 N2) --> number
least-squares
[procedure] (least-squares PNTS) --> number numberReturns M & B.
: PNTS ; (list-of (pair number number))
trapezoid
[procedure] (trapezoid F N1 N2) --> (integer --> number): F ; (number -> number) ;
big-pi
[procedure] (big-pi F N1 N2) --> number: F ; (number -> number) ;
big-sigma
[procedure] (big-sigma F N1 N2) --> number: F ; (number -> number) ;
factorial
factorial-
factorial+
[procedure] (factorial N) --> number[procedure] (factorial- N1 FALL) --> number
[procedure] (factorial+ N1 RISE) --> number
: FALL : number ; falling factorial : RISE : number ; rising factorial
harmonic
[procedure] (harmonic N) --> numberNotes
- Some library calls that are not supplied by the platform have rough implementations supplied. See Bugs and Limitations.
- The general naming convention is to use the C library call name as the Scheme name. But there are exceptions:
- fmod
- fpmod
- j0
- bessel-j0 (Prefixed to distinguish the names from common variables)
- j1
- bessel-j1
- jn
- bessel-jn
- y0
- bessel-y0
- y1
- bessel-y1
- yn
- bessel-yn
Bugs and Limitations
- The fpclass quiet-nan is only distinguished on Windows.
Author
Repository
This egg is hosted on the CHICKEN Subversion repository:
https://anonymous@code.call-cc.org/svn/chicken-eggs/release/5/mathh
If you want to check out the source code repository of this egg and you are not familiar with Subversion, see this page.
Version history
- 4.3.0
- Remove Windows restrictions (C2 era), assume BSD has tgamma.
- 4.2.3
- .
- 4.2.2
- .
- 4.2.1
- .
- 4.2.0
- Add modf*.
- 4.0.0
- CHICKEN 5 release.
License
This code is in the public domain.