math.extras: adding map-kahan-sum.
parent
b9df0a7582
commit
d06dc0996d
|
@ -290,7 +290,16 @@ M: real round-away-from-zero
|
||||||
] reduce nip max
|
] reduce nip max
|
||||||
] if ; inline
|
] if ; inline
|
||||||
|
|
||||||
|
<PRIVATE
|
||||||
|
|
||||||
|
: kahan+ ( c n elt -- c' n' )
|
||||||
|
rot - 2dup + [ -rot [ - ] bi@ ] keep ;
|
||||||
|
|
||||||
|
PRIVATE>
|
||||||
|
|
||||||
: kahan-sum ( seq -- n )
|
: kahan-sum ( seq -- n )
|
||||||
[ 0.0 0.0 ] dip [
|
[ 0.0 0.0 ] dip [ kahan+ ] each nip ;
|
||||||
rot - 2dup + [ -rot [ - ] bi@ ] keep
|
|
||||||
] each nip ;
|
: map-kahan-sum ( ... seq quot: ( ... elt -- ... n ) -- ... n )
|
||||||
|
[ 0.0 0.0 ] 2dip [ 2dip rot kahan+ ] curry
|
||||||
|
[ -rot ] prepose each nip ; inline
|
||||||
|
|
Loading…
Reference in New Issue