You are looking at historical revision 43188 of this page. It may differ significantly from its current revision.
math-utils
Documentation
Miscellaneous Math Functions
Usage
(import math-utils)
number->sign
[procedure] (number->sign N) -> fixnumReturns -1, 0, or +1 to represent the sign of the number N.
log-with-base
log/base
[procedure] (log-with-base B) -> (real -> real)[procedure] (log/base B) -> (real -> real)
Returns a function for the base B logarithm.
coprime?
*coprime?
[procedure] (coprime? M N) -> boolean[procedure] (*coprime? M N) -> boolean
Are the integers M > N coprime?
*coprime? assumes the assertion, whereas coprime? will ensure.
(import (only (srfi 1) filter iota)) (import (only (misc-math-utils *coprime?)) (define (coprimes n #!optional (cnt (- n 1))) (filter (cut *coprime? n <>) (iota cnt 1 (quotient n cnt))) )
simple-interest
[procedure] (simple-interest RATE TIME [PRIN]) -> numberThe accumulation function, the principle is assumed 1. Returns the simple interest for the RATE over TIME.
- RATE ; number ; interest rate
- TIME ; number ; time period to cover
- PRIN ; number ; principle, default 1
compound-interest
[procedure] (compound-interest RATE FREQ TIME [PRIN]) -> numberThe accumulation function, the principle is assumed 1. Returns the compound interest for the RATE, applied with FREQ, over TIME.
- RATE ; number ; interest rate
- FREQ ; number ; compounding frequency
- TIME ; number ; time period to cover
- PRIN ; number ; principle, default 1
(compound-interest 0.043 4 6 1500) ;=> 1938.84 ;rounded to 2 places
fibonacci
[procedure] (fibonacci N) -> numberReturns fibonacci of N.
fibonacci*
[procedure] (fibonacci* N) -> numberReturns an approximate fibonacci of N.
binomial
[procedure] (binomial N1 N2) -> integerReturns the Binomial in N1 to N2.
: N1 ; integer ; : N2 ; integer ;
cross-ratio
[procedure] (cross-ratio N1 N2 N3 N4) -> numberReturns the Cross-ratio of N1, N2 and N3, N4.
: N1 ; number ; : N2 ; number ; : N3 ; number ; : N4 ; number ;
square
[procedure] (square N) -> numbercube
[procedure] (cube N) -> numberaverage
[procedure] (average N1 N2 ...) -> number[procedure] (average NUMS) -> number
: N1 ; number ; : N1 ; number ;
: NUMS ; (list-of number) ;
least-squares
[procedure] (least-squares PNTS) -> number numberReturns b & e such that y ~= b * x + e.
: PNTS ; (list-of (pair number number)) ; list of x,y pairs
trapezoid
[procedure] (trapezoid F N1 N2) -> (fixnum -> number)Returns a function to calculate the area under F between N1 & N2 using the Trapezoid Rule. The function takes the number of estimations as an argument, larger for a "better" result.
: F ; (number -> number) ; : N1 ; number ; : N2 ; number ;
factorial
factorial-
factorial+
[procedure] (factorial N) -> number[procedure] (factorial- N1 FALL) -> number
[procedure] (factorial+ N1 RISE) -> number
: N ; integer ; : FALL : number ; falling factorial : RISE : number ; rising factorial
harmonic
[procedure] (harmonic N) -> numberResult of Harmonic series expansion to N terms.
: N ; integer ;
big-pi
[syntax] (big-pi F N1 N2) -> numberProduct of F in N1 to N2.
: F ; (number -> number) ; : N1 ; number ; : N2 ; number ;
big-sigma
[syntax] (big-sigma F N1 N2) -> numberSum of F in N1 to N2.
: F ; (number -> number) ; : N1 ; number ; : N2 ; number ;
Miscellaneous Vector Math Functions
Usage
(import (math-utils vector))
absolute-magnitude
[procedure] (absolute-magnitude NUMVEC) -> number- NUMVEC
- (vector-of number) ; .
cosine-similarity
[procedure] (cosine-similarity NUMVEC1 NUMVEC2) -> number- NUMVEC1
- (vector-of number) ; .
- NUMVEC2
- (vector-of number) ; .
Must be same vector-length.
dot-product
[procedure] (dot-product NUMVEC1 NUMVEC2) -> number- NUMVEC1
- (vector-of number) ; .
- NUMVEC2
- (vector-of number) ; .
Must be same vector-length.
cross-product
[procedure] (cross-product NUMVEC1 NUMVEC2) -> (or number (vector-of number))- NUMVEC1
- (vector-of number) ; .
- NUMVEC2
- (vector-of number) ; .
Must be same vector-length.
Only defined for a vector-length of (0 1 2), returning a number, and (3 4 8), returning a (vector-of number). All others generate an error.
vector-mul
vector-sum
vector-div
vector-dif
vector-min
vector-max
vector-lcm
vector-gcd
[procedure] (vector-mul NUMVEC1 NUMVEC2 [NUMVEC...]) -> (vector-of number)[procedure] (vector-sum NUMVEC1 NUMVEC2 [NUMVEC...]) -> (vector-of number)
[procedure] (vector-div NUMVEC1 NUMVEC2 [NUMVEC...]) -> (vector-of number)
[procedure] (vector-dif NUMVEC1 NUMVEC2 [NUMVEC...]) -> (vector-of number)
[procedure] (vector-min NUMVEC1 NUMVEC2 [NUMVEC...]) -> (vector-of number)
[procedure] (vector-max NUMVEC1 NUMVEC2 [NUMVEC...]) -> (vector-of number)
[procedure] (vector-lcm NUMVEC1 NUMVEC2 [NUMVEC...]) -> (vector-of number)
[procedure] (vector-gcd NUMVEC1 NUMVEC2 [NUMVEC...]) -> (vector-of number)
- NUMVEC#
- (vector-of number) ; .
Must be same vector-length.
vector<?
vector=?
vector>?
vector<=?
vector>=?
[procedure] (vector<? NUMVEC1 NUMVEC2 [NUMVEC...]) -> (vector-of boolean)[procedure] (vector=? NUMVEC1 NUMVEC2 [NUMVEC...]) -> (vector-of boolean)
[procedure] (vector>? NUMVEC1 NUMVEC2 [NUMVEC...]) -> (vector-of boolean)
[procedure] (vector<=? NUMVEC1 NUMVEC2 [NUMVEC...]) -> (vector-of boolean)
[procedure] (vector>=? NUMVEC1 NUMVEC2 [NUMVEC...]) -> (vector-of boolean)
- NUMVEC#
- (vector-of number) ; .
Must be same vector-length.
vector-compare
[procedure] (vector-compare NUMVEC1 NUMVEC2 -> (vector-of number)Result is (vector-dif NUMVEC2 NUMVEC1).
- NUMVEC1
- (vector-of number) ; .
- NUMVEC2
- (vector-of number) ; .
Must be same vector-length.
vector-apply
[procedure] (vector-apply FUNC VEC1 VEC2 [VEC...]) -> vector- FUNC
- (* * !#rest * -> *) ; .
- VEC#
- vector ; .
Must be same vector-length.
Requirements
Author
Repository
This egg is hosted on the CHICKEN Subversion repository:
https://anonymous@code.call-cc.org/svn/chicken-eggs/release/5/math-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
- 1.0.0
- From mathh:4.6.5.
License
This code is in the public domain.