hive-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From eh...@apache.org
Subject svn commit: r1551416 - in /hive/trunk: ant/src/org/apache/hadoop/hive/ant/ ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/ ql/src/test/queries/clientpositive/ ql/src/test/results/clientpositive/
Date Tue, 17 Dec 2013 00:33:26 GMT
Author: ehans
Date: Tue Dec 17 00:33:26 2013
New Revision: 1551416

URL: http://svn.apache.org/r1551416
Log:
HIVE-6015: vectorized logarithm produces results for 0 that are different from a non-vectorized
one (Sergey Shelukhin via Eric Hanson)

Modified:
    hive/trunk/ant/src/org/apache/hadoop/hive/ant/GenVectorCode.java
    hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/MathExpr.java
    hive/trunk/ql/src/test/queries/clientpositive/vectorized_math_funcs.q
    hive/trunk/ql/src/test/results/clientpositive/vectorized_math_funcs.q.out

Modified: hive/trunk/ant/src/org/apache/hadoop/hive/ant/GenVectorCode.java
URL: http://svn.apache.org/viewvc/hive/trunk/ant/src/org/apache/hadoop/hive/ant/GenVectorCode.java?rev=1551416&r1=1551415&r2=1551416&view=diff
==============================================================================
--- hive/trunk/ant/src/org/apache/hadoop/hive/ant/GenVectorCode.java (original)
+++ hive/trunk/ant/src/org/apache/hadoop/hive/ant/GenVectorCode.java Tue Dec 17 00:33:26 2013
@@ -325,19 +325,19 @@ public class GenVectorCode extends Task 
       {"ColumnUnaryFunc", "FuncExp", "double", "double", "Math.exp", "", "", ""},
       {"ColumnUnaryFunc", "FuncExp", "double", "long", "Math.exp", "(double)", "", ""},
       {"ColumnUnaryFunc", "FuncLn", "double", "double", "Math.log", "", "",
-        "MathExpr.NaNToNull(outputColVector, sel, batch.selectedInUse, n);"},
+        "MathExpr.NaNToNull(outputColVector, sel, batch.selectedInUse, n, true);"},
       {"ColumnUnaryFunc", "FuncLn", "double", "long", "Math.log", "(double)", "",
-        "MathExpr.NaNToNull(outputColVector, sel, batch.selectedInUse, n);"},
+        "MathExpr.NaNToNull(outputColVector, sel, batch.selectedInUse, n, true);"},
       {"ColumnUnaryFunc", "FuncLog10", "double", "double", "Math.log10", "", "",
-        "MathExpr.NaNToNull(outputColVector, sel, batch.selectedInUse, n);"},
+        "MathExpr.NaNToNull(outputColVector, sel, batch.selectedInUse, n, true);"},
       {"ColumnUnaryFunc", "FuncLog10", "double", "long", "Math.log10", "(double)", "",
-        "MathExpr.NaNToNull(outputColVector, sel, batch.selectedInUse, n);"},
+        "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.
       {"ColumnUnaryFunc", "FuncLog2", "double", "double", "MathExpr.log2", "", "",
-        "MathExpr.NaNToNull(outputColVector, sel, batch.selectedInUse, n);"},
+        "MathExpr.NaNToNull(outputColVector, sel, batch.selectedInUse, n, true);"},
       {"ColumnUnaryFunc", "FuncLog2", "double", "long", "MathExpr.log2", "(double)", "",
-        "MathExpr.NaNToNull(outputColVector, sel, batch.selectedInUse, n);"},
+        "MathExpr.NaNToNull(outputColVector, sel, batch.selectedInUse, n, true);"},
       // Log(base, Col) is a special case and will be implemented separately from this template
       // Pow(col, P) and Power(col, P) are special cases implemented separately from this
template
       {"ColumnUnaryFunc", "FuncSqrt", "double", "double", "Math.sqrt", "", "",

Modified: hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/MathExpr.java
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/MathExpr.java?rev=1551416&r1=1551415&r2=1551416&view=diff
==============================================================================
--- hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/MathExpr.java
(original)
+++ hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/MathExpr.java
Tue Dec 17 00:33:26 2013
@@ -120,13 +120,20 @@ public class MathExpr {
 
     return current;
   }
-
+  
   // Convert all NaN values in vector v to NULL. Should only be used if n > 0.
   public static void NaNToNull(DoubleColumnVector v, int[] sel, boolean selectedInUse, int
n) {
+    NaNToNull(v, sel, selectedInUse, n, false);
+  }
 
+  // Convert all NaN, and optionally infinity values in vector v to NULL.
+  // Should only be used if n > 0.
+  public static void NaNToNull(
+      DoubleColumnVector v, int[] sel, boolean selectedInUse, int n, boolean convertInfinity)
{
     // handle repeating case
     if (v.isRepeating) {
-      if (Double.isNaN(v.vector[0])){
+      if ((convertInfinity && Double.isInfinite(v.vector[0])) || Double.isNaN(v.vector[0])){
+        v.vector[0] = DoubleColumnVector.NULL_VALUE;
         v.isNull[0] = true;
         v.noNulls = false;
       }
@@ -137,11 +144,11 @@ public class MathExpr {
       if (selectedInUse) {
         for(int j = 0; j != n; j++) {
           int i = sel[j];
-          if (Double.isNaN(v.vector[i])) {
+          if ((convertInfinity && Double.isInfinite(v.vector[i])) || Double.isNaN(v.vector[i]))
{
+            v.vector[i] = DoubleColumnVector.NULL_VALUE;
             v.isNull[i] = true;
             v.noNulls = false;
           } else {
-
             // Must set isNull[i] to false to make sure
             // it gets initialized, in case we set noNulls to true.
             v.isNull[i] = false;
@@ -149,7 +156,8 @@ public class MathExpr {
         }
       } else {
         for(int i = 0; i != n; i++) {
-          if (Double.isNaN(v.vector[i])) {
+          if ((convertInfinity && Double.isInfinite(v.vector[i])) || Double.isNaN(v.vector[i]))
{
+            v.vector[i] = DoubleColumnVector.NULL_VALUE;
             v.isNull[i] = true;
             v.noNulls = false;
           } else {
@@ -161,13 +169,15 @@ public class MathExpr {
       if (selectedInUse) {
         for (int j = 0; j != n; j++) {
           int i = sel[j];
-          if(Double.isNaN(v.vector[i])) {
+          if((convertInfinity && Double.isInfinite(v.vector[i])) || Double.isNaN(v.vector[i]))
{
+            v.vector[i] = DoubleColumnVector.NULL_VALUE;
             v.isNull[i] = true;
           }
         }
       } else {
         for (int i = 0; i != n; i++) {
-          if(Double.isNaN(v.vector[i])) {
+          if((convertInfinity && Double.isInfinite(v.vector[i])) || Double.isNaN(v.vector[i]))
{
+            v.vector[i] = DoubleColumnVector.NULL_VALUE;
             v.isNull[i] = true;
           }
         }

Modified: hive/trunk/ql/src/test/queries/clientpositive/vectorized_math_funcs.q
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/test/queries/clientpositive/vectorized_math_funcs.q?rev=1551416&r1=1551415&r2=1551416&view=diff
==============================================================================
--- hive/trunk/ql/src/test/queries/clientpositive/vectorized_math_funcs.q (original)
+++ hive/trunk/ql/src/test/queries/clientpositive/vectorized_math_funcs.q Tue Dec 17 00:33:26
2013
@@ -16,6 +16,8 @@ select
   ,Log10(cdouble)
   -- Use log2 as a representative function to test all input types.
   ,Log2(cdouble)
+  -- Use 15601.0 to test zero handling, as there are no zeroes in the table
+  ,Log2(cdouble - 15601.0)
   ,Log2(cfloat)
   ,Log2(cbigint)
   ,Log2(cint)
@@ -66,6 +68,8 @@ select
   ,Log10(cdouble)
   -- Use log2 as a representative function to test all input types.
   ,Log2(cdouble)
+  -- Use 15601.0 to test zero handling, as there are no zeroes in the table
+  ,Log2(cdouble - 15601.0)
   ,Log2(cfloat)
   ,Log2(cbigint)
   ,Log2(cint)

Modified: hive/trunk/ql/src/test/results/clientpositive/vectorized_math_funcs.q.out
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/test/results/clientpositive/vectorized_math_funcs.q.out?rev=1551416&r1=1551415&r2=1551416&view=diff
==============================================================================
--- hive/trunk/ql/src/test/results/clientpositive/vectorized_math_funcs.q.out (original)
+++ hive/trunk/ql/src/test/results/clientpositive/vectorized_math_funcs.q.out Tue Dec 17 00:33:26
2013
@@ -14,6 +14,8 @@ select
   ,Log10(cdouble)
   -- Use log2 as a representative function to test all input types.
   ,Log2(cdouble)
+  -- Use 15601.0 to test zero handling, as there are no zeroes in the table
+  ,Log2(cdouble - 15601.0)
   ,Log2(cfloat)
   ,Log2(cbigint)
   ,Log2(cint)
@@ -66,6 +68,8 @@ select
   ,Log10(cdouble)
   -- Use log2 as a representative function to test all input types.
   ,Log2(cdouble)
+  -- Use 15601.0 to test zero handling, as there are no zeroes in the table
+  ,Log2(cdouble - 15601.0)
   ,Log2(cfloat)
   ,Log2(cbigint)
   ,Log2(cint)
@@ -103,7 +107,7 @@ where cbigint % 500 = 0
 and sin(cfloat) >= -1.0
 POSTHOOK: type: QUERY
 ABSTRACT SYNTAX TREE:
-  (TOK_QUERY (TOK_FROM (TOK_TABREF (TOK_TABNAME alltypesorc))) (TOK_INSERT (TOK_DESTINATION
(TOK_DIR TOK_TMP_FILE)) (TOK_SELECT (TOK_SELEXPR (TOK_TABLE_OR_COL cdouble)) (TOK_SELEXPR
(TOK_FUNCTION Round (TOK_TABLE_OR_COL cdouble) 2)) (TOK_SELEXPR (TOK_FUNCTION Floor (TOK_TABLE_OR_COL
cdouble))) (TOK_SELEXPR (TOK_FUNCTION Ceil (TOK_TABLE_OR_COL cdouble))) (TOK_SELEXPR (TOK_FUNCTION
Rand)) (TOK_SELEXPR (TOK_FUNCTION Rand 98007)) (TOK_SELEXPR (TOK_FUNCTION Exp (TOK_FUNCTION
ln (TOK_TABLE_OR_COL cdouble)))) (TOK_SELEXPR (TOK_FUNCTION Ln (TOK_TABLE_OR_COL cdouble)))
(TOK_SELEXPR (TOK_FUNCTION Ln (TOK_TABLE_OR_COL cfloat))) (TOK_SELEXPR (TOK_FUNCTION Log10
(TOK_TABLE_OR_COL cdouble))) (TOK_SELEXPR (TOK_FUNCTION Log2 (TOK_TABLE_OR_COL cdouble)))
(TOK_SELEXPR (TOK_FUNCTION Log2 (TOK_TABLE_OR_COL cfloat))) (TOK_SELEXPR (TOK_FUNCTION Log2
(TOK_TABLE_OR_COL cbigint))) (TOK_SELEXPR (TOK_FUNCTION Log2 (TOK_TABLE_OR_COL cint))) (TOK_SELEXPR
(TOK_FUNCTION Log2 (TOK_TABLE_OR_COL csmallint))) (TOK_SE
 LEXPR (TOK_FUNCTION Log2 (TOK_TABLE_OR_COL ctinyint))) (TOK_SELEXPR (TOK_FUNCTION Log 2.0
(TOK_TABLE_OR_COL cdouble))) (TOK_SELEXPR (TOK_FUNCTION Pow (TOK_FUNCTION log2 (TOK_TABLE_OR_COL
cdouble)) 2.0)) (TOK_SELEXPR (TOK_FUNCTION Power (TOK_FUNCTION log2 (TOK_TABLE_OR_COL cdouble))
2.0)) (TOK_SELEXPR (TOK_FUNCTION Sqrt (TOK_TABLE_OR_COL cdouble))) (TOK_SELEXPR (TOK_FUNCTION
Sqrt (TOK_TABLE_OR_COL cbigint))) (TOK_SELEXPR (TOK_FUNCTION Bin (TOK_TABLE_OR_COL cbigint)))
(TOK_SELEXPR (TOK_FUNCTION Hex (TOK_TABLE_OR_COL cdouble))) (TOK_SELEXPR (TOK_FUNCTION Conv
(TOK_TABLE_OR_COL cbigint) 10 16)) (TOK_SELEXPR (TOK_FUNCTION Abs (TOK_TABLE_OR_COL cdouble)))
(TOK_SELEXPR (TOK_FUNCTION Abs (TOK_TABLE_OR_COL ctinyint))) (TOK_SELEXPR (TOK_FUNCTION Pmod
(TOK_TABLE_OR_COL cint) 3)) (TOK_SELEXPR (TOK_FUNCTION Sin (TOK_TABLE_OR_COL cdouble))) (TOK_SELEXPR
(TOK_FUNCTION Asin (TOK_TABLE_OR_COL cdouble))) (TOK_SELEXPR (TOK_FUNCTION Cos (TOK_TABLE_OR_COL
cdouble))) (TOK_SELEXPR (TOK_FUNCTION ACos (TOK_
 TABLE_OR_COL cdouble))) (TOK_SELEXPR (TOK_FUNCTION Atan (TOK_TABLE_OR_COL cdouble))) (TOK_SELEXPR
(TOK_FUNCTION Degrees (TOK_TABLE_OR_COL cdouble))) (TOK_SELEXPR (TOK_FUNCTION Radians (TOK_TABLE_OR_COL
cdouble))) (TOK_SELEXPR (TOK_FUNCTION Positive (TOK_TABLE_OR_COL cdouble))) (TOK_SELEXPR (TOK_FUNCTION
Positive (TOK_TABLE_OR_COL cbigint))) (TOK_SELEXPR (TOK_FUNCTION Negative (TOK_TABLE_OR_COL
cdouble))) (TOK_SELEXPR (TOK_FUNCTION Sign (TOK_TABLE_OR_COL cdouble))) (TOK_SELEXPR (TOK_FUNCTION
Sign (TOK_TABLE_OR_COL cbigint))) (TOK_SELEXPR (TOK_FUNCTION cos (+ (- (TOK_FUNCTION sin (TOK_FUNCTION
log (TOK_TABLE_OR_COL cdouble)))) 3.14159)))) (TOK_WHERE (and (= (% (TOK_TABLE_OR_COL cbigint)
500) 0) (>= (TOK_FUNCTION sin (TOK_TABLE_OR_COL cfloat)) (- 1.0))))))
+  (TOK_QUERY (TOK_FROM (TOK_TABREF (TOK_TABNAME alltypesorc))) (TOK_INSERT (TOK_DESTINATION
(TOK_DIR TOK_TMP_FILE)) (TOK_SELECT (TOK_SELEXPR (TOK_TABLE_OR_COL cdouble)) (TOK_SELEXPR
(TOK_FUNCTION Round (TOK_TABLE_OR_COL cdouble) 2)) (TOK_SELEXPR (TOK_FUNCTION Floor (TOK_TABLE_OR_COL
cdouble))) (TOK_SELEXPR (TOK_FUNCTION Ceil (TOK_TABLE_OR_COL cdouble))) (TOK_SELEXPR (TOK_FUNCTION
Rand)) (TOK_SELEXPR (TOK_FUNCTION Rand 98007)) (TOK_SELEXPR (TOK_FUNCTION Exp (TOK_FUNCTION
ln (TOK_TABLE_OR_COL cdouble)))) (TOK_SELEXPR (TOK_FUNCTION Ln (TOK_TABLE_OR_COL cdouble)))
(TOK_SELEXPR (TOK_FUNCTION Ln (TOK_TABLE_OR_COL cfloat))) (TOK_SELEXPR (TOK_FUNCTION Log10
(TOK_TABLE_OR_COL cdouble))) (TOK_SELEXPR (TOK_FUNCTION Log2 (TOK_TABLE_OR_COL cdouble)))
(TOK_SELEXPR (TOK_FUNCTION Log2 (- (TOK_TABLE_OR_COL cdouble) 15601.0))) (TOK_SELEXPR (TOK_FUNCTION
Log2 (TOK_TABLE_OR_COL cfloat))) (TOK_SELEXPR (TOK_FUNCTION Log2 (TOK_TABLE_OR_COL cbigint)))
(TOK_SELEXPR (TOK_FUNCTION Log2 (TOK_TABLE_OR_COL cint)
 )) (TOK_SELEXPR (TOK_FUNCTION Log2 (TOK_TABLE_OR_COL csmallint))) (TOK_SELEXPR (TOK_FUNCTION
Log2 (TOK_TABLE_OR_COL ctinyint))) (TOK_SELEXPR (TOK_FUNCTION Log 2.0 (TOK_TABLE_OR_COL cdouble)))
(TOK_SELEXPR (TOK_FUNCTION Pow (TOK_FUNCTION log2 (TOK_TABLE_OR_COL cdouble)) 2.0)) (TOK_SELEXPR
(TOK_FUNCTION Power (TOK_FUNCTION log2 (TOK_TABLE_OR_COL cdouble)) 2.0)) (TOK_SELEXPR (TOK_FUNCTION
Sqrt (TOK_TABLE_OR_COL cdouble))) (TOK_SELEXPR (TOK_FUNCTION Sqrt (TOK_TABLE_OR_COL cbigint)))
(TOK_SELEXPR (TOK_FUNCTION Bin (TOK_TABLE_OR_COL cbigint))) (TOK_SELEXPR (TOK_FUNCTION Hex
(TOK_TABLE_OR_COL cdouble))) (TOK_SELEXPR (TOK_FUNCTION Conv (TOK_TABLE_OR_COL cbigint) 10
16)) (TOK_SELEXPR (TOK_FUNCTION Abs (TOK_TABLE_OR_COL cdouble))) (TOK_SELEXPR (TOK_FUNCTION
Abs (TOK_TABLE_OR_COL ctinyint))) (TOK_SELEXPR (TOK_FUNCTION Pmod (TOK_TABLE_OR_COL cint)
3)) (TOK_SELEXPR (TOK_FUNCTION Sin (TOK_TABLE_OR_COL cdouble))) (TOK_SELEXPR (TOK_FUNCTION
Asin (TOK_TABLE_OR_COL cdouble))) (TOK_SELEXPR (TOK_FUNCTI
 ON Cos (TOK_TABLE_OR_COL cdouble))) (TOK_SELEXPR (TOK_FUNCTION ACos (TOK_TABLE_OR_COL cdouble)))
(TOK_SELEXPR (TOK_FUNCTION Atan (TOK_TABLE_OR_COL cdouble))) (TOK_SELEXPR (TOK_FUNCTION Degrees
(TOK_TABLE_OR_COL cdouble))) (TOK_SELEXPR (TOK_FUNCTION Radians (TOK_TABLE_OR_COL cdouble)))
(TOK_SELEXPR (TOK_FUNCTION Positive (TOK_TABLE_OR_COL cdouble))) (TOK_SELEXPR (TOK_FUNCTION
Positive (TOK_TABLE_OR_COL cbigint))) (TOK_SELEXPR (TOK_FUNCTION Negative (TOK_TABLE_OR_COL
cdouble))) (TOK_SELEXPR (TOK_FUNCTION Sign (TOK_TABLE_OR_COL cdouble))) (TOK_SELEXPR (TOK_FUNCTION
Sign (TOK_TABLE_OR_COL cbigint))) (TOK_SELEXPR (TOK_FUNCTION cos (+ (- (TOK_FUNCTION sin (TOK_FUNCTION
log (TOK_TABLE_OR_COL cdouble)))) 3.14159)))) (TOK_WHERE (and (= (% (TOK_TABLE_OR_COL cbigint)
500) 0) (>= (TOK_FUNCTION sin (TOK_TABLE_OR_COL cfloat)) (- 1.0))))))
 
 STAGE DEPENDENCIES:
   Stage-1 is a root stage
@@ -145,6 +149,8 @@ STAGE PLANS:
                       type: double
                       expr: log2(cdouble)
                       type: double
+                      expr: log2((cdouble - 15601.0))
+                      type: double
                       expr: log2(cfloat)
                       type: double
                       expr: log2(cbigint)
@@ -203,7 +209,7 @@ STAGE PLANS:
                       type: double
                       expr: cos(((- sin(log(cdouble))) + 3.14159))
                       type: double
-                outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7,
_col8, _col9, _col10, _col11, _col12, _col13, _col14, _col15, _col16, _col17, _col18, _col19,
_col20, _col21, _col22, _col23, _col24, _col25, _col26, _col27, _col28, _col29, _col30, _col31,
_col32, _col33, _col34, _col35, _col36, _col37, _col38, _col39
+                outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7,
_col8, _col9, _col10, _col11, _col12, _col13, _col14, _col15, _col16, _col17, _col18, _col19,
_col20, _col21, _col22, _col23, _col24, _col25, _col26, _col27, _col28, _col29, _col30, _col31,
_col32, _col33, _col34, _col35, _col36, _col37, _col38, _col39, _col40
                 Vectorized execution: true
                 File Output Operator
                   compressed: false
@@ -232,6 +238,8 @@ PREHOOK: query: select
   ,Log10(cdouble)
   -- Use log2 as a representative function to test all input types.
   ,Log2(cdouble)
+  -- Use 15601.0 to test zero handling, as there are no zeroes in the table
+  ,Log2(cdouble - 15601.0)
   ,Log2(cfloat)
   ,Log2(cbigint)
   ,Log2(cint)
@@ -284,6 +292,8 @@ POSTHOOK: query: select
   ,Log10(cdouble)
   -- Use log2 as a representative function to test all input types.
   ,Log2(cdouble)
+  -- Use 15601.0 to test zero handling, as there are no zeroes in the table
+  ,Log2(cdouble - 15601.0)
   ,Log2(cfloat)
   ,Log2(cbigint)
   ,Log2(cint)
@@ -322,17 +332,17 @@ and sin(cfloat) >= -1.0
 POSTHOOK: type: QUERY
 POSTHOOK: Input: default@alltypesorc
 #### A masked pattern was here ####
--200.0	-200.0	-200	-200	0.8199077823142826	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	NaN	0.4871876750070059	NaN	-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	13.929350886124324	NULL	13.929350886124324	194.02681610877246
194.02681610877246	124.90396310766124	NULL	1111111111111111111111111111111110010001001101101010100000011000
31353630312E30	FFFFFFFF9136A818	15601.0	38	NULL	-0.14856570831397706	NaN	0.9889025383288114
NaN	1.5707322283397571	893871.4561835973	272.2888166036353	15601.0	-1858689000	-15601.0	1.0
-1.0	-0.9740573096878733
-15601.0	15601.0	15601	15601	0.41161398527282966	15601.00000000001	9.65509029374725	NULL	4.193152436852078
13.929350886124324	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	NaN	0.9889025383288114	NaN	1.5707322283397571
893871.4561835973	272.2888166036353	15601.0	612416000	-15601.0	1.0	1.0	-0.9740573096878733
-15601.0	15601.0	15601	15601	0.37807863784568585	15601.00000000001	9.65509029374725	3.871201010907891
4.193152436852078	13.929350886124324	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	NaN	0.9889025383288114
NaN	1.5707322283397571	893871.4561835973	272.2888166036353	15601.0	-795361000	-15601.0	1.0
-1.0	-0.9740573096878733
-NULL	NULL	NULL	NULL	0.3336458983920575	NULL	NULL	2.0794415416798357	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	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	1111111111111111111111111111111110100000010101110101001001110000
2D373139362E30	FFFFFFFFA0575270	7196.0	59	NULL	-0.9834787875028149	NaN	-0.18102340879563897
NaN	-1.5706573607035177	-412300.4293761404	-125.59389297351194	-7196.0	-1604890000	7196.0
-1.0	-1.0	NULL
--7196.0	-7196.0	-7196	-7196	0.9209252022050654	NULL	NULL	NULL	NULL	NULL	NULL	30.52255693577237
NULL	NULL	NULL	NULL	NULL	NULL	NULL	39273.76987252433	1011011111011111001100101001000	2D373139362E30
5BEF9948	7196.0	21	NULL	-0.9834787875028149	NaN	-0.18102340879563897	NaN	-1.5706573607035177
-412300.4293761404	-125.59389297351194	-7196.0	1542429000	7196.0	-1.0	1.0	NULL
--7196.0	-7196.0	-7196	-7196	0.4533660450429132	NULL	NULL	NULL	NULL	NULL	NULL	NULL	NULL	NULL
NULL	NULL	NULL	NULL	NULL	NULL	1111111111111111111111111111111110100011011110110101000010110100
2D373139362E30	FFFFFFFFA37B50B4	7196.0	14	NULL	-0.9834787875028149	NaN	-0.18102340879563897
NaN	-1.5706573607035177	-412300.4293761404	-125.59389297351194	-7196.0	-1552199500	7196.0
-1.0	-1.0	NULL
--7196.0	-7196.0	-7196	-7196	0.14567136069921982	NULL	NULL	4.07753744390572	NULL	NULL	5.882643049361842
NULL	NULL	NULL	5.882643049361842	NULL	NULL	NULL	NULL	NULL	1111111111111111111111111111111110111100001011110011111001111100
2D373139362E30	FFFFFFFFBC2F3E7C	7196.0	59	NULL	-0.9834787875028149	NaN	-0.18102340879563897
NaN	-1.5706573607035177	-412300.4293761404	-125.59389297351194	-7196.0	-1137754500	7196.0
-1.0	-1.0	NULL
--7196.0	-7196.0	-7196	-7196	0.5264452612398715	NULL	NULL	NULL	NULL	NULL	NULL	NULL	NULL	NULL
NULL	NULL	NULL	NULL	NULL	NULL	1111111111111111111111111111111110010001101110110101111010110100
2D373139362E30	FFFFFFFF91BB5EB4	7196.0	8	NULL	-0.9834787875028149	NaN	-0.18102340879563897
NaN	-1.5706573607035177	-412300.4293761404	-125.59389297351194	-7196.0	-1849991500	7196.0
-1.0	-1.0	NULL
--7196.0	-7196.0	-7196	-7196	0.17837094616515647	NULL	NULL	1.6094379124341003	NULL	NULL	2.321928094887362
NULL	NULL	NULL	2.321928094887362	NULL	NULL	NULL	NULL	NULL	1111111111111111111111111111111111000011011101110000111100110100
2D373139362E30	FFFFFFFFC3770F34	7196.0	5	NULL	-0.9834787875028149	NaN	-0.18102340879563897
NaN	-1.5706573607035177	-412300.4293761404	-125.59389297351194	-7196.0	-1015607500	7196.0
-1.0	-1.0	NULL
--7196.0	-7196.0	-7196	-7196	0.5456857574763374	NULL	NULL	NULL	NULL	NULL	NULL	29.62699001935971
NULL	NULL	NULL	NULL	NULL	NULL	NULL	28794.287627930647	110001011010110011101011011000	2D373139362E30
316B3AD8	7196.0	24	NULL	-0.9834787875028149	NaN	-0.18102340879563897	NaN	-1.5706573607035177
-412300.4293761404	-125.59389297351194	-7196.0	829111000	7196.0	-1.0	1.0	NULL
-NULL	NULL	NULL	NULL	0.282703740641956	NULL	NULL	2.3978952727983707	NULL	NULL	3.4594316186372978
30.19990821555368	NULL	NULL	3.4594316186372978	NULL	NULL	NULL	NULL	35118.75567271711	1001001100000110001001110011000
NULL	49831398	NULL	11	1	NULL	NULL	NULL	NULL	NULL	NULL	NULL	NULL	1233327000	NULL	NULL	1.0	NULL
+-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	NaN	0.4871876750070059	NaN	-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	NaN	0.9889025383288114
NaN	1.5707322283397571	893871.4561835973	272.2888166036353	15601.0	-1858689000	-15601.0	1.0
-1.0	-0.9740573096878733
+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	NaN	0.9889025383288114	NaN	1.5707322283397571
893871.4561835973	272.2888166036353	15601.0	612416000	-15601.0	1.0	1.0	-0.9740573096878733
+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	NaN	0.9889025383288114
NaN	1.5707322283397571	893871.4561835973	272.2888166036353	15601.0	-795361000	-15601.0	1.0
-1.0	-0.9740573096878733
+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	NaN	-0.18102340879563897
NaN	-1.5706573607035177	-412300.4293761404	-125.59389297351194	-7196.0	-1604890000	7196.0
-1.0	-1.0	NULL
+-7196.0	-7196.0	-7196	-7196	0.9209252022050654	NULL	NULL	NULL	NULL	NULL	NULL	NULL	30.52255693577237
NULL	NULL	NULL	NULL	NULL	NULL	NULL	39273.76987252433	1011011111011111001100101001000	2D373139362E30
5BEF9948	7196.0	21	NULL	-0.9834787875028149	NaN	-0.18102340879563897	NaN	-1.5706573607035177
-412300.4293761404	-125.59389297351194	-7196.0	1542429000	7196.0	-1.0	1.0	NULL
+-7196.0	-7196.0	-7196	-7196	0.4533660450429132	NULL	NULL	NULL	NULL	NULL	NULL	NULL	NULL	NULL
NULL	NULL	NULL	NULL	NULL	NULL	NULL	1111111111111111111111111111111110100011011110110101000010110100
2D373139362E30	FFFFFFFFA37B50B4	7196.0	14	NULL	-0.9834787875028149	NaN	-0.18102340879563897
NaN	-1.5706573607035177	-412300.4293761404	-125.59389297351194	-7196.0	-1552199500	7196.0
-1.0	-1.0	NULL
+-7196.0	-7196.0	-7196	-7196	0.14567136069921982	NULL	NULL	4.07753744390572	NULL	NULL	NULL
5.882643049361842	NULL	NULL	NULL	5.882643049361842	NULL	NULL	NULL	NULL	NULL	1111111111111111111111111111111110111100001011110011111001111100
2D373139362E30	FFFFFFFFBC2F3E7C	7196.0	59	NULL	-0.9834787875028149	NaN	-0.18102340879563897
NaN	-1.5706573607035177	-412300.4293761404	-125.59389297351194	-7196.0	-1137754500	7196.0
-1.0	-1.0	NULL
+-7196.0	-7196.0	-7196	-7196	0.5264452612398715	NULL	NULL	NULL	NULL	NULL	NULL	NULL	NULL	NULL
NULL	NULL	NULL	NULL	NULL	NULL	NULL	1111111111111111111111111111111110010001101110110101111010110100
2D373139362E30	FFFFFFFF91BB5EB4	7196.0	8	NULL	-0.9834787875028149	NaN	-0.18102340879563897
NaN	-1.5706573607035177	-412300.4293761404	-125.59389297351194	-7196.0	-1849991500	7196.0
-1.0	-1.0	NULL
+-7196.0	-7196.0	-7196	-7196	0.17837094616515647	NULL	NULL	1.6094379124341003	NULL	NULL	NULL
2.321928094887362	NULL	NULL	NULL	2.321928094887362	NULL	NULL	NULL	NULL	NULL	1111111111111111111111111111111111000011011101110000111100110100
2D373139362E30	FFFFFFFFC3770F34	7196.0	5	NULL	-0.9834787875028149	NaN	-0.18102340879563897
NaN	-1.5706573607035177	-412300.4293761404	-125.59389297351194	-7196.0	-1015607500	7196.0
-1.0	-1.0	NULL
+-7196.0	-7196.0	-7196	-7196	0.5456857574763374	NULL	NULL	NULL	NULL	NULL	NULL	NULL	29.62699001935971
NULL	NULL	NULL	NULL	NULL	NULL	NULL	28794.287627930647	110001011010110011101011011000	2D373139362E30
316B3AD8	7196.0	24	NULL	-0.9834787875028149	NaN	-0.18102340879563897	NaN	-1.5706573607035177
-412300.4293761404	-125.59389297351194	-7196.0	829111000	7196.0	-1.0	1.0	NULL
+NULL	NULL	NULL	NULL	0.282703740641956	NULL	NULL	2.3978952727983707	NULL	NULL	NULL	3.4594316186372978
30.19990821555368	NULL	NULL	3.4594316186372978	NULL	NULL	NULL	NULL	35118.75567271711	1001001100000110001001110011000
NULL	49831398	NULL	11	1	NULL	NULL	NULL	NULL	NULL	NULL	NULL	NULL	1233327000	NULL	NULL	1.0	NULL



Mime
View raw message