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


Reply via email to