math.functions: Add e^ and sigmoid functions.
parent
e38e9f2850
commit
fee4d76b73
|
@ -1,5 +1,5 @@
|
|||
USING: help.markup help.syntax kernel math math.order
|
||||
sequences quotations math.functions.private ;
|
||||
sequences quotations math.functions.private math.constants ;
|
||||
IN: math.functions
|
||||
|
||||
ARTICLE: "integer-functions" "Integer functions"
|
||||
|
@ -53,7 +53,9 @@ ARTICLE: "power-functions" "Powers and logarithms"
|
|||
"Other logarithms:"
|
||||
{ $subsections log1+ log10 }
|
||||
"Raising a number to a power:"
|
||||
{ $subsections ^ 10^ }
|
||||
{ $subsections ^ e^ 10^ }
|
||||
"Logistics functions:"
|
||||
{ $subsections sigmoid }
|
||||
"Finding the root of a number:"
|
||||
{ $subsections nth-root }
|
||||
"Converting between rectangular and polar form:"
|
||||
|
@ -273,6 +275,10 @@ HELP: 10^
|
|||
{ $values { "x" number } { "y" number } }
|
||||
{ $description "Raises 10 to the power of " { $snippet "x" } ". If " { $snippet "x" } " is an integer the answer is computed exactly, otherwise a floating point approximation is used." } ;
|
||||
|
||||
HELP: e^
|
||||
{ $values { "x" number } { "y" number } }
|
||||
{ $description "Raises " { $link e } " to the power of " { $snippet "x" } "." } ;
|
||||
|
||||
HELP: gcd
|
||||
{ $values { "x" integer } { "y" integer } { "a" integer } { "d" integer } }
|
||||
{ $description "Computes the positive greatest common divisor " { $snippet "d" } " of " { $snippet "x" } " and " { $snippet "y" } ", and another value " { $snippet "a" } " satisfying:" { $code "a*y = d mod x" } }
|
||||
|
@ -330,3 +336,7 @@ HELP: roots
|
|||
{ $values { "x" number } { "t" integer } { "seq" sequence } }
|
||||
{ $description "Outputs the " { $snippet "t" } " roots of a number " { $snippet "x" } "." }
|
||||
{ $notes "The results are not necessarily real." } ;
|
||||
|
||||
HELP: sigmoid
|
||||
{ $values { "x" number } { "y" number } }
|
||||
{ $description "Outputs the sigmoid, an S-shaped \"logistic\" function, from 0 to 1, of the number " { $snippet "x" } "." } ;
|
||||
|
|
|
@ -240,3 +240,7 @@ CONSTANT: log10-factorial-1000 0x1.40f3593ed6f8ep11
|
|||
] unit-test
|
||||
|
||||
{ t } [ 3 15 roots [ 15 ^ 3 .01 ~ ] all? ] unit-test
|
||||
|
||||
{ t } [ 1 e^ e .0000000001 ~ ] unit-test
|
||||
{ 1 } [ 0 e^ ] unit-test
|
||||
{ 1/2 } [ 0 sigmoid ] unit-test
|
||||
|
|
|
@ -223,6 +223,8 @@ M: float log1+ dup -1.0 >= [ flog1+ ] [ 1.0 + 0.0 rect> log ] if ; inline
|
|||
|
||||
: 10^ ( x -- y ) 10 swap ^ ; inline
|
||||
|
||||
: e^ ( x -- y ) e swap ^ ; inline
|
||||
|
||||
GENERIC: log10 ( x -- y ) foldable
|
||||
|
||||
M: real log10 >float flog10 ; inline
|
||||
|
@ -362,3 +364,5 @@ M: real atan >float atan ; inline
|
|||
[ [ log ] [ recip ] bi* * exp ]
|
||||
[ recip 2pi * 0 swap complex boa exp ]
|
||||
[ iota [ ^ * ] with with map ] tri ;
|
||||
|
||||
: sigmoid ( x -- y ) neg e^ 1 + recip ; inline
|
||||
|
|
Loading…
Reference in New Issue