1--- scircle vs scircle
2
3CREATE OPERATOR @> (
4   LEFTARG    = scircle,
5   RIGHTARG   = scircle,
6   PROCEDURE  = scircle_contains_circle,
7   COMMUTATOR = '<@',
8   NEGATOR    = '!@>',
9   RESTRICT   = contsel,
10   JOIN       = contjoinsel
11);
12
13COMMENT ON OPERATOR @> (scircle, scircle) IS 'true if spherical circle (LHS) contains spherical circle (RHS)';
14
15CREATE OPERATOR <@ (
16   LEFTARG    = scircle,
17   RIGHTARG   = scircle,
18   PROCEDURE  = scircle_contained_by_circle,
19   COMMUTATOR = '@>',
20   NEGATOR    = '!<@',
21   RESTRICT   = contsel,
22   JOIN       = contjoinsel
23);
24
25COMMENT ON OPERATOR <@ (scircle, scircle) IS 'true if spherical circle (LHS) is contained by spherical circle (RHS)';
26
27CREATE OPERATOR !@> (
28   LEFTARG    = scircle,
29   RIGHTARG   = scircle,
30   PROCEDURE  = scircle_contains_circle_neg,
31   COMMUTATOR = '!<@',
32   NEGATOR    = '@>',
33   RESTRICT   = contsel,
34   JOIN       = contjoinsel
35);
36
37COMMENT ON OPERATOR !@> (scircle, scircle) IS 'true if spherical circle (LHS) does not contain spherical circle (RHS)';
38
39CREATE OPERATOR !<@ (
40   LEFTARG    = scircle,
41   RIGHTARG   = scircle,
42   PROCEDURE  = scircle_contained_by_circle_neg,
43   COMMUTATOR = '!@>',
44   NEGATOR    = '<@',
45   RESTRICT   = contsel,
46   JOIN       = contjoinsel
47);
48
49COMMENT ON OPERATOR !<@ (scircle, scircle) IS 'true if spherical circle (LHS) is not contained by spherical circle (RHS)';
50
51--- spoint vs scircle
52
53CREATE OPERATOR @> (
54   LEFTARG    = scircle,
55   RIGHTARG   = spoint,
56   PROCEDURE  = spoint_contained_by_circle_com,
57   COMMUTATOR = '<@',
58   NEGATOR    = '!@>',
59   RESTRICT   = contsel,
60   JOIN       = contjoinsel
61);
62
63COMMENT ON OPERATOR @> (scircle, spoint) IS 'true if spherical circle (LHS) contains spherical point (RHS)';
64
65CREATE OPERATOR <@ (
66   LEFTARG    = spoint,
67   RIGHTARG   = scircle,
68   PROCEDURE  = spoint_contained_by_circle,
69   COMMUTATOR = '@>',
70   NEGATOR    = '!<@',
71   RESTRICT   = contsel,
72   JOIN       = contjoinsel
73);
74
75COMMENT ON OPERATOR <@ (spoint, scircle) IS 'true if spherical point (LHS) is contained by spherical circle (RHS)';
76
77CREATE OPERATOR !@> (
78   LEFTARG    = scircle,
79   RIGHTARG   = spoint,
80   PROCEDURE  = spoint_contained_by_circle_com_neg,
81   COMMUTATOR = '!<@',
82   NEGATOR    = '@>',
83   RESTRICT   = contsel,
84   JOIN       = contjoinsel
85);
86
87COMMENT ON OPERATOR !@> (scircle, spoint) IS 'true if spherical circle (LHS) does not contain spherical point (RHS)';
88
89CREATE OPERATOR !<@ (
90   LEFTARG    = spoint,
91   RIGHTARG   = scircle,
92   PROCEDURE  = spoint_contained_by_circle_neg,
93   COMMUTATOR = '!@>',
94   NEGATOR    = '<@',
95   RESTRICT   = contsel,
96   JOIN       = contjoinsel
97);
98
99COMMENT ON OPERATOR !<@ (spoint, scircle) IS 'true if spherical point (LHS) is not contained by spherical circle (RHS)';
100
101--- spoly vs spoly
102
103CREATE OPERATOR @> (
104   LEFTARG    = spoly,
105   RIGHTARG   = spoly,
106   PROCEDURE  = spoly_contains_polygon,
107   COMMUTATOR = '<@',
108   NEGATOR    = '!@>',
109   RESTRICT   = contsel,
110   JOIN       = contjoinsel
111);
112
113COMMENT ON OPERATOR @> (spoly, spoly) IS 'true if spherical polygon (LHS) contains spherical polygon (RHS)';
114
115CREATE OPERATOR <@ (
116   LEFTARG    = spoly,
117   RIGHTARG   = spoly,
118   PROCEDURE  = spoly_contains_polygon_com,
119   COMMUTATOR = '@>',
120   NEGATOR    = '!<@',
121   RESTRICT   = contsel,
122   JOIN       = contjoinsel
123);
124
125COMMENT ON OPERATOR <@ (spoly, spoly) IS 'true if spherical polygon (LHS) is contained by spherical polygon (RHS)';
126
127CREATE OPERATOR !@> (
128   LEFTARG    = spoly,
129   RIGHTARG   = spoly,
130   PROCEDURE  = spoly_contains_polygon_neg,
131   COMMUTATOR = '!<@',
132   NEGATOR    = '@>',
133   RESTRICT   = contsel,
134   JOIN       = contjoinsel
135);
136
137COMMENT ON OPERATOR !@> (spoly, spoly) IS 'true if spherical polygon (LHS) does not contain spherical polygon (RHS)';
138
139CREATE OPERATOR !<@ (
140   LEFTARG    = spoly,
141   RIGHTARG   = spoly,
142   PROCEDURE  = spoly_contains_polygon_com_neg,
143   COMMUTATOR = '!@>',
144   NEGATOR    = '<@',
145   RESTRICT   = contsel,
146   JOIN       = contjoinsel
147);
148
149COMMENT ON OPERATOR !<@ (spoly, spoly) IS 'true if spherical polygon (LHS) is not contained by spherical polygon (RHS)';
150
151--  spoly vs spoint
152
153CREATE OPERATOR @> (
154   LEFTARG    = spoly,
155   RIGHTARG   = spoint,
156   PROCEDURE  = spoly_contains_point,
157   COMMUTATOR = '<@',
158   NEGATOR    = '!@>',
159   RESTRICT   = contsel,
160   JOIN       = contjoinsel
161);
162
163COMMENT ON OPERATOR @> (spoly, spoint) IS 'true if spherical polygon (LHS) contains spherical point (RHS)';
164
165CREATE OPERATOR <@ (
166   LEFTARG    = spoint,
167   RIGHTARG   = spoly,
168   PROCEDURE  = spoly_contains_point_com,
169   COMMUTATOR = '@>',
170   NEGATOR    = '!<@',
171   RESTRICT   = contsel,
172   JOIN       = contjoinsel
173);
174
175COMMENT ON OPERATOR <@ (spoint, spoly) IS 'true if spherical point (LHS) is contained by spherical polygon (RHS)';
176
177CREATE OPERATOR !@> (
178   LEFTARG    = spoly,
179   RIGHTARG   = spoint,
180   PROCEDURE  = spoly_contains_point_neg,
181   COMMUTATOR = '!<@',
182   NEGATOR    = '@>',
183   RESTRICT   = contsel,
184   JOIN       = contjoinsel
185);
186
187COMMENT ON OPERATOR !@> (spoly, spoint) IS 'true if spherical polygon (LHS) does not contain spherical point (RHS)';
188
189CREATE OPERATOR !<@ (
190   LEFTARG    = spoint,
191   RIGHTARG   = spoly,
192   PROCEDURE  = spoly_contains_point_com_neg,
193   COMMUTATOR = '!@>',
194   NEGATOR    = '<@',
195   RESTRICT   = contsel,
196   JOIN       = contjoinsel
197);
198
199COMMENT ON OPERATOR !<@ (spoint, spoly) IS 'true if spherical point (LHS) is not contained by spherical polygon (RHS)';
200
201
202--- scircle vs spoly
203
204CREATE OPERATOR @> (
205   LEFTARG    = scircle,
206   RIGHTARG   = spoly,
207   PROCEDURE  = scircle_contains_polygon,
208   COMMUTATOR = '<@',
209   NEGATOR    = '!@>',
210   RESTRICT   = contsel,
211   JOIN       = contjoinsel
212);
213
214COMMENT ON OPERATOR @> (scircle, spoly) IS 'true if spherical circle (LHS) contains spherical polygon (RHS)';
215
216CREATE OPERATOR <@ (
217   LEFTARG    = spoly,
218   RIGHTARG   = scircle,
219   PROCEDURE  = scircle_contains_polygon_com,
220   COMMUTATOR = '@>',
221   NEGATOR    = '!<@',
222   RESTRICT   = contsel,
223   JOIN       = contjoinsel
224);
225
226COMMENT ON OPERATOR <@ (spoly, scircle) IS 'true if spherical polygon (LHS) is contained by spherical circle (LHS)';
227
228CREATE OPERATOR !@> (
229   LEFTARG    = scircle,
230   RIGHTARG   = spoly,
231   PROCEDURE  = scircle_contains_polygon_neg,
232   COMMUTATOR = '!<@',
233   NEGATOR    = '@>',
234   RESTRICT   = contsel,
235   JOIN       = contjoinsel
236);
237
238COMMENT ON OPERATOR !@> (scircle, spoly) IS 'true if spherical circle (LHS) does not contain spherical polygon (RHS)';
239
240CREATE OPERATOR !<@ (
241   LEFTARG    = spoly,
242   RIGHTARG   = scircle,
243   PROCEDURE  = scircle_contains_polygon_com_neg,
244   COMMUTATOR = '!@>',
245   NEGATOR    = '<@',
246   RESTRICT   = contsel,
247   JOIN       = contjoinsel
248);
249
250COMMENT ON OPERATOR !<@ (spoly, scircle) IS 'true if spherical polygon (LHS) is not contained spherical circle (RHS)';
251
252CREATE OPERATOR @> (
253   LEFTARG    = spoly,
254   RIGHTARG   = scircle,
255   PROCEDURE  = spoly_contains_circle,
256   COMMUTATOR = '<@',
257   NEGATOR    = '!@>',
258   RESTRICT   = contsel,
259   JOIN       = contjoinsel
260);
261
262COMMENT ON OPERATOR @> (spoly, scircle) IS 'true if spherical polygon (LHS) contains spherical circle (RHS)';
263
264CREATE OPERATOR <@ (
265   LEFTARG    = scircle,
266   RIGHTARG   = spoly,
267   PROCEDURE  = spoly_contains_circle_com,
268   COMMUTATOR = '@>',
269   NEGATOR    = '!<@',
270   RESTRICT   = contsel,
271   JOIN       = contjoinsel
272);
273
274COMMENT ON OPERATOR <@ (scircle, spoly) IS 'true if spherical circle (LHS) is contained by spherical polygon (RHS)';
275
276CREATE OPERATOR !@> (
277   LEFTARG    = spoly,
278   RIGHTARG   = scircle,
279   PROCEDURE  = spoly_contains_circle_neg,
280   COMMUTATOR = '!<@',
281   NEGATOR    = '@>',
282   RESTRICT   = contsel,
283   JOIN       = contjoinsel
284);
285
286COMMENT ON OPERATOR !@> (spoly, scircle) IS 'true if spherical polygon (LHS) does not contain spherical circle (RHS)';
287
288CREATE OPERATOR !<@ (
289   LEFTARG    = scircle,
290   RIGHTARG   = spoly,
291   PROCEDURE  = spoly_contains_circle_com_neg,
292   COMMUTATOR = '!@>',
293   NEGATOR    = '<@',
294   RESTRICT   = contsel,
295   JOIN       = contjoinsel
296);
297
298COMMENT ON OPERATOR !<@ (scircle, spoly) IS 'true if spherical circle (LHS) is not contained by spherical polygon (RHS)';
299
300
301--- sbox vs sbox
302
303CREATE OPERATOR @> (
304   LEFTARG    = sbox,
305   RIGHTARG   = sbox,
306   PROCEDURE  = sbox_contains_box,
307   COMMUTATOR = '<@',
308   NEGATOR    = '!@>',
309   RESTRICT   = contsel,
310   JOIN       = contjoinsel
311);
312
313COMMENT ON OPERATOR @> (sbox, sbox) IS 'true if spherical box (LHS) contains spherical box (RHS)';
314
315CREATE OPERATOR <@ (
316   LEFTARG    = sbox,
317   RIGHTARG   = sbox,
318   PROCEDURE  = sbox_contains_box_com,
319   COMMUTATOR = '@>',
320   NEGATOR    = '!<@',
321   RESTRICT   = contsel,
322   JOIN       = contjoinsel
323);
324
325COMMENT ON OPERATOR <@ (sbox, sbox) IS 'true if spherical box (LHS) is contained by spherical box (RHS)';
326
327CREATE OPERATOR !@> (
328   LEFTARG    = sbox,
329   RIGHTARG   = sbox,
330   PROCEDURE  = sbox_contains_box_neg,
331   COMMUTATOR = '!<@',
332   NEGATOR    = '@>',
333   RESTRICT   = contsel,
334   JOIN       = contjoinsel
335);
336
337COMMENT ON OPERATOR !@> (sbox, sbox) IS 'true if spherical box (LHS) does not contain spherical box (RHS)';
338
339CREATE OPERATOR !<@ (
340   LEFTARG    = sbox,
341   RIGHTARG   = sbox,
342   PROCEDURE  = sbox_contains_box_com_neg,
343   COMMUTATOR = '!@>',
344   NEGATOR    = '<@',
345   RESTRICT   = contsel,
346   JOIN       = contjoinsel
347);
348
349COMMENT ON OPERATOR !<@ (sbox, sbox) IS 'true if spherical box (LHS) is not contained by spherical box (RHS)';
350
351--- sbox vs spoint
352
353CREATE OPERATOR @> (
354   LEFTARG    = sbox,
355   RIGHTARG   = spoint,
356   PROCEDURE  = sbox_cont_point,
357   COMMUTATOR = '<@',
358   NEGATOR    = '!@>',
359   RESTRICT   = contsel,
360   JOIN       = contjoinsel
361);
362
363COMMENT ON OPERATOR @> (sbox, spoint) IS 'true if spherical box (LHS) contains spherical point (RHS)';
364
365CREATE OPERATOR <@ (
366   LEFTARG    = spoint,
367   RIGHTARG   = sbox,
368   PROCEDURE  = sbox_cont_point_com,
369   COMMUTATOR = '@>',
370   NEGATOR    = '!<@',
371   RESTRICT   = contsel,
372   JOIN       = contjoinsel
373);
374
375COMMENT ON OPERATOR <@ (spoint, sbox) IS 'true if spherical point (LHS) is contained by spherical box (RHS)';
376
377CREATE OPERATOR !@> (
378   LEFTARG    = sbox,
379   RIGHTARG   = spoint,
380   PROCEDURE  = sbox_cont_point_neg,
381   COMMUTATOR = '!<@',
382   NEGATOR    = '@>',
383   RESTRICT   = contsel,
384   JOIN       = contjoinsel
385);
386
387COMMENT ON OPERATOR !@> (sbox, spoint) IS 'true if spherical box (LHS) does not contain spherical point (RHS)';
388
389CREATE OPERATOR !<@ (
390   LEFTARG    = spoint,
391   RIGHTARG   = sbox,
392   PROCEDURE  = sbox_cont_point_com_neg,
393   COMMUTATOR = '!@>',
394   NEGATOR    = '<@',
395   RESTRICT   = contsel,
396   JOIN       = contjoinsel
397);
398
399COMMENT ON OPERATOR !<@ (spoint, sbox) IS 'true if spherical point (LHS) is not contained by spherical box (RHS)';
400
401--- scircle vs sbox
402
403CREATE OPERATOR @> (
404   LEFTARG    = scircle,
405   RIGHTARG   = sbox,
406   PROCEDURE  = scircle_contains_box,
407   COMMUTATOR = '<@',
408   NEGATOR    = '!@>',
409   RESTRICT   = contsel,
410   JOIN       = contjoinsel
411);
412
413COMMENT ON OPERATOR @> (scircle, sbox) IS 'true if spherical circle (LHS) contains spherical box (RHS)';
414
415CREATE OPERATOR <@ (
416   LEFTARG    = sbox,
417   RIGHTARG   = scircle,
418   PROCEDURE  = scircle_contains_box_com,
419   COMMUTATOR = '@>',
420   NEGATOR    = '!<@',
421   RESTRICT   = contsel,
422   JOIN       = contjoinsel
423);
424
425COMMENT ON OPERATOR <@ (sbox, scircle) IS 'true if spherical box (LHS) is contained by spherical circle (RHS)';
426
427CREATE OPERATOR !@> (
428   LEFTARG    = scircle,
429   RIGHTARG   = sbox,
430   PROCEDURE  = scircle_contains_box_neg,
431   COMMUTATOR = '!<@',
432   NEGATOR    = '@>',
433   RESTRICT   = contsel,
434   JOIN       = contjoinsel
435);
436
437COMMENT ON OPERATOR !@> (scircle, sbox) IS 'true if spherical circle (LHS) does not contain spherical box (RHS)';
438
439CREATE OPERATOR !<@ (
440   LEFTARG    = sbox,
441   RIGHTARG   = scircle,
442   PROCEDURE  = scircle_contains_box_com_neg,
443   COMMUTATOR = '!@>',
444   NEGATOR    = '<@',
445   RESTRICT   = contsel,
446   JOIN       = contjoinsel
447);
448
449COMMENT ON OPERATOR !<@ (sbox, scircle) IS 'true if spherical box (LHS) is not contained by spherical circle (RHS)';
450
451CREATE OPERATOR @> (
452   LEFTARG    = sbox,
453   RIGHTARG   = scircle,
454   PROCEDURE  = sbox_contains_circle,
455   COMMUTATOR = '<@',
456   NEGATOR    = '!@>',
457   RESTRICT   = contsel,
458   JOIN       = contjoinsel
459);
460
461COMMENT ON OPERATOR @> (sbox, scircle) IS 'true if spherical box (LHS) contains spherical circle (RHS)';
462
463CREATE OPERATOR <@ (
464   LEFTARG    = scircle,
465   RIGHTARG   = sbox,
466   PROCEDURE  = sbox_contains_circle_com,
467   COMMUTATOR = '@>',
468   NEGATOR    = '!<@',
469   RESTRICT   = contsel,
470   JOIN       = contjoinsel
471);
472
473COMMENT ON OPERATOR <@ (scircle, sbox) IS 'true if spherical circle (LHS) contains spherical box (RHS)';
474
475CREATE OPERATOR !@> (
476   LEFTARG    = sbox,
477   RIGHTARG   = scircle,
478   PROCEDURE  = sbox_contains_circle_neg,
479   COMMUTATOR = '!<@',
480   NEGATOR    = '@>',
481   RESTRICT   = contsel,
482   JOIN       = contjoinsel
483);
484
485COMMENT ON OPERATOR !@> (sbox, scircle) IS 'true if spherical box (LHS) does not contain spherical circle (RHS)';
486
487CREATE OPERATOR !<@ (
488   LEFTARG    = scircle,
489   RIGHTARG   = sbox,
490   PROCEDURE  = sbox_contains_circle_com_neg,
491   COMMUTATOR = '!@>',
492   NEGATOR    = '<@',
493   RESTRICT   = contsel,
494   JOIN       = contjoinsel
495);
496
497COMMENT ON OPERATOR !<@ (scircle, sbox) IS 'true if spherical circle (LHS) is not contained by spherical box (RHS)';
498
499
500--- sbox vs spoly
501
502CREATE OPERATOR @> (
503   LEFTARG    = spoly,
504   RIGHTARG   = sbox,
505   PROCEDURE  = spoly_contains_box,
506   COMMUTATOR = '<@',
507   NEGATOR    = '!@>',
508   RESTRICT   = contsel,
509   JOIN       = contjoinsel
510);
511
512COMMENT ON OPERATOR @> (spoly, sbox) IS 'true if spherical polygon (LHS) contains spherical box (RHS)';
513
514CREATE OPERATOR <@ (
515   LEFTARG    = sbox,
516   RIGHTARG   = spoly,
517   PROCEDURE  = spoly_contains_box_com,
518   COMMUTATOR = '@>',
519   NEGATOR    = '!<@',
520   RESTRICT   = contsel,
521   JOIN       = contjoinsel
522);
523
524COMMENT ON OPERATOR <@ (sbox, spoly) IS 'true if spherical box (LHS) is contained by spherical polygon (RHS)';
525
526CREATE OPERATOR !@> (
527   LEFTARG    = spoly,
528   RIGHTARG   = sbox,
529   PROCEDURE  = spoly_contains_box_neg,
530   COMMUTATOR = '!<@',
531   NEGATOR    = '@>',
532   RESTRICT   = contsel,
533   JOIN       = contjoinsel
534);
535
536COMMENT ON OPERATOR !@> (spoly, sbox) IS 'true if spherical polygon (LHS) does not contain spherical box (RHS)';
537
538CREATE OPERATOR !<@ (
539   LEFTARG    = sbox,
540   RIGHTARG   = spoly,
541   PROCEDURE  = spoly_contains_box_com_neg,
542   COMMUTATOR = '!@>',
543   NEGATOR    = '<@',
544   RESTRICT   = contsel,
545   JOIN       = contjoinsel
546);
547
548COMMENT ON OPERATOR !<@ (sbox, spoly) IS 'true if spherical box (LHS) is not contained by spherical polygon (RHS)';
549
550CREATE OPERATOR @> (
551   LEFTARG    = sbox,
552   RIGHTARG   = spoly,
553   PROCEDURE  = sbox_contains_poly,
554   COMMUTATOR = '<@',
555   NEGATOR    = '!@>',
556   RESTRICT   = contsel,
557   JOIN       = contjoinsel
558);
559
560COMMENT ON OPERATOR @> (sbox, spoly) IS 'true if spherical box (LHS) contains spherical polygon (RHS)';
561
562CREATE OPERATOR <@ (
563   LEFTARG    = spoly,
564   RIGHTARG   = sbox,
565   PROCEDURE  = sbox_contains_poly_com,
566   COMMUTATOR = '@>',
567   NEGATOR    = '!<@',
568   RESTRICT   = contsel,
569   JOIN       = contjoinsel
570);
571
572COMMENT ON OPERATOR <@ (spoly, sbox) IS 'true if spherical polygon (LHS) is contained by spherical box (RHS)';
573
574CREATE OPERATOR !@> (
575   LEFTARG    = sbox,
576   RIGHTARG   = spoly,
577   PROCEDURE  = sbox_contains_poly_neg,
578   COMMUTATOR = '!<@',
579   NEGATOR    = '@>',
580   RESTRICT   = contsel,
581   JOIN       = contjoinsel
582);
583
584COMMENT ON OPERATOR !@> (sbox, spoly) IS 'true if spherical box (LHS) does not contain spherical polygon (RHS)';
585
586CREATE OPERATOR !<@ (
587   LEFTARG    = spoly,
588   RIGHTARG   = sbox,
589   PROCEDURE  = sbox_contains_poly_com_neg,
590   COMMUTATOR = '!@>',
591   NEGATOR    = '<@',
592   RESTRICT   = contsel,
593   JOIN       = contjoinsel
594);
595
596COMMENT ON OPERATOR !<@ (spoly, sbox) IS 'true if spherical polygon (LHS) is not contained by spherical box (RHS)';
597
598-- new stuff --
599
600CREATE OPERATOR <@ (
601   LEFTARG    = spoint,
602   RIGHTARG   = sline,
603   PROCEDURE  = sline_contains_point_com,
604   COMMUTATOR = '@>',
605   NEGATOR    = '!<@',
606   RESTRICT   = contsel,
607   JOIN       = contjoinsel
608);
609
610COMMENT ON OPERATOR <@ (spoint, sline) IS 'true if spherical point (LHS) is contained by spherical line (RHS)';
611
612CREATE OPERATOR @> (
613   LEFTARG    = sline,
614   RIGHTARG   = spoint,
615   PROCEDURE  = sline_contains_point,
616   COMMUTATOR = '<@',
617   NEGATOR    = '!@>',
618   RESTRICT   = contsel,
619   JOIN       = contjoinsel
620);
621
622COMMENT ON OPERATOR @> (sline, spoint) IS 'true if spherical line (LHS) contains the spherical point (RHS)';
623
624CREATE OPERATOR !@> (
625   LEFTARG    = sline,
626   RIGHTARG   = spoint,
627   PROCEDURE  = sline_contains_point_neg,
628   COMMUTATOR = '!<@',
629   NEGATOR    = '@>',
630   RESTRICT   = contsel,
631   JOIN       = contjoinsel
632);
633
634COMMENT ON OPERATOR !@> (sline, spoint) IS 'true if spherical line (LHS) does not contain spherical point (RHS)';
635
636CREATE OPERATOR !<@ (
637   LEFTARG    = spoint,
638   RIGHTARG   = sline,
639   PROCEDURE  = sline_contains_point_com_neg,
640   COMMUTATOR = '!@>',
641   NEGATOR    = '<@',
642   RESTRICT   = contsel,
643   JOIN       = contjoinsel
644);
645
646COMMENT ON OPERATOR !<@ (spoint, sline) IS 'true if spherical point (LHS) is not contained by spherical line (RHS)';
647
648CREATE OPERATOR @> (
649   LEFTARG    = scircle,
650   RIGHTARG   = sline,
651   PROCEDURE  = scircle_contains_line,
652   COMMUTATOR = '<@',
653   NEGATOR    = '!@>',
654   RESTRICT   = contsel,
655   JOIN       = contjoinsel
656);
657
658COMMENT ON OPERATOR @> (scircle, sline) IS 'true if spherical circle (LHS) contains spherical line (RHS)';
659
660CREATE OPERATOR <@ (
661   LEFTARG    = sline,
662   RIGHTARG   = scircle,
663   PROCEDURE  = scircle_contains_line_com,
664   COMMUTATOR = '@>',
665   NEGATOR    = '!<@',
666   RESTRICT   = contsel,
667   JOIN       = contjoinsel
668);
669
670COMMENT ON OPERATOR <@ (sline, scircle) IS 'true if spherical line (LHS) is contained by spherical circle (RHS)';
671
672CREATE OPERATOR !@> (
673   LEFTARG    = scircle,
674   RIGHTARG   = sline,
675   PROCEDURE  = scircle_contains_line_neg,
676   COMMUTATOR = '!<@',
677   NEGATOR    = '@>',
678   RESTRICT   = contsel,
679   JOIN       = contjoinsel
680);
681
682COMMENT ON OPERATOR !@> (scircle, sline) IS 'true if spherical circle (LHS) does not contain spherical line (RHS)';
683
684CREATE OPERATOR !<@ (
685   LEFTARG    = sline,
686   RIGHTARG   = scircle,
687   PROCEDURE  = scircle_contains_line_com_neg,
688   COMMUTATOR = '!@>',
689   NEGATOR    = '<@',
690   RESTRICT   = contsel,
691   JOIN       = contjoinsel
692);
693
694COMMENT ON OPERATOR !<@ (sline, scircle) IS 'true if spherical line (LHS) is not contained by spherical circle (RHS)';
695
696CREATE OPERATOR @> (
697   LEFTARG    = spoly,
698   RIGHTARG   = sline,
699   PROCEDURE  = spoly_contains_line,
700   COMMUTATOR = '<@',
701   NEGATOR    = '!@>',
702   RESTRICT   = contsel,
703   JOIN       = contjoinsel
704);
705
706COMMENT ON OPERATOR @> (spoly, sline) IS 'true if spherical polygon (LHS) contains spherical line (RHS)';
707
708CREATE OPERATOR <@ (
709   LEFTARG    = sline,
710   RIGHTARG   = spoly,
711   PROCEDURE  = spoly_contains_line_com,
712   COMMUTATOR = '@>',
713   NEGATOR    = '!<@',
714   RESTRICT   = contsel,
715   JOIN       = contjoinsel
716);
717
718COMMENT ON OPERATOR <@ (sline, spoly) IS 'true if spherical line (LHS) is contained by spherical polygon (RHS)';
719
720CREATE OPERATOR !@> (
721   LEFTARG    = spoly,
722   RIGHTARG   = sline,
723   PROCEDURE  = spoly_contains_line,
724   COMMUTATOR = '!<@',
725   NEGATOR    = '@>',
726   RESTRICT   = contsel,
727   JOIN       = contjoinsel
728);
729
730COMMENT ON OPERATOR !@> (spoly, sline) IS 'true if spherical polygon (LHS) does not contain spherical line (RHS)';
731
732CREATE OPERATOR !<@ (
733   LEFTARG    = sline,
734   RIGHTARG   = spoly,
735   PROCEDURE  = spoly_contains_line_com_neg,
736   COMMUTATOR = '!@>',
737   NEGATOR    = '<@',
738   RESTRICT   = contsel,
739   JOIN       = contjoinsel
740);
741
742COMMENT ON OPERATOR !<@ (sline, spoly) IS 'true if spherical line (LHS) is not contained by spherical polygon (RHS)';
743
744
745
746CREATE OPERATOR @> (
747   LEFTARG    = sellipse,
748   RIGHTARG   = sellipse,
749   PROCEDURE  = sellipse_contains_ellipse,
750   COMMUTATOR = '<@',
751   NEGATOR    = '!@>',
752   RESTRICT   = contsel,
753   JOIN       = contjoinsel
754);
755
756COMMENT ON OPERATOR @> (sellipse, sellipse) IS 'true if spherical ellipse (LHS) contains spherical ellipse (RHS)';
757
758CREATE OPERATOR <@ (
759   LEFTARG    = sellipse,
760   RIGHTARG   = sellipse,
761   PROCEDURE  = sellipse_contains_ellipse_com,
762   COMMUTATOR = '@>',
763   NEGATOR    = '!<@',
764   RESTRICT   = contsel,
765   JOIN       = contjoinsel
766);
767
768COMMENT ON OPERATOR <@ (sellipse, sellipse) IS 'true if spherical ellipse (LHS) is contained by spherical ellipse (RHS)';
769
770CREATE OPERATOR !@> (
771   LEFTARG    = sellipse,
772   RIGHTARG   = sellipse,
773   PROCEDURE  = sellipse_contains_ellipse_neg,
774   COMMUTATOR = '!<@',
775   NEGATOR    = '@>',
776   RESTRICT   = contsel,
777   JOIN       = contjoinsel
778);
779
780COMMENT ON OPERATOR !@> (sellipse, sellipse) IS 'true if spherical ellipse (LHS) does not contain spherical ellipse (RHS)';
781
782CREATE OPERATOR !<@ (
783   LEFTARG    = sellipse,
784   RIGHTARG   = sellipse,
785   PROCEDURE  = sellipse_contains_ellipse_com_neg,
786   COMMUTATOR = '!@>',
787   NEGATOR    = '<@',
788   RESTRICT   = contsel,
789   JOIN       = contjoinsel
790);
791
792COMMENT ON OPERATOR !<@ (sellipse, sellipse) IS 'true if spherical ellipse (LHS) is not contained by spherical ellipse (RHS)';
793
794
795CREATE OPERATOR @> (
796   LEFTARG    = sellipse,
797   RIGHTARG   = spoint,
798   PROCEDURE  = sellipse_contains_point,
799   COMMUTATOR = '<@',
800   NEGATOR    = '!@>',
801   RESTRICT   = contsel,
802   JOIN       = contjoinsel
803);
804
805COMMENT ON OPERATOR @> (sellipse, spoint) IS 'true if spherical ellipse (LHS) contains spherical point (RHS)';
806
807CREATE OPERATOR <@ (
808   LEFTARG    = spoint,
809   RIGHTARG   = sellipse,
810   PROCEDURE  = sellipse_contains_point_com,
811   COMMUTATOR = '@>',
812   NEGATOR    = '!<@',
813   RESTRICT   = contsel,
814   JOIN       = contjoinsel
815);
816
817COMMENT ON OPERATOR <@ (spoint, sellipse) IS 'true if spherical point (LHS) is contained by spherical ellipse (RHS)';
818
819CREATE OPERATOR !@> (
820   LEFTARG    = sellipse,
821   RIGHTARG   = spoint,
822   PROCEDURE  = sellipse_contains_point_neg,
823   COMMUTATOR = '!<@',
824   NEGATOR    = '@>',
825   RESTRICT   = contsel,
826   JOIN       = contjoinsel
827);
828
829COMMENT ON OPERATOR !@> (sellipse, spoint) IS 'true if spherical ellipse (LHS) does not contain spherical point (RHS)';
830
831CREATE OPERATOR !<@ (
832   LEFTARG    = spoint,
833   RIGHTARG   = sellipse,
834   PROCEDURE  = sellipse_contains_point_com_neg,
835   COMMUTATOR = '!@>',
836   NEGATOR    = '<@',
837   RESTRICT   = contsel,
838   JOIN       = contjoinsel
839);
840
841COMMENT ON OPERATOR !<@ (spoint, sellipse) IS 'true if spherical point (LHS) is not contained by spherical ellipse (RHS)';
842
843CREATE OPERATOR @> (
844   LEFTARG    = sbox,
845   RIGHTARG   = sellipse,
846   PROCEDURE  = sbox_contains_ellipse,
847   COMMUTATOR = '<@',
848   NEGATOR    = '!@>',
849   RESTRICT   = contsel,
850   JOIN       = contjoinsel
851);
852
853COMMENT ON OPERATOR @> (sbox, sellipse) IS 'true if spherical box (LHS) contains spherical ellipse (RHS)';
854
855CREATE OPERATOR <@ (
856   LEFTARG    = sellipse,
857   RIGHTARG   = sbox,
858   PROCEDURE  = sbox_contains_ellipse_com,
859   COMMUTATOR = '@>',
860   NEGATOR    = '!<@',
861   RESTRICT   = contsel,
862   JOIN       = contjoinsel
863);
864
865COMMENT ON OPERATOR <@ (sellipse, sbox) IS
866  'true if spherical ellipse (LHS) is contained by spherical box (RHS)';
867
868CREATE OPERATOR !@> (
869   LEFTARG    = sbox,
870   RIGHTARG   = sellipse,
871   PROCEDURE  = sbox_contains_ellipse_neg,
872   COMMUTATOR = '!<@',
873   NEGATOR    = '@>',
874   RESTRICT   = contsel,
875   JOIN       = contjoinsel
876);
877
878COMMENT ON OPERATOR !@> (sbox, sellipse) IS 'true if spherical box (LHS) does not contain spherical ellipse (RHS)';
879
880CREATE OPERATOR !<@ (
881   LEFTARG    = sellipse,
882   RIGHTARG   = sbox,
883   PROCEDURE  = sbox_contains_ellipse_com_neg,
884   COMMUTATOR = '!@>',
885   NEGATOR    = '<@',
886   RESTRICT   = contsel,
887   JOIN       = contjoinsel
888);
889
890COMMENT ON OPERATOR !<@ (sellipse, sbox) IS 'true if spherical ellipse (LHS) is not contained by spherical box (RHS)';
891
892CREATE OPERATOR @> (
893   LEFTARG    = sellipse,
894   RIGHTARG   = sbox,
895   PROCEDURE  = sellipse_contains_box,
896   COMMUTATOR = '<@',
897   NEGATOR    = '!@>',
898   RESTRICT   = contsel,
899   JOIN       = contjoinsel
900);
901
902COMMENT ON OPERATOR @> (sellipse, sbox) IS 'true if spherical ellipse (LHS) contains spherical box (RHS)';
903
904CREATE OPERATOR <@ (
905   LEFTARG    = sbox,
906   RIGHTARG   = sellipse,
907   PROCEDURE  = sellipse_contains_box_com,
908   COMMUTATOR = '@>',
909   NEGATOR    = '!<@',
910   RESTRICT   = contsel,
911   JOIN       = contjoinsel
912);
913
914COMMENT ON OPERATOR <@ (sbox, sellipse) IS 'true if spherical box (LHS) is contained by spherical ellipse (RHS)';
915
916CREATE OPERATOR !@> (
917   LEFTARG    = sellipse,
918   RIGHTARG   = sbox,
919   PROCEDURE  = sellipse_contains_box_neg,
920   COMMUTATOR = '!<@',
921   NEGATOR    = '@>',
922   RESTRICT   = contsel,
923   JOIN       = contjoinsel
924);
925
926COMMENT ON OPERATOR !@> (sellipse, sbox) IS 'true if spherical ellipse (LHS) does not contain spherical box (RHS)';
927
928CREATE OPERATOR !<@ (
929   LEFTARG    = sbox,
930   RIGHTARG   = sellipse,
931   PROCEDURE  = sellipse_contains_box_com_neg,
932   COMMUTATOR = '!@>',
933   NEGATOR    = '<@',
934   RESTRICT   = contsel,
935   JOIN       = contjoinsel
936);
937
938COMMENT ON OPERATOR !<@ (sbox, sellipse) IS 'true if spherical box (LHS) is not containe by spherical ellipse (RHS)';
939
940CREATE OPERATOR @> (
941   LEFTARG    = sellipse,
942   RIGHTARG   = scircle,
943   PROCEDURE  = sellipse_contains_circle,
944   COMMUTATOR = '<@',
945   NEGATOR    = '!@>',
946   RESTRICT   = contsel,
947   JOIN       = contjoinsel
948);
949
950COMMENT ON OPERATOR @> (sellipse, scircle) IS 'true if spherical ellipse (LHS) contains spherical circle (RHS)';
951
952CREATE OPERATOR <@ (
953   LEFTARG    = scircle,
954   RIGHTARG   = sellipse,
955   PROCEDURE  = sellipse_contains_circle_com,
956   COMMUTATOR = '@>',
957   NEGATOR    = '!<@',
958   RESTRICT   = contsel,
959   JOIN       = contjoinsel
960);
961
962COMMENT ON OPERATOR <@ (scircle, sellipse) IS 'true if spherical circle (LHS) is contained by spherical ellipse (RHS)';
963
964CREATE OPERATOR !@> (
965   LEFTARG    = sellipse,
966   RIGHTARG   = scircle,
967   PROCEDURE  = sellipse_contains_circle_neg,
968   COMMUTATOR = '!<@',
969   NEGATOR    = '@>',
970   RESTRICT   = contsel,
971   JOIN       = contjoinsel
972);
973
974COMMENT ON OPERATOR !@> (sellipse, scircle) IS 'true if spherical ellipse (LHS) does not contain spherical circle (RHS)';
975
976CREATE OPERATOR !<@ (
977   LEFTARG    = scircle,
978   RIGHTARG   = sellipse,
979   PROCEDURE  = sellipse_contains_circle_com_neg,
980   COMMUTATOR = '!@>',
981   NEGATOR    = '<@',
982   RESTRICT   = contsel,
983   JOIN       = contjoinsel
984);
985
986COMMENT ON OPERATOR !<@ (scircle, sellipse) IS 'true if spherical circle (LHS) is not contained by spherical ellipse (RHS)';
987
988CREATE OPERATOR @> (
989   LEFTARG    = scircle,
990   RIGHTARG   = sellipse,
991   PROCEDURE  = scircle_contains_ellipse,
992   COMMUTATOR = '<@',
993   NEGATOR    = '!@>',
994   RESTRICT   = contsel,
995   JOIN       = contjoinsel
996);
997
998COMMENT ON OPERATOR @> (scircle, sellipse) IS 'true if spherical circle (LHS) contains spherical ellipse (RHS)';
999
1000CREATE OPERATOR <@ (
1001   LEFTARG    = sellipse,
1002   RIGHTARG   = scircle,
1003   PROCEDURE  = scircle_contains_ellipse_com,
1004   COMMUTATOR = '@>',
1005   NEGATOR    = '!<@',
1006   RESTRICT   = contsel,
1007   JOIN       = contjoinsel
1008);
1009
1010COMMENT ON OPERATOR <@ (sellipse, scircle) IS 'true if spherical ellipse (LHS) is contained by spherical circle (RHS)';
1011
1012CREATE OPERATOR !@> (
1013   LEFTARG    = scircle,
1014   RIGHTARG   = sellipse,
1015   PROCEDURE  = scircle_contains_ellipse_neg,
1016   COMMUTATOR = '!<@',
1017   NEGATOR    = '@>',
1018   RESTRICT   = contsel,
1019   JOIN       = contjoinsel
1020);
1021
1022COMMENT ON OPERATOR !@> (scircle, sellipse) IS 'true if spherical circle (LHS) does not contain spherical ellipse (RHS)';
1023
1024
1025CREATE OPERATOR !<@ (
1026   LEFTARG    = sellipse,
1027   RIGHTARG   = scircle,
1028   PROCEDURE  = scircle_contains_ellipse_com_neg,
1029   COMMUTATOR = '!@>',
1030   NEGATOR    = '<@',
1031   RESTRICT   = contsel,
1032   JOIN       = contjoinsel
1033);
1034
1035COMMENT ON OPERATOR !<@ (sellipse, scircle) IS 'true if spherical ellipse (LHS) is not contained by spherical circle (RHS)';
1036
1037
1038CREATE OPERATOR @> (
1039   LEFTARG    = sellipse,
1040   RIGHTARG   = sline,
1041   PROCEDURE  = sellipse_contains_line,
1042   COMMUTATOR = '<@',
1043   NEGATOR    = '!@>',
1044   RESTRICT   = contsel,
1045   JOIN       = contjoinsel
1046);
1047
1048COMMENT ON OPERATOR @> (sellipse, sline) IS 'true if spherical ellipse (LHS) contains spherical line (RHS)';
1049
1050CREATE OPERATOR <@ (
1051   LEFTARG    = sline,
1052   RIGHTARG   = sellipse,
1053   PROCEDURE  = sellipse_contains_line_com,
1054   COMMUTATOR = '@>',
1055   NEGATOR    = '!<@',
1056   RESTRICT   = contsel,
1057   JOIN       = contjoinsel
1058);
1059
1060COMMENT ON OPERATOR <@ (sline, sellipse) IS 'true if spherical line is contained by spherical ellipse';
1061
1062CREATE OPERATOR !@> (
1063   LEFTARG    = sellipse,
1064   RIGHTARG   = sline,
1065   PROCEDURE  = sellipse_contains_line_neg,
1066   COMMUTATOR = '!<@',
1067   NEGATOR    = '@>',
1068   RESTRICT   = contsel,
1069   JOIN       = contjoinsel
1070);
1071
1072COMMENT ON OPERATOR !@> (sellipse, sline) IS 'true if spherical ellipse (LHS) does not contain spherical line (RHS)';
1073
1074CREATE OPERATOR !<@ (
1075   LEFTARG    = sline,
1076   RIGHTARG   = sellipse,
1077   PROCEDURE  = sellipse_contains_line_com_neg,
1078   COMMUTATOR = '!@>',
1079   NEGATOR    = '<@',
1080   RESTRICT   = contsel,
1081   JOIN       = contjoinsel
1082);
1083
1084COMMENT ON OPERATOR !<@ (sline, sellipse) IS 'true if spherical line (LHS) is not contained by spherical line (RHS)';
1085
1086
1087CREATE OPERATOR @> (
1088   LEFTARG    = spoly,
1089   RIGHTARG   = sellipse,
1090   PROCEDURE  = spoly_contains_ellipse,
1091   COMMUTATOR = '<@',
1092   NEGATOR    = '!@>',
1093   RESTRICT   = contsel,
1094   JOIN       = contjoinsel
1095);
1096
1097COMMENT ON OPERATOR @> (spoly, sellipse) IS 'true if spherical polygon (LHS) contains spherical ellipse (RHS)';
1098
1099CREATE OPERATOR <@ (
1100   LEFTARG    = sellipse,
1101   RIGHTARG   = spoly,
1102   PROCEDURE  = spoly_contains_ellipse_com,
1103   COMMUTATOR = '@>',
1104   NEGATOR    = '!<@',
1105   RESTRICT   = contsel,
1106   JOIN       = contjoinsel
1107);
1108
1109COMMENT ON OPERATOR <@ (sellipse, spoly) IS 'true if spherical ellipse (LHS) is contained by spherical polygon (RHS)';
1110
1111CREATE OPERATOR !@> (
1112   LEFTARG    = spoly,
1113   RIGHTARG   = sellipse,
1114   PROCEDURE  = spoly_contains_ellipse_neg,
1115   COMMUTATOR = '!>@',
1116   NEGATOR    = '@>',
1117   RESTRICT   = contsel,
1118   JOIN       = contjoinsel
1119);
1120
1121COMMENT ON OPERATOR !@> (spoly, sellipse) IS 'true if spherical polygon (LHS) does not contain spherical ellipse (RHS)';
1122
1123CREATE OPERATOR !<@ (
1124   LEFTARG    = sellipse,
1125   RIGHTARG   = spoly,
1126   PROCEDURE  = spoly_contains_ellipse_com_neg,
1127   COMMUTATOR = '!@>',
1128   NEGATOR    = '<@',
1129   RESTRICT   = contsel,
1130   JOIN       = contjoinsel
1131);
1132
1133COMMENT ON OPERATOR !<@ (sellipse, spoly) IS 'true if spherical ellipse (LHS) is not contained by spherical polygon (RHS)';
1134
1135CREATE OPERATOR @> (
1136   LEFTARG    = sellipse,
1137   RIGHTARG   = spoly,
1138   PROCEDURE  = sellipse_contains_polygon,
1139   COMMUTATOR = '<@',
1140   NEGATOR    = '!@>',
1141   RESTRICT   = contsel,
1142   JOIN       = contjoinsel
1143);
1144
1145COMMENT ON OPERATOR @> (sellipse, spoly) IS 'true if spherical ellipse (LHS) contains spherical polygon (RHS)';
1146
1147CREATE OPERATOR <@ (
1148   LEFTARG    = spoly,
1149   RIGHTARG   = sellipse,
1150   PROCEDURE  = sellipse_contains_polygon_com,
1151   COMMUTATOR = '@>',
1152   NEGATOR    = '!<@',
1153   RESTRICT   = contsel,
1154   JOIN       = contjoinsel
1155);
1156
1157COMMENT ON OPERATOR <@ (spoly, sellipse) IS 'true if spherical polygon (LHS) is contained by spherical elli[pse (RHS)';
1158
1159CREATE OPERATOR !@> (
1160   LEFTARG    = sellipse,
1161   RIGHTARG   = spoly,
1162   PROCEDURE  = sellipse_contains_polygon_neg,
1163   COMMUTATOR = '!<@',
1164   NEGATOR    = '@>',
1165   RESTRICT   = contsel,
1166   JOIN       = contjoinsel
1167);
1168
1169COMMENT ON OPERATOR !@> (sellipse, spoly) IS 'true if spherical ellipse (LHS) does not contain spherical polygon (RHS)';
1170
1171CREATE OPERATOR !<@ (
1172   LEFTARG    = spoly,
1173   RIGHTARG   = sellipse,
1174   PROCEDURE  = sellipse_contains_polygon_com_neg,
1175   COMMUTATOR = '!@>',
1176   NEGATOR    = '<@',
1177   RESTRICT   = contsel,
1178   JOIN       = contjoinsel
1179);
1180
1181COMMENT ON OPERATOR !<@ (spoly, sellipse) IS 'true if spherical polygon (LHS) is not contained by spherical elli[pse (RHS)';
1182
1183CREATE OPERATOR @> (
1184   LEFTARG    = spath,
1185   RIGHTARG   = spoint,
1186   PROCEDURE  = spath_contains_point,
1187   COMMUTATOR = '<@',
1188   NEGATOR    = '!@>',
1189   RESTRICT   = contsel,
1190   JOIN       = contjoinsel
1191);
1192
1193COMMENT ON OPERATOR @> (spath, spoint) IS 'true if spherical path (LHS) contains spherical point (RHS)';
1194
1195CREATE OPERATOR <@ (
1196   LEFTARG    = spoint,
1197   RIGHTARG   = spath,
1198   PROCEDURE  = spath_contains_point_com,
1199   COMMUTATOR = '@>',
1200   NEGATOR    = '!<@',
1201   RESTRICT   = contsel,
1202   JOIN       = contjoinsel
1203);
1204
1205COMMENT ON OPERATOR <@ (spoint, spath) IS 'true if spherical point (LHS) is contained by spherical path (RHS)';
1206
1207CREATE OPERATOR !@> (
1208   LEFTARG    = spath,
1209   RIGHTARG   = spoint,
1210   PROCEDURE  = spath_contains_point_neg,
1211   COMMUTATOR = '!<@',
1212   NEGATOR    = '@>',
1213   RESTRICT   = contsel,
1214   JOIN       = contjoinsel
1215);
1216
1217COMMENT ON OPERATOR !@> (spath, spoint) IS 'true if spherical path (LHS) does not contain spherical point (RHS)';
1218
1219CREATE OPERATOR !<@ (
1220   LEFTARG    = spoint,
1221   RIGHTARG   = spath,
1222   PROCEDURE  = spath_contains_point_com_neg,
1223   COMMUTATOR = '!@>',
1224   NEGATOR    = '<@',
1225   RESTRICT   = contsel,
1226   JOIN       = contjoinsel
1227);
1228
1229COMMENT ON OPERATOR !<@ (spoint, spath) IS 'true if spherical point (LHS) is not contained by spherical path (RHS)';
1230
1231CREATE OPERATOR @> (
1232   LEFTARG    = sbox,
1233   RIGHTARG   = spath,
1234   PROCEDURE  = sbox_contains_path,
1235   COMMUTATOR = '<@',
1236   NEGATOR    = '!@>',
1237   RESTRICT   = contsel,
1238   JOIN       = contjoinsel
1239);
1240
1241COMMENT ON OPERATOR @> (sbox, spath) IS 'true if spherical box (LHS) contains spherical path (RHS)';
1242
1243CREATE OPERATOR <@ (
1244   LEFTARG    = spath,
1245   RIGHTARG   = sbox,
1246   PROCEDURE  = sbox_contains_path_com,
1247   COMMUTATOR = '@>',
1248   NEGATOR    = '!<@',
1249   RESTRICT   = contsel,
1250   JOIN       = contjoinsel
1251);
1252
1253COMMENT ON OPERATOR <@ (spath, sbox) IS 'true if spherical path is contained by spherical box (RHS)';
1254
1255CREATE OPERATOR !@> (
1256   LEFTARG    = sbox,
1257   RIGHTARG   = spath,
1258   PROCEDURE  = sbox_contains_path_neg,
1259   COMMUTATOR = '!<@',
1260   NEGATOR    = '@>',
1261   RESTRICT   = contsel,
1262   JOIN       = contjoinsel
1263);
1264
1265COMMENT ON OPERATOR !@> (sbox, spath) IS 'true if spherical box (LHS) does not contain spherical path (RHS)';
1266
1267CREATE OPERATOR !<@ (
1268   LEFTARG    = spath,
1269   RIGHTARG   = sbox,
1270   PROCEDURE  = sbox_contains_path_com_neg,
1271   COMMUTATOR = '!@>',
1272   NEGATOR    = '<@',
1273   RESTRICT   = contsel,
1274   JOIN       = contjoinsel
1275);
1276
1277COMMENT ON OPERATOR !<@ (spath, sbox) IS
1278  'true if spherical path (LHS) is not contained by spherical box (RHS)';
1279
1280CREATE OPERATOR @> (
1281   LEFTARG    = scircle,
1282   RIGHTARG   = spath,
1283   PROCEDURE  = scircle_contains_path,
1284   COMMUTATOR = '<@',
1285   NEGATOR    = '!@>',
1286   RESTRICT   = contsel,
1287   JOIN       = contjoinsel
1288);
1289
1290COMMENT ON OPERATOR @> (scircle, spath) IS 'true if spherical circle (LHS) contains spherical path (RHS)';
1291
1292CREATE OPERATOR <@ (
1293   LEFTARG    = spath,
1294   RIGHTARG   = scircle,
1295   PROCEDURE  = scircle_contains_path_com,
1296   COMMUTATOR = '@>',
1297   NEGATOR    = '!<@',
1298   RESTRICT   = contsel,
1299   JOIN       = contjoinsel
1300);
1301
1302COMMENT ON OPERATOR <@ (spath, scircle) IS 'true if spherical path (LHS) is contained by spherical circle (RHS)';
1303
1304CREATE OPERATOR !@> (
1305   LEFTARG    = scircle,
1306   RIGHTARG   = spath,
1307   PROCEDURE  = scircle_contains_path_neg,
1308   COMMUTATOR = '!<@',
1309   NEGATOR    = '@>',
1310   RESTRICT   = contsel,
1311   JOIN       = contjoinsel
1312);
1313
1314COMMENT ON OPERATOR !@> (scircle, spath) IS 'true if spherical circle (LHS) does not contain spherical path (RHS)';
1315
1316CREATE OPERATOR !<@ (
1317   LEFTARG    = spath,
1318   RIGHTARG   = scircle,
1319   PROCEDURE  = scircle_contains_path_com_neg,
1320   COMMUTATOR = '!@>',
1321   NEGATOR    = '<@',
1322   RESTRICT   = contsel,
1323   JOIN       = contjoinsel
1324);
1325
1326COMMENT ON OPERATOR !<@ (spath, scircle) IS 'true if spherical path (LHS) is not contained by spherical circle (RHS)';
1327
1328CREATE OPERATOR @> (
1329   LEFTARG    = sellipse,
1330   RIGHTARG   = spath,
1331   PROCEDURE  = sellipse_contains_path,
1332   COMMUTATOR = '<@',
1333   NEGATOR    = '!@>',
1334   RESTRICT   = contsel,
1335   JOIN       = contjoinsel
1336);
1337
1338COMMENT ON OPERATOR @> (sellipse, spath) IS 'true if spherical ellipse (LHS) contains spherical path (RHS)';
1339
1340CREATE OPERATOR <@ (
1341   LEFTARG    = spath,
1342   RIGHTARG   = sellipse,
1343   PROCEDURE  = sellipse_contains_path_com,
1344   COMMUTATOR = '@>',
1345   NEGATOR    = '!<@',
1346   RESTRICT   = contsel,
1347   JOIN       = contjoinsel
1348);
1349
1350COMMENT ON OPERATOR <@ (spath, sellipse) IS 'true if spherical path (LHS) is contained by spherical ellipse (RHS)';
1351
1352CREATE OPERATOR !@> (
1353   LEFTARG    = sellipse,
1354   RIGHTARG   = spath,
1355   PROCEDURE  = sellipse_contains_path_neg,
1356   COMMUTATOR = '!<@',
1357   NEGATOR    = '@>',
1358   RESTRICT   = contsel,
1359   JOIN       = contjoinsel
1360);
1361
1362COMMENT ON OPERATOR !@> (sellipse, spath) IS 'true if spherical ellipse (LHS) does not contain spherical path (RHS)';
1363
1364CREATE OPERATOR !<@ (
1365   LEFTARG    = spath,
1366   RIGHTARG   = sellipse,
1367   PROCEDURE  = sellipse_contains_path_com_neg,
1368   COMMUTATOR = '!@>',
1369   NEGATOR    = '<@',
1370   RESTRICT   = contsel,
1371   JOIN       = contjoinsel
1372);
1373
1374COMMENT ON OPERATOR !<@ (spath, sellipse) IS 'true if spherical path is not contained by spherical ellipse (RHS)';
1375
1376CREATE OPERATOR @> (
1377   LEFTARG    = spoly,
1378   RIGHTARG   = spath,
1379   PROCEDURE  = spoly_contains_path,
1380   COMMUTATOR = '<@',
1381   NEGATOR    = '!@>',
1382   RESTRICT   = contsel,
1383   JOIN       = contjoinsel
1384);
1385
1386COMMENT ON OPERATOR @> (spoly, spath) IS 'true if spherical polygon (LHS) contains spherical path (RHS)';
1387
1388CREATE OPERATOR <@ (
1389   LEFTARG    = spath,
1390   RIGHTARG   = spoly,
1391   PROCEDURE  = spoly_contains_path_com,
1392   COMMUTATOR = '@>',
1393   NEGATOR    = '!<@',
1394   RESTRICT   = contsel,
1395   JOIN       = contjoinsel
1396);
1397
1398COMMENT ON OPERATOR <@ (spath, spoly) IS 'true if spherical path (LHS) is contained by spherical polygon (RHS)';
1399
1400CREATE OPERATOR !@> (
1401   LEFTARG    = spoly,
1402   RIGHTARG   = spath,
1403   PROCEDURE  = spoly_contains_path_neg,
1404   COMMUTATOR = '!<@',
1405   NEGATOR    = '@>',
1406   RESTRICT   = contsel,
1407   JOIN       = contjoinsel
1408);
1409
1410COMMENT ON OPERATOR !@> (spoly, spath) IS 'true if spherical polygon (LHS) does not contain spherical path (RHS)';
1411
1412CREATE OPERATOR !<@ (
1413   LEFTARG    = spath,
1414   RIGHTARG   = spoly,
1415   PROCEDURE  = spoly_contains_path_com_neg,
1416   COMMUTATOR = '!@>',
1417   NEGATOR    = '<@',
1418   RESTRICT   = contsel,
1419   JOIN       = contjoinsel
1420);
1421
1422COMMENT ON OPERATOR !<@ (spath, spoly) IS 'true if spherical path (LHS) is not contained by spherical polygon (RHS)';
1423
1424CREATE OPERATOR @> (
1425   LEFTARG    = sbox,
1426   RIGHTARG   = sline,
1427   PROCEDURE  = sbox_contains_line,
1428   COMMUTATOR = '<@',
1429   NEGATOR    = '!@>',
1430   RESTRICT   = contsel,
1431   JOIN       = contjoinsel
1432);
1433
1434COMMENT ON OPERATOR @> (sbox, sline) IS 'true if spherical box (LHS) contains spherical line (RHS)';
1435
1436CREATE OPERATOR <@ (
1437   LEFTARG    = sline,
1438   RIGHTARG   = sbox,
1439   PROCEDURE  = sbox_contains_line_com,
1440   COMMUTATOR = '@>',
1441   NEGATOR    = '!<@',
1442   RESTRICT   = contsel,
1443   JOIN       = contjoinsel
1444);
1445
1446COMMENT ON OPERATOR <@ (sline, sbox) IS 'true if spherical line (LHS) is contained by spherical box (RHS)';
1447
1448CREATE OPERATOR !@> (
1449   LEFTARG    = sbox,
1450   RIGHTARG   = sline,
1451   PROCEDURE  = sbox_contains_line_neg,
1452   COMMUTATOR = '!<@',
1453   NEGATOR    = '@>',
1454   RESTRICT   = contsel,
1455   JOIN       = contjoinsel
1456);
1457
1458COMMENT ON OPERATOR !@> (sbox, sline) IS 'true if spherical box (LHS) does not contain spherical line (RHS)';
1459
1460CREATE OPERATOR !<@ (
1461   LEFTARG    = sline,
1462   RIGHTARG   = sbox,
1463   PROCEDURE  = sbox_contains_line_com_neg,
1464   COMMUTATOR = '!@>',
1465   NEGATOR    = '<@',
1466   RESTRICT   = contsel,
1467   JOIN       = contjoinsel
1468);
1469
1470COMMENT ON OPERATOR !<@ (sline, sbox) IS 'true if spherical line (LHS) is not contained by spherical box (RHS)';
1471