(0,0) | (-5,-12) | 2.4
(0,0) | (1e-300,-1e-300) | 1.79769313486e+308
(0,0) | (1e+300,Infinity) | Infinity
+ (0,0) | (Infinity,1e+300) | 0
(0,0) | (NaN,NaN) | NaN
(0,0) | (10,10) | 1
(-10,0) | (0,0) | 0
(-10,0) | (-5,-12) | -2.4
(-10,0) | (1e-300,-1e-300) | 0
(-10,0) | (1e+300,Infinity) | Infinity
+ (-10,0) | (Infinity,1e+300) | 0
(-10,0) | (NaN,NaN) | NaN
(-10,0) | (10,10) | 0.5
(-3,4) | (0,0) | -1.33333333333
(-3,4) | (-5,-12) | 8
(-3,4) | (1e-300,-1e-300) | -1.33333333333
(-3,4) | (1e+300,Infinity) | Infinity
+ (-3,4) | (Infinity,1e+300) | 0
(-3,4) | (NaN,NaN) | NaN
(-3,4) | (10,10) | 0.461538461538
(5.1,34.5) | (0,0) | 6.76470588235
(5.1,34.5) | (-5,-12) | 4.60396039604
(5.1,34.5) | (1e-300,-1e-300) | 6.76470588235
(5.1,34.5) | (1e+300,Infinity) | Infinity
+ (5.1,34.5) | (Infinity,1e+300) | 0
(5.1,34.5) | (NaN,NaN) | NaN
(5.1,34.5) | (10,10) | -5
(-5,-12) | (0,0) | 2.4
(-5,-12) | (-5,-12) | 1.79769313486e+308
(-5,-12) | (1e-300,-1e-300) | 2.4
(-5,-12) | (1e+300,Infinity) | Infinity
+ (-5,-12) | (Infinity,1e+300) | 0
(-5,-12) | (NaN,NaN) | NaN
(-5,-12) | (10,10) | 1.46666666667
(1e-300,-1e-300) | (0,0) | 1.79769313486e+308
(1e-300,-1e-300) | (-5,-12) | 2.4
(1e-300,-1e-300) | (1e-300,-1e-300) | 1.79769313486e+308
(1e-300,-1e-300) | (1e+300,Infinity) | Infinity
+ (1e-300,-1e-300) | (Infinity,1e+300) | 0
(1e-300,-1e-300) | (NaN,NaN) | NaN
(1e-300,-1e-300) | (10,10) | 1
(1e+300,Infinity) | (0,0) | Infinity
(1e+300,Infinity) | (-5,-12) | Infinity
(1e+300,Infinity) | (1e-300,-1e-300) | Infinity
(1e+300,Infinity) | (1e+300,Infinity) | 1.79769313486e+308
+ (1e+300,Infinity) | (Infinity,1e+300) | NaN
(1e+300,Infinity) | (NaN,NaN) | NaN
(1e+300,Infinity) | (10,10) | Infinity
+ (Infinity,1e+300) | (0,0) | 0
+ (Infinity,1e+300) | (-10,0) | 0
+ (Infinity,1e+300) | (-3,4) | 0
+ (Infinity,1e+300) | (5.1,34.5) | 0
+ (Infinity,1e+300) | (-5,-12) | 0
+ (Infinity,1e+300) | (1e-300,-1e-300) | 0
+ (Infinity,1e+300) | (1e+300,Infinity) | NaN
+ (Infinity,1e+300) | (Infinity,1e+300) | 0
+ (Infinity,1e+300) | (NaN,NaN) | NaN
+ (Infinity,1e+300) | (10,10) | 0
(NaN,NaN) | (0,0) | NaN
(NaN,NaN) | (-10,0) | NaN
(NaN,NaN) | (-3,4) | NaN
(NaN,NaN) | (-5,-12) | NaN
(NaN,NaN) | (1e-300,-1e-300) | NaN
(NaN,NaN) | (1e+300,Infinity) | NaN
+ (NaN,NaN) | (Infinity,1e+300) | NaN
(NaN,NaN) | (NaN,NaN) | NaN
(NaN,NaN) | (10,10) | NaN
(10,10) | (0,0) | 1
(10,10) | (-5,-12) | 1.46666666667
(10,10) | (1e-300,-1e-300) | 1
(10,10) | (1e+300,Infinity) | Infinity
+ (10,10) | (Infinity,1e+300) | 0
(10,10) | (NaN,NaN) | NaN
(10,10) | (10,10) | 1.79769313486e+308
-(81 rows)
+(100 rows)
-- Add point
SELECT p1.f1, p2.f1, p1.f1 + p2.f1 FROM POINT_TBL p1, POINT_TBL p2;
- f1 | f1 | ?column?
--------------------+-------------------+-------------------
+ f1 | f1 | ?column?
+-------------------+-------------------+---------------------
(0,0) | (0,0) | (0,0)
(0,0) | (-10,0) | (-10,0)
(0,0) | (-3,4) | (-3,4)
(0,0) | (-5,-12) | (-5,-12)
(0,0) | (1e-300,-1e-300) | (1e-300,-1e-300)
(0,0) | (1e+300,Infinity) | (1e+300,Infinity)
+ (0,0) | (Infinity,1e+300) | (Infinity,1e+300)
(0,0) | (NaN,NaN) | (NaN,NaN)
(0,0) | (10,10) | (10,10)
(-10,0) | (0,0) | (-10,0)
(-10,0) | (-5,-12) | (-15,-12)
(-10,0) | (1e-300,-1e-300) | (-10,-1e-300)
(-10,0) | (1e+300,Infinity) | (1e+300,Infinity)
+ (-10,0) | (Infinity,1e+300) | (Infinity,1e+300)
(-10,0) | (NaN,NaN) | (NaN,NaN)
(-10,0) | (10,10) | (0,10)
(-3,4) | (0,0) | (-3,4)
(-3,4) | (-5,-12) | (-8,-8)
(-3,4) | (1e-300,-1e-300) | (-3,4)
(-3,4) | (1e+300,Infinity) | (1e+300,Infinity)
+ (-3,4) | (Infinity,1e+300) | (Infinity,1e+300)
(-3,4) | (NaN,NaN) | (NaN,NaN)
(-3,4) | (10,10) | (7,14)
(5.1,34.5) | (0,0) | (5.1,34.5)
(5.1,34.5) | (-5,-12) | (0.1,22.5)
(5.1,34.5) | (1e-300,-1e-300) | (5.1,34.5)
(5.1,34.5) | (1e+300,Infinity) | (1e+300,Infinity)
+ (5.1,34.5) | (Infinity,1e+300) | (Infinity,1e+300)
(5.1,34.5) | (NaN,NaN) | (NaN,NaN)
(5.1,34.5) | (10,10) | (15.1,44.5)
(-5,-12) | (0,0) | (-5,-12)
(-5,-12) | (-5,-12) | (-10,-24)
(-5,-12) | (1e-300,-1e-300) | (-5,-12)
(-5,-12) | (1e+300,Infinity) | (1e+300,Infinity)
+ (-5,-12) | (Infinity,1e+300) | (Infinity,1e+300)
(-5,-12) | (NaN,NaN) | (NaN,NaN)
(-5,-12) | (10,10) | (5,-2)
(1e-300,-1e-300) | (0,0) | (1e-300,-1e-300)
(1e-300,-1e-300) | (-5,-12) | (-5,-12)
(1e-300,-1e-300) | (1e-300,-1e-300) | (2e-300,-2e-300)
(1e-300,-1e-300) | (1e+300,Infinity) | (1e+300,Infinity)
+ (1e-300,-1e-300) | (Infinity,1e+300) | (Infinity,1e+300)
(1e-300,-1e-300) | (NaN,NaN) | (NaN,NaN)
(1e-300,-1e-300) | (10,10) | (10,10)
(1e+300,Infinity) | (0,0) | (1e+300,Infinity)
(1e+300,Infinity) | (-5,-12) | (1e+300,Infinity)
(1e+300,Infinity) | (1e-300,-1e-300) | (1e+300,Infinity)
(1e+300,Infinity) | (1e+300,Infinity) | (2e+300,Infinity)
+ (1e+300,Infinity) | (Infinity,1e+300) | (Infinity,Infinity)
(1e+300,Infinity) | (NaN,NaN) | (NaN,NaN)
(1e+300,Infinity) | (10,10) | (1e+300,Infinity)
+ (Infinity,1e+300) | (0,0) | (Infinity,1e+300)
+ (Infinity,1e+300) | (-10,0) | (Infinity,1e+300)
+ (Infinity,1e+300) | (-3,4) | (Infinity,1e+300)
+ (Infinity,1e+300) | (5.1,34.5) | (Infinity,1e+300)
+ (Infinity,1e+300) | (-5,-12) | (Infinity,1e+300)
+ (Infinity,1e+300) | (1e-300,-1e-300) | (Infinity,1e+300)
+ (Infinity,1e+300) | (1e+300,Infinity) | (Infinity,Infinity)
+ (Infinity,1e+300) | (Infinity,1e+300) | (Infinity,2e+300)
+ (Infinity,1e+300) | (NaN,NaN) | (NaN,NaN)
+ (Infinity,1e+300) | (10,10) | (Infinity,1e+300)
(NaN,NaN) | (0,0) | (NaN,NaN)
(NaN,NaN) | (-10,0) | (NaN,NaN)
(NaN,NaN) | (-3,4) | (NaN,NaN)
(NaN,NaN) | (-5,-12) | (NaN,NaN)
(NaN,NaN) | (1e-300,-1e-300) | (NaN,NaN)
(NaN,NaN) | (1e+300,Infinity) | (NaN,NaN)
+ (NaN,NaN) | (Infinity,1e+300) | (NaN,NaN)
(NaN,NaN) | (NaN,NaN) | (NaN,NaN)
(NaN,NaN) | (10,10) | (NaN,NaN)
(10,10) | (0,0) | (10,10)
(10,10) | (-5,-12) | (5,-2)
(10,10) | (1e-300,-1e-300) | (10,10)
(10,10) | (1e+300,Infinity) | (1e+300,Infinity)
+ (10,10) | (Infinity,1e+300) | (Infinity,1e+300)
(10,10) | (NaN,NaN) | (NaN,NaN)
(10,10) | (10,10) | (20,20)
-(81 rows)
+(100 rows)
-- Subtract point
SELECT p1.f1, p2.f1, p1.f1 - p2.f1 FROM POINT_TBL p1, POINT_TBL p2;
- f1 | f1 | ?column?
--------------------+-------------------+---------------------
+ f1 | f1 | ?column?
+-------------------+-------------------+----------------------
(0,0) | (0,0) | (0,0)
(0,0) | (-10,0) | (10,0)
(0,0) | (-3,4) | (3,-4)
(0,0) | (-5,-12) | (5,12)
(0,0) | (1e-300,-1e-300) | (-1e-300,1e-300)
(0,0) | (1e+300,Infinity) | (-1e+300,-Infinity)
+ (0,0) | (Infinity,1e+300) | (-Infinity,-1e+300)
(0,0) | (NaN,NaN) | (NaN,NaN)
(0,0) | (10,10) | (-10,-10)
(-10,0) | (0,0) | (-10,0)
(-10,0) | (-5,-12) | (-5,12)
(-10,0) | (1e-300,-1e-300) | (-10,1e-300)
(-10,0) | (1e+300,Infinity) | (-1e+300,-Infinity)
+ (-10,0) | (Infinity,1e+300) | (-Infinity,-1e+300)
(-10,0) | (NaN,NaN) | (NaN,NaN)
(-10,0) | (10,10) | (-20,-10)
(-3,4) | (0,0) | (-3,4)
(-3,4) | (-5,-12) | (2,16)
(-3,4) | (1e-300,-1e-300) | (-3,4)
(-3,4) | (1e+300,Infinity) | (-1e+300,-Infinity)
+ (-3,4) | (Infinity,1e+300) | (-Infinity,-1e+300)
(-3,4) | (NaN,NaN) | (NaN,NaN)
(-3,4) | (10,10) | (-13,-6)
(5.1,34.5) | (0,0) | (5.1,34.5)
(5.1,34.5) | (-5,-12) | (10.1,46.5)
(5.1,34.5) | (1e-300,-1e-300) | (5.1,34.5)
(5.1,34.5) | (1e+300,Infinity) | (-1e+300,-Infinity)
+ (5.1,34.5) | (Infinity,1e+300) | (-Infinity,-1e+300)
(5.1,34.5) | (NaN,NaN) | (NaN,NaN)
(5.1,34.5) | (10,10) | (-4.9,24.5)
(-5,-12) | (0,0) | (-5,-12)
(-5,-12) | (-5,-12) | (0,0)
(-5,-12) | (1e-300,-1e-300) | (-5,-12)
(-5,-12) | (1e+300,Infinity) | (-1e+300,-Infinity)
+ (-5,-12) | (Infinity,1e+300) | (-Infinity,-1e+300)
(-5,-12) | (NaN,NaN) | (NaN,NaN)
(-5,-12) | (10,10) | (-15,-22)
(1e-300,-1e-300) | (0,0) | (1e-300,-1e-300)
(1e-300,-1e-300) | (-5,-12) | (5,12)
(1e-300,-1e-300) | (1e-300,-1e-300) | (0,0)
(1e-300,-1e-300) | (1e+300,Infinity) | (-1e+300,-Infinity)
+ (1e-300,-1e-300) | (Infinity,1e+300) | (-Infinity,-1e+300)
(1e-300,-1e-300) | (NaN,NaN) | (NaN,NaN)
(1e-300,-1e-300) | (10,10) | (-10,-10)
(1e+300,Infinity) | (0,0) | (1e+300,Infinity)
(1e+300,Infinity) | (-5,-12) | (1e+300,Infinity)
(1e+300,Infinity) | (1e-300,-1e-300) | (1e+300,Infinity)
(1e+300,Infinity) | (1e+300,Infinity) | (0,NaN)
+ (1e+300,Infinity) | (Infinity,1e+300) | (-Infinity,Infinity)
(1e+300,Infinity) | (NaN,NaN) | (NaN,NaN)
(1e+300,Infinity) | (10,10) | (1e+300,Infinity)
+ (Infinity,1e+300) | (0,0) | (Infinity,1e+300)
+ (Infinity,1e+300) | (-10,0) | (Infinity,1e+300)
+ (Infinity,1e+300) | (-3,4) | (Infinity,1e+300)
+ (Infinity,1e+300) | (5.1,34.5) | (Infinity,1e+300)
+ (Infinity,1e+300) | (-5,-12) | (Infinity,1e+300)
+ (Infinity,1e+300) | (1e-300,-1e-300) | (Infinity,1e+300)
+ (Infinity,1e+300) | (1e+300,Infinity) | (Infinity,-Infinity)
+ (Infinity,1e+300) | (Infinity,1e+300) | (NaN,0)
+ (Infinity,1e+300) | (NaN,NaN) | (NaN,NaN)
+ (Infinity,1e+300) | (10,10) | (Infinity,1e+300)
(NaN,NaN) | (0,0) | (NaN,NaN)
(NaN,NaN) | (-10,0) | (NaN,NaN)
(NaN,NaN) | (-3,4) | (NaN,NaN)
(NaN,NaN) | (-5,-12) | (NaN,NaN)
(NaN,NaN) | (1e-300,-1e-300) | (NaN,NaN)
(NaN,NaN) | (1e+300,Infinity) | (NaN,NaN)
+ (NaN,NaN) | (Infinity,1e+300) | (NaN,NaN)
(NaN,NaN) | (NaN,NaN) | (NaN,NaN)
(NaN,NaN) | (10,10) | (NaN,NaN)
(10,10) | (0,0) | (10,10)
(10,10) | (-5,-12) | (15,22)
(10,10) | (1e-300,-1e-300) | (10,10)
(10,10) | (1e+300,Infinity) | (-1e+300,-Infinity)
+ (10,10) | (Infinity,1e+300) | (-Infinity,-1e+300)
(10,10) | (NaN,NaN) | (NaN,NaN)
(10,10) | (10,10) | (0,0)
-(81 rows)
+(100 rows)
-- Multiply with point
SELECT p1.f1, p2.f1, p1.f1 * p2.f1 FROM POINT_TBL p1, POINT_TBL p2 WHERE p1.f1[0] BETWEEN 1 AND 1000;
(10,10) | (1e-300,-1e-300) | (2e-299,0)
(5.1,34.5) | (1e+300,Infinity) | (-Infinity,Infinity)
(10,10) | (1e+300,Infinity) | (-Infinity,Infinity)
+ (5.1,34.5) | (Infinity,1e+300) | (Infinity,Infinity)
+ (10,10) | (Infinity,1e+300) | (Infinity,Infinity)
(5.1,34.5) | (NaN,NaN) | (NaN,NaN)
(10,10) | (NaN,NaN) | (NaN,NaN)
(5.1,34.5) | (10,10) | (-294,396)
(10,10) | (10,10) | (0,200)
-(18 rows)
+(20 rows)
-- Underflow error
SELECT p1.f1, p2.f1, p1.f1 * p2.f1 FROM POINT_TBL p1, POINT_TBL p2 WHERE p1.f1[0] < 1;
(1e-300,-1e-300) | (10,10) | (0,-1e-301)
(1e+300,Infinity) | (5.1,34.5) | (Infinity,Infinity)
(1e+300,Infinity) | (10,10) | (Infinity,Infinity)
+ (Infinity,1e+300) | (5.1,34.5) | (Infinity,-Infinity)
+ (Infinity,1e+300) | (10,10) | (Infinity,-Infinity)
(NaN,NaN) | (5.1,34.5) | (NaN,NaN)
(NaN,NaN) | (10,10) | (NaN,NaN)
(10,10) | (5.1,34.5) | (0.325588278822,-0.241724631247)
(10,10) | (10,10) | (1,0)
-(18 rows)
+(20 rows)
-- Overflow error
SELECT p1.f1, p2.f1, p1.f1 / p2.f1 FROM POINT_TBL p1, POINT_TBL p2 WHERE p2.f1[0] > 1000;
(1e+300,Infinity) | {NaN,NaN,NaN} | NaN | NaN
(1e+300,Infinity) | {0,-1,3} | Infinity | Infinity
(1e+300,Infinity) | {-1,0,3} | NaN | NaN
+ (Infinity,1e+300) | {0,-1,5} | NaN | NaN
+ (Infinity,1e+300) | {1,0,5} | NaN | NaN
+ (Infinity,1e+300) | {0,3,0} | NaN | NaN
+ (Infinity,1e+300) | {1,-1,0} | NaN | NaN
+ (Infinity,1e+300) | {-0.4,-1,-6} | NaN | NaN
+ (Infinity,1e+300) | {-0.000184615384615,-1,15.3846153846} | NaN | NaN
+ (Infinity,1e+300) | {3,NaN,5} | NaN | NaN
+ (Infinity,1e+300) | {NaN,NaN,NaN} | NaN | NaN
+ (Infinity,1e+300) | {0,-1,3} | NaN | NaN
+ (Infinity,1e+300) | {-1,0,3} | NaN | NaN
(NaN,NaN) | {0,-1,5} | NaN | NaN
(NaN,NaN) | {1,0,5} | NaN | NaN
(NaN,NaN) | {0,3,0} | NaN | NaN
(10,10) | {NaN,NaN,NaN} | NaN | NaN
(10,10) | {0,-1,3} | 7 | 7
(10,10) | {-1,0,3} | 7 | 7
-(90 rows)
+(100 rows)
-- Distance to line segment
SELECT p.f1, l.s, p.f1 <-> l.s AS dist_ps, l.s <-> p.f1 AS dist_sp FROM POINT_TBL p, LSEG_TBL l;
(1e+300,Infinity) | [(-10,2),(-10,3)] | Infinity | Infinity
(1e+300,Infinity) | [(0,-20),(30,-20)] | Infinity | Infinity
(1e+300,Infinity) | [(NaN,1),(NaN,90)] | Infinity | Infinity
+ (Infinity,1e+300) | [(1,2),(3,4)] | Infinity | Infinity
+ (Infinity,1e+300) | [(0,0),(6,6)] | Infinity | Infinity
+ (Infinity,1e+300) | [(10,-10),(-3,-4)] | Infinity | Infinity
+ (Infinity,1e+300) | [(-1000000,200),(300000,-40)] | Infinity | Infinity
+ (Infinity,1e+300) | [(11,22),(33,44)] | Infinity | Infinity
+ (Infinity,1e+300) | [(-10,2),(-10,3)] | Infinity | Infinity
+ (Infinity,1e+300) | [(0,-20),(30,-20)] | Infinity | Infinity
+ (Infinity,1e+300) | [(NaN,1),(NaN,90)] | NaN | NaN
(NaN,NaN) | [(1,2),(3,4)] | NaN | NaN
(NaN,NaN) | [(0,0),(6,6)] | NaN | NaN
(NaN,NaN) | [(10,-10),(-3,-4)] | NaN | NaN
(10,10) | [(-10,2),(-10,3)] | 21.1896201004 | 21.1896201004
(10,10) | [(0,-20),(30,-20)] | 30 | 30
(10,10) | [(NaN,1),(NaN,90)] | NaN | NaN
-(72 rows)
+(80 rows)
-- Distance to box
SELECT p.f1, b.f1, p.f1 <-> b.f1 AS dist_pb, b.f1 <-> p.f1 AS dist_bp FROM POINT_TBL p, BOX_TBL b;
(1e+300,Infinity) | (-2,2),(-8,-10) | Infinity | Infinity
(1e+300,Infinity) | (2.5,3.5),(2.5,2.5) | Infinity | Infinity
(1e+300,Infinity) | (3,3),(3,3) | Infinity | Infinity
+ (Infinity,1e+300) | (2,2),(0,0) | Infinity | Infinity
+ (Infinity,1e+300) | (3,3),(1,1) | Infinity | Infinity
+ (Infinity,1e+300) | (-2,2),(-8,-10) | Infinity | Infinity
+ (Infinity,1e+300) | (2.5,3.5),(2.5,2.5) | Infinity | Infinity
+ (Infinity,1e+300) | (3,3),(3,3) | Infinity | Infinity
(NaN,NaN) | (2,2),(0,0) | NaN | NaN
(NaN,NaN) | (3,3),(1,1) | NaN | NaN
(NaN,NaN) | (-2,2),(-8,-10) | NaN | NaN
(10,10) | (-2,2),(-8,-10) | 14.4222051019 | 14.4222051019
(10,10) | (2.5,3.5),(2.5,2.5) | 9.92471662064 | 9.92471662064
(10,10) | (3,3),(3,3) | 9.89949493661 | 9.89949493661
-(45 rows)
+(50 rows)
-- Distance to path
SELECT p.f1, p1.f1, p.f1 <-> p1.f1 AS dist_ppath, p1.f1 <-> p.f1 AS dist_pathp FROM POINT_TBL p, PATH_TBL p1;
(1e+300,Infinity) | ((10,20)) | Infinity | Infinity
(1e+300,Infinity) | [(11,12),(13,14)] | Infinity | Infinity
(1e+300,Infinity) | ((11,12),(13,14)) | Infinity | Infinity
+ (Infinity,1e+300) | [(1,2),(3,4)] | Infinity | Infinity
+ (Infinity,1e+300) | ((1,2),(3,4)) | Infinity | Infinity
+ (Infinity,1e+300) | [(0,0),(3,0),(4,5),(1,6)] | Infinity | Infinity
+ (Infinity,1e+300) | ((1,2),(3,4)) | Infinity | Infinity
+ (Infinity,1e+300) | ((1,2),(3,4)) | Infinity | Infinity
+ (Infinity,1e+300) | [(1,2),(3,4)] | Infinity | Infinity
+ (Infinity,1e+300) | ((10,20)) | Infinity | Infinity
+ (Infinity,1e+300) | [(11,12),(13,14)] | Infinity | Infinity
+ (Infinity,1e+300) | ((11,12),(13,14)) | Infinity | Infinity
(NaN,NaN) | [(1,2),(3,4)] | NaN | NaN
(NaN,NaN) | ((1,2),(3,4)) | NaN | NaN
(NaN,NaN) | [(0,0),(3,0),(4,5),(1,6)] | NaN | NaN
(10,10) | ((10,20)) | 10 | 10
(10,10) | [(11,12),(13,14)] | 2.2360679775 | 2.2360679775
(10,10) | ((11,12),(13,14)) | 2.2360679775 | 2.2360679775
-(81 rows)
+(90 rows)
-- Distance to polygon
SELECT p.f1, p1.f1, p.f1 <-> p1.f1 AS dist_ppoly, p1.f1 <-> p.f1 AS dist_polyp FROM POINT_TBL p, POLYGON_TBL p1;
(1e+300,Infinity) | ((1,2),(7,8),(5,6),(3,-4)) | Infinity | Infinity
(1e+300,Infinity) | ((0,0)) | Infinity | Infinity
(1e+300,Infinity) | ((0,1),(0,1)) | Infinity | Infinity
+ (Infinity,1e+300) | ((2,0),(2,4),(0,0)) | Infinity | Infinity
+ (Infinity,1e+300) | ((3,1),(3,3),(1,0)) | Infinity | Infinity
+ (Infinity,1e+300) | ((1,2),(3,4),(5,6),(7,8)) | Infinity | Infinity
+ (Infinity,1e+300) | ((7,8),(5,6),(3,4),(1,2)) | Infinity | Infinity
+ (Infinity,1e+300) | ((1,2),(7,8),(5,6),(3,-4)) | Infinity | Infinity
+ (Infinity,1e+300) | ((0,0)) | Infinity | Infinity
+ (Infinity,1e+300) | ((0,1),(0,1)) | Infinity | Infinity
(NaN,NaN) | ((2,0),(2,4),(0,0)) | 0 | 0
(NaN,NaN) | ((3,1),(3,3),(1,0)) | 0 | 0
(NaN,NaN) | ((1,2),(3,4),(5,6),(7,8)) | 0 | 0
(10,10) | ((1,2),(7,8),(5,6),(3,-4)) | 3.60555127546 | 3.60555127546
(10,10) | ((0,0)) | 14.1421356237 | 14.1421356237
(10,10) | ((0,1),(0,1)) | 13.4536240471 | 13.4536240471
-(63 rows)
+(70 rows)
+
+-- Construct line through two points
+SELECT p1.f1, p2.f1, line(p1.f1, p2.f1)
+ FROM POINT_TBL p1, POINT_TBL p2 WHERE p1.f1 <> p2.f1;
+ f1 | f1 | line
+-------------------+-------------------+----------------------------------------
+ (0,0) | (-10,0) | {0,-1,0}
+ (0,0) | (-3,4) | {-1.33333333333,-1,0}
+ (0,0) | (5.1,34.5) | {6.76470588235,-1,0}
+ (0,0) | (-5,-12) | {2.4,-1,0}
+ (0,0) | (1e+300,Infinity) | {Infinity,-1,NaN}
+ (0,0) | (Infinity,1e+300) | {0,-1,0}
+ (0,0) | (NaN,NaN) | {NaN,-1,NaN}
+ (0,0) | (10,10) | {1,-1,0}
+ (-10,0) | (0,0) | {0,-1,0}
+ (-10,0) | (-3,4) | {0.571428571429,-1,5.71428571429}
+ (-10,0) | (5.1,34.5) | {2.28476821192,-1,22.8476821192}
+ (-10,0) | (-5,-12) | {-2.4,-1,-24}
+ (-10,0) | (1e-300,-1e-300) | {0,-1,0}
+ (-10,0) | (1e+300,Infinity) | {Infinity,-1,Infinity}
+ (-10,0) | (Infinity,1e+300) | {0,-1,0}
+ (-10,0) | (NaN,NaN) | {NaN,-1,NaN}
+ (-10,0) | (10,10) | {0.5,-1,5}
+ (-3,4) | (0,0) | {-1.33333333333,-1,0}
+ (-3,4) | (-10,0) | {0.571428571429,-1,5.71428571429}
+ (-3,4) | (5.1,34.5) | {3.76543209877,-1,15.2962962963}
+ (-3,4) | (-5,-12) | {8,-1,28}
+ (-3,4) | (1e-300,-1e-300) | {-1.33333333333,-1,0}
+ (-3,4) | (1e+300,Infinity) | {Infinity,-1,Infinity}
+ (-3,4) | (Infinity,1e+300) | {0,-1,4}
+ (-3,4) | (NaN,NaN) | {NaN,-1,NaN}
+ (-3,4) | (10,10) | {0.461538461538,-1,5.38461538462}
+ (5.1,34.5) | (0,0) | {6.76470588235,-1,0}
+ (5.1,34.5) | (-10,0) | {2.28476821192,-1,22.8476821192}
+ (5.1,34.5) | (-3,4) | {3.76543209877,-1,15.2962962963}
+ (5.1,34.5) | (-5,-12) | {4.60396039604,-1,11.0198019802}
+ (5.1,34.5) | (1e-300,-1e-300) | {6.76470588235,-1,0}
+ (5.1,34.5) | (1e+300,Infinity) | {Infinity,-1,-Infinity}
+ (5.1,34.5) | (Infinity,1e+300) | {0,-1,34.5}
+ (5.1,34.5) | (NaN,NaN) | {NaN,-1,NaN}
+ (5.1,34.5) | (10,10) | {-5,-1,60}
+ (-5,-12) | (0,0) | {2.4,-1,0}
+ (-5,-12) | (-10,0) | {-2.4,-1,-24}
+ (-5,-12) | (-3,4) | {8,-1,28}
+ (-5,-12) | (5.1,34.5) | {4.60396039604,-1,11.0198019802}
+ (-5,-12) | (1e-300,-1e-300) | {2.4,-1,0}
+ (-5,-12) | (1e+300,Infinity) | {Infinity,-1,Infinity}
+ (-5,-12) | (Infinity,1e+300) | {0,-1,-12}
+ (-5,-12) | (NaN,NaN) | {NaN,-1,NaN}
+ (-5,-12) | (10,10) | {1.46666666667,-1,-4.66666666667}
+ (1e-300,-1e-300) | (-10,0) | {0,-1,-1e-300}
+ (1e-300,-1e-300) | (-3,4) | {-1.33333333333,-1,3.33333333333e-301}
+ (1e-300,-1e-300) | (5.1,34.5) | {6.76470588235,-1,-7.76470588235e-300}
+ (1e-300,-1e-300) | (-5,-12) | {2.4,-1,-3.4e-300}
+ (1e-300,-1e-300) | (1e+300,Infinity) | {Infinity,-1,-Infinity}
+ (1e-300,-1e-300) | (Infinity,1e+300) | {0,-1,-1e-300}
+ (1e-300,-1e-300) | (NaN,NaN) | {NaN,-1,NaN}
+ (1e-300,-1e-300) | (10,10) | {1,-1,-2e-300}
+ (1e+300,Infinity) | (0,0) | {Infinity,-1,NaN}
+ (1e+300,Infinity) | (-10,0) | {Infinity,-1,NaN}
+ (1e+300,Infinity) | (-3,4) | {Infinity,-1,NaN}
+ (1e+300,Infinity) | (5.1,34.5) | {Infinity,-1,NaN}
+ (1e+300,Infinity) | (-5,-12) | {Infinity,-1,NaN}
+ (1e+300,Infinity) | (1e-300,-1e-300) | {Infinity,-1,NaN}
+ (1e+300,Infinity) | (Infinity,1e+300) | {NaN,-1,NaN}
+ (1e+300,Infinity) | (NaN,NaN) | {NaN,-1,NaN}
+ (1e+300,Infinity) | (10,10) | {Infinity,-1,NaN}
+ (Infinity,1e+300) | (0,0) | {0,-1,NaN}
+ (Infinity,1e+300) | (-10,0) | {0,-1,NaN}
+ (Infinity,1e+300) | (-3,4) | {0,-1,NaN}
+ (Infinity,1e+300) | (5.1,34.5) | {0,-1,NaN}
+ (Infinity,1e+300) | (-5,-12) | {0,-1,NaN}
+ (Infinity,1e+300) | (1e-300,-1e-300) | {0,-1,NaN}
+ (Infinity,1e+300) | (1e+300,Infinity) | {NaN,-1,NaN}
+ (Infinity,1e+300) | (NaN,NaN) | {NaN,-1,NaN}
+ (Infinity,1e+300) | (10,10) | {0,-1,NaN}
+ (NaN,NaN) | (0,0) | {NaN,-1,NaN}
+ (NaN,NaN) | (-10,0) | {NaN,-1,NaN}
+ (NaN,NaN) | (-3,4) | {NaN,-1,NaN}
+ (NaN,NaN) | (5.1,34.5) | {NaN,-1,NaN}
+ (NaN,NaN) | (-5,-12) | {NaN,-1,NaN}
+ (NaN,NaN) | (1e-300,-1e-300) | {NaN,-1,NaN}
+ (NaN,NaN) | (1e+300,Infinity) | {NaN,-1,NaN}
+ (NaN,NaN) | (Infinity,1e+300) | {NaN,-1,NaN}
+ (NaN,NaN) | (10,10) | {NaN,-1,NaN}
+ (10,10) | (0,0) | {1,-1,0}
+ (10,10) | (-10,0) | {0.5,-1,5}
+ (10,10) | (-3,4) | {0.461538461538,-1,5.38461538462}
+ (10,10) | (5.1,34.5) | {-5,-1,60}
+ (10,10) | (-5,-12) | {1.46666666667,-1,-4.66666666667}
+ (10,10) | (1e-300,-1e-300) | {1,-1,0}
+ (10,10) | (1e+300,Infinity) | {Infinity,-1,-Infinity}
+ (10,10) | (Infinity,1e+300) | {0,-1,10}
+ (10,10) | (NaN,NaN) | {NaN,-1,NaN}
+(88 rows)
-- Closest point to line
SELECT p.f1, l.s, p.f1 ## l.s FROM POINT_TBL p, LINE_TBL l;
(1e+300,Infinity) | {NaN,NaN,NaN} |
(1e+300,Infinity) | {0,-1,3} | (1e+300,3)
(1e+300,Infinity) | {-1,0,3} |
+ (Infinity,1e+300) | {0,-1,5} |
+ (Infinity,1e+300) | {1,0,5} |
+ (Infinity,1e+300) | {0,3,0} |
+ (Infinity,1e+300) | {1,-1,0} |
+ (Infinity,1e+300) | {-0.4,-1,-6} |
+ (Infinity,1e+300) | {-0.000184615384615,-1,15.3846153846} |
+ (Infinity,1e+300) | {3,NaN,5} |
+ (Infinity,1e+300) | {NaN,NaN,NaN} |
+ (Infinity,1e+300) | {0,-1,3} |
+ (Infinity,1e+300) | {-1,0,3} |
(NaN,NaN) | {0,-1,5} |
(NaN,NaN) | {1,0,5} |
(NaN,NaN) | {0,3,0} |
(10,10) | {NaN,NaN,NaN} |
(10,10) | {0,-1,3} | (10,3)
(10,10) | {-1,0,3} | (3,10)
-(90 rows)
+(100 rows)
-- Closest point to line segment
SELECT p.f1, l.s, p.f1 ## l.s FROM POINT_TBL p, LSEG_TBL l;
(1e+300,Infinity) | [(-10,2),(-10,3)] | (-10,3)
(1e+300,Infinity) | [(0,-20),(30,-20)] | (30,-20)
(1e+300,Infinity) | [(NaN,1),(NaN,90)] | (NaN,90)
+ (Infinity,1e+300) | [(1,2),(3,4)] | (3,4)
+ (Infinity,1e+300) | [(0,0),(6,6)] | (6,6)
+ (Infinity,1e+300) | [(10,-10),(-3,-4)] | (-3,-4)
+ (Infinity,1e+300) | [(-1000000,200),(300000,-40)] | (300000,-40)
+ (Infinity,1e+300) | [(11,22),(33,44)] | (33,44)
+ (Infinity,1e+300) | [(-10,2),(-10,3)] | (-10,3)
+ (Infinity,1e+300) | [(0,-20),(30,-20)] | (30,-20)
+ (Infinity,1e+300) | [(NaN,1),(NaN,90)] |
(NaN,NaN) | [(1,2),(3,4)] |
(NaN,NaN) | [(0,0),(6,6)] |
(NaN,NaN) | [(10,-10),(-3,-4)] |
(10,10) | [(-10,2),(-10,3)] | (-10,3)
(10,10) | [(0,-20),(30,-20)] | (10,-20)
(10,10) | [(NaN,1),(NaN,90)] |
-(72 rows)
+(80 rows)
-- Closest point to box
SELECT p.f1, b.f1, p.f1 ## b.f1 FROM POINT_TBL p, BOX_TBL b;
(1e+300,Infinity) | (-2,2),(-8,-10) | (-8,2)
(1e+300,Infinity) | (2.5,3.5),(2.5,2.5) | (2.5,3.5)
(1e+300,Infinity) | (3,3),(3,3) | (3,3)
+ (Infinity,1e+300) | (2,2),(0,0) | (0,2)
+ (Infinity,1e+300) | (3,3),(1,1) | (1,3)
+ (Infinity,1e+300) | (-2,2),(-8,-10) | (-8,2)
+ (Infinity,1e+300) | (2.5,3.5),(2.5,2.5) | (2.5,3.5)
+ (Infinity,1e+300) | (3,3),(3,3) | (3,3)
(NaN,NaN) | (2,2),(0,0) |
(NaN,NaN) | (3,3),(1,1) |
(NaN,NaN) | (-2,2),(-8,-10) |
(10,10) | (-2,2),(-8,-10) | (-2,2)
(10,10) | (2.5,3.5),(2.5,2.5) | (2.5,3.5)
(10,10) | (3,3),(3,3) | (3,3)
-(45 rows)
+(50 rows)
-- On line
SELECT p.f1, l.s FROM POINT_TBL p, LINE_TBL l WHERE p.f1 <@ l.s;
| (1e+300,Infinity),(1e+300,Infinity)
| (1e+300,Infinity),(1e+300,Infinity)
| (1e+300,Infinity),(1e+300,Infinity)
+ | (Infinity,1e+300),(Infinity,1e+300)
+ | (Infinity,1e+300),(Infinity,1e+300)
+ | (Infinity,1e+300),(Infinity,1e+300)
+ | (Infinity,1e+300),(Infinity,1e+300)
+ | (Infinity,1e+300),(Infinity,1e+300)
| (NaN,NaN),(NaN,NaN)
| (NaN,NaN),(NaN,NaN)
| (NaN,NaN),(NaN,NaN)
| (8,12),(2,0)
| (12.5,13.5),(12.5,12.5)
| (13,13),(13,13)
-(45 rows)
+(50 rows)
SELECT '' AS twentyfour, b.f1 - p.f1 AS translation
FROM BOX_TBL b, POINT_TBL p;
| (-1e+300,-Infinity),(-1e+300,-Infinity)
| (-1e+300,-Infinity),(-1e+300,-Infinity)
| (-1e+300,-Infinity),(-1e+300,-Infinity)
+ | (-Infinity,-1e+300),(-Infinity,-1e+300)
+ | (-Infinity,-1e+300),(-Infinity,-1e+300)
+ | (-Infinity,-1e+300),(-Infinity,-1e+300)
+ | (-Infinity,-1e+300),(-Infinity,-1e+300)
+ | (-Infinity,-1e+300),(-Infinity,-1e+300)
| (NaN,NaN),(NaN,NaN)
| (NaN,NaN),(NaN,NaN)
| (NaN,NaN),(NaN,NaN)
| (-12,-8),(-18,-20)
| (-7.5,-6.5),(-7.5,-7.5)
| (-7,-7),(-7,-7)
-(45 rows)
+(50 rows)
-- Multiply with point
SELECT b.f1, p.f1, b.f1 * p.f1 FROM BOX_TBL b, POINT_TBL p WHERE p.f1[0] BETWEEN 1 AND 1000;
f1 | f1 | ?column?
---------------------+-------------------+--------------------------------------------
(2,2),(0,0) | (1e+300,Infinity) | (NaN,NaN),(-Infinity,Infinity)
+ (2,2),(0,0) | (Infinity,1e+300) | (NaN,NaN),(Infinity,Infinity)
(2,2),(0,0) | (NaN,NaN) | (NaN,NaN),(NaN,NaN)
(3,3),(1,1) | (1e+300,Infinity) | (-Infinity,Infinity),(-Infinity,Infinity)
+ (3,3),(1,1) | (Infinity,1e+300) | (Infinity,Infinity),(Infinity,Infinity)
(3,3),(1,1) | (NaN,NaN) | (NaN,NaN),(NaN,NaN)
(-2,2),(-8,-10) | (1e+300,Infinity) | (Infinity,-Infinity),(-Infinity,-Infinity)
+ (-2,2),(-8,-10) | (Infinity,1e+300) | (-Infinity,Infinity),(-Infinity,-Infinity)
(-2,2),(-8,-10) | (NaN,NaN) | (NaN,NaN),(NaN,NaN)
(2.5,3.5),(2.5,2.5) | (1e+300,Infinity) | (-Infinity,Infinity),(-Infinity,Infinity)
+ (2.5,3.5),(2.5,2.5) | (Infinity,1e+300) | (Infinity,Infinity),(Infinity,Infinity)
(2.5,3.5),(2.5,2.5) | (NaN,NaN) | (NaN,NaN),(NaN,NaN)
(3,3),(3,3) | (1e+300,Infinity) | (-Infinity,Infinity),(-Infinity,Infinity)
+ (3,3),(3,3) | (Infinity,1e+300) | (Infinity,Infinity),(Infinity,Infinity)
(3,3),(3,3) | (NaN,NaN) | (NaN,NaN),(NaN,NaN)
-(10 rows)
+(15 rows)
-- Divide by point
SELECT b.f1, p.f1, b.f1 / p.f1 FROM BOX_TBL b, POINT_TBL p WHERE p.f1[0] BETWEEN 1 AND 1000;
(-5,-12),(-5,-12)
(1e-300,-1e-300),(1e-300,-1e-300)
(1e+300,Infinity),(1e+300,Infinity)
+ (Infinity,1e+300),(Infinity,1e+300)
(NaN,NaN),(NaN,NaN)
(10,10),(10,10)
-(9 rows)
+(10 rows)
SELECT bound_box(a.f1, b.f1)
FROM BOX_TBL a, BOX_TBL b;
((10,20)) | (1e+300,Infinity) | ((1e+300,Infinity))
[(11,12),(13,14)] | (1e+300,Infinity) | [(1e+300,Infinity),(1e+300,Infinity)]
((11,12),(13,14)) | (1e+300,Infinity) | ((1e+300,Infinity),(1e+300,Infinity))
+ [(1,2),(3,4)] | (Infinity,1e+300) | [(Infinity,1e+300),(Infinity,1e+300)]
+ ((1,2),(3,4)) | (Infinity,1e+300) | ((Infinity,1e+300),(Infinity,1e+300))
+ [(0,0),(3,0),(4,5),(1,6)] | (Infinity,1e+300) | [(Infinity,1e+300),(Infinity,1e+300),(Infinity,1e+300),(Infinity,1e+300)]
+ ((1,2),(3,4)) | (Infinity,1e+300) | ((Infinity,1e+300),(Infinity,1e+300))
+ ((1,2),(3,4)) | (Infinity,1e+300) | ((Infinity,1e+300),(Infinity,1e+300))
+ [(1,2),(3,4)] | (Infinity,1e+300) | [(Infinity,1e+300),(Infinity,1e+300)]
+ ((10,20)) | (Infinity,1e+300) | ((Infinity,1e+300))
+ [(11,12),(13,14)] | (Infinity,1e+300) | [(Infinity,1e+300),(Infinity,1e+300)]
+ ((11,12),(13,14)) | (Infinity,1e+300) | ((Infinity,1e+300),(Infinity,1e+300))
[(1,2),(3,4)] | (NaN,NaN) | [(NaN,NaN),(NaN,NaN)]
((1,2),(3,4)) | (NaN,NaN) | ((NaN,NaN),(NaN,NaN))
[(0,0),(3,0),(4,5),(1,6)] | (NaN,NaN) | [(NaN,NaN),(NaN,NaN),(NaN,NaN),(NaN,NaN)]
((10,20)) | (10,10) | ((20,30))
[(11,12),(13,14)] | (10,10) | [(21,22),(23,24)]
((11,12),(13,14)) | (10,10) | ((21,22),(23,24))
-(81 rows)
+(90 rows)
-- Subtract point
SELECT p.f1, p1.f1, p.f1 - p1.f1 FROM PATH_TBL p, POINT_TBL p1;
((10,20)) | (1e+300,Infinity) | ((-1e+300,-Infinity))
[(11,12),(13,14)] | (1e+300,Infinity) | [(-1e+300,-Infinity),(-1e+300,-Infinity)]
((11,12),(13,14)) | (1e+300,Infinity) | ((-1e+300,-Infinity),(-1e+300,-Infinity))
+ [(1,2),(3,4)] | (Infinity,1e+300) | [(-Infinity,-1e+300),(-Infinity,-1e+300)]
+ ((1,2),(3,4)) | (Infinity,1e+300) | ((-Infinity,-1e+300),(-Infinity,-1e+300))
+ [(0,0),(3,0),(4,5),(1,6)] | (Infinity,1e+300) | [(-Infinity,-1e+300),(-Infinity,-1e+300),(-Infinity,-1e+300),(-Infinity,-1e+300)]
+ ((1,2),(3,4)) | (Infinity,1e+300) | ((-Infinity,-1e+300),(-Infinity,-1e+300))
+ ((1,2),(3,4)) | (Infinity,1e+300) | ((-Infinity,-1e+300),(-Infinity,-1e+300))
+ [(1,2),(3,4)] | (Infinity,1e+300) | [(-Infinity,-1e+300),(-Infinity,-1e+300)]
+ ((10,20)) | (Infinity,1e+300) | ((-Infinity,-1e+300))
+ [(11,12),(13,14)] | (Infinity,1e+300) | [(-Infinity,-1e+300),(-Infinity,-1e+300)]
+ ((11,12),(13,14)) | (Infinity,1e+300) | ((-Infinity,-1e+300),(-Infinity,-1e+300))
[(1,2),(3,4)] | (NaN,NaN) | [(NaN,NaN),(NaN,NaN)]
((1,2),(3,4)) | (NaN,NaN) | ((NaN,NaN),(NaN,NaN))
[(0,0),(3,0),(4,5),(1,6)] | (NaN,NaN) | [(NaN,NaN),(NaN,NaN),(NaN,NaN),(NaN,NaN)]
((10,20)) | (10,10) | ((0,10))
[(11,12),(13,14)] | (10,10) | [(1,2),(3,4)]
((11,12),(13,14)) | (10,10) | ((1,2),(3,4))
-(81 rows)
+(90 rows)
-- Multiply with point
SELECT p.f1, p1.f1, p.f1 * p1.f1 FROM PATH_TBL p, POINT_TBL p1;
((10,20)) | (1e+300,Infinity) | ((-Infinity,Infinity))
[(11,12),(13,14)] | (1e+300,Infinity) | [(-Infinity,Infinity),(-Infinity,Infinity)]
((11,12),(13,14)) | (1e+300,Infinity) | ((-Infinity,Infinity),(-Infinity,Infinity))
+ [(1,2),(3,4)] | (Infinity,1e+300) | [(Infinity,Infinity),(Infinity,Infinity)]
+ ((1,2),(3,4)) | (Infinity,1e+300) | ((Infinity,Infinity),(Infinity,Infinity))
+ [(0,0),(3,0),(4,5),(1,6)] | (Infinity,1e+300) | [(NaN,NaN),(Infinity,NaN),(Infinity,Infinity),(Infinity,Infinity)]
+ ((1,2),(3,4)) | (Infinity,1e+300) | ((Infinity,Infinity),(Infinity,Infinity))
+ ((1,2),(3,4)) | (Infinity,1e+300) | ((Infinity,Infinity),(Infinity,Infinity))
+ [(1,2),(3,4)] | (Infinity,1e+300) | [(Infinity,Infinity),(Infinity,Infinity)]
+ ((10,20)) | (Infinity,1e+300) | ((Infinity,Infinity))
+ [(11,12),(13,14)] | (Infinity,1e+300) | [(Infinity,Infinity),(Infinity,Infinity)]
+ ((11,12),(13,14)) | (Infinity,1e+300) | ((Infinity,Infinity),(Infinity,Infinity))
[(1,2),(3,4)] | (NaN,NaN) | [(NaN,NaN),(NaN,NaN)]
((1,2),(3,4)) | (NaN,NaN) | ((NaN,NaN),(NaN,NaN))
[(0,0),(3,0),(4,5),(1,6)] | (NaN,NaN) | [(NaN,NaN),(NaN,NaN),(NaN,NaN),(NaN,NaN)]
((10,20)) | (10,10) | ((-100,300))
[(11,12),(13,14)] | (10,10) | [(-10,230),(-10,270)]
((11,12),(13,14)) | (10,10) | ((-10,230),(-10,270))
-(81 rows)
+(90 rows)
-- Divide by point
SELECT p.f1, p1.f1, p.f1 / p1.f1 FROM PATH_TBL p, POINT_TBL p1 WHERE p1.f1[0] BETWEEN 1 AND 1000;
| (1e+300,Infinity) | ((1,2),(7,8),(5,6),(3,-4)) | f
| (1e+300,Infinity) | ((0,0)) | f
| (1e+300,Infinity) | ((0,1),(0,1)) | f
+ | (Infinity,1e+300) | ((2,0),(2,4),(0,0)) | f
+ | (Infinity,1e+300) | ((3,1),(3,3),(1,0)) | f
+ | (Infinity,1e+300) | ((1,2),(3,4),(5,6),(7,8)) | f
+ | (Infinity,1e+300) | ((7,8),(5,6),(3,4),(1,2)) | f
+ | (Infinity,1e+300) | ((1,2),(7,8),(5,6),(3,-4)) | f
+ | (Infinity,1e+300) | ((0,0)) | f
+ | (Infinity,1e+300) | ((0,1),(0,1)) | f
| (NaN,NaN) | ((2,0),(2,4),(0,0)) | t
| (NaN,NaN) | ((3,1),(3,3),(1,0)) | t
| (NaN,NaN) | ((1,2),(3,4),(5,6),(7,8)) | t
| (10,10) | ((1,2),(7,8),(5,6),(3,-4)) | f
| (10,10) | ((0,0)) | f
| (10,10) | ((0,1),(0,1)) | f
-(63 rows)
+(70 rows)
SELECT '' AS twentyfour, p.f1, poly.f1, p.f1 <@ poly.f1 AS contained
FROM POLYGON_TBL poly, POINT_TBL p;
| (1e+300,Infinity) | ((1,2),(7,8),(5,6),(3,-4)) | f
| (1e+300,Infinity) | ((0,0)) | f
| (1e+300,Infinity) | ((0,1),(0,1)) | f
+ | (Infinity,1e+300) | ((2,0),(2,4),(0,0)) | f
+ | (Infinity,1e+300) | ((3,1),(3,3),(1,0)) | f
+ | (Infinity,1e+300) | ((1,2),(3,4),(5,6),(7,8)) | f
+ | (Infinity,1e+300) | ((7,8),(5,6),(3,4),(1,2)) | f
+ | (Infinity,1e+300) | ((1,2),(7,8),(5,6),(3,-4)) | f
+ | (Infinity,1e+300) | ((0,0)) | f
+ | (Infinity,1e+300) | ((0,1),(0,1)) | f
| (NaN,NaN) | ((2,0),(2,4),(0,0)) | t
| (NaN,NaN) | ((3,1),(3,3),(1,0)) | t
| (NaN,NaN) | ((1,2),(3,4),(5,6),(7,8)) | t
| (10,10) | ((1,2),(7,8),(5,6),(3,-4)) | f
| (10,10) | ((0,0)) | f
| (10,10) | ((0,1),(0,1)) | f
-(63 rows)
+(70 rows)
SELECT '' AS four, npoints(f1) AS npoints, f1 AS polygon
FROM POLYGON_TBL;
| <(-5,-12),50>
| <(1e-300,-1e-300),50>
| <(1e+300,Infinity),50>
+ | <(Infinity,1e+300),50>
| <(NaN,NaN),50>
| <(10,10),50>
-(9 rows)
+(10 rows)
SELECT '' AS four, circle(f1)
FROM BOX_TBL;
| <(100,200),10> | (-10,0) | 218.25424421
| <(100,200),10> | (-5,-12) | 226.577682802
| <(3,5),0> | (1e+300,Infinity) | Infinity
+ | <(3,5),0> | (Infinity,1e+300) | Infinity
| <(1,2),3> | (1e+300,Infinity) | Infinity
| <(5,1),3> | (1e+300,Infinity) | Infinity
+ | <(5,1),3> | (Infinity,1e+300) | Infinity
+ | <(1,2),3> | (Infinity,1e+300) | Infinity
| <(1,3),5> | (1e+300,Infinity) | Infinity
+ | <(1,3),5> | (Infinity,1e+300) | Infinity
| <(100,200),10> | (1e+300,Infinity) | Infinity
+ | <(100,200),10> | (Infinity,1e+300) | Infinity
| <(1,2),100> | (1e+300,Infinity) | Infinity
+ | <(1,2),100> | (Infinity,1e+300) | Infinity
| <(100,1),115> | (1e+300,Infinity) | Infinity
+ | <(100,1),115> | (Infinity,1e+300) | Infinity
| <(3,5),0> | (NaN,NaN) | NaN
| <(1,2),3> | (NaN,NaN) | NaN
| <(5,1),3> | (NaN,NaN) | NaN
| <(3,5),NaN> | (5.1,34.5) | NaN
| <(3,5),NaN> | (10,10) | NaN
| <(3,5),NaN> | (1e+300,Infinity) | NaN
+ | <(3,5),NaN> | (Infinity,1e+300) | NaN
| <(3,5),NaN> | (NaN,NaN) | NaN
-(53 rows)
+(61 rows)
-- To polygon
SELECT f1, f1::polygon FROM CIRCLE_TBL WHERE f1 >= '<(0,0),1>';
<(100,1),115> | (1e+300,Infinity) | <(1e+300,Infinity),115>
<(3,5),0> | (1e+300,Infinity) | <(1e+300,Infinity),0>
<(3,5),NaN> | (1e+300,Infinity) | <(1e+300,Infinity),NaN>
+ <(5,1),3> | (Infinity,1e+300) | <(Infinity,1e+300),3>
+ <(1,2),100> | (Infinity,1e+300) | <(Infinity,1e+300),100>
+ <(1,3),5> | (Infinity,1e+300) | <(Infinity,1e+300),5>
+ <(1,2),3> | (Infinity,1e+300) | <(Infinity,1e+300),3>
+ <(100,200),10> | (Infinity,1e+300) | <(Infinity,1e+300),10>
+ <(100,1),115> | (Infinity,1e+300) | <(Infinity,1e+300),115>
+ <(3,5),0> | (Infinity,1e+300) | <(Infinity,1e+300),0>
+ <(3,5),NaN> | (Infinity,1e+300) | <(Infinity,1e+300),NaN>
<(5,1),3> | (NaN,NaN) | <(NaN,NaN),3>
<(1,2),100> | (NaN,NaN) | <(NaN,NaN),100>
<(1,3),5> | (NaN,NaN) | <(NaN,NaN),5>
<(100,1),115> | (10,10) | <(110,11),115>
<(3,5),0> | (10,10) | <(13,15),0>
<(3,5),NaN> | (10,10) | <(13,15),NaN>
-(72 rows)
+(80 rows)
-- Subtract point
SELECT c.f1, p.f1, c.f1 - p.f1 FROM CIRCLE_TBL c, POINT_TBL p;
<(100,1),115> | (1e+300,Infinity) | <(-1e+300,-Infinity),115>
<(3,5),0> | (1e+300,Infinity) | <(-1e+300,-Infinity),0>
<(3,5),NaN> | (1e+300,Infinity) | <(-1e+300,-Infinity),NaN>
+ <(5,1),3> | (Infinity,1e+300) | <(-Infinity,-1e+300),3>
+ <(1,2),100> | (Infinity,1e+300) | <(-Infinity,-1e+300),100>
+ <(1,3),5> | (Infinity,1e+300) | <(-Infinity,-1e+300),5>
+ <(1,2),3> | (Infinity,1e+300) | <(-Infinity,-1e+300),3>
+ <(100,200),10> | (Infinity,1e+300) | <(-Infinity,-1e+300),10>
+ <(100,1),115> | (Infinity,1e+300) | <(-Infinity,-1e+300),115>
+ <(3,5),0> | (Infinity,1e+300) | <(-Infinity,-1e+300),0>
+ <(3,5),NaN> | (Infinity,1e+300) | <(-Infinity,-1e+300),NaN>
<(5,1),3> | (NaN,NaN) | <(NaN,NaN),3>
<(1,2),100> | (NaN,NaN) | <(NaN,NaN),100>
<(1,3),5> | (NaN,NaN) | <(NaN,NaN),5>
<(100,1),115> | (10,10) | <(90,-9),115>
<(3,5),0> | (10,10) | <(-7,-5),0>
<(3,5),NaN> | (10,10) | <(-7,-5),NaN>
-(72 rows)
+(80 rows)
-- Multiply with point
SELECT c.f1, p.f1, c.f1 * p.f1 FROM CIRCLE_TBL c, POINT_TBL p;
<(100,1),115> | (1e+300,Infinity) | <(-Infinity,Infinity),Infinity>
<(3,5),0> | (1e+300,Infinity) | <(-Infinity,Infinity),NaN>
<(3,5),NaN> | (1e+300,Infinity) | <(-Infinity,Infinity),NaN>
+ <(5,1),3> | (Infinity,1e+300) | <(Infinity,Infinity),Infinity>
+ <(1,2),100> | (Infinity,1e+300) | <(Infinity,Infinity),Infinity>
+ <(1,3),5> | (Infinity,1e+300) | <(Infinity,Infinity),Infinity>
+ <(1,2),3> | (Infinity,1e+300) | <(Infinity,Infinity),Infinity>
+ <(100,200),10> | (Infinity,1e+300) | <(Infinity,Infinity),Infinity>
+ <(100,1),115> | (Infinity,1e+300) | <(Infinity,Infinity),Infinity>
+ <(3,5),0> | (Infinity,1e+300) | <(Infinity,Infinity),NaN>
+ <(3,5),NaN> | (Infinity,1e+300) | <(Infinity,Infinity),NaN>
<(5,1),3> | (NaN,NaN) | <(NaN,NaN),NaN>
<(1,2),100> | (NaN,NaN) | <(NaN,NaN),NaN>
<(1,3),5> | (NaN,NaN) | <(NaN,NaN),NaN>
<(100,1),115> | (10,10) | <(990,1010),1626.34559673>
<(3,5),0> | (10,10) | <(-20,80),0>
<(3,5),NaN> | (10,10) | <(-20,80),NaN>
-(72 rows)
+(80 rows)
-- Divide by point
SELECT c.f1, p.f1, c.f1 / p.f1 FROM CIRCLE_TBL c, POINT_TBL p WHERE p.f1[0] BETWEEN 1 AND 1000;