math.functions: some silly cleanup.
							parent
							
								
									ec6e3c218c
								
							
						
					
					
						commit
						14ed9a5455
					
				| 
						 | 
				
			
			@ -238,18 +238,20 @@ M: complex log >polar [ flog ] dip rect> ; inline
 | 
			
		|||
 | 
			
		||||
: most-negative-finite-float ( -- x )
 | 
			
		||||
    -0x1.ffff,ffff,ffff,fp1023 >integer ; inline
 | 
			
		||||
 | 
			
		||||
: most-positive-finite-float ( -- x )
 | 
			
		||||
    0x1.ffff,ffff,ffff,fp1023 >integer ; inline
 | 
			
		||||
 | 
			
		||||
CONSTANT: log-2   0x1.62e42fefa39efp-1
 | 
			
		||||
CONSTANT: log10-2 0x1.34413509f79ffp-2
 | 
			
		||||
 | 
			
		||||
: (representable-as-float?) ( x -- ? )
 | 
			
		||||
: representable-as-float? ( x -- ? )
 | 
			
		||||
    most-negative-finite-float
 | 
			
		||||
    most-positive-finite-float between? ; inline
 | 
			
		||||
 | 
			
		||||
: (bignum-log) ( n log-quot: ( x -- y ) log-2 -- log )
 | 
			
		||||
    [ dup ] dip '[
 | 
			
		||||
        dup (representable-as-float?)
 | 
			
		||||
        dup representable-as-float?
 | 
			
		||||
        [ >float @ ] [ frexp [ @ ] [ _ * ] bi* + ] if
 | 
			
		||||
    ] call ; inline
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -368,8 +370,7 @@ M: real tanh >float tanh ; inline
 | 
			
		|||
    dup [-1,1]? [ >float fasin ] [ i* asinh -i* ] if ; inline
 | 
			
		||||
 | 
			
		||||
: acos ( x -- y )
 | 
			
		||||
    dup [-1,1]? [ >float facos ] [ asin pi 2 / swap - ] if ;
 | 
			
		||||
    inline
 | 
			
		||||
    dup [-1,1]? [ >float facos ] [ asin pi 2 / swap - ] if ; inline
 | 
			
		||||
 | 
			
		||||
GENERIC: atan ( x -- y ) foldable
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue