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