Skip to content

Commit 85190ba

Browse files
committed
ビルトイン関数を見直しました。
1 parent 3e8b6a2 commit 85190ba

4 files changed

Lines changed: 65 additions & 13 deletions

File tree

README.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,18 @@
110110
[sin](https://docs.oracle.com/javase/jp/8/docs/api/java/lang/Math.html#sin-double-) | 指定された角度の正弦(サイン)を返します。| sin(1) | 0.8414709848078965
111111
[cos](https://docs.oracle.com/javase/jp/8/docs/api/java/lang/Math.html#cos-double-) | 指定された角度の余弦(コサイン)を返します。| cos(1) | 0.5403023058681398
112112
[tan](https://docs.oracle.com/javase/jp/8/docs/api/java/lang/Math.html#tan-double-) | 指定された角度の正接(タンジェント)を返します。| tan(1) | 1.5574077246549023
113+
[asin](https://docs.oracle.com/javase/jp/8/docs/api/java/lang/Math.html#asin-double-) | 指定された値の逆正弦(アーク・サイン)を返します。| asin(1) | 1.5707963267948966
114+
[acos](https://docs.oracle.com/javase/jp/8/docs/api/java/lang/Math.html#acos-double-) | 指定された値の逆余弦(アーク・コサイン)を返します。| acos(0) | 1.5707963267948966
115+
[atan](https://docs.oracle.com/javase/jp/8/docs/api/java/lang/Math.html#atan-double-) | 指定された値の逆正接(アーク・タンジェント)を返します。| atan(1) | 0.7853981633974483
116+
[sinh](https://docs.oracle.com/javase/jp/8/docs/api/java/lang/Math.html#sinh-double-) | double値の双曲線正弦を返します。| sinh(1) | 1.1752011936438014
117+
[cosh](https://docs.oracle.com/javase/jp/8/docs/api/java/lang/Math.html#cosh-double-) | double値の双曲線余弦を返します。| cosh(1) | 1.543080634815244
118+
[tanh](https://docs.oracle.com/javase/jp/8/docs/api/java/lang/Math.html#tanh-double-) | double値の双曲線正接を返します。| tanh(1) | 0.7615941559557649
119+
[exp](https://docs.oracle.com/javase/jp/8/docs/api/java/lang/Math.html#exp-double-) | オイラー数eをdouble値で累乗した値を返します。| exp(1) | 2.718281828459045
120+
[log](https://docs.oracle.com/javase/jp/8/docs/api/java/lang/Math.html#log-double-) | 指定されたdouble値の自然対数(底はe)を返します。| log(2) | 0.6931471805599453
121+
[log10](https://docs.oracle.com/javase/jp/8/docs/api/java/lang/Math.html#log10-double-) | double値の10を底とする対数を返します。| log10(2) | 0.3010299956639812
122+
[sqrt](https://docs.oracle.com/javase/jp/8/docs/api/java/lang/Math.html#sqrt-double-) | double値の正しく丸めた正の平方根を返します。| sqrt(2) | 0.3010299956639812
123+
[rad](https://docs.oracle.com/javase/jp/8/docs/api/java/lang/Math.html#toRadians-double-) | 度で計測した角度を、相当するラジアンに変換します。| rad(1) | 0.017453292519943295
124+
[deg](https://docs.oracle.com/javase/jp/8/docs/api/java/lang/Math.html#toDegrees-double-) | ラジアンで計測した角度を、相当する度に変換します。| deg(1) | 57.29577951308232
113125
114126
- 関数名の文字は、大文字と小文字を区別しません。
115127

build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ plugins {
1616
}
1717

1818
group 'xyz.javecs.tools'
19-
version '0.1.8'
19+
version '0.1.9'
2020

2121
apply plugin: 'kotlin'
2222
apply plugin: 'antlr'

src/main/kotlin/xyz/javecs/tools/expr/BuiltIn.kt

Lines changed: 5 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -7,20 +7,13 @@ internal fun builtIn() = HashMap<String, (Double) -> Double>().apply {
77
put("asin", { x -> Math.asin(x) })
88
put("acos", { x -> Math.acos(x) })
99
put("atan", { x -> Math.atan(x) })
10+
put("sinh", { x -> Math.sinh(x) })
11+
put("cosh", { x -> Math.cosh(x) })
12+
put("tanh", { x -> Math.tanh(x) })
1013
put("exp", { x -> Math.exp(x) })
1114
put("log", { x -> Math.log(x) })
1215
put("log10", { x -> Math.log10(x) })
1316
put("sqrt", { x -> Math.sqrt(x) })
14-
put("cbrt", { x -> Math.cbrt(x) })
15-
put("ceil", { x -> Math.ceil(x) })
16-
put("floor", { x -> Math.floor(x) })
17-
put("rint", { x -> Math.rint(x) })
18-
put("abs", { x -> Math.abs(x) })
19-
put("ulp", { x -> Math.ulp(x) })
20-
put("signum", { x -> Math.signum(x) })
21-
put("sinh", { x -> Math.sinh(x) })
22-
put("cosh", { x -> Math.cosh(x) })
23-
put("tanh", { x -> Math.tanh(x) })
24-
put("expm1", { x -> Math.expm1(x) })
25-
put("log1p", { x -> Math.log1p(x) })
17+
put("rad", { x -> Math.toRadians(x) })
18+
put("deg", { x -> Math.toDegrees(x) })
2619
}

src/test/kotlin/xyz/javecs/tools/expr/test/kotlin/CalculatorFunctionTest.kt

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,4 +26,51 @@ class CalculatorFunctionTest {
2626
assertEquals(1.5574077246549023, Calculator().eval("Tan(1)").value)
2727
}
2828

29+
@Test fun asinTest() {
30+
assertEquals(1.5707963267948966, Calculator().eval("asin(1)").value)
31+
}
32+
33+
@Test fun acosTest() {
34+
assertEquals(1.5707963267948966, Calculator().eval("acos(0)").value)
35+
}
36+
37+
@Test fun atanTest() {
38+
assertEquals(0.7853981633974483, Calculator().eval("atan(1)").value)
39+
}
40+
41+
@Test fun expTest() {
42+
assertEquals(2.718281828459045, Calculator().eval("exp(1)").value)
43+
}
44+
45+
@Test fun logTest() {
46+
assertEquals(0.6931471805599453, Calculator().eval("log(2)").value)
47+
}
48+
49+
@Test fun log10Test() {
50+
assertEquals(0.3010299956639812, Calculator().eval("log10(2)").value)
51+
}
52+
53+
@Test fun sqrtTest() {
54+
assertEquals(1.4142135623730951, Calculator().eval("sqrt(2)").value)
55+
}
56+
57+
@Test fun sinhTest() {
58+
assertEquals(1.1752011936438014, Calculator().eval("sinh(1)").value)
59+
}
60+
61+
@Test fun coshTest() {
62+
assertEquals(1.543080634815244, Calculator().eval("cosh(1)").value)
63+
}
64+
65+
@Test fun tanhTest() {
66+
assertEquals(0.7615941559557649, Calculator().eval("tanh(1)").value)
67+
}
68+
69+
@Test fun radTest() {
70+
assertEquals(0.017453292519943295, Calculator().eval("rad(1)").value)
71+
}
72+
73+
@Test fun degTest() {
74+
assertEquals(57.29577951308232, Calculator().eval("deg(1)").value)
75+
}
2976
}

0 commit comments

Comments
 (0)