Wiki
Download
Manual
Eggs
API
Tests
Bugs
show
edit
history
You can edit this page using
wiki syntax
for markup.
Article contents:
[[tags: egg]] == math-utils [[toc:]] == Documentation === Miscellaneous Math Functions ==== Usage <enscript language=scheme> (import math-utils) </enscript> ==== log-with-base ==== log/base <procedure>(log-with-base B) -> (real -> real)</procedure> <procedure>(log/base B) -> (real -> real)</procedure> Returns a function for the base {{B}} logarithm. ==== coprime? <procedure>(coprime? M [N0 ...]) -> boolean</procedure> Are the integers {{M N0 ...}} coprime? ==== pairwise-coprime? <procedure>(pairwise-coprime? M [N0 ...]) -> boolean</procedure> Are the pairs of integers in {{M N0 ...}} coprime? ==== fxcoprime? <procedure>(fxcoprime? M N) -> boolean</procedure> Are the fixnums {{M N}} coprime? <enscript language=scheme> (import (only (srfi 1) filter iota)) (import (only (math-utils) fxcoprime?)) (define (coprimes n) (filter (cut fxcoprime? n <>) (iota (- n 1) 1)) ) </enscript> <enscript language=scheme> (import (only (streams derived) stream-range stream-filter)) (import (only (math-utils) fxcoprime?)) (define (coprime-numbers-stream n) (stream-filter (cut fxcoprime? n <>) (stream-range 1 n)) ) </enscript> ==== simple-interest <procedure>(simple-interest RATE TIME [PRIN]) -> number</procedure> The 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]) -> number</procedure> The 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}} <enscript language=scheme> (compound-interest 0.043 4 6 1500) ;=> 1938.84 ;rounded to 2 places </enscript> ==== fibonacci <procedure>(fibonacci N) -> number</procedure> Returns fibonacci of {{N}}. ==== fibonacci* <procedure>(fibonacci* N) -> number</procedure> Returns an approximate fibonacci of {{N}}. ==== binomial <procedure>(binomial N1 N2) -> integer</procedure> Returns the {{Binomial}} in {{N1}} to {{N2}}. ; {{N1}} ; {{integer}} : ; {{N2}} ; {{integer}} : ==== cross-ratio <procedure>(cross-ratio N1 N2 N3 N4) -> number</procedure> Returns the {{Cross-ratio}} of {{N1}}, {{N2}} and {{N3}}, {{N4}}. ; {{N1}} ; {{number}} : ; {{N2}} ; {{number}} : ; {{N3}} ; {{number}} : ; {{N4}} ; {{number}} : ==== square <procedure>(square N) -> number</procedure> ==== cube <procedure>(cube N) -> number</procedure> ==== average <procedure>(average N1 N2 ...) -> number</procedure> <procedure>(average NUMS) -> number</procedure> ; {{N1}} ; {{number}} : ; {{N1}} ; {{number}} : ; {{NUMS}} ; {{(list-of number)}} : ==== least-squares <procedure>(least-squares PNTS) -> number number</procedure> Returns {{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)</procedure> 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> <procedure>(factorial- N1 FALL) -> number</procedure> <procedure>(factorial+ N1 RISE) -> number</procedure> ; {{N}} ; {{integer}} : ; {{FALL}} : {{number}} : falling factorial ; {{RISE}} : {{number}} : rising factorial ==== harmonic <procedure>(harmonic N) -> number</procedure> Result of ''Harmonic'' series expansion to {{N}} terms. ; {{N}} ; {{integer}} : ==== big-pi <syntax>(big-pi F N1 N2) -> number</syntax> Product of {{F}} in {{N1}} to {{N2}}. ; {{F}} : {{(number -> number)}} ; ; {{N1}} : {{number}} ; ; {{N2}} : {{number}} ; ==== big-sigma <syntax>(big-sigma F N1 N2) -> number</syntax> Sum of {{F}} in {{N1}} to {{N2}}. ; {{F}} : {{(number -> number)}} ; ; {{N1}} : {{number}} ; ; {{N2}} : {{number}} ; === Miscellaneous Vector Math Functions ==== Usage <enscript language=scheme> (import (math-utils vector)) </enscript> ==== absolute-magnitude <procedure>(absolute-magnitude NUMVEC) -> number</procedure> ; {{NUMVEC}} ; {{(vector-of number)}} : . ==== cosine-similarity <procedure>(cosine-similarity NUMVEC1 NUMVEC2) -> number</procedure> ; {{NUMVEC1}} ; {{(vector-of number)}} : . ; {{NUMVEC2}} ; {{(vector-of number)}} : . Must be same {{vector-length}}. ==== vector-compare <procedure>(vector-compare NUMVEC...) -> number</procedure> Result is {{negative}}, {{zero}}, or {{positive}}. Comparison by length when unequal & element-wise when equal. ; {{NUMVEC}} ; {{(vector-of number)}} : . ==== dot-product <procedure>(dot-product NUMVEC1 NUMVEC2) -> number</procedure> ; {{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))</procedure> ; {{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 NUMVEC...) -> (vector-of number)</procedure> <procedure>(vector-sum NUMVEC...) -> (vector-of number)</procedure> <procedure>(vector-div NUMVEC...) -> (vector-of number)</procedure> <procedure>(vector-dif NUMVEC...) -> (vector-of number)</procedure> <procedure>(vector-min NUMVEC...) -> (vector-of number)</procedure> <procedure>(vector-max NUMVEC...) -> (vector-of number)</procedure> <procedure>(vector-lcm NUMVEC...) -> (vector-of number)</procedure> <procedure>(vector-gcd NUMVEC...) -> (vector-of number)</procedure> ; {{NUMVEC}} ; {{(vector-of number)}} : . Must be same {{vector-length}}. ==== vector-apply <procedure>(vector-apply FUNC VEC1 VEC2 [VEC...]) -> vector</procedure> ; {{FUNC}} ; {{(* * !#rest * -> *)}} : . ; {{VEC#}} ; {{vector}} : . Must be same {{vector-length}}. == Requirements [[test]] [[test-utils]] [[vector-lib]] == Author [[/users/kon-lovett|Kon Lovett]] == Repository This egg is hosted on the CHICKEN Subversion repository: [[https://anonymous@code.call-cc.org/svn/chicken-eggs/release/5/math-utils|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 [[/egg-svn-checkout|this page]]. == Version history ; 1.0.6 : Remove {{mathh}} dependency since include is unreliable. ; 1.0.5 : Use {{gcd}} based algorithm. ; 1.0.4 : Add {{fxcoprime?}}. ; 1.0.3 : {{*coprime?}} too slow. ; 1.0.2 : Fix {{mathh}} dependency. ; 1.0.1 : Add {{vector-compare}}. ; 1.0.0 : From {{mathh:4.6.5}}. == License This code is in the public domain.
Description of your changes:
I would like to authenticate
Authentication
Username:
Password:
Spam control
What do you get when you add 12 to 2?