Mercurial Hosting > luan
comparison src/luan/modules/MathLuan.java @ 168:ebe9db183eb7
rename *Lib.java to *Luan.java
git-svn-id: https://luan-java.googlecode.com/svn/trunk@169 21e917c8-12df-6dd8-5cb6-c86387c605b9
author | fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9> |
---|---|
date | Sun, 22 Jun 2014 04:42:07 +0000 |
parents | src/luan/modules/MathLib.java@4c0131c2b650 |
children |
comparison
equal
deleted
inserted
replaced
167:4c0131c2b650 | 168:ebe9db183eb7 |
---|---|
1 package luan.modules; | |
2 | |
3 import luan.LuanState; | |
4 import luan.LuanTable; | |
5 import luan.LuanFunction; | |
6 import luan.LuanJavaFunction; | |
7 import luan.LuanException; | |
8 | |
9 | |
10 public final class MathLuan { | |
11 | |
12 public static final LuanFunction LOADER = new LuanFunction() { | |
13 @Override public Object call(LuanState luan,Object[] args) { | |
14 LuanTable module = new LuanTable(); | |
15 try { | |
16 add( module, "abs", Double.TYPE ); | |
17 add( module, "acos", Double.TYPE ); | |
18 add( module, "asin", Double.TYPE ); | |
19 add( module, "atan", Double.TYPE ); | |
20 add( module, "atan2", Double.TYPE, Double.TYPE ); | |
21 add( module, "ceil", Double.TYPE ); | |
22 add( module, "cos", Double.TYPE ); | |
23 add( module, "cosh", Double.TYPE ); | |
24 add( module, "deg", Double.TYPE ); | |
25 add( module, "exp", Double.TYPE ); | |
26 add( module, "floor", Double.TYPE ); | |
27 add( module, "log", Double.TYPE ); | |
28 add( module, "min", Double.TYPE, new double[0].getClass() ); | |
29 add( module, "max", Double.TYPE, new double[0].getClass() ); | |
30 add( module, "modf", Double.TYPE ); | |
31 module.put("pi",Math.PI); | |
32 add( module, "pow", Double.TYPE, Double.TYPE ); | |
33 add( module, "rad", Double.TYPE ); | |
34 add( module, "random" ); | |
35 add( module, "sin", Double.TYPE ); | |
36 add( module, "sinh", Double.TYPE ); | |
37 add( module, "sqrt", Double.TYPE ); | |
38 add( module, "tan", Double.TYPE ); | |
39 add( module, "tanh", Double.TYPE ); | |
40 } catch(NoSuchMethodException e) { | |
41 throw new RuntimeException(e); | |
42 } | |
43 return module; | |
44 } | |
45 }; | |
46 | |
47 private static void add(LuanTable t,String method,Class<?>... parameterTypes) throws NoSuchMethodException { | |
48 t.put( method, new LuanJavaFunction(MathLuan.class.getMethod(method,parameterTypes),null) ); | |
49 } | |
50 | |
51 public static double abs(double x) { | |
52 return Math.abs(x); | |
53 } | |
54 | |
55 public static double acos(double x) { | |
56 return Math.acos(x); | |
57 } | |
58 | |
59 public static double asin(double x) { | |
60 return Math.asin(x); | |
61 } | |
62 | |
63 public static double atan(double x) { | |
64 return Math.atan(x); | |
65 } | |
66 | |
67 public static double atan2(double y,double x) { | |
68 return Math.atan2(y,x); | |
69 } | |
70 | |
71 public static double ceil(double x) { | |
72 return Math.ceil(x); | |
73 } | |
74 | |
75 public static double cos(double x) { | |
76 return Math.cos(x); | |
77 } | |
78 | |
79 public static double cosh(double x) { | |
80 return Math.cosh(x); | |
81 } | |
82 | |
83 public static double deg(double x) { | |
84 return Math.toDegrees(x); | |
85 } | |
86 | |
87 public static double exp(double x) { | |
88 return Math.exp(x); | |
89 } | |
90 | |
91 public static double floor(double x) { | |
92 return Math.floor(x); | |
93 } | |
94 | |
95 public static double log(double x) { | |
96 return Math.log(x); | |
97 } | |
98 | |
99 public static double min(double x,double... a) { | |
100 for( double d : a ) { | |
101 if( x > d ) | |
102 x = d; | |
103 } | |
104 return x; | |
105 } | |
106 | |
107 public static double max(double x,double... a) { | |
108 for( double d : a ) { | |
109 if( x < d ) | |
110 x = d; | |
111 } | |
112 return x; | |
113 } | |
114 | |
115 public static double[] modf(double x) { | |
116 double i = (int)x; | |
117 return new double[]{i,x-i}; | |
118 } | |
119 | |
120 public static double pow(double x,double y) { | |
121 return Math.pow(x,y); | |
122 } | |
123 | |
124 public static double rad(double x) { | |
125 return Math.toRadians(x); | |
126 } | |
127 | |
128 public static double random() { | |
129 return Math.random(); | |
130 } | |
131 | |
132 public static double sin(double x) { | |
133 return Math.sin(x); | |
134 } | |
135 | |
136 public static double sinh(double x) { | |
137 return Math.sinh(x); | |
138 } | |
139 | |
140 public static double sqrt(double x) { | |
141 return Math.sqrt(x); | |
142 } | |
143 | |
144 public static double tan(double x) { | |
145 return Math.tan(x); | |
146 } | |
147 | |
148 public static double tanh(double x) { | |
149 return Math.tanh(x); | |
150 } | |
151 | |
152 } |