Merge branch 'master' of git://factorcode.org/git/factor
[factor/jcg.git] / basis / math / libm / libm.factor
blob96f5f134cc7ce047f62f0735ebf884f7b869f74b
1 ! Copyright (C) 2006 Slava Pestov.
2 ! See http://factorcode.org/license.txt for BSD license.
3 USING: alien ;
4 IN: math.libm
6 : facos ( x -- y )
7     "double" "libm" "acos" { "double" } alien-invoke ;
8     inline
10 : fasin ( x -- y )
11     "double" "libm" "asin" { "double" } alien-invoke ;
12     inline
14 : fatan ( x -- y )
15     "double" "libm" "atan" { "double" } alien-invoke ;
16     inline
18 : fatan2 ( x y -- z )
19     "double" "libm" "atan2" { "double" "double" } alien-invoke ;
20     inline
22 : fcos ( x -- y )
23     "double" "libm" "cos" { "double" } alien-invoke ;
24     inline
26 : fsin ( x -- y )
27     "double" "libm" "sin" { "double" } alien-invoke ;
28     inline
30 : ftan ( x -- y )
31     "double" "libm" "tan" { "double" } alien-invoke ;
32     inline
34 : fcosh ( x -- y )
35     "double" "libm" "cosh" { "double" } alien-invoke ;
36     inline
38 : fsinh ( x -- y )
39     "double" "libm" "sinh" { "double" } alien-invoke ;
40     inline
42 : ftanh ( x -- y )
43     "double" "libm" "tanh" { "double" } alien-invoke ;
44     inline
46 : fexp ( x -- y )
47     "double" "libm" "exp" { "double" } alien-invoke ;
48     inline
50 : flog ( x -- y )
51     "double" "libm" "log" { "double" } alien-invoke ;
52     inline
54 : fpow ( x y -- z )
55     "double" "libm" "pow" { "double" "double" } alien-invoke ;
56     inline
58 : fsqrt ( x -- y )
59     "double" "libm" "sqrt" { "double" } alien-invoke ;
60     inline
61     
62 ! Windows doesn't have these...
63 : facosh ( x -- y )
64     "double" "libm" "acosh" { "double" } alien-invoke ;
65     inline
67 : fasinh ( x -- y )
68     "double" "libm" "asinh" { "double" } alien-invoke ;
69     inline
71 : fatanh ( x -- y )
72     "double" "libm" "atanh" { "double" } alien-invoke ;
73     inline