63 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Factor
		
	
	
			
		
		
	
	
			63 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Factor
		
	
	
! Copyright (C) 2006 Slava Pestov.
 | 
						|
! See http://factorcode.org/license.txt for BSD license.
 | 
						|
USING: alien alien.c-types ;
 | 
						|
IN: math.libm
 | 
						|
 | 
						|
: facos ( x -- y )
 | 
						|
    double "libm" "acos" { double } alien-invoke ;
 | 
						|
 | 
						|
: fasin ( x -- y )
 | 
						|
    double "libm" "asin" { double } alien-invoke ;
 | 
						|
 | 
						|
: fatan ( x -- y )
 | 
						|
    double "libm" "atan" { double } alien-invoke ;
 | 
						|
 | 
						|
: fatan2 ( x y -- z )
 | 
						|
    double "libm" "atan2" { double double } alien-invoke ;
 | 
						|
 | 
						|
: fcos ( x -- y )
 | 
						|
    double "libm" "cos" { double } alien-invoke ;
 | 
						|
 | 
						|
: fsin ( x -- y )
 | 
						|
    double "libm" "sin" { double } alien-invoke ;
 | 
						|
 | 
						|
: ftan ( x -- y )
 | 
						|
    double "libm" "tan" { double } alien-invoke ;
 | 
						|
 | 
						|
: fcosh ( x -- y )
 | 
						|
    double "libm" "cosh" { double } alien-invoke ;
 | 
						|
 | 
						|
: fsinh ( x -- y )
 | 
						|
    double "libm" "sinh" { double } alien-invoke ;
 | 
						|
 | 
						|
: ftanh ( x -- y )
 | 
						|
    double "libm" "tanh" { double } alien-invoke ;
 | 
						|
 | 
						|
: fexp ( x -- y )
 | 
						|
    double "libm" "exp" { double } alien-invoke ;
 | 
						|
 | 
						|
: flog ( x -- y )
 | 
						|
    double "libm" "log" { double } alien-invoke ;
 | 
						|
 | 
						|
: flog10 ( x -- y )
 | 
						|
    double "libm" "log10" { double } alien-invoke ;
 | 
						|
 | 
						|
: fpow ( x y -- z )
 | 
						|
    double "libm" "pow" { double double } alien-invoke ;
 | 
						|
 | 
						|
: fsqrt ( x -- y )
 | 
						|
    double "libm" "sqrt" { double } alien-invoke ;
 | 
						|
    
 | 
						|
! Windows doesn't have these...
 | 
						|
: flog1+ ( x -- y )
 | 
						|
    double "libm" "log1p" { double } alien-invoke ;
 | 
						|
 | 
						|
: facosh ( x -- y )
 | 
						|
    double "libm" "acosh" { double } alien-invoke ;
 | 
						|
 | 
						|
: fasinh ( x -- y )
 | 
						|
    double "libm" "asinh" { double } alien-invoke ;
 | 
						|
 | 
						|
: fatanh ( x -- y )
 | 
						|
    double "libm" "atanh" { double } alien-invoke ;
 |