fp-utils
Documentation
Additional float routines.
float Computations
Usage
(import fp-utils)
N N1 ... X1 ... Y1 ... below are float.
P is the precision in decimal digits, an integer.
fpsummation
[procedure] (fpsummation NUMS) -> floatReturns sum of NUMS via Kahan Summation Formula.
- NUMS
- (list-of float).
fprandom
[procedure] (fprandom [N]) -> floatReturns float in [0 1).
- N
- fixnum or float limit.
fpmodulo
[procedure] (fpmodulo N1 N2) -> floatfpquotient
[procedure] (fpquotient N1 N2) -> floatfpremainder
[procedure] (fpremainder N1 N2) -> floatfptruncate-with-precision
[procedure] (fptruncate-with-precision N [P 4]) -> floatfpround-with-precision
[procedure] (fpround-with-precision N [P 4]) -> floatfpceiling-with-precision
[procedure] (fpceiling-with-precision N [P 4]) -> floatfpfloor-with-precision
[procedure] (fpfloor-with-precision N [P 4]) -> floatfpmax-and-min
[procedure] (fpmax-and-min N ...) -> (values float float)Returns the maximum & minimum values for the floats N ....
fpdistance
[procedure] (fpdistance X1 Y1 X2 Y2) -> floatPythagorean distance between the points X1 Y1 and X2 Y2.
fpdistance*
[procedure] (fpdistance* X1 Y1 X2 Y2) -> floatPythagorean distance, inaccurate but useful for relative comparisons.
fp~=
[procedure] (fp~= N1 N2 [EPS float-epsilon]) -> floatCompare floating-point values N1 and N2 within some float epsilon EPS.
fp~<=
[procedure] (fp~<= N) -> booleanfp~>=
[procedure] (fp~>= N) -> booleanfloat Inlines
Usage
(import fp-inlines)
N N1 ... X1 ... Y1 ... below are float.
P is the precision in decimal digits, an integer.
fpzero?
[procedure] (fpzero? N) -> booleanfppositive?
[procedure] (fppositive? N) -> booleanNote that -0.0 is not positive, due to (fl<? -0.0 0.0).
fpcardinal?
[procedure] (fpcardinal? N) -> booleanNote that -0.0 is not cardinal, due to (fl<? -0.0 0.0).
fpnegative?
[procedure] (fpnegative? N) -> booleanNote that -0.0 is not negative, due to (fl<? -0.0 0.0).
fpeven?
[procedure] (fpeven? N) -> booleanfpodd?
[procedure] (fpodd? N) -> booleanfpclosed-right?
fpclosedr?
[procedure] (fpclosed-right? L N H) -> boolean[procedure] (fpclosedr? L N H) -> boolean
Returns N in (L .. H].
N, L & H are float low & high limits.
fpclosed?
Returns N in [L .. H].
[procedure] (fpclosed? L N H) -> booleanN, L & H are float low & high limits.
fpclosed-left?
fpclosedl?
Returns N in [L .. H).
[procedure] (fpclosed-left? L N H) -> boolean[procedure] (fpclosedl? L N H) -> boolean
N, L & H are float low & high limits.
fpadd1
[procedure] (fpadd1 N) -> floatfpsub1
[procedure] (fpsub1 N) -> floatfpfraction
[procedure] (fpfraction N) -> floatfpsqr
[procedure] (fpsqr N) -> floatfpcub
[procedure] (fpcub N) -> floatfpavg
[procedure] (fpavg N1 N2) -> floatfp%
[procedure] (fp% N1 P) -> float: P ; (or float fixnum) ; percentage
fplog2
[procedure] (fplog2 N) -> floatfplog10
[procedure] (fplog10 N) -> floatfpdegree->radian
[procedure] (fpdegree->radian N) -> floatfpradian->degree
[procedure] (fpradian->degree N) -> floatfpprecision-factor
[procedure] (fpprecision-factor P [BASE 10.0]) -> floatReturns factor for P decimal digits precision.
: P ; (or float fixnum) ; precision
fpprecision-epsilon
[procedure] (fpprecision-epsilon P [BASE 10.0]) -> floatReturns inverse factor for P decimal digits precision.
: P ; (or float fixnum) ; precision
Author
Repository
This egg is hosted on the CHICKEN Subversion repository:
https://anonymous@code.call-cc.org/svn/chicken-eggs/release/5/fp-utils
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.0.0
- C5 port.
License
This code is in the public domain.