math.statistics: adding trim-mean and signal-to-noise.

db4
John Benediktsson 2012-05-08 08:24:57 -07:00
parent bab0f663ae
commit 4c2d01c5ec
2 changed files with 7 additions and 0 deletions

View File

@ -11,6 +11,8 @@ IN: math.statistics.tests
[ 1.0 ] [ { 1 1 1 } geometric-mean ] unit-test
[ 1/3 ] [ { 1 1 1 } harmonic-mean ] unit-test
[ 5+1/4 ] [ { 1 3 5 7 } contraharmonic-mean ] unit-test
[ 18 ] [ { 4 8 15 16 23 42 } 0 trim-mean ] unit-test
[ 15+1/2 ] [ { 4 8 15 16 23 42 } 0.2 trim-mean ] unit-test
[ 0 ] [ { 1 } range ] unit-test
[ 89 ] [ { 1 2 30 90 } range ] unit-test

View File

@ -32,6 +32,9 @@ IN: math.statistics
: contraharmonic-mean ( seq -- x )
[ sum-of-squares ] [ sum ] bi / ; inline
: trim-mean ( seq p -- x )
swap [ length [ * >integer ] keep over - ] keep <slice> mean ;
<PRIVATE
:: ((kth-object)) ( seq k nth-quot exchange-quot quot: ( x y -- ? ) -- elt )
@ -255,6 +258,8 @@ ALIAS: var sample-var
ALIAS: std sample-std
: signal-to-noise ( seq -- x ) [ mean ] [ std ] bi / ;
: mean-dev ( seq -- x ) dup mean v-n vabs mean ;
: median-dev ( seq -- x ) dup median v-n vabs mean ;