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