You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by ch...@apache.org on 2020/05/14 08:36:14 UTC
[hive] branch master updated: HIVE-23133: Numeric operations can
have different result across hardware archs (Zhenyu Zheng,
reviewed by Chinna Rao L)
This is an automated email from the ASF dual-hosted git repository.
chinnaraol pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/hive.git
The following commit(s) were added to refs/heads/master by this push:
new ce53f3e HIVE-23133: Numeric operations can have different result across hardware archs (Zhenyu Zheng, reviewed by Chinna Rao L)
ce53f3e is described below
commit ce53f3eb85d6d38ad46409270cc2868b8c4bc302
Author: Zhenyu Zheng <zh...@gmail.com>
AuthorDate: Thu May 14 14:02:13 2020 +0530
HIVE-23133: Numeric operations can have different result across hardware archs (Zhenyu Zheng, reviewed by Chinna Rao L)
---
.../hadoop/hive/ql/exec/vector/expressions/MathExpr.java | 2 +-
ql/src/java/org/apache/hadoop/hive/ql/udf/UDFCos.java | 2 +-
ql/src/java/org/apache/hadoop/hive/ql/udf/UDFExp.java | 2 +-
ql/src/java/org/apache/hadoop/hive/ql/udf/UDFLn.java | 2 +-
ql/src/java/org/apache/hadoop/hive/ql/udf/UDFLog.java | 4 ++--
ql/src/java/org/apache/hadoop/hive/ql/udf/UDFLog10.java | 2 +-
ql/src/java/org/apache/hadoop/hive/ql/udf/UDFLog2.java | 4 ++--
.../results/clientpositive/llap/subquery_select.q.out | 6 +++---
.../clientpositive/llap/vector_decimal_udf2.q.out | 8 ++++----
.../clientpositive/llap/vectorized_math_funcs.q.out | 2 +-
.../results/clientpositive/spark/subquery_select.q.out | 6 +++---
.../clientpositive/spark/vectorized_math_funcs.q.out | 2 +-
.../src/org/apache/hadoop/hive/tools/GenVectorCode.java | 16 ++++++++--------
13 files changed, 29 insertions(+), 29 deletions(-)
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/MathExpr.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/MathExpr.java
index 0722392..4acd149 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/MathExpr.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/MathExpr.java
@@ -58,7 +58,7 @@ public class MathExpr {
}
public static double log2(double d) {
- return Math.log(d) / Math.log(2);
+ return StrictMath.log(d) / StrictMath.log(2);
}
public static long abs(long v) {
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFCos.java b/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFCos.java
index fdbca0c..97820e5 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFCos.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFCos.java
@@ -43,7 +43,7 @@ public class UDFCos extends UDFMath {
*/
@Override
protected DoubleWritable doEvaluate(DoubleWritable a) {
- result.set(Math.cos(a.get()));
+ result.set(StrictMath.cos(a.get()));
return result;
}
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFExp.java b/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFExp.java
index 305d432..a05489d 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFExp.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFExp.java
@@ -43,7 +43,7 @@ public class UDFExp extends UDFMath {
*/
@Override
protected DoubleWritable doEvaluate(DoubleWritable a) {
- result.set(Math.exp(a.get()));
+ result.set(StrictMath.exp(a.get()));
return result;
}
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFLn.java b/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFLn.java
index e2c2afd..7832a67 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFLn.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFLn.java
@@ -45,7 +45,7 @@ public class UDFLn extends UDFMath {
if (a.get() <= 0.0) {
return null;
} else {
- result.set(Math.log(a.get()));
+ result.set(StrictMath.log(a.get()));
return result;
}
}
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFLog.java b/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFLog.java
index 21723cd..4f69ade 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFLog.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFLog.java
@@ -72,7 +72,7 @@ public class UDFLog extends UDFMath {
if (a.get() <= 0.0) {
return null;
} else {
- result.set(Math.log(a.get()));
+ result.set(StrictMath.log(a.get()));
return result;
}
}
@@ -81,7 +81,7 @@ public class UDFLog extends UDFMath {
if (base <= 1.0 || input <= 0.0) {
return null;
}
- result.set(Math.log(input) / Math.log(base));
+ result.set(StrictMath.log(input) / StrictMath.log(base));
return result;
}
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFLog10.java b/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFLog10.java
index 7c2358c..9a11515 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFLog10.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFLog10.java
@@ -45,7 +45,7 @@ public class UDFLog10 extends UDFMath {
if (a.get() <= 0.0) {
return null;
} else {
- result.set(Math.log10(a.get()));
+ result.set(StrictMath.log10(a.get()));
return result;
}
}
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFLog2.java b/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFLog2.java
index 135f8c4..4de6a1b 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFLog2.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFLog2.java
@@ -35,7 +35,7 @@ import org.apache.hadoop.hive.serde2.io.DoubleWritable;
@VectorizedExpressions({FuncLog2LongToDouble.class, FuncLog2DoubleToDouble.class})
public class UDFLog2 extends UDFMath {
- private static final double LOG_2 = Math.log(2.0);
+ private static final double LOG_2 = StrictMath.log(2.0);
private final DoubleWritable result = new DoubleWritable();
@@ -47,7 +47,7 @@ public class UDFLog2 extends UDFMath {
if (a.get() <= 0.0) {
return null;
} else {
- result.set(Math.log(a.get()) / LOG_2);
+ result.set(StrictMath.log(a.get()) / LOG_2);
return result;
}
}
diff --git a/ql/src/test/results/clientpositive/llap/subquery_select.q.out b/ql/src/test/results/clientpositive/llap/subquery_select.q.out
index 9104a19..b171ed3 100644
--- a/ql/src/test/results/clientpositive/llap/subquery_select.q.out
+++ b/ql/src/test/results/clientpositive/llap/subquery_select.q.out
@@ -5970,14 +5970,14 @@ POSTHOOK: query: SELECT p_size, exp((SELECT max(p_size) FROM part p WHERE p.p_ty
POSTHOOK: type: QUERY
POSTHOOK: Input: default@part
#### A masked pattern was here ####
-1 2.718281828459045
+1 2.7182818284590455
10 22026.465794806718
12 162754.79141900392
14 1202604.2841647768
14 1202604.2841647768
17 2.9048849665247426E13
18 6.565996913733051E7
-19 1.7848230096318725E8
+19 1.7848230096318728E8
2 7.38905609893065
2 7.38905609893065
2 7.38905609893065
@@ -5989,7 +5989,7 @@ POSTHOOK: Input: default@part
31 2.9048849665247426E13
34 5.834617425274549E14
39 8.6593400423993744E16
-40 2.3538526683702E17
+40 2.35385266837019968E17
42 1.73927494152050099E18
45 3.4934271057485095E19
46 9.496119420602448E19
diff --git a/ql/src/test/results/clientpositive/llap/vector_decimal_udf2.q.out b/ql/src/test/results/clientpositive/llap/vector_decimal_udf2.q.out
index 7c1fe9e..6b1859b 100644
--- a/ql/src/test/results/clientpositive/llap/vector_decimal_udf2.q.out
+++ b/ql/src/test/results/clientpositive/llap/vector_decimal_udf2.q.out
@@ -165,7 +165,7 @@ FROM DECIMAL_UDF2_n0) q
POSTHOOK: type: QUERY
POSTHOOK: Input: default@decimal_udf2_n0
#### A masked pattern was here ####
--3806952922
+-3806982713
PREHOOK: query: EXPLAIN VECTORIZATION DETAIL
SELECT
exp(key), ln(key),
@@ -291,7 +291,7 @@ FROM DECIMAL_UDF2_n0) q
POSTHOOK: type: QUERY
POSTHOOK: Input: default@decimal_udf2_n0
#### A masked pattern was here ####
-1514360349
+-1970715434
PREHOOK: query: EXPLAIN VECTORIZATION DETAIL
SELECT acos(key), asin(key), atan(key), cos(key), sin(key), tan(key), radians(key)
FROM DECIMAL_UDF2_txt WHERE key = 10
@@ -399,7 +399,7 @@ FROM DECIMAL_UDF2_txt) q
POSTHOOK: type: QUERY
POSTHOOK: Input: default@decimal_udf2_txt
#### A masked pattern was here ####
--3806952922
+-3806982713
PREHOOK: query: EXPLAIN VECTORIZATION DETAIL
SELECT
exp(key), ln(key),
@@ -525,7 +525,7 @@ FROM DECIMAL_UDF2_txt) q
POSTHOOK: type: QUERY
POSTHOOK: Input: default@decimal_udf2_txt
#### A masked pattern was here ####
-1514360349
+-1970715434
PREHOOK: query: DROP TABLE IF EXISTS DECIMAL_UDF2_txt
PREHOOK: type: DROPTABLE
PREHOOK: Input: default@decimal_udf2_txt
diff --git a/ql/src/test/results/clientpositive/llap/vectorized_math_funcs.q.out b/ql/src/test/results/clientpositive/llap/vectorized_math_funcs.q.out
index 9febde9..e5f71d1 100644
--- a/ql/src/test/results/clientpositive/llap/vectorized_math_funcs.q.out
+++ b/ql/src/test/results/clientpositive/llap/vectorized_math_funcs.q.out
@@ -282,7 +282,7 @@ POSTHOOK: Input: default@alltypesorc
-200.0 -200.0 -200 -200 0.8199077823142826 NULL NULL NULL NULL NULL NULL NULL 30.57531565116074 NULL NULL NULL NULL NULL NULL NULL 39998.48747140321 1011111010111000011011101011000 2D3230302E30 5F5C3758 200.0 36 NULL 0.8732972972139946 NULL 0.4871876750070059 NULL -1.5657963684609384 -11459.155902616465 -3.490658503988659 -200.0 1599879000 200.0 -1.0 1.0 NULL
15601.0 15601.0 15601 15601 0.38656833237681376 15601.00000000001 9.65509029374725 NULL 4.193152436852078 13.929350886124324 NULL NULL NULL NULL 13.929350886124324 NULL 13.929350886124324 194.02681610877246 194.02681610877246 124.90396310766124 NULL 1111111111111111111111111111111110010001001101101010100000011000 31353630312E30 FFFFFFFF9136A818 15601.0 38 NULL -0.14856570831397706 NULL 0.9889025383288114 NULL 1.5707322283397571 893871.4561835973 272.2888166036353 15601.0 -1858689000 -156 [...]
15601.0 15601.0 15601 15601 0.41161398527282966 15601.00000000001 9.65509029374725 NULL 4.193152436852078 13.929350886124324 NULL NULL 29.18993673432575 NULL 13.929350886124324 NULL 13.929350886124324 194.02681610877246 194.02681610877246 124.90396310766124 24747.04022706554 100100100000001011101000000000 31353630312E30 2480BA00 15601.0 5 NULL -0.14856570831397706 NULL 0.9889025383288114 NULL 1.5707322283397571 893871.4561835973 272.2888166036353 15601.0 612416000 -15601.0 1.0 1.0 -0.974 [...]
-15601.0 15601.0 15601 15601 0.37807863784568585 15601.00000000001 9.65509029374725 3.871201010907891 4.193152436852078 13.929350886124324 NULL 5.584962500721157 NULL NULL 13.929350886124324 5.584962500721157 13.929350886124324 194.02681610877246 194.02681610877246 124.90396310766124 NULL 1111111111111111111111111111111111010000100101111100000100011000 31353630312E30 FFFFFFFFD097C118 15601.0 48 NULL -0.14856570831397706 NULL 0.9889025383288114 NULL 1.5707322283397571 893871.4561835973 272 [...]
+15601.0 15601.0 15601 15601 0.37807863784568585 15601.00000000001 9.65509029374725 3.8712010109078907 4.193152436852078 13.929350886124324 NULL 5.584962500721156 NULL NULL 13.929350886124324 5.584962500721156 13.929350886124324 194.02681610877246 194.02681610877246 124.90396310766124 NULL 1111111111111111111111111111111111010000100101111100000100011000 31353630312E30 FFFFFFFFD097C118 15601.0 48 NULL -0.14856570831397706 NULL 0.9889025383288114 NULL 1.5707322283397571 893871.4561835973 27 [...]
NULL NULL NULL NULL 0.3336458983920575 NULL NULL 2.0794415416798357 NULL NULL NULL 3.0 29.693388204506274 29.58473549442715 NULL 3.0 NULL NULL NULL NULL 29464.580431426475 110011101111110001011111011100 NULL 33BF17DC NULL 8 1 NULL NULL NULL NULL NULL NULL NULL NULL 868161500 NULL NULL 1.0 NULL
NULL NULL NULL NULL 0.8681331660942196 NULL NULL 2.0794415416798357 NULL NULL NULL 3.0 NULL 29.730832334348488 NULL 3.0 NULL NULL NULL NULL NULL 1111111111111111111111111111111110010000111111111000101010111000 NULL FFFFFFFF90FF8AB8 NULL 8 0 NULL NULL NULL NULL NULL NULL NULL NULL -1862301000 NULL NULL -1.0 NULL
-7196.0 -7196.0 -7196 -7196 0.03951015606275099 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1111111111111111111111111111111110100000010101110101001001110000 2D373139362E30 FFFFFFFFA0575270 7196.0 59 NULL -0.9834787875028149 NULL -0.18102340879563897 NULL -1.5706573607035177 -412300.4293761404 -125.59389297351194 -7196.0 -1604890000 7196.0 -1.0 -1.0 NULL
diff --git a/ql/src/test/results/clientpositive/spark/subquery_select.q.out b/ql/src/test/results/clientpositive/spark/subquery_select.q.out
index cbd3321..3f1a1d3 100644
--- a/ql/src/test/results/clientpositive/spark/subquery_select.q.out
+++ b/ql/src/test/results/clientpositive/spark/subquery_select.q.out
@@ -5908,14 +5908,14 @@ POSTHOOK: query: SELECT p_size, exp((SELECT max(p_size) FROM part p WHERE p.p_ty
POSTHOOK: type: QUERY
POSTHOOK: Input: default@part
#### A masked pattern was here ####
-1 2.718281828459045
+1 2.7182818284590455
10 22026.465794806718
12 162754.79141900392
14 1202604.2841647768
14 1202604.2841647768
17 2.9048849665247426E13
18 6.565996913733051E7
-19 1.7848230096318725E8
+19 1.7848230096318728E8
2 7.38905609893065
2 7.38905609893065
2 7.38905609893065
@@ -5927,7 +5927,7 @@ POSTHOOK: Input: default@part
31 2.9048849665247426E13
34 5.834617425274549E14
39 8.6593400423993744E16
-40 2.3538526683702E17
+40 2.35385266837019968E17
42 1.73927494152050099E18
45 3.4934271057485095E19
46 9.496119420602448E19
diff --git a/ql/src/test/results/clientpositive/spark/vectorized_math_funcs.q.out b/ql/src/test/results/clientpositive/spark/vectorized_math_funcs.q.out
index fde2124..6963784 100644
--- a/ql/src/test/results/clientpositive/spark/vectorized_math_funcs.q.out
+++ b/ql/src/test/results/clientpositive/spark/vectorized_math_funcs.q.out
@@ -281,7 +281,7 @@ POSTHOOK: Input: default@alltypesorc
-200.0 -200.0 -200 -200 0.8199077823142826 NULL NULL NULL NULL NULL NULL NULL 30.57531565116074 NULL NULL NULL NULL NULL NULL NULL 39998.48747140321 1011111010111000011011101011000 2D3230302E30 5F5C3758 200.0 36 NULL 0.8732972972139946 NULL 0.4871876750070059 NULL -1.5657963684609384 -11459.155902616465 -3.490658503988659 -200.0 1599879000 200.0 -1.0 1.0 NULL
15601.0 15601.0 15601 15601 0.38656833237681376 15601.00000000001 9.65509029374725 NULL 4.193152436852078 13.929350886124324 NULL NULL NULL NULL 13.929350886124324 NULL 13.929350886124324 194.02681610877246 194.02681610877246 124.90396310766124 NULL 1111111111111111111111111111111110010001001101101010100000011000 31353630312E30 FFFFFFFF9136A818 15601.0 38 NULL -0.14856570831397706 NULL 0.9889025383288114 NULL 1.5707322283397571 893871.4561835973 272.2888166036353 15601.0 -1858689000 -156 [...]
15601.0 15601.0 15601 15601 0.41161398527282966 15601.00000000001 9.65509029374725 NULL 4.193152436852078 13.929350886124324 NULL NULL 29.18993673432575 NULL 13.929350886124324 NULL 13.929350886124324 194.02681610877246 194.02681610877246 124.90396310766124 24747.04022706554 100100100000001011101000000000 31353630312E30 2480BA00 15601.0 5 NULL -0.14856570831397706 NULL 0.9889025383288114 NULL 1.5707322283397571 893871.4561835973 272.2888166036353 15601.0 612416000 -15601.0 1.0 1.0 -0.974 [...]
-15601.0 15601.0 15601 15601 0.37807863784568585 15601.00000000001 9.65509029374725 3.871201010907891 4.193152436852078 13.929350886124324 NULL 5.584962500721157 NULL NULL 13.929350886124324 5.584962500721157 13.929350886124324 194.02681610877246 194.02681610877246 124.90396310766124 NULL 1111111111111111111111111111111111010000100101111100000100011000 31353630312E30 FFFFFFFFD097C118 15601.0 48 NULL -0.14856570831397706 NULL 0.9889025383288114 NULL 1.5707322283397571 893871.4561835973 272 [...]
+15601.0 15601.0 15601 15601 0.37807863784568585 15601.00000000001 9.65509029374725 3.8712010109078907 4.193152436852078 13.929350886124324 NULL 5.584962500721157 NULL NULL 13.929350886124324 5.584962500721157 13.929350886124324 194.02681610877246 194.02681610877246 124.90396310766124 NULL 1111111111111111111111111111111111010000100101111100000100011000 31353630312E30 FFFFFFFFD097C118 15601.0 48 NULL -0.14856570831397706 NULL 0.9889025383288114 NULL 1.5707322283397571 893871.4561835973 27 [...]
NULL NULL NULL NULL 0.3336458983920575 NULL NULL 2.0794415416798357 NULL NULL NULL 3.0 29.693388204506274 29.58473549442715 NULL 3.0 NULL NULL NULL NULL 29464.580431426475 110011101111110001011111011100 NULL 33BF17DC NULL 8 1 NULL NULL NULL NULL NULL NULL NULL NULL 868161500 NULL NULL 1.0 NULL
NULL NULL NULL NULL 0.8681331660942196 NULL NULL 2.0794415416798357 NULL NULL NULL 3.0 NULL 29.730832334348488 NULL 3.0 NULL NULL NULL NULL NULL 1111111111111111111111111111111110010000111111111000101010111000 NULL FFFFFFFF90FF8AB8 NULL 8 0 NULL NULL NULL NULL NULL NULL NULL NULL -1862301000 NULL NULL -1.0 NULL
-7196.0 -7196.0 -7196 -7196 0.03951015606275099 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1111111111111111111111111111111110100000010101110101001001110000 2D373139362E30 FFFFFFFFA0575270 7196.0 59 NULL -0.9834787875028149 NULL -0.18102340879563897 NULL -1.5706573607035177 -412300.4293761404 -125.59389297351194 -7196.0 -1604890000 7196.0 -1.0 -1.0 NULL
diff --git a/vector-code-gen/src/org/apache/hadoop/hive/tools/GenVectorCode.java b/vector-code-gen/src/org/apache/hadoop/hive/tools/GenVectorCode.java
index cc413c8..54e06a5 100644
--- a/vector-code-gen/src/org/apache/hadoop/hive/tools/GenVectorCode.java
+++ b/vector-code-gen/src/org/apache/hadoop/hive/tools/GenVectorCode.java
@@ -1067,15 +1067,15 @@ public class GenVectorCode extends Task {
{"ColumnUnaryFunc", "FuncCeil", "long", "double", "Math.ceil", "", "(long)", "", ""},
// Ceil on an integer argument is a noop, but it is less code to handle it this way.
{"ColumnUnaryFunc", "FuncCeil", "long", "long", "Math.ceil", "", "(long)", "", ""},
- {"ColumnUnaryFunc", "FuncExp", "double", "double", "Math.exp", "", "", "", ""},
- {"ColumnUnaryFunc", "FuncExp", "double", "long", "Math.exp", "(double)", "", "", ""},
- {"ColumnUnaryFunc", "FuncLn", "double", "double", "Math.log", "", "",
+ {"ColumnUnaryFunc", "FuncExp", "double", "double", "StrictMath.exp", "", "", "", ""},
+ {"ColumnUnaryFunc", "FuncExp", "double", "long", "StrictMath.exp", "(double)", "", "", ""},
+ {"ColumnUnaryFunc", "FuncLn", "double", "double", "StrictMath.log", "", "",
"MathExpr.NaNToNull(outputColVector, sel, batch.selectedInUse, n, true);", ""},
- {"ColumnUnaryFunc", "FuncLn", "double", "long", "Math.log", "(double)", "",
+ {"ColumnUnaryFunc", "FuncLn", "double", "long", "StrictMath.log", "(double)", "",
"MathExpr.NaNToNull(outputColVector, sel, batch.selectedInUse, n, true);", ""},
- {"ColumnUnaryFunc", "FuncLog10", "double", "double", "Math.log10", "", "",
+ {"ColumnUnaryFunc", "FuncLog10", "double", "double", "StrictMath.log10", "", "",
"MathExpr.NaNToNull(outputColVector, sel, batch.selectedInUse, n, true);", ""},
- {"ColumnUnaryFunc", "FuncLog10", "double", "long", "Math.log10", "(double)", "",
+ {"ColumnUnaryFunc", "FuncLog10", "double", "long", "StrictMath.log10", "(double)", "",
"MathExpr.NaNToNull(outputColVector, sel, batch.selectedInUse, n, true);", ""},
// The MathExpr class contains helper functions for cases when existing library
// routines can't be used directly.
@@ -1101,8 +1101,8 @@ public class GenVectorCode extends Task {
{"ColumnUnaryFunc", "FuncAbs", "long", "long", "MathExpr.abs", "", "", "", ""},
{"ColumnUnaryFunc", "FuncSin", "double", "double", "Math.sin", "", "", "", ""},
{"ColumnUnaryFunc", "FuncSin", "double", "long", "Math.sin", "(double)", "", "", ""},
- {"ColumnUnaryFunc", "FuncCos", "double", "double", "Math.cos", "", "", "", ""},
- {"ColumnUnaryFunc", "FuncCos", "double", "long", "Math.cos", "(double)", "", "", ""},
+ {"ColumnUnaryFunc", "FuncCos", "double", "double", "StrictMath.cos", "", "", "", ""},
+ {"ColumnUnaryFunc", "FuncCos", "double", "long", "StrictMath.cos", "(double)", "", "", ""},
{"ColumnUnaryFunc", "FuncTan", "double", "double", "Math.tan", "", "", "", ""},
{"ColumnUnaryFunc", "FuncTan", "double", "long", "Math.tan", "(double)", "", "", ""},
{"ColumnUnaryFunc", "FuncATan", "double", "double", "Math.atan", "", "", "", ""},