1--
2-- first, define the datatype.  Turn off echoing so that expected file
3-- does not depend on contents of pg_sphere.sql.
4--
5\set ECHO none
6psql:pgs_types.sql:23: NOTICE:  TypeCreate: changing argument type of function spoint_out from OPAQUE to spoint
7psql:pgs_types.sql:23: NOTICE:  TypeCreate: changing return type of function spoint_in from OPAQUE to spoint
8psql:pgs_types.sql:46: NOTICE:  TypeCreate: changing argument type of function scircle_out from OPAQUE to scircle
9psql:pgs_types.sql:46: NOTICE:  TypeCreate: changing return type of function scircle_in from OPAQUE to scircle
10psql:pgs_types.sql:69: NOTICE:  TypeCreate: changing argument type of function sellipse_out from OPAQUE to sellipse
11psql:pgs_types.sql:69: NOTICE:  TypeCreate: changing return type of function sellipse_in from OPAQUE to sellipse
12psql:pgs_types.sql:93: NOTICE:  TypeCreate: changing argument type of function sline_out from OPAQUE to sline
13psql:pgs_types.sql:93: NOTICE:  TypeCreate: changing return type of function sline_in from OPAQUE to sline
14psql:pgs_types.sql:118: NOTICE:  TypeCreate: changing argument type of function spath_out from OPAQUE to spath
15psql:pgs_types.sql:118: NOTICE:  TypeCreate: changing return type of function spath_in from OPAQUE to spath
16psql:pgs_types.sql:142: NOTICE:  TypeCreate: changing argument type of function spoly_out from OPAQUE to spoly
17psql:pgs_types.sql:142: NOTICE:  TypeCreate: changing return type of function spoly_in from OPAQUE to spoly
18psql:pgs_types.sql:166: NOTICE:  TypeCreate: changing argument type of function strans_out from OPAQUE to strans
19psql:pgs_types.sql:166: NOTICE:  TypeCreate: changing return type of function strans_in from OPAQUE to strans
20psql:pgs_gist.sql:22: NOTICE:  TypeCreate: changing argument type of function spherekey_out from OPAQUE to spherekey
21psql:pgs_gist.sql:22: NOTICE:  TypeCreate: changing return type of function spherekey_in from OPAQUE to spherekey
22-- check spherical point operators
23SELECT spoint '(0, 90d)'   = spoint '(0, 90d)';
24 ?column?
25----------
26 t
27(1 row)
28
29SELECT spoint '(0, 90d)'   = spoint '(0,-90d)';
30 ?column?
31----------
32 f
33(1 row)
34
35SELECT spoint '(0,-90d)'   = spoint '(0,-90d)';
36 ?column?
37----------
38 t
39(1 row)
40
41SELECT spoint '(0, 90d)'  != spoint '(0, 90d)';
42 ?column?
43----------
44 f
45(1 row)
46
47SELECT spoint '(0, 90d)'  != spoint '(0,-90d)';
48 ?column?
49----------
50 t
51(1 row)
52
53SELECT spoint '(0,-90d)'  != spoint '(0,-90d)';
54 ?column?
55----------
56 f
57(1 row)
58
59SELECT spoint '(0d,  0)'   = spoint '(360d,0)';
60 ?column?
61----------
62 t
63(1 row)
64
65-- checking spherical circle operators
66SELECT scircle '<(0, 90d),1>'   = '<(0, 90d),1>' ;
67 ?column?
68----------
69 t
70(1 row)
71
72SELECT scircle '<(0,-90d),1>'  <> '<(0, 90d),1>' ;
73 ?column?
74----------
75 t
76(1 row)
77
78-- checking spherical line operators
79SELECT sline ( spoint '(0, 90d)', spoint '(0, -89d)' )   =
80       sline ( spoint '(0, 90d)', spoint '(0, -89d)' )  ;
81 ?column?
82----------
83 t
84(1 row)
85
86SELECT sline ( spoint '(0,  90d)', spoint '(0, -89d)' )   <>
87       sline ( spoint '(0, -89d)', spoint '(0,  90d)' ) ;
88 ?column?
89----------
90 t
91(1 row)
92
93-- checking Euler transformation operators
94SELECT strans '-10d,0d,10d,ZZZ'  = '-10d,0d,10d,XXX' ;
95 ?column?
96----------
97 t
98(1 row)
99
100SELECT strans '-40d,0d,40d,ZZZ' <> '-40d,0d,40d,XXX' ;
101 ?column?
102----------
103 f
104(1 row)
105
106-- checking polygon operators
107\set poly 'spoly \'{(0.1,0),(0.2,0),(0.2,0.1),(0.3,0.1),(0.3,-0.1),(0.4,-0.1),(0.5,0.1),(0.4,0.2),(0.1,0.2)}\''
108SELECT spoint   '(0.15,0.10)' @ :poly;                  -- point inside polygon
109 ?column?
110----------
111 t
112(1 row)
113
114SELECT spoint   '(0.20,0.00)' @ :poly;                  -- point contained polygon
115 ?column?
116----------
117 t
118(1 row)
119
120SELECT spoint   '(0.10,0.10)' @ :poly;                  -- point contained polygon
121 ?column?
122----------
123 t
124(1 row)
125
126SELECT spoint   '(0.25,0.50)' @ :poly;                  -- point outside polygon
127 ?column?
128----------
129 f
130(1 row)
131
132SELECT spoint   '(0.25,0.00)' @ :poly;                  -- point outside polygon
133 ?column?
134----------
135 f
136(1 row)
137
138SELECT scircle  '<(0.15,0.10),0.03>' @  :poly;          -- circle inside polygon
139 ?column?
140----------
141 t
142(1 row)
143
144SELECT scircle  '<(0.20,0.00),0.00>' @  :poly;          -- circle contained polygon
145 ?column?
146----------
147 t
148(1 row)
149
150SELECT scircle  '<(0.20,0.30),0.05>' @  :poly;          -- circle outside  polygon
151 ?column?
152----------
153 f
154(1 row)
155
156SELECT scircle  '<(0.25,0.00),0.05>' @  :poly;          -- circle overlaps polygon
157 ?column?
158----------
159 f
160(1 row)
161
162SELECT scircle  '<(0.25,0.00),0.10>' @  :poly;          -- circle overlaps polygon
163 ?column?
164----------
165 f
166(1 row)
167
168SELECT scircle  '<(0.15,0.10),0.03>' && :poly;          -- circle inside polygon
169 ?column?
170----------
171 t
172(1 row)
173
174SELECT scircle  '<(0.20,0.00),0.00>' && :poly;          -- circle contained polygon
175 ?column?
176----------
177 t
178(1 row)
179
180SELECT scircle  '<(0.20,0.30),0.05>' && :poly;          -- circle outside  polygon
181 ?column?
182----------
183 f
184(1 row)
185
186SELECT scircle  '<(0.25,0.00),0.05>' && :poly;          -- circle overlaps polygon
187 ?column?
188----------
189 t
190(1 row)
191
192SELECT scircle  '<(0.25,0.00),0.10>' && :poly;          -- circle overlaps polygon
193 ?column?
194----------
195 t
196(1 row)
197
198SELECT sline ( spoint '(0.00, 0.00)', spoint '(0.10,0.20)' ) @  :poly;  -- line touches polygon
199 ?column?
200----------
201 f
202(1 row)
203
204SELECT sline ( spoint '(0.00, 0.10)', spoint '(0.10,0.10)' ) @  :poly;  -- line touches polygon
205 ?column?
206----------
207 f
208(1 row)
209
210SELECT sline ( spoint '(0.50, 0.00)', spoint '(0.50,0.20)' ) @  :poly;  -- line touches polygon
211 ?column?
212----------
213 f
214(1 row)
215
216SELECT sline ( spoint '(0.10, 0.20)', spoint '(0.20,0.00)' ) @  :poly;  -- line touches and inside polygon
217 ?column?
218----------
219 t
220(1 row)
221
222SELECT sline ( spoint '(0.45,-0.20)', spoint '(0.45,0.20)' ) @  :poly;  -- line overlaps polygon
223 ?column?
224----------
225 f
226(1 row)
227
228SELECT sline ( spoint '(0.45, 0.10)', spoint '(0.45,0.20)' ) @  :poly;  -- line overlaps polygon
229 ?column?
230----------
231 f
232(1 row)
233
234SELECT sline ( spoint '(0.24, 0.17)', spoint '(0.25,0.14)' ) @  :poly;  -- line inside  polygon
235 ?column?
236----------
237 t
238(1 row)
239
240SELECT sline ( spoint '(0.00, 0.00)', spoint '(0.10,0.20)' ) && :poly;  -- line touches polygon
241 ?column?
242----------
243 t
244(1 row)
245
246SELECT sline ( spoint '(0.00, 0.10)', spoint '(0.10,0.10)' ) && :poly;  -- line touches polygon
247 ?column?
248----------
249 t
250(1 row)
251
252SELECT sline ( spoint '(0.50, 0.00)', spoint '(0.50,0.20)' ) && :poly;  -- line touches polygon
253 ?column?
254----------
255 t
256(1 row)
257
258SELECT sline ( spoint '(0.10, 0.20)', spoint '(0.20,0.00)' ) && :poly;  -- line touches and inside polygon
259 ?column?
260----------
261 t
262(1 row)
263
264SELECT sline ( spoint '(0.45,-0.20)', spoint '(0.45,0.20)' ) && :poly;  -- line overlaps polygon
265 ?column?
266----------
267 t
268(1 row)
269
270SELECT sline ( spoint '(0.45, 0.10)', spoint '(0.45,0.20)' ) && :poly;  -- line overlaps polygon
271 ?column?
272----------
273 t
274(1 row)
275
276SELECT sline ( spoint '(0.24, 0.17)', spoint '(0.25,0.14)' ) && :poly;  -- line inside  polygon
277 ?column?
278----------
279 t
280(1 row)
281
282\unset poly
283\set poly1 'spoly \'{(0,0),(1,0),(0,1)}\''
284\set poly2 'spoly \'{(1,0),(0,0),(0,1)}\''
285\set poly3 'spoly \'{(0,1),(0,0),(1,0)}\''
286\set poly4 'spoly \'{(0.1,0.9),(0.1,0.1),(0.9,0.1)}\''
287\set poly5 'spoly \'{(0.2,0.0),(1.2,0.0),(0.2,1)}\''
288SELECT :poly1  = :poly2;
289 ?column?
290----------
291 f
292(1 row)
293
294SELECT :poly2  = :poly3;
295 ?column?
296----------
297 f
298(1 row)
299
300SELECT :poly3  = :poly1;
301 ?column?
302----------
303 t
304(1 row)
305
306SELECT :poly1 && :poly2;
307 ?column?
308----------
309 t
310(1 row)
311
312SELECT :poly2 && :poly3;
313 ?column?
314----------
315 t
316(1 row)
317
318SELECT :poly3 && :poly1;
319 ?column?
320----------
321 t
322(1 row)
323
324SELECT :poly1  @ :poly2;
325 ?column?
326----------
327 t
328(1 row)
329
330SELECT :poly2  @ :poly3;
331 ?column?
332----------
333 t
334(1 row)
335
336SELECT :poly3  @ :poly1;
337 ?column?
338----------
339 t
340(1 row)
341
342SELECT :poly1  @ :poly4;
343 ?column?
344----------
345 f
346(1 row)
347
348SELECT :poly4  @ :poly1;
349 ?column?
350----------
351 t
352(1 row)
353
354SELECT :poly1 && :poly4;
355 ?column?
356----------
357 t
358(1 row)
359
360SELECT :poly4 && :poly1;
361 ?column?
362----------
363 t
364(1 row)
365
366SELECT :poly1  @ :poly5;
367 ?column?
368----------
369 f
370(1 row)
371
372SELECT :poly5  @ :poly1;
373 ?column?
374----------
375 f
376(1 row)
377
378SELECT :poly1 && :poly5;
379 ?column?
380----------
381 t
382(1 row)
383
384SELECT :poly5 && :poly1;
385 ?column?
386----------
387 t
388(1 row)
389
390\unset poly1
391\unset poly2
392\unset poly3
393\unset poly4
394\unset poly5
395-- checking path operators
396\set poly  'spoly \'{(0.1,0),(0.2,0),(0.2,0.1),(0.3,0.1),(0.3,-0.1),(0.4,-0.1),(0.5,0.1),(0.4,0.2),(0.1,0.2)}\''
397\set path1 'spath \'{(0.1,0),(0.2,0),(0.2,0.1),(0.3,0.1),(0.3,-0.1),(0.4,-0.1),(0.5,0.1),(0.4,0.2),(0.1,0.2)}\''
398\set path2 'spath \'{(0,0),(1,0),(2,0),(3,0)}\''
399\set path3 'spath \'{(0,0),(0,1),(0,1.5)}\''
400SELECT @-@ spath '{(0,0),(1,0),(2,0),(3,0)}';
401 ?column?
402----------
403        3
404(1 row)
405
406SELECT :path1 =  :path2;
407 ?column?
408----------
409 f
410(1 row)
411
412SELECT :path1 =  :path1;
413 ?column?
414----------
415 t
416(1 row)
417
418SELECT :path1 <> :path2;
419 ?column?
420----------
421 t
422(1 row)
423
424SELECT :path1 <> :path1;
425 ?column?
426----------
427 f
428(1 row)
429
430SELECT :poly  && :path1;
431 ?column?
432----------
433 t
434(1 row)
435
436SELECT :path1 && :poly ;
437 ?column?
438----------
439 t
440(1 row)
441
442SELECT :path1 @  :poly ;
443 ?column?
444----------
445 t
446(1 row)
447
448SELECT :path2 @  :poly ;
449 ?column?
450----------
451 f
452(1 row)
453
454SELECT :path1 && :path1;
455 ?column?
456----------
457 t
458(1 row)
459
460SELECT :path1 && :path1;
461 ?column?
462----------
463 t
464(1 row)
465
466SELECT :poly  && :path2;
467 ?column?
468----------
469 t
470(1 row)
471
472SELECT :path2 && :poly ;
473 ?column?
474----------
475 t
476(1 row)
477
478SELECT :path2 && :path1;
479 ?column?
480----------
481 t
482(1 row)
483
484SELECT :poly  && :path3;
485 ?column?
486----------
487 f
488(1 row)
489
490SELECT :path3 && :poly ;
491 ?column?
492----------
493 f
494(1 row)
495
496SELECT :path3 && :path1;
497 ?column?
498----------
499 f
500(1 row)
501
502SELECT :path3 && :path2;
503 ?column?
504----------
505 t
506(1 row)
507
508SELECT :path1 @  scircle '<(0,1),1>';
509 ?column?
510----------
511 f
512(1 row)
513
514SELECT :path3 @  scircle '<(0,1),1>';
515 ?column?
516----------
517 t
518(1 row)
519
520SELECT :path3 @  scircle '<(0,1),0.7>';
521 ?column?
522----------
523 f
524(1 row)
525
526SELECT :path1 && scircle '<(0,1),1>';
527 ?column?
528----------
529 t
530(1 row)
531
532SELECT :path3 && scircle '<(0,1),1>';
533 ?column?
534----------
535 t
536(1 row)
537
538SELECT :path3 && scircle '<(0,1),0.7>';
539 ?column?
540----------
541 t
542(1 row)
543
544SELECT :path3 && scircle '<(0,-1),0.7>';
545 ?column?
546----------
547 f
548(1 row)
549
550SELECT :path3 @  scircle '<(0,-1),0.7>';
551 ?column?
552----------
553 f
554(1 row)
555
556SELECT :path3 && sline ( spoint '(0,-1)', spoint '(0,1)' );
557 ?column?
558----------
559 t
560(1 row)
561
562SELECT :path3 && sline ( spoint '(-1,0)', spoint '(1,0)' );
563 ?column?
564----------
565 t
566(1 row)
567
568SELECT :path3 && sline ( spoint '(-1,0)', spoint '(-0.3,0)' );
569 ?column?
570----------
571 f
572(1 row)
573
574SELECT spath '{(0.11,0.15),(0.12,0.15),(0.13,0.15)}' @ :poly;
575 ?column?
576----------
577 t
578(1 row)
579
580-- ellipse tests
581--equal operator
582SELECT sellipse '<{0d,0d},(170d,-12d),0d>' = sellipse '<{0d,0d},(170d,-12d),0d>';
583 ?column?
584----------
585 t
586(1 row)
587
588SELECT sellipse '<{0d,0d},(170d,-12d),0d>' = sellipse '<{0d,0d},(170d,-12d),-2d>';
589 ?column?
590----------
591 t
592(1 row)
593
594SELECT sellipse '<{5d,5d},(170d,-12d),0d>' = sellipse '<{5d,5d},(170d,-12d),-2d>';
595 ?column?
596----------
597 t
598(1 row)
599
600SELECT sellipse '<{5d,2d},(170d,-12d),0d>' = sellipse '<{5d,2d},(170d,-12d),-2d>';
601 ?column?
602----------
603 f
604(1 row)
605
606-- not equal
607SELECT sellipse '<{5d,2d},(170d,-12d),0d>' != sellipse '<{5d,2d},(170d,-12d),-2d>';
608 ?column?
609----------
610 t
611(1 row)
612
613SELECT sellipse '<{5d,2d},(170d,-12d),0d>' != sellipse '<{5d,2d},(170d,-12d), 0d>';
614 ?column?
615----------
616 f
617(1 row)
618
619SELECT sellipse '<{10d, 5d},(300d,0d),  0d>' = sellipse '<{10d,5d},(300d,0d), 180d>' ;
620 ?column?
621----------
622 t
623(1 row)
624
625SELECT sellipse '<{10d, 5d},(300d,0d), 90d>' = sellipse '<{10d,5d},(300d,0d), 270d>' ;
626 ?column?
627----------
628 t
629(1 row)
630
631-- ellipse and point
632SELECT spoint '(280d,-20d)'   @  sellipse '<{10d,5d},(280d,-20d),90d>';
633 ?column?
634----------
635 t
636(1 row)
637
638SELECT spoint '(280d,-10d)'   @  sellipse '<{10d,5d},(280d,-20d),90d>';
639 ?column?
640----------
641 t
642(1 row)
643
644SELECT spoint '(280d,-9.9d)'  @  sellipse '<{10d,5d},(280d,-20d),90d>';
645 ?column?
646----------
647 f
648(1 row)
649
650SELECT sellipse '<{10d,5d},(280d,-20d),90d>' ~ spoint '(280d,-10d)' ;
651 ?column?
652----------
653 t
654(1 row)
655
656SELECT sellipse '<{10d,5d},(280d,-20d),90d>' ~ spoint '(280d, -9d)' ;
657 ?column?
658----------
659 f
660(1 row)
661
662SELECT spoint '(280d,-10d)'   !@  sellipse '<{10d,5d},(280d,-20d),90d>';
663 ?column?
664----------
665 f
666(1 row)
667
668SELECT spoint '(280d,-9.9d)'  !@  sellipse '<{10d,5d},(280d,-20d),90d>';
669 ?column?
670----------
671 t
672(1 row)
673
674SELECT sellipse '<{10d,5d},(280d,-20d),90d>' !~ spoint '(280d,-10d)' ;
675 ?column?
676----------
677 f
678(1 row)
679
680SELECT sellipse '<{10d,5d},(280d,-20d),90d>' !~ spoint '(280d, -9d)' ;
681 ?column?
682----------
683 t
684(1 row)
685
686--
687--ellipse and circle (@,&&)
688--
689-- negators and commutators
690SELECT scircle '<(280d,-10d),0d>'   @  sellipse '<{10d,5d},(280d,-20d),90d>';
691 ?column?
692----------
693 t
694(1 row)
695
696SELECT scircle '<(280d, -9d),0d>'   @  sellipse '<{10d,5d},(280d,-20d),90d>';
697 ?column?
698----------
699 f
700(1 row)
701
702SELECT scircle '<(280d,-10d),0d>'   !@  sellipse '<{10d,5d},(280d,-20d),90d>';
703 ?column?
704----------
705 f
706(1 row)
707
708SELECT scircle '<(280d, -9d),0d>'   !@  sellipse '<{10d,5d},(280d,-20d),90d>';
709 ?column?
710----------
711 t
712(1 row)
713
714SELECT sellipse '<{10d,5d},(280d,-20d),90d>'  ~ scircle '<(280d,-10d),0d>';
715 ?column?
716----------
717 t
718(1 row)
719
720SELECT sellipse '<{10d,5d},(280d,-20d),90d>'  ~ scircle '<(280d, -9d),0d>';
721 ?column?
722----------
723 f
724(1 row)
725
726SELECT sellipse '<{10d,5d},(280d,-20d),90d>' !~ scircle '<(280d,-10d),0d>';
727 ?column?
728----------
729 f
730(1 row)
731
732SELECT sellipse '<{10d,5d},(280d,-20d),90d>' !~ scircle '<(280d, -9d),0d>';
733 ?column?
734----------
735 t
736(1 row)
737
738SELECT scircle '<(280d,-10d),2d>'   &&  sellipse '<{10d,5d},(280d,-20d),90d>';
739 ?column?
740----------
741 t
742(1 row)
743
744SELECT scircle '<(280d,  0d),2d>'   &&  sellipse '<{10d,5d},(280d,-20d),90d>';
745 ?column?
746----------
747 f
748(1 row)
749
750SELECT scircle '<(280d,-10d),2d>'  !&&  sellipse '<{10d,5d},(280d,-20d),90d>';
751 ?column?
752----------
753 f
754(1 row)
755
756SELECT scircle '<(280d,  0d),2d>'  !&&  sellipse '<{10d,5d},(280d,-20d),90d>';
757 ?column?
758----------
759 t
760(1 row)
761
762SELECT sellipse '<{10d,5d},(280d,-20d),90d>'  && scircle '<(280d,-10d),2d>' ;
763 ?column?
764----------
765 t
766(1 row)
767
768SELECT sellipse '<{10d,5d},(280d,-20d),90d>'  && scircle '<(280d,  0d),2d>' ;
769 ?column?
770----------
771 f
772(1 row)
773
774SELECT sellipse '<{10d,5d},(280d,-20d),90d>' !&& scircle '<(280d,-10d),2d>' ;
775 ?column?
776----------
777 f
778(1 row)
779
780SELECT sellipse '<{10d,5d},(280d,-20d),90d>' !&& scircle '<(280d,  0d),2d>' ;
781 ?column?
782----------
783 t
784(1 row)
785
786SELECT scircle '<(280d,-10d),0d>'   &&  sellipse '<{10d,5d},(280d,-20d),90d>';
787 ?column?
788----------
789 t
790(1 row)
791
792
793-- ellipse is circle
794SELECT scircle '<(280d,-10d),2d>'   @  sellipse '<{5d,5d},(280d,-20d),90d>';
795 ?column?
796----------
797 f
798(1 row)
799
800SELECT scircle '<(280d,-18d),2d>'   @  sellipse '<{5d,5d},(280d,-20d),90d>';
801 ?column?
802----------
803 t
804(1 row)
805
806SELECT scircle '<(280d,-16d),2d>'   @  sellipse '<{5d,5d},(280d,-20d),90d>';
807 ?column?
808----------
809 f
810(1 row)
811
812SELECT scircle '<(280d,-18d),15d>'  @  sellipse '<{5d,5d},(280d,-20d),90d>';
813 ?column?
814----------
815 f
816(1 row)
817
818SELECT sellipse '<{5d,5d},(280d,-20d),90d>' @  scircle '<(280d,-10d),2d>'  ;
819 ?column?
820----------
821 f
822(1 row)
823
824SELECT sellipse '<{5d,5d},(280d,-20d),90d>' @  scircle '<(280d,-18d),2d>'  ;
825 ?column?
826----------
827 f
828(1 row)
829
830SELECT sellipse '<{5d,5d},(280d,-20d),90d>' @  scircle '<(280d,-16d),2d>'  ;
831 ?column?
832----------
833 f
834(1 row)
835
836SELECT sellipse '<{5d,5d},(280d,-20d),90d>' @  scircle '<(280d,-18d),15d>' ;
837 ?column?
838----------
839 t
840(1 row)
841
842SELECT scircle '<(280d,-10d),2d>'  &&  sellipse '<{5d,5d},(280d,-20d),90d>';
843 ?column?
844----------
845 f
846(1 row)
847
848SELECT scircle '<(280d,-18d),2d>'  &&  sellipse '<{5d,5d},(280d,-20d),90d>';
849 ?column?
850----------
851 t
852(1 row)
853
854SELECT scircle '<(280d,-16d),2d>'  &&  sellipse '<{5d,5d},(280d,-20d),90d>';
855 ?column?
856----------
857 t
858(1 row)
859
860-- ellipse is line
861SELECT scircle '<(280d,-10d),0d>'   @  sellipse '<{5d,0d},(280d,-20d),90d>';
862 ?column?
863----------
864 f
865(1 row)
866
867SELECT scircle '<(280d,-18d),0d>'   @  sellipse '<{5d,0d},(280d,-20d),90d>';
868 ?column?
869----------
870 t
871(1 row)
872
873SELECT scircle '<(280d,-16d),0d>'   @  sellipse '<{5d,0d},(280d,-20d),90d>';
874 ?column?
875----------
876 t
877(1 row)
878
879SELECT scircle '<(280d,-18d),15d>'  @  sellipse '<{5d,0d},(280d,-20d),90d>';
880 ?column?
881----------
882 f
883(1 row)
884
885SELECT scircle '<(280d,-10d),0d>'  &&  sellipse '<{5d,0d},(280d,-20d),90d>';
886 ?column?
887----------
888 f
889(1 row)
890
891SELECT scircle '<(280d,-18d),0d>'  &&  sellipse '<{5d,0d},(280d,-20d),90d>';
892 ?column?
893----------
894 t
895(1 row)
896
897SELECT scircle '<(280d,-10d),2d>'   @  sellipse '<{5d,0d},(280d,-20d),90d>';
898 ?column?
899----------
900 f
901(1 row)
902
903SELECT scircle '<(280d,-18d),2d>'   @  sellipse '<{5d,0d},(280d,-20d),90d>';
904 ?column?
905----------
906 f
907(1 row)
908
909SELECT scircle '<(280d,-16d),2d>'   @  sellipse '<{5d,0d},(280d,-20d),90d>';
910 ?column?
911----------
912 f
913(1 row)
914
915SELECT scircle '<(280d,-10d),2d>'  &&  sellipse '<{5d,0d},(280d,-20d),90d>';
916 ?column?
917----------
918 f
919(1 row)
920
921SELECT scircle '<(280d,-18d),2d>'  &&  sellipse '<{5d,0d},(280d,-20d),90d>';
922 ?column?
923----------
924 t
925(1 row)
926
927SELECT sellipse '<{5d,0d},(280d,-20d),90d>' @ scircle '<(280d,-18d),15d>'  ;
928 ?column?
929----------
930 t
931(1 row)
932
933--
934--ellipse and line (@,&&)
935--
936-- negators and commutators
937SELECT sline ( spoint '(280d, -9d)', spoint '(280d, -8d)' )   @  sellipse '<{10d,5d},(280d,-20d),90d>';
938 ?column?
939----------
940 f
941(1 row)
942
943SELECT sline ( spoint '(280d, -9d)', spoint '(280d,-12d)' )   @  sellipse '<{10d,5d},(280d,-20d),90d>';
944 ?column?
945----------
946 f
947(1 row)
948
949SELECT sline ( spoint '(280d,-11d)', spoint '(280d,-12d)' )   @  sellipse '<{10d,5d},(280d,-20d),90d>';
950 ?column?
951----------
952 t
953(1 row)
954
955SELECT sline ( spoint '(280d, -9d)', spoint '(280d, -8d)' )  &&  sellipse '<{10d,5d},(280d,-20d),90d>';
956 ?column?
957----------
958 f
959(1 row)
960
961SELECT sline ( spoint '(280d, -9d)', spoint '(280d,-12d)' )  &&  sellipse '<{10d,5d},(280d,-20d),90d>';
962 ?column?
963----------
964 t
965(1 row)
966
967SELECT sline ( spoint '(280d,-11d)', spoint '(280d,-12d)' )  &&  sellipse '<{10d,5d},(280d,-20d),90d>';
968 ?column?
969----------
970 t
971(1 row)
972
973SELECT sline ( spoint '(280d, -9d)', spoint '(280d, -8d)' )  !@  sellipse '<{10d,5d},(280d,-20d),90d>';
974 ?column?
975----------
976 t
977(1 row)
978
979SELECT sline ( spoint '(280d, -9d)', spoint '(280d,-12d)' )  !@  sellipse '<{10d,5d},(280d,-20d),90d>';
980 ?column?
981----------
982 t
983(1 row)
984
985SELECT sline ( spoint '(280d,-11d)', spoint '(280d,-12d)' )  !@  sellipse '<{10d,5d},(280d,-20d),90d>';
986 ?column?
987----------
988 f
989(1 row)
990
991SELECT sline ( spoint '(280d, -9d)', spoint '(280d, -8d)' ) !&&  sellipse '<{10d,5d},(280d,-20d),90d>';
992 ?column?
993----------
994 t
995(1 row)
996
997SELECT sline ( spoint '(280d, -9d)', spoint '(280d,-12d)' ) !&&  sellipse '<{10d,5d},(280d,-20d),90d>';
998 ?column?
999----------
1000 f
1001(1 row)
1002
1003SELECT sline ( spoint '(280d,-11d)', spoint '(280d,-12d)' ) !&&  sellipse '<{10d,5d},(280d,-20d),90d>';
1004 ?column?
1005----------
1006 f
1007(1 row)
1008
1009SELECT sellipse '<{10d,5d},(280d,-20d),90d>'   ~  sline ( spoint '(280d, -9d)', spoint '(280d, -8d)' );
1010 ?column?
1011----------
1012 f
1013(1 row)
1014
1015SELECT sellipse '<{10d,5d},(280d,-20d),90d>'   ~  sline ( spoint '(280d, -9d)', spoint '(280d,-12d)' );
1016 ?column?
1017----------
1018 f
1019(1 row)
1020
1021SELECT sellipse '<{10d,5d},(280d,-20d),90d>'   ~  sline ( spoint '(280d,-11d)', spoint '(280d,-12d)' );
1022 ?column?
1023----------
1024 t
1025(1 row)
1026
1027SELECT sellipse '<{10d,5d},(280d,-20d),90d>'   &&  sline ( spoint '(280d, -9d)', spoint '(280d, -8d)' );
1028 ?column?
1029----------
1030 f
1031(1 row)
1032
1033SELECT sellipse '<{10d,5d},(280d,-20d),90d>'   &&  sline ( spoint '(280d, -9d)', spoint '(280d,-12d)' );
1034 ?column?
1035----------
1036 t
1037(1 row)
1038
1039SELECT sellipse '<{10d,5d},(280d,-20d),90d>'   &&  sline ( spoint '(280d,-11d)', spoint '(280d,-12d)' );
1040 ?column?
1041----------
1042 t
1043(1 row)
1044
1045SELECT sellipse '<{10d,5d},(280d,-20d),90d>'  !~  sline ( spoint '(280d, -9d)', spoint '(280d, -8d)' );
1046 ?column?
1047----------
1048 t
1049(1 row)
1050
1051SELECT sellipse '<{10d,5d},(280d,-20d),90d>'  !~  sline ( spoint '(280d, -9d)', spoint '(280d,-12d)' );
1052 ?column?
1053----------
1054 t
1055(1 row)
1056
1057SELECT sellipse '<{10d,5d},(280d,-20d),90d>'  !~  sline ( spoint '(280d,-11d)', spoint '(280d,-12d)' );
1058 ?column?
1059----------
1060 f
1061(1 row)
1062
1063SELECT sellipse '<{10d,5d},(280d,-20d),90d>'  !&&  sline ( spoint '(280d, -9d)', spoint '(280d, -8d)' );
1064 ?column?
1065----------
1066 t
1067(1 row)
1068
1069SELECT sellipse '<{10d,5d},(280d,-20d),90d>'  !&&  sline ( spoint '(280d, -9d)', spoint '(280d,-12d)' );
1070 ?column?
1071----------
1072 f
1073(1 row)
1074
1075SELECT sellipse '<{10d,5d},(280d,-20d),90d>'  !&&  sline ( spoint '(280d,-11d)', spoint '(280d,-12d)' );
1076 ?column?
1077----------
1078 f
1079(1 row)
1080
1081-- line is point , ellipse is point
1082SELECT sline ( spoint '(280d, -8d)', spoint '(280d, -8d)' )   @  sellipse '<{0d,0d},(280d,-20d),90d>';
1083 ?column?
1084----------
1085 f
1086(1 row)
1087
1088SELECT sline ( spoint '(280d, -8d)', spoint '(280d, -8d)' )   @  sellipse '<{0d,0d},(280d, -8d),90d>';
1089 ?column?
1090----------
1091 t
1092(1 row)
1093
1094SELECT sline ( spoint '(280d, -8d)', spoint '(280d, -8d)' )  &&  sellipse '<{0d,0d},(280d,-20d),90d>';
1095 ?column?
1096----------
1097 f
1098(1 row)
1099
1100SELECT sline ( spoint '(280d, -8d)', spoint '(280d, -8d)' )  &&  sellipse '<{0d,0d},(280d, -8d),90d>';
1101 ?column?
1102----------
1103 t
1104(1 row)
1105
1106-- line is point , ellipse is circle
1107SELECT sline ( spoint '(280d, -8d)', spoint '(280d, -8d)' )   @  sellipse '<{5d,5d},(280d,-20d),90d>';
1108 ?column?
1109----------
1110 f
1111(1 row)
1112
1113SELECT sline ( spoint '(280d, -8d)', spoint '(280d, -8d)' )   @  sellipse '<{5d,5d},(280d, -8d),90d>';
1114 ?column?
1115----------
1116 t
1117(1 row)
1118
1119SELECT sline ( spoint '(280d, -8d)', spoint '(280d, -8d)' )  &&  sellipse '<{5d,5d},(280d,-20d),90d>';
1120 ?column?
1121----------
1122 f
1123(1 row)
1124
1125SELECT sline ( spoint '(280d, -8d)', spoint '(280d, -8d)' )  &&  sellipse '<{5d,5d},(280d, -8d),90d>';
1126 ?column?
1127----------
1128 t
1129(1 row)
1130
1131-- line is point , ellipse is a real ellipse
1132SELECT sline ( spoint '(280d, -8d)', spoint '(280d, -8d)' )   @  sellipse '<{10d,5d},(280d,-20d),90d>';
1133 ?column?
1134----------
1135 f
1136(1 row)
1137
1138SELECT sline ( spoint '(280d, -8d)', spoint '(280d, -8d)' )   @  sellipse '<{10d,5d},(280d, -8d),90d>';
1139 ?column?
1140----------
1141 t
1142(1 row)
1143
1144SELECT sline ( spoint '(280d, -8d)', spoint '(280d, -8d)' )  &&  sellipse '<{10d,5d},(280d,-20d),90d>';
1145 ?column?
1146----------
1147 f
1148(1 row)
1149
1150SELECT sline ( spoint '(280d, -8d)', spoint '(280d, -8d)' )  &&  sellipse '<{10d,5d},(280d, -8d),90d>';
1151 ?column?
1152----------
1153 t
1154(1 row)
1155
1156-- line is a real line , ellipse is point
1157SELECT sline ( spoint '(280d, -8d)', spoint '(280d, -9d)' )   @  sellipse '<{0d,0d},(280d,-20d),90d>';
1158 ?column?
1159----------
1160 f
1161(1 row)
1162
1163SELECT sline ( spoint '(280d, -8d)', spoint '(280d, -9d)' )   @  sellipse '<{0d,0d},(280d, -8d),90d>';
1164 ?column?
1165----------
1166 f
1167(1 row)
1168
1169SELECT sline ( spoint '(280d, -8d)', spoint '(280d, -9d)' )  &&  sellipse '<{0d,0d},(280d,-20d),90d>';
1170 ?column?
1171----------
1172 f
1173(1 row)
1174
1175SELECT sline ( spoint '(280d, -8d)', spoint '(280d, -9d)' )  &&  sellipse '<{0d,0d},(280d, -8d),90d>';
1176 ?column?
1177----------
1178 t
1179(1 row)
1180
1181-- line is a real line , ellipse is circle
1182SELECT sline ( spoint '(280d, -8d)', spoint '(280d, -9d)' )   @  sellipse '<{5d,5d},(280d,-20d),90d>';
1183 ?column?
1184----------
1185 f
1186(1 row)
1187
1188SELECT sline ( spoint '(280d, -8d)', spoint '(280d, -9d)' )   @  sellipse '<{5d,5d},(280d, -8d),90d>';
1189 ?column?
1190----------
1191 t
1192(1 row)
1193
1194SELECT sline ( spoint '(280d, -8d)', spoint '(280d, -9d)' )  &&  sellipse '<{5d,5d},(280d,-20d),90d>';
1195 ?column?
1196----------
1197 f
1198(1 row)
1199
1200SELECT sline ( spoint '(280d, -8d)', spoint '(280d, -9d)' )  &&  sellipse '<{5d,5d},(280d, -8d),90d>';
1201 ?column?
1202----------
1203 t
1204(1 row)
1205
1206-- line is a real line , ellipse is line
1207SELECT sline ( spoint '(280d, -8d)', spoint '(280d, -9d)' )   @  sellipse '<{5d,0d},(280d,-20d),90d>';
1208 ?column?
1209----------
1210 f
1211(1 row)
1212
1213SELECT sline ( spoint '(280d, -8d)', spoint '(280d, -9d)' )   @  sellipse '<{5d,0d},(280d, -8d),90d>';
1214 ?column?
1215----------
1216 t
1217(1 row)
1218
1219SELECT sline ( spoint '(280d, -8d)', spoint '(280d, -9d)' )  &&  sellipse '<{5d,0d},(280d,-20d),90d>';
1220 ?column?
1221----------
1222 f
1223(1 row)
1224
1225SELECT sline ( spoint '(280d, -8d)', spoint '(280d, -9d)' )  &&  sellipse '<{5d,0d},(280d, -8d),90d>';
1226 ?column?
1227----------
1228 t
1229(1 row)
1230
1231-- line is a real line , ellipse is a real ellipse
1232SELECT sline ( spoint '(280d, -8d)', spoint '(280d, -9d)' )   @  sellipse '<{10d,5d},(280d,-20d),90d>';
1233 ?column?
1234----------
1235 f
1236(1 row)
1237
1238SELECT sline ( spoint '(280d, -8d)', spoint '(280d, -9d)' )   @  sellipse '<{10d,5d},(280d, -8d),90d>';
1239 ?column?
1240----------
1241 t
1242(1 row)
1243
1244SELECT sline ( spoint '(280d, -8d)', spoint '(280d, -9d)' )  &&  sellipse '<{10d,5d},(280d,-20d),90d>';
1245 ?column?
1246----------
1247 f
1248(1 row)
1249
1250SELECT sline ( spoint '(280d, -8d)', spoint '(280d, -9d)' )  &&  sellipse '<{10d,5d},(280d, -8d),90d>';
1251 ?column?
1252----------
1253 t
1254(1 row)
1255
1256--
1257-- ellipse and path
1258--
1259-- negators , commutator @,&&
1260SELECT spath '{(280d, -9d),(280d, -8d)}'   @  sellipse '<{10d,5d},(280d,-20d),90d>';
1261 ?column?
1262----------
1263 f
1264(1 row)
1265
1266SELECT spath '{(280d, -9d),(280d,-12d)}'   @  sellipse '<{10d,5d},(280d,-20d),90d>';
1267 ?column?
1268----------
1269 f
1270(1 row)
1271
1272SELECT spath '{(280d,-11d),(280d,-12d)}'   @  sellipse '<{10d,5d},(280d,-20d),90d>';
1273 ?column?
1274----------
1275 t
1276(1 row)
1277
1278SELECT spath '{(280d, -9d),(280d, -8d)}'  &&  sellipse '<{10d,5d},(280d,-20d),90d>';
1279 ?column?
1280----------
1281 f
1282(1 row)
1283
1284SELECT spath '{(280d, -9d),(280d,-12d)}'  &&  sellipse '<{10d,5d},(280d,-20d),90d>';
1285 ?column?
1286----------
1287 t
1288(1 row)
1289
1290SELECT spath '{(280d,-11d),(280d,-12d)}'  &&  sellipse '<{10d,5d},(280d,-20d),90d>';
1291 ?column?
1292----------
1293 t
1294(1 row)
1295
1296SELECT spath '{(280d, -9d),(280d, -8d)}'  !@  sellipse '<{10d,5d},(280d,-20d),90d>';
1297 ?column?
1298----------
1299 t
1300(1 row)
1301
1302SELECT spath '{(280d, -9d),(280d,-12d)}'  !@  sellipse '<{10d,5d},(280d,-20d),90d>';
1303 ?column?
1304----------
1305 t
1306(1 row)
1307
1308SELECT spath '{(280d,-11d),(280d,-12d)}'  !@  sellipse '<{10d,5d},(280d,-20d),90d>';
1309 ?column?
1310----------
1311 f
1312(1 row)
1313
1314SELECT spath '{(280d, -9d),(280d, -8d)}' !&&  sellipse '<{10d,5d},(280d,-20d),90d>';
1315 ?column?
1316----------
1317 t
1318(1 row)
1319
1320SELECT spath '{(280d, -9d),(280d,-12d)}' !&&  sellipse '<{10d,5d},(280d,-20d),90d>';
1321 ?column?
1322----------
1323 f
1324(1 row)
1325
1326SELECT spath '{(280d,-11d),(280d,-12d)}' !&&  sellipse '<{10d,5d},(280d,-20d),90d>';
1327 ?column?
1328----------
1329 f
1330(1 row)
1331
1332SELECT sellipse '<{10d,5d},(280d,-20d),90d>'   ~  spath '{(280d, -9d),(280d, -8d)}';
1333 ?column?
1334----------
1335 f
1336(1 row)
1337
1338SELECT sellipse '<{10d,5d},(280d,-20d),90d>'   ~  spath '{(280d, -9d),(280d,-12d)}';
1339 ?column?
1340----------
1341 f
1342(1 row)
1343
1344SELECT sellipse '<{10d,5d},(280d,-20d),90d>'   ~  spath '{(280d,-11d),(280d,-12d)}';
1345 ?column?
1346----------
1347 t
1348(1 row)
1349
1350SELECT sellipse '<{10d,5d},(280d,-20d),90d>'   &&  spath '{(280d, -9d),(280d, -8d)}';
1351 ?column?
1352----------
1353 f
1354(1 row)
1355
1356SELECT sellipse '<{10d,5d},(280d,-20d),90d>'   &&  spath '{(280d, -9d),(280d,-12d)}';
1357 ?column?
1358----------
1359 t
1360(1 row)
1361
1362SELECT sellipse '<{10d,5d},(280d,-20d),90d>'   &&  spath '{(280d,-11d),(280d,-12d)}';
1363 ?column?
1364----------
1365 t
1366(1 row)
1367
1368SELECT sellipse '<{10d,5d},(280d,-20d),90d>'  !~  spath '{(280d, -9d),(280d, -8d)}';
1369 ?column?
1370----------
1371 t
1372(1 row)
1373
1374SELECT sellipse '<{10d,5d},(280d,-20d),90d>'  !~  spath '{(280d, -9d),(280d,-12d)}';
1375 ?column?
1376----------
1377 t
1378(1 row)
1379
1380SELECT sellipse '<{10d,5d},(280d,-20d),90d>'  !~  spath '{(280d,-11d),(280d,-12d)}';
1381 ?column?
1382----------
1383 f
1384(1 row)
1385
1386SELECT sellipse '<{10d,5d},(280d,-20d),90d>'  !&&  spath '{(280d, -9d),(280d, -8d)}';
1387 ?column?
1388----------
1389 t
1390(1 row)
1391
1392SELECT sellipse '<{10d,5d},(280d,-20d),90d>'  !&&  spath '{(280d, -9d),(280d,-12d)}';
1393 ?column?
1394----------
1395 f
1396(1 row)
1397
1398SELECT sellipse '<{10d,5d},(280d,-20d),90d>'  !&&  spath '{(280d,-11d),(280d,-12d)}';
1399 ?column?
1400----------
1401 f
1402(1 row)
1403
1404-- path is a line , ellipse is point
1405SELECT spath '{(280d, -8d),(280d, -9d)}'   @  sellipse '<{0d,0d},(280d,-20d),90d>';
1406 ?column?
1407----------
1408 f
1409(1 row)
1410
1411SELECT spath '{(280d, -8d),(280d, -9d)}'   @  sellipse '<{0d,0d},(280d, -8d),90d>';
1412 ?column?
1413----------
1414 f
1415(1 row)
1416
1417SELECT spath '{(280d, -8d),(280d, -9d)}'  &&  sellipse '<{0d,0d},(280d,-20d),90d>';
1418 ?column?
1419----------
1420 f
1421(1 row)
1422
1423SELECT spath '{(280d, -8d),(280d, -9d)}'  &&  sellipse '<{0d,0d},(280d, -8d),90d>';
1424 ?column?
1425----------
1426 t
1427(1 row)
1428
1429-- path is a line , ellipse is circle
1430SELECT spath '{(280d, -8d),(280d, -9d)}'   @  sellipse '<{5d,5d},(280d,-20d),90d>';
1431 ?column?
1432----------
1433 f
1434(1 row)
1435
1436SELECT spath '{(280d, -8d),(280d, -9d)}'   @  sellipse '<{5d,5d},(280d, -8d),90d>';
1437 ?column?
1438----------
1439 t
1440(1 row)
1441
1442SELECT spath '{(280d, -8d),(280d, -9d)}'  &&  sellipse '<{5d,5d},(280d,-20d),90d>';
1443 ?column?
1444----------
1445 f
1446(1 row)
1447
1448SELECT spath '{(280d, -8d),(280d, -9d)}'  &&  sellipse '<{5d,5d},(280d, -8d),90d>';
1449 ?column?
1450----------
1451 t
1452(1 row)
1453
1454-- path is a line , ellipse is path
1455SELECT spath '{(280d, -8d),(280d, -9d)}'   @  sellipse '<{5d,0d},(280d,-20d),90d>';
1456 ?column?
1457----------
1458 f
1459(1 row)
1460
1461SELECT spath '{(280d, -8d),(280d, -9d)}'   @  sellipse '<{5d,0d},(280d, -8d),90d>';
1462 ?column?
1463----------
1464 f
1465(1 row)
1466
1467SELECT spath '{(280d, -8d),(280d, -9d)}'  &&  sellipse '<{5d,0d},(280d,-20d),90d>';
1468 ?column?
1469----------
1470 f
1471(1 row)
1472
1473SELECT spath '{(280d, -8d),(280d, -9d)}'  &&  sellipse '<{5d,0d},(280d, -8d),90d>';
1474 ?column?
1475----------
1476 t
1477(1 row)
1478
1479-- path is a line , ellipse is a real ellipse
1480SELECT spath '{(280d, -8d),(280d, -9d)}'   @  sellipse '<{10d,5d},(280d,-20d),90d>';
1481 ?column?
1482----------
1483 f
1484(1 row)
1485
1486SELECT spath '{(280d, -8d),(280d, -9d)}'   @  sellipse '<{10d,5d},(280d, -8d),90d>';
1487 ?column?
1488----------
1489 t
1490(1 row)
1491
1492SELECT spath '{(280d, -8d),(280d, -9d)}'  &&  sellipse '<{10d,5d},(280d,-20d),90d>';
1493 ?column?
1494----------
1495 f
1496(1 row)
1497
1498SELECT spath '{(280d, -8d),(280d, -9d)}'  &&  sellipse '<{10d,5d},(280d, -8d),90d>';
1499 ?column?
1500----------
1501 t
1502(1 row)
1503
1504--
1505-- ellipse and polygon
1506--
1507-- negators , commutator @,&&
1508SELECT spoly '{(280d, -9d),(280d, -8d),(279d, -8d)}'    @  sellipse '<{10d,5d},(280d,-20d),90d>';
1509 ?column?
1510----------
1511 f
1512(1 row)
1513
1514SELECT spoly '{(280d, -9d),(280d,-12d),(279d, -8d)}'    @  sellipse '<{10d,5d},(280d,-20d),90d>';
1515 ?column?
1516----------
1517 f
1518(1 row)
1519
1520SELECT spoly '{(280d,-11d),(280d,-12d),(279d, -12d)}'   @  sellipse '<{10d,5d},(280d,-20d),90d>';
1521 ?column?
1522----------
1523 t
1524(1 row)
1525
1526SELECT spoly '{(280d, -9d),(280d, -8d),(279d, -8d)}'   &&  sellipse '<{10d,5d},(280d,-20d),90d>';
1527 ?column?
1528----------
1529 f
1530(1 row)
1531
1532SELECT spoly '{(280d, -9d),(280d,-12d),(279d, -8d)}'   &&  sellipse '<{10d,5d},(280d,-20d),90d>';
1533 ?column?
1534----------
1535 t
1536(1 row)
1537
1538SELECT spoly '{(280d,-11d),(280d,-12d),(279d, -12d)}'  &&  sellipse '<{10d,5d},(280d,-20d),90d>';
1539 ?column?
1540----------
1541 t
1542(1 row)
1543
1544SELECT spoly '{(280d, -9d),(280d, -8d),(279d, -8d)}'   !@  sellipse '<{10d,5d},(280d,-20d),90d>';
1545 ?column?
1546----------
1547 t
1548(1 row)
1549
1550SELECT spoly '{(280d, -9d),(280d,-12d),(279d, -8d)}'   !@  sellipse '<{10d,5d},(280d,-20d),90d>';
1551 ?column?
1552----------
1553 t
1554(1 row)
1555
1556SELECT spoly '{(280d,-11d),(280d,-12d),(279d, -12d)}'  !@  sellipse '<{10d,5d},(280d,-20d),90d>';
1557 ?column?
1558----------
1559 f
1560(1 row)
1561
1562SELECT spoly '{(280d, -9d),(280d, -8d),(279d, -8d)}'  !&&  sellipse '<{10d,5d},(280d,-20d),90d>';
1563 ?column?
1564----------
1565 t
1566(1 row)
1567
1568SELECT spoly '{(280d, -9d),(280d,-12d),(279d, -8d)}'  !&&  sellipse '<{10d,5d},(280d,-20d),90d>';
1569 ?column?
1570----------
1571 f
1572(1 row)
1573
1574SELECT spoly '{(280d,-11d),(280d,-12d),(279d, -12d)}' !&&  sellipse '<{10d,5d},(280d,-20d),90d>';
1575 ?column?
1576----------
1577 f
1578(1 row)
1579
1580SELECT sellipse '<{10d,5d},(280d,-20d),90d>'   ~  spoly '{(280d, -9d),(280d, -8d),(279d, -8d)}';
1581 ?column?
1582----------
1583 f
1584(1 row)
1585
1586SELECT sellipse '<{10d,5d},(280d,-20d),90d>'   ~  spoly '{(280d, -9d),(280d,-12d),(279d, -8d)}';
1587 ?column?
1588----------
1589 f
1590(1 row)
1591
1592SELECT sellipse '<{10d,5d},(280d,-20d),90d>'   ~  spoly '{(280d,-11d),(280d,-12d),(279d, -12d)}';
1593 ?column?
1594----------
1595 t
1596(1 row)
1597
1598SELECT sellipse '<{10d,5d},(280d,-20d),90d>'   &&  spoly '{(280d, -9d),(280d, -8d),(279d, -8d)}';
1599 ?column?
1600----------
1601 f
1602(1 row)
1603
1604SELECT sellipse '<{10d,5d},(280d,-20d),90d>'   &&  spoly '{(280d, -9d),(280d,-12d),(279d, -8d)}';
1605 ?column?
1606----------
1607 t
1608(1 row)
1609
1610SELECT sellipse '<{10d,5d},(280d,-20d),90d>'   &&  spoly '{(280d,-11d),(280d,-12d),(279d, -12d)}';
1611 ?column?
1612----------
1613 t
1614(1 row)
1615
1616SELECT sellipse '<{10d,5d},(280d,-20d),90d>'  !~  spoly '{(280d, -9d),(280d, -8d),(279d, -8d)}';
1617 ?column?
1618----------
1619 t
1620(1 row)
1621
1622SELECT sellipse '<{10d,5d},(280d,-20d),90d>'  !~  spoly '{(280d, -9d),(280d,-12d),(279d, -8d)}';
1623 ?column?
1624----------
1625 t
1626(1 row)
1627
1628SELECT sellipse '<{10d,5d},(280d,-20d),90d>'  !~  spoly '{(280d,-11d),(280d,-12d),(279d, -12d)}';
1629 ?column?
1630----------
1631 f
1632(1 row)
1633
1634SELECT sellipse '<{10d,5d},(280d,-20d),90d>'  !&&  spoly '{(280d, -9d),(280d, -8d),(279d, -8d)}';
1635 ?column?
1636----------
1637 t
1638(1 row)
1639
1640SELECT sellipse '<{10d,5d},(280d,-20d),90d>'  !&&  spoly '{(280d, -9d),(280d,-12d),(279d, -8d)}';
1641 ?column?
1642----------
1643 f
1644(1 row)
1645
1646SELECT sellipse '<{10d,5d},(280d,-20d),90d>'  !&&  spoly '{(280d,-11d),(280d,-12d),(279d, -12d)}';
1647 ?column?
1648----------
1649 f
1650(1 row)
1651
1652-- ellipse is point
1653SELECT spoly '{(280d, -9d),(280d, -8d),(279d, -8d)}'    @  sellipse '<{0d,0d},(280d,-20d),90d>';
1654 ?column?
1655----------
1656 f
1657(1 row)
1658
1659SELECT spoly '{(280d,-11d),(280d,-20d),(279d, -12d)}'   @  sellipse '<{0d,0d},(280d,-20d),90d>';
1660 ?column?
1661----------
1662 f
1663(1 row)
1664
1665SELECT spoly '{(280d, -9d),(280d, -8d),(279d, -8d)}'   &&  sellipse '<{0d,0d},(280d,-20d),90d>';
1666 ?column?
1667----------
1668 f
1669(1 row)
1670
1671SELECT spoly '{(280d,-11d),(280d,-20d),(279d, -12d)}'  &&  sellipse '<{0d,0d},(280d,-20d),90d>';
1672 ?column?
1673----------
1674 t
1675(1 row)
1676
1677SELECT sellipse '<{0d,0d},(280d,-20d),90d>'   @  spoly '{(280d, -9d),(280d, -8d),(279d, -8d)}' ;
1678 ?column?
1679----------
1680 f
1681(1 row)
1682
1683SELECT sellipse '<{0d,0d},(280d,-20d),90d>'   @  spoly '{(280d,-11d),(280d,-20d),(279d, -12d)}';
1684 ?column?
1685----------
1686 t
1687(1 row)
1688
1689SELECT sellipse '<{0d,0d},(280d,-20d),90d>'  &&  spoly '{(280d, -9d),(280d, -8d),(279d, -8d)}' ;
1690 ?column?
1691----------
1692 f
1693(1 row)
1694
1695SELECT sellipse '<{0d,0d},(280d,-20d),90d>'  &&  spoly '{(280d,-11d),(280d,-20d),(279d, -12d)}';
1696 ?column?
1697----------
1698 t
1699(1 row)
1700
1701-- ellipse is circle
1702SELECT spoly '{(280d, -9d),(280d, -8d),(279d, -8d)}'    @  sellipse '<{5d,5d},(280d,-20d),90d>';
1703 ?column?
1704----------
1705 f
1706(1 row)
1707
1708SELECT spoly '{(280d,-10d),(290d,-30d),(270d, -30d)}'   @  sellipse '<{2d,2d},(280d,-20d),90d>';
1709 ?column?
1710----------
1711 f
1712(1 row)
1713
1714SELECT spoly '{(280d, -9d),(280d, -8d),(279d, -8d)}'   &&  sellipse '<{5d,5d},(280d,-20d),90d>';
1715 ?column?
1716----------
1717 f
1718(1 row)
1719
1720SELECT spoly '{(280d,-11d),(280d,-20d),(279d, -12d)}'  &&  sellipse '<{5d,5d},(280d,-20d),90d>';
1721 ?column?
1722----------
1723 t
1724(1 row)
1725
1726SELECT sellipse '<{5d,5d},(280d,-20d),90d>'   @  spoly '{(280d, -9d),(280d, -8d),(279d, -8d)}' ;
1727 ?column?
1728----------
1729 f
1730(1 row)
1731
1732SELECT sellipse '<{2d,2d},(280d,-20d),90d>'   @  spoly '{(280d,-10d),(290d,-30d),(270d, -30d)}';
1733 ?column?
1734----------
1735 t
1736(1 row)
1737
1738SELECT sellipse '<{5d,5d},(280d,-20d),90d>'  &&  spoly '{(280d, -9d),(280d, -8d),(279d, -8d)}' ;
1739 ?column?
1740----------
1741 f
1742(1 row)
1743
1744SELECT sellipse '<{5d,5d},(280d,-20d),90d>'  &&  spoly '{(280d,-11d),(280d,-18d),(279d, -12d)}';
1745 ?column?
1746----------
1747 t
1748(1 row)
1749
1750-- ellipse is line
1751SELECT spoly '{(280d, -9d),(280d, -8d),(279d, -8d)}'    @  sellipse '<{5d,0d},(280d,-20d),90d>';
1752 ?column?
1753----------
1754 f
1755(1 row)
1756
1757SELECT spoly '{(280d,-10d),(290d,-30d),(270d, -30d)}'   @  sellipse '<{2d,0d},(280d,-20d),90d>';
1758 ?column?
1759----------
1760 f
1761(1 row)
1762
1763SELECT spoly '{(280d, -9d),(280d, -8d),(279d, -8d)}'   &&  sellipse '<{5d,0d},(280d,-20d),90d>';
1764 ?column?
1765----------
1766 f
1767(1 row)
1768
1769SELECT spoly '{(280d,-11d),(280d,-20d),(279d, -12d)}'  &&  sellipse '<{5d,0d},(280d,-20d),90d>';
1770 ?column?
1771----------
1772 t
1773(1 row)
1774
1775SELECT sellipse '<{5d,0d},(280d,-20d),90d>'   @  spoly '{(280d, -9d),(280d, -8d),(279d, -8d)}' ;
1776 ?column?
1777----------
1778 f
1779(1 row)
1780
1781SELECT sellipse '<{2d,0d},(280d,-20d),90d>'   @  spoly '{(280d,-10d),(290d,-30d),(270d, -30d)}';
1782 ?column?
1783----------
1784 t
1785(1 row)
1786
1787SELECT sellipse '<{5d,0d},(280d,-20d),90d>'  &&  spoly '{(280d, -9d),(280d, -8d),(279d, -8d)}' ;
1788 ?column?
1789----------
1790 f
1791(1 row)
1792
1793SELECT sellipse '<{5d,0d},(280d,-20d),90d>'  &&  spoly '{(280d,-11d),(280d,-18d),(279d, -12d)}';
1794 ?column?
1795----------
1796 t
1797(1 row)
1798
1799-- ellipse is a real ellipse
1800SELECT spoly '{(280d, -9d),(280d, -8d),(279d, -8d)}'    @  sellipse '<{5d,2d},(280d,-20d),90d>';
1801 ?column?
1802----------
1803 f
1804(1 row)
1805
1806SELECT spoly '{(280d,-10d),(290d,-30d),(270d, -30d)}'   @  sellipse '<{2d,1d},(280d,-20d),90d>';
1807 ?column?
1808----------
1809 f
1810(1 row)
1811
1812SELECT spoly '{(280d, -9d),(280d, -8d),(279d, -8d)}'   &&  sellipse '<{5d,2d},(280d,-20d),90d>';
1813 ?column?
1814----------
1815 f
1816(1 row)
1817
1818SELECT spoly '{(280d,-11d),(280d,-20d),(279d, -12d)}'  &&  sellipse '<{5d,2d},(280d,-20d),90d>';
1819 ?column?
1820----------
1821 t
1822(1 row)
1823
1824SELECT sellipse '<{5d,2d},(280d,-20d),90d>'   @  spoly '{(280d, -9d),(280d, -8d),(279d, -8d)}' ;
1825 ?column?
1826----------
1827 f
1828(1 row)
1829
1830SELECT sellipse '<{2d,1d},(280d,-20d),90d>'   @  spoly '{(280d,-10d),(290d,-30d),(270d, -30d)}';
1831 ?column?
1832----------
1833 t
1834(1 row)
1835
1836SELECT sellipse '<{5d,2d},(280d,-20d),90d>'  &&  spoly '{(280d, -9d),(280d, -8d),(279d, -8d)}' ;
1837 ?column?
1838----------
1839 f
1840(1 row)
1841
1842SELECT sellipse '<{5d,2d},(280d,-20d),90d>'  &&  spoly '{(280d,-11d),(280d,-18d),(279d, -12d)}';
1843 ?column?
1844----------
1845 t
1846(1 row)
1847
1848--
1849-- ellipse and ellipse
1850--
1851-- check @
1852SELECT sellipse '<{10d, 5d},(300d,0d),  0d>' @ sellipse '<{10d,5d},(300d,0d),0d>';
1853 ?column?
1854----------
1855 t
1856(1 row)
1857
1858SELECT sellipse '<{10d, 5d},(300d,0d), 90d>' @ sellipse '<{10d,5d},(300d,0d),0d>';
1859 ?column?
1860----------
1861 f
1862(1 row)
1863
1864SELECT sellipse '<{10d, 5d},(300d,0d),180d>' @ sellipse '<{10d,5d},(300d,0d),0d>';
1865 ?column?
1866----------
1867 t
1868(1 row)
1869
1870SELECT sellipse '<{10d, 5d},(300d,0d),270d>' @ sellipse '<{10d,5d},(300d,0d),0d>';
1871 ?column?
1872----------
1873 f
1874(1 row)
1875
1876SELECT sellipse '<{ 2d, 1d},( 52d,6d),  0d>' @ sellipse '<{10d,5d},(50d,5d),45d>';
1877 ?column?
1878----------
1879 t
1880(1 row)
1881
1882-- negators , commutator @,&&
1883SELECT sellipse '<{ 2d, 1d},( 52d,6d),  0d>'   @ sellipse '<{10d,5d},(50d,5d),45d>';
1884 ?column?
1885----------
1886 t
1887(1 row)
1888
1889SELECT sellipse '<{10d, 5d},( 52d,6d),  0d>'   @ sellipse '<{10d,5d},(50d,5d),45d>';
1890 ?column?
1891----------
1892 f
1893(1 row)
1894
1895SELECT sellipse '<{10d, 5d},( 90d,9d),  0d>'   @ sellipse '<{10d,5d},(50d,5d),45d>';
1896 ?column?
1897----------
1898 f
1899(1 row)
1900
1901SELECT sellipse '<{ 2d, 1d},( 52d,6d),  0d>'  && sellipse '<{10d,5d},(50d,5d),45d>';
1902 ?column?
1903----------
1904 t
1905(1 row)
1906
1907SELECT sellipse '<{10d, 5d},( 52d,6d),  0d>'  && sellipse '<{10d,5d},(50d,5d),45d>';
1908 ?column?
1909----------
1910 t
1911(1 row)
1912
1913SELECT sellipse '<{10d, 5d},( 90d,9d),  0d>'  && sellipse '<{10d,5d},(50d,5d),45d>';
1914 ?column?
1915----------
1916 f
1917(1 row)
1918
1919SELECT sellipse '<{ 2d, 1d},( 52d,6d),  0d>'  !@ sellipse '<{10d,5d},(50d,5d),45d>';
1920 ?column?
1921----------
1922 f
1923(1 row)
1924
1925SELECT sellipse '<{10d, 5d},( 52d,6d),  0d>'  !@ sellipse '<{10d,5d},(50d,5d),45d>';
1926 ?column?
1927----------
1928 t
1929(1 row)
1930
1931SELECT sellipse '<{10d, 5d},( 90d,9d),  0d>'  !@ sellipse '<{10d,5d},(50d,5d),45d>';
1932 ?column?
1933----------
1934 t
1935(1 row)
1936
1937SELECT sellipse '<{ 2d, 1d},( 52d,6d),  0d>' !&& sellipse '<{10d,5d},(50d,5d),45d>';
1938 ?column?
1939----------
1940 f
1941(1 row)
1942
1943SELECT sellipse '<{10d, 5d},( 52d,6d),  0d>' !&& sellipse '<{10d,5d},(50d,5d),45d>';
1944 ?column?
1945----------
1946 f
1947(1 row)
1948
1949SELECT sellipse '<{10d, 5d},( 90d,9d),  0d>' !&& sellipse '<{10d,5d},(50d,5d),45d>';
1950 ?column?
1951----------
1952 t
1953(1 row)
1954
1955SELECT sellipse '<{10d,5d},(50d,5d),45d>'  ~ sellipse '<{ 2d, 1d},( 52d,6d),  0d>';
1956 ?column?
1957----------
1958 t
1959(1 row)
1960
1961SELECT sellipse '<{10d,5d},(50d,5d),45d>'  ~ sellipse '<{10d, 5d},( 52d,6d),  0d>';
1962 ?column?
1963----------
1964 f
1965(1 row)
1966
1967SELECT sellipse '<{10d,5d},(50d,5d),45d>'  ~ sellipse '<{10d, 5d},( 90d,9d),  0d>';
1968 ?column?
1969----------
1970 f
1971(1 row)
1972
1973SELECT sellipse '<{10d,5d},(50d,5d),45d>'  && sellipse '<{ 2d, 1d},( 52d,6d),  0d>';
1974 ?column?
1975----------
1976 t
1977(1 row)
1978
1979SELECT sellipse '<{10d,5d},(50d,5d),45d>'  && sellipse '<{10d, 5d},( 52d,6d),  0d>';
1980 ?column?
1981----------
1982 t
1983(1 row)
1984
1985SELECT sellipse '<{10d,5d},(50d,5d),45d>'  && sellipse '<{10d, 5d},( 90d,9d),  0d>';
1986 ?column?
1987----------
1988 f
1989(1 row)
1990
1991SELECT sellipse '<{10d,5d},(50d,5d),45d>' !~ sellipse '<{ 2d, 1d},( 52d,6d),  0d>';
1992 ?column?
1993----------
1994 f
1995(1 row)
1996
1997SELECT sellipse '<{10d,5d},(50d,5d),45d>' !~ sellipse '<{10d, 5d},( 52d,6d),  0d>';
1998 ?column?
1999----------
2000 t
2001(1 row)
2002
2003SELECT sellipse '<{10d,5d},(50d,5d),45d>' !~ sellipse '<{10d, 5d},( 90d,9d),  0d>';
2004 ?column?
2005----------
2006 t
2007(1 row)
2008
2009SELECT sellipse '<{10d,5d},(50d,5d),45d>' !&& sellipse '<{ 2d, 1d},( 52d,6d),  0d>';
2010 ?column?
2011----------
2012 f
2013(1 row)
2014
2015SELECT sellipse '<{10d,5d},(50d,5d),45d>' !&& sellipse '<{10d, 5d},( 52d,6d),  0d>';
2016 ?column?
2017----------
2018 f
2019(1 row)
2020
2021SELECT sellipse '<{10d,5d},(50d,5d),45d>' !&& sellipse '<{10d, 5d},( 90d,9d),  0d>';
2022 ?column?
2023----------
2024 t
2025(1 row)
2026
2027-- left ellipse is point         right ellipse is point
2028SELECT sellipse '<{ 0d, 0d},( 50d,-5d),  0d>'   @ sellipse '<{0d,0d},(50d,-5d),45d>';
2029 ?column?
2030----------
2031 t
2032(1 row)
2033
2034SELECT sellipse '<{ 0d, 0d},( 50d,-6d),  0d>'   @ sellipse '<{0d,0d},(50d,-5d),45d>';
2035 ?column?
2036----------
2037 f
2038(1 row)
2039
2040SELECT sellipse '<{ 0d, 0d},( 50d,-5d),  0d>'  && sellipse '<{0d,0d},(50d,-5d),45d>';
2041 ?column?
2042----------
2043 t
2044(1 row)
2045
2046SELECT sellipse '<{ 0d, 0d},( 50d,-6d),  0d>'  && sellipse '<{0d,0d},(50d,-5d),45d>';
2047 ?column?
2048----------
2049 f
2050(1 row)
2051
2052-- left ellipse is line          right ellipse is point
2053SELECT sellipse '<{ 5d, 0d},( 50d, -2d), 90d>'   @ sellipse '<{0d,0d},(50d,-5d),0d>';
2054 ?column?
2055----------
2056 f
2057(1 row)
2058
2059SELECT sellipse '<{ 5d, 0d},( 50d,-12d), 90d>'   @ sellipse '<{0d,0d},(50d,-5d),0d>';
2060 ?column?
2061----------
2062 f
2063(1 row)
2064
2065SELECT sellipse '<{ 5d, 0d},( 50d, -2d), 90d>'  && sellipse '<{0d,0d},(50d,-5d),0d>';
2066 ?column?
2067----------
2068 t
2069(1 row)
2070
2071SELECT sellipse '<{ 5d, 0d},( 50d,-12d), 90d>'  && sellipse '<{0d,0d},(50d,-5d),0d>';
2072 ?column?
2073----------
2074 f
2075(1 row)
2076
2077-- left ellipse is circle        right ellipse is point
2078SELECT sellipse '<{ 5d, 5d},( 50d, -2d), 90d>'   @ sellipse '<{0d,0d},(50d,-5d),0d>';
2079 ?column?
2080----------
2081 f
2082(1 row)
2083
2084SELECT sellipse '<{ 5d, 5d},( 50d,-12d), 90d>'   @ sellipse '<{0d,0d},(50d,-5d),0d>';
2085 ?column?
2086----------
2087 f
2088(1 row)
2089
2090SELECT sellipse '<{ 5d, 5d},( 50d, -2d), 90d>'  && sellipse '<{0d,0d},(50d,-5d),0d>';
2091 ?column?
2092----------
2093 t
2094(1 row)
2095
2096SELECT sellipse '<{ 5d, 5d},( 50d,-12d), 90d>'  && sellipse '<{0d,0d},(50d,-5d),0d>';
2097 ?column?
2098----------
2099 f
2100(1 row)
2101
2102-- left ellipse is real ellipse  right ellipse is point
2103SELECT sellipse '<{ 5d, 3d},( 50d, -2d), 90d>'   @ sellipse '<{0d,0d},(50d,-5d),0d>';
2104 ?column?
2105----------
2106 f
2107(1 row)
2108
2109SELECT sellipse '<{ 5d, 3d},( 50d,-12d), 90d>'   @ sellipse '<{0d,0d},(50d,-5d),0d>';
2110 ?column?
2111----------
2112 f
2113(1 row)
2114
2115SELECT sellipse '<{ 5d, 3d},( 50d, -2d), 90d>'  && sellipse '<{0d,0d},(50d,-5d),0d>';
2116 ?column?
2117----------
2118 t
2119(1 row)
2120
2121SELECT sellipse '<{ 5d, 3d},( 50d,-12d), 90d>'  && sellipse '<{0d,0d},(50d,-5d),0d>';
2122 ?column?
2123----------
2124 f
2125(1 row)
2126
2127-- left ellipse is point         right ellipse is line
2128SELECT sellipse '<{ 0d, 0d},( 50d,-5d),  0d>'   @ sellipse '<{5d,0d},(50d,-5d),90d>';
2129 ?column?
2130----------
2131 t
2132(1 row)
2133
2134SELECT sellipse '<{ 0d, 0d},( 50d,-6d),  0d>'   @ sellipse '<{5d,0d},(50d,-5d),90d>';
2135 ?column?
2136----------
2137 t
2138(1 row)
2139
2140SELECT sellipse '<{ 0d, 0d},( 50d, 6d),  0d>'   @ sellipse '<{5d,0d},(50d,-5d),90d>';
2141 ?column?
2142----------
2143 f
2144(1 row)
2145
2146SELECT sellipse '<{ 0d, 0d},( 50d,-5d),  0d>'  && sellipse '<{5d,0d},(50d,-5d),90d>';
2147 ?column?
2148----------
2149 t
2150(1 row)
2151
2152SELECT sellipse '<{ 0d, 0d},( 50d,-6d),  0d>'  && sellipse '<{5d,0d},(50d,-5d),90d>';
2153 ?column?
2154----------
2155 t
2156(1 row)
2157
2158SELECT sellipse '<{ 0d, 0d},( 50d, 6d),  0d>'  && sellipse '<{5d,0d},(50d,-5d),90d>';
2159 ?column?
2160----------
2161 f
2162(1 row)
2163
2164-- left ellipse is line         right ellipse is line
2165SELECT sellipse '<{ 3d, 0d},( 50d,-5d), 90d>'   @ sellipse '<{5d,0d},(50d,-5d),90d>';
2166 ?column?
2167----------
2168 t
2169(1 row)
2170
2171SELECT sellipse '<{ 3d, 0d},( 50d,-8d), 90d>'   @ sellipse '<{5d,0d},(50d,-5d),90d>';
2172 ?column?
2173----------
2174 f
2175(1 row)
2176
2177SELECT sellipse '<{ 3d, 0d},( 50d,-6d),  0d>'   @ sellipse '<{5d,0d},(50d,-5d),90d>';
2178 ?column?
2179----------
2180 f
2181(1 row)
2182
2183SELECT sellipse '<{ 3d, 0d},( 50d, 6d), 90d>'   @ sellipse '<{5d,0d},(50d,-5d),90d>';
2184 ?column?
2185----------
2186 f
2187(1 row)
2188
2189SELECT sellipse '<{ 3d, 0d},( 50d,-5d), 90d>'  && sellipse '<{5d,0d},(50d,-5d),90d>';
2190 ?column?
2191----------
2192 t
2193(1 row)
2194
2195SELECT sellipse '<{ 3d, 0d},( 50d,-8d), 90d>'  && sellipse '<{5d,0d},(50d,-5d),90d>';
2196 ?column?
2197----------
2198 t
2199(1 row)
2200
2201SELECT sellipse '<{ 3d, 0d},( 50d,-6d),  0d>'  && sellipse '<{5d,0d},(50d,-5d),90d>';
2202 ?column?
2203----------
2204 t
2205(1 row)
2206
2207SELECT sellipse '<{ 3d, 0d},( 50d, 6d), 90d>'  && sellipse '<{5d,0d},(50d,-5d),90d>';
2208 ?column?
2209----------
2210 f
2211(1 row)
2212
2213-- left ellipse is circle         right ellipse is line
2214SELECT sellipse '<{ 3d, 3d},( 50d,-5d), 90d>'   @ sellipse '<{5d,0d},(50d,-5d),90d>';
2215 ?column?
2216----------
2217 f
2218(1 row)
2219
2220SELECT sellipse '<{ 3d, 3d},( 50d,-8d), 90d>'   @ sellipse '<{5d,0d},(50d,-5d),90d>';
2221 ?column?
2222----------
2223 f
2224(1 row)
2225
2226SELECT sellipse '<{ 3d, 3d},( 50d,-6d),  0d>'   @ sellipse '<{5d,0d},(50d,-5d),90d>';
2227 ?column?
2228----------
2229 f
2230(1 row)
2231
2232SELECT sellipse '<{ 3d, 3d},( 50d, 6d), 90d>'   @ sellipse '<{5d,0d},(50d,-5d),90d>';
2233 ?column?
2234----------
2235 f
2236(1 row)
2237
2238SELECT sellipse '<{ 3d, 3d},( 50d,-5d), 90d>'  && sellipse '<{5d,0d},(50d,-5d),90d>';
2239 ?column?
2240----------
2241 t
2242(1 row)
2243
2244SELECT sellipse '<{ 3d, 3d},( 50d,-8d), 90d>'  && sellipse '<{5d,0d},(50d,-5d),90d>';
2245 ?column?
2246----------
2247 t
2248(1 row)
2249
2250SELECT sellipse '<{ 3d, 3d},( 50d,-6d),  0d>'  && sellipse '<{5d,0d},(50d,-5d),90d>';
2251 ?column?
2252----------
2253 t
2254(1 row)
2255
2256SELECT sellipse '<{ 3d, 3d},( 50d, 6d), 90d>'  && sellipse '<{5d,0d},(50d,-5d),90d>';
2257 ?column?
2258----------
2259 f
2260(1 row)
2261
2262-- left ellipse is point         right ellipse is circle
2263SELECT sellipse '<{ 0d, 0d},( 50d,-5d),  0d>'   @ sellipse '<{5d,5d},(50d,-5d),90d>';
2264 ?column?
2265----------
2266 t
2267(1 row)
2268
2269SELECT sellipse '<{ 0d, 0d},( 50d,-6d),  0d>'   @ sellipse '<{5d,5d},(50d,-5d),90d>';
2270 ?column?
2271----------
2272 t
2273(1 row)
2274
2275SELECT sellipse '<{ 0d, 0d},( 50d, 6d),  0d>'   @ sellipse '<{5d,5d},(50d,-5d),90d>';
2276 ?column?
2277----------
2278 f
2279(1 row)
2280
2281SELECT sellipse '<{ 0d, 0d},( 50d,-5d),  0d>'  && sellipse '<{5d,5d},(50d,-5d),90d>';
2282 ?column?
2283----------
2284 t
2285(1 row)
2286
2287SELECT sellipse '<{ 0d, 0d},( 50d,-6d),  0d>'  && sellipse '<{5d,5d},(50d,-5d),90d>';
2288 ?column?
2289----------
2290 t
2291(1 row)
2292
2293SELECT sellipse '<{ 0d, 0d},( 50d, 6d),  0d>'  && sellipse '<{5d,5d},(50d,-5d),90d>';
2294 ?column?
2295----------
2296 f
2297(1 row)
2298
2299-- left ellipse is line         right ellipse is circle
2300SELECT sellipse '<{ 5d, 0d},( 50d,-5d), 90d>'   @ sellipse '<{5d,5d},(50d,-5d),90d>';
2301 ?column?
2302----------
2303 t
2304(1 row)
2305
2306SELECT sellipse '<{ 5d, 0d},( 50d,-6d), 90d>'   @ sellipse '<{5d,5d},(50d,-5d),90d>';
2307 ?column?
2308----------
2309 f
2310(1 row)
2311
2312SELECT sellipse '<{ 5d, 0d},( 50d, 6d), 90d>'   @ sellipse '<{5d,5d},(50d,-5d),90d>';
2313 ?column?
2314----------
2315 f
2316(1 row)
2317
2318SELECT sellipse '<{ 5d, 0d},( 50d,-5d), 90d>'  && sellipse '<{5d,5d},(50d,-5d),90d>';
2319 ?column?
2320----------
2321 t
2322(1 row)
2323
2324SELECT sellipse '<{ 5d, 0d},( 50d,-6d), 90d>'  && sellipse '<{5d,5d},(50d,-5d),90d>';
2325 ?column?
2326----------
2327 t
2328(1 row)
2329
2330SELECT sellipse '<{ 5d, 0d},( 50d, 6d), 90d>'  && sellipse '<{5d,5d},(50d,-5d),90d>';
2331 ?column?
2332----------
2333 f
2334(1 row)
2335
2336-- left ellipse is circle       right ellipse is circle
2337SELECT sellipse '<{ 3d, 3d},( 50d,-4d), 90d>'   @ sellipse '<{5d,5d},(50d,-5d),90d>';
2338 ?column?
2339----------
2340 t
2341(1 row)
2342
2343SELECT sellipse '<{ 5d, 5d},( 50d,-5d), 90d>'   @ sellipse '<{5d,5d},(50d,-5d),90d>';
2344 ?column?
2345----------
2346 t
2347(1 row)
2348
2349SELECT sellipse '<{ 5d, 5d},( 50d,-6d), 90d>'   @ sellipse '<{5d,5d},(50d,-5d),90d>';
2350 ?column?
2351----------
2352 f
2353(1 row)
2354
2355SELECT sellipse '<{ 5d, 5d},( 50d, 6d), 90d>'   @ sellipse '<{5d,5d},(50d,-5d),90d>';
2356 ?column?
2357----------
2358 f
2359(1 row)
2360
2361SELECT sellipse '<{ 3d, 3d},( 50d,-4d), 90d>'  && sellipse '<{5d,5d},(50d,-5d),90d>';
2362 ?column?
2363----------
2364 t
2365(1 row)
2366
2367SELECT sellipse '<{ 5d, 5d},( 50d,-5d), 90d>'  && sellipse '<{5d,5d},(50d,-5d),90d>';
2368 ?column?
2369----------
2370 t
2371(1 row)
2372
2373SELECT sellipse '<{ 5d, 5d},( 50d,-6d), 90d>'  && sellipse '<{5d,5d},(50d,-5d),90d>';
2374 ?column?
2375----------
2376 t
2377(1 row)
2378
2379SELECT sellipse '<{ 5d, 5d},( 50d, 6d), 90d>'  && sellipse '<{5d,5d},(50d,-5d),90d>';
2380 ?column?
2381----------
2382 f
2383(1 row)
2384
2385-- index tests
2386CREATE TABLE spheretmp1 (p spoint);
2387\copy spheretmp1 from 'data/test_spherepoint.data'
2388\copy spheretmp1 from 'data/test_spherepoint.data'
2389\copy spheretmp1 from 'data/test_spherepoint.data'
2390\copy spheretmp1 from 'data/test_spherepoint.data'
2391CREATE TABLE spheretmp2 (c scircle);
2392\copy spheretmp2 from 'data/test_spherecircle.data'
2393\copy spheretmp2 from 'data/test_spherecircle.data'
2394\copy spheretmp2 from 'data/test_spherecircle.data'
2395\copy spheretmp2 from 'data/test_spherecircle.data'
2396CREATE TABLE spheretmp4 AS
2397  SELECT sline ( p , p - strans '-15d,-15d,-15d,ZXZ' ) AS l
2398  FROM spheretmp1;
2399-- checking input
2400SELECT count(*) FROM spheretmp1 WHERE p @ scircle '< ( 180d 1m 10s , -2d 23m 59s  ) , 10d >';
2401 count
2402-------
2403    32
2404(1 row)
2405
2406-- without idx
2407SELECT count(*) FROM spheretmp1 WHERE p @ scircle '<(1,1),0.3>';
2408 count
2409-------
2410    32
2411(1 row)
2412
2413SELECT count(*) FROM spheretmp2 WHERE c @ scircle '<(1,1),0.3>';
2414 count
2415-------
2416    12
2417(1 row)
2418
2419SELECT count(*) FROM spheretmp2 WHERE c && scircle '<(1,1),0.3>';
2420 count
2421-------
2422    48
2423(1 row)
2424
2425SELECT count(*) FROM spheretmp4 WHERE l @  scircle '<(1,1),0.3>';
2426 count
2427-------
2428     8
2429(1 row)
2430
2431SELECT count(*) FROM spheretmp4 WHERE l && scircle '<(1,1),0.3>';
2432 count
2433-------
2434    40
2435(1 row)
2436
2437SELECT count(*) FROM spheretmp1 WHERE p = spoint '(3.09 , 1.25)' ;
2438 count
2439-------
2440     4
2441(1 row)
2442
2443-- create idx
2444CREATE INDEX aaaidx ON spheretmp1 USING gist ( p );
2445CREATE INDEX bbbidx ON spheretmp2 USING gist ( c );
2446CREATE INDEX cccidx ON spheretmp4 USING gist ( l );
2447--with idx
2448SET enable_seqscan = OFF ;
2449SELECT count(*) FROM spheretmp1 WHERE p @ scircle '<(1,1),0.3>'  ;
2450 count
2451-------
2452    32
2453(1 row)
2454
2455SELECT count(*) FROM spheretmp2 WHERE c @ scircle '<(1,1),0.3>'  ;
2456 count
2457-------
2458    12
2459(1 row)
2460
2461SELECT count(*) FROM spheretmp2 WHERE c && scircle '<(1,1),0.3>' ;
2462 count
2463-------
2464    48
2465(1 row)
2466
2467SELECT count(*) FROM spheretmp4 WHERE l @  scircle '<(1,1),0.3>' ;
2468 count
2469-------
2470     8
2471(1 row)
2472
2473SELECT count(*) FROM spheretmp4 WHERE l && scircle '<(1,1),0.3>' ;
2474 count
2475-------
2476    40
2477(1 row)
2478
2479SELECT count(*) FROM spheretmp1 WHERE p = spoint '(3.09 , 1.25)' ;
2480 count
2481-------
2482     4
2483(1 row)
2484
2485