Wiki
Download
Manual
Eggs
API
Tests
Bugs
show
edit
history
You can edit this page using
wiki syntax
for markup.
Article contents:
[[tags: egg]] == mathh [[toc:]] == 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 <enscript language=scheme> (import "mathh") </enscript> ==== bessel-j0 ==== bessel-j1 ==== bessel-jn ==== bessel-jn ==== bessel-y0 ==== bessel-y1 ==== bessel-yn <procedure>(bessel-j0 N) -> float</procedure> <procedure>(bessel-j1 N) -> float</procedure> <procedure>(bessel-jn O N) -> float</procedure> <procedure>(bessel-y0 N) -> float</procedure> <procedure>(bessel-y1 N) -> float</procedure> <procedure>(bessel-yn O N) -> float</procedure> ==== cosh <procedure>(cosh N) -> float</procedure> ==== sinh <procedure>(sinh N) -> float</procedure> ==== tanh <procedure>(tanh N) -> float</procedure> ==== acosh <procedure>(acosh N) -> float</procedure> ==== asinh <procedure>(asinh N) -> float</procedure> ==== atanh <procedure>(atanh N) -> float</procedure> ==== hypot <procedure>(hypot N1 N2) -> float</procedure> ==== gamma <procedure>(gamma N) -> float</procedure> ==== lgamma <procedure>(lgamma N) -> float</procedure> ==== erf <procedure>(erf N) -> float</procedure> ==== erfc <procedure>(erfc N) -> float</procedure> ==== log10 <procedure>(log10 N) -> float</procedure> ==== log2 <procedure>(log2 N) -> float</procedure> ==== log1p <procedure>(log1p N) -> float</procedure> ==== log-with-base ==== log/base <procedure>(log-with-base B) -> (float -> float)</procedure> <procedure>(log/base B) -> (float -> float)</procedure> Returns a function for the base {{B}} logarithm. ==== ldexp <procedure>(ldexp N P2) -> float</procedure> ==== scalbn <procedure>(scalbn N P2) -> float</procedure> ==== cbrt <procedure>(cbrt N) -> float</procedure> ==== nextafter <procedure>(nextafter N M) -> float</procedure> Returns the next {{N}} in the direction of {{M}}. ==== fpmod <procedure>(fpmod N M) -> float</procedure> Returns the modulus of {{N}} for {{M}}. ==== modf ==== modf* <procedure>(modf N) -> float float</procedure> <procedure>(modf* N) -> integer float</procedure> Returns two values, the integral and fractional components of {{N}}. ==== frexp <procedure>(frexp N) -> float float</procedure> Returns two values, the fraction and the exponent components of {{N}}. ==== signbit <procedure>(signbit N) -> boolean</procedure> Returns {{#t}} when negative, {{#f}} otherwise. ==== copysign <procedure>(copysign N M) -> float</procedure> Returns {{N}} with same sign as {{M}}. ==== fpclassify <procedure>(fpclassify N) -> symbol</procedure> Returns a symbol denoting the floating-point kind of {{N}}. ; infinite : ; nan : ; normal : ; subnormal : ; zero : ; unclassified : ==== fpclass <procedure>(fpclass N) -> symbol</procedure> Returns 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 : === Notes * 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 === Math Constants (Module) ==== Usage <enscript language=scheme> (import mathh-consts) </enscript> ==== 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 <enscript language=scheme> (include "mathh-constants") </enscript> ==== 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) == Requirements [[test]] [[test-utils]] == Bugs and Limitations * The {{fpclass}} {{quiet-nan}} is only distinguished on Windows. == Author [[/users/kon-lovett|Kon Lovett]] [[/users/john cowan|John Cowan]] == Repository This egg is hosted on the CHICKEN Subversion repository: [[https://anonymous@code.call-cc.org/svn/chicken-eggs/release/5/mathh|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 [[/egg-svn-checkout|this page]]. == Version history ; 4.7.0 : Moved {{misc-math-utils}} & {{misc-vector-math-utils}} to {{math-utils}}. ; 4.6.5 : Add {{coprime?}} & {{*coprime?}}. ; 4.6.4 : Add {{number->sign}}. Add test dependency. ; 4.6.3 : Remove {{vector-apply}} numeric restriction. ; 4.6.2 : Add {{vector-mul/div/sum/dif/min/max/lcm/gcd}}, {{vector</=/>/<=/>}}, {{vector-compare}}, {{vector-apply}}. ; 4.6.1 : Add {{vector-product}} & {{vector-sum}}. Fix {{cross-product}}(3). ; 4.6.0 : Add {{misc-vector-math-utils}}. ; 4.5.1 : Fix for include source {{mathh-constants.scm}}. ; 4.5.0 : Add log function to {{misc-math-utils}}. ; 4.4.0 : Add interest functions to {{misc-math-utils}}. ; 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.
Description of your changes:
I would like to authenticate
Authentication
Username:
Password:
Spam control
What do you get when you subtract 13 from 18?