fp-utils

  1. fp-utils
  2. Documentation
    1. float Computations
      1. Usage
      2. fpsummation
      3. fprandom
      4. fpmodulo
      5. fpquotient
      6. fpremainder
      7. fptruncate-with-precision
      8. fpround-with-precision
      9. fpceiling-with-precision
      10. fpfloor-with-precision
      11. fpmax-and-min
      12. fpdistance
      13. fpdistance*
      14. fp~=
      15. fp~<=
      16. fp~>=
    2. float Inlines
      1. Usage
      2. fpzero?
      3. fppositive?
      4. fpcardinal?
      5. fpnegative?
      6. fpeven?
      7. fpodd?
      8. fpclosed-right?
      9. fpclosedr?
      10. fpclosed?
      11. fpclosed-left?
      12. fpclosedl?
      13. fpadd1
      14. fpsub1
      15. fpfraction
      16. fpsqr
      17. fpcub
      18. fpavg
      19. fp%
      20. fplog2
      21. fplog10
      22. fpdegree->radian
      23. fpradian->degree
      24. fpprecision-factor
      25. fpprecision-epsilon
  3. Author
  4. Repository
  5. Version history
  6. License

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) -> float

Returns sum of NUMS via Kahan Summation Formula.

NUMS
(list-of float).

fprandom

[procedure] (fprandom [N]) -> float

Returns float in [0 1).

N
fixnum or float limit.

fpmodulo

[procedure] (fpmodulo N1 N2) -> float

fpquotient

[procedure] (fpquotient N1 N2) -> float

fpremainder

[procedure] (fpremainder N1 N2) -> float

fptruncate-with-precision

[procedure] (fptruncate-with-precision N [P 4]) -> float

fpround-with-precision

[procedure] (fpround-with-precision N [P 4]) -> float

fpceiling-with-precision

[procedure] (fpceiling-with-precision N [P 4]) -> float

fpfloor-with-precision

[procedure] (fpfloor-with-precision N [P 4]) -> float

fpmax-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) -> float

Pythagorean distance between the points X1 Y1 and X2 Y2.

fpdistance*

[procedure] (fpdistance* X1 Y1 X2 Y2) -> float

Pythagorean distance, inaccurate but useful for relative comparisons.

fp~=

[procedure] (fp~= N1 N2 [EPS float-epsilon]) -> float

Compare floating-point values N1 and N2 within some float epsilon EPS.

fp~<=

[procedure] (fp~<= N) -> boolean

fp~>=

[procedure] (fp~>= N) -> boolean

float 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) -> boolean

fppositive?

[procedure] (fppositive? N) -> boolean

Note that -0.0 is not positive, due to (fl<? -0.0 0.0).

fpcardinal?

[procedure] (fpcardinal? N) -> boolean

Note that -0.0 is not cardinal, due to (fl<? -0.0 0.0).

fpnegative?

[procedure] (fpnegative? N) -> boolean

Note that -0.0 is not negative, due to (fl<? -0.0 0.0).

fpeven?

[procedure] (fpeven? N) -> boolean

fpodd?

[procedure] (fpodd? N) -> boolean

fpclosed-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) -> boolean

N, 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) -> float

fpsub1

[procedure] (fpsub1 N) -> float

fpfraction

[procedure] (fpfraction N) -> float

fpsqr

[procedure] (fpsqr N) -> float

fpcub

[procedure] (fpcub N) -> float

fpavg

[procedure] (fpavg N1 N2) -> float

fp%

[procedure] (fp% N1 P) -> float

: P ; (or float fixnum) ; percentage

fplog2

[procedure] (fplog2 N) -> float

fplog10

[procedure] (fplog10 N) -> float

fpdegree->radian

[procedure] (fpdegree->radian N) -> float

fpradian->degree

[procedure] (fpradian->degree N) -> float

fpprecision-factor

[procedure] (fpprecision-factor P [BASE 10.0]) -> float

Returns factor for P decimal digits precision.

: P ; (or float fixnum) ; precision

fpprecision-epsilon

[procedure] (fpprecision-epsilon P [BASE 10.0]) -> float

Returns inverse factor for P decimal digits precision.

: P ; (or float fixnum) ; precision

Author

Kon Lovett

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.2.1
.
4.2.0
Added {{}}.
4.1.0
Added {{}}.
4.0.0
C5 port.

License

This code is in the public domain.