| 
        geometric_type+point→geometric_type 
最初の引数の各々の点に二番目のpointの座標を加え、平行移動します。point、box、path、circleで利用可能です。 
        box '(1,1),(0,0)' + point '(2,0)'→(3,1),(2,0) | 
| 
        path+path→path 
2つの開経路を結合します。(どちらかの経路が閉じていればNULLを返します。)
        
        path '[(0,0),(1,1)]' + path '[(2,2),(3,3),(4,4)]'→[(0,0),(1,1),(2,2),(3,3),(4,4)] | 
| 
        geometric_type-point→geometric_type 
最初の引数の各々の点に二番目のpointの座標を減算し、平行移動します。point、box、path、circleで利用可能です。 
        box '(1,1),(0,0)' - point '(2,0)'→(-1,1),(-2,0) | 
| 
        geometric_type*point→geometric_type 
最初の引数の各々の点に2番目のpointの座標を乗じます。(点を実数部と虚数部で表現する複素数として扱い、標準複素乗法を行います。)
2番目のpointをベクトルと解釈すると、これはオブジェクトの大きさと原点からの距離をベクトルの長さで拡大し、x軸に対する角度分原点周りで反時計方向に回転させたものになります。point、boxpath、circleで利用可能です。 
        path '((0,0),(1,0),(1,1))' * point '(3.0,0)'→((0,0),(3,0),(3,3)) 
        path '((0,0),(1,0),(1,1))' * point(cosd(45), sind(45))→((0,0),(0.7071067811865475,0.7071067811865475),(0,1.414213562373095)) | 
| 
        geometric_type/point→geometric_type 
最初の引数の各々の点を2番目のpointの座標で除算します。(点を実数部と虚数部で表現する複素数として扱い、標準複素除法を行います。
2番目のpointをベクトルと解釈すると、これはオブジェクトの大きさと原点からの距離をベクトルの長さで縮小し、x軸に対する角度分原点周りで時計方向に回転させたものになります。point、box、path、circleで利用可能です。 
        path '((0,0),(1,0),(1,1))' / point '(2.0,0)'→((0,0),(0.5,0),(0.5,0.5)) 
        path '((0,0),(1,0),(1,1))' / point(cosd(45), sind(45))→((0,0),(0.7071067811865476,-0.7071067811865476),(1.4142135623730951,0)) | 
| 
        @-@geometric_type→double precision 
全長を計算します。lseg、pathで利用可能です。 
        @-@ path '[(0,0),(1,0),(1,1)]'→2 | 
| 
        @@geometric_type→point 
中心点を計算します。
box、lseg、polygon、circleで利用可能です。 
        @@ box '(2,2),(0,0)'→(1,1) | 
| 
        #geometric_type→integer 
点の数を返します。
path、polygonで利用可能です。 
        # path '((1,0),(0,1),(-1,0))'→3 | 
| 
        geometric_type#geometric_type→point 
交点を計算します。交点がなければNULLを返します。
lseg、lineで利用可能です。 
        lseg '[(0,0),(1,1)]' # lseg '[(1,0),(0,1)]'→(0.5,0.5) | 
| 
        box#box→box 
2つの矩形の共通部を計算します。
共通部がなければNULLを返します。
        
        box '(2,2),(-1,-1)' # box '(1,1),(-2,-2)'→(1,1),(-1,-1) | 
| 
        geometric_type##geometric_type→point 
最初のオブジェクトから2番目のオブジェクトへの2番目のオブジェクト上の最近点を計算します。
以下の型の対で利用可能です。
        (point,box),
        (point,lseg),
        (point,line),
        (lseg,box),
        (lseg,lseg),
        (line,lseg). 
        point '(0,0)' ## lseg '[(2,0),(0,2)]'→(1,1) | 
| 
        geometric_type<->geometric_type→double precision 
オブジェクト間の距離を計算します。
7つのすべての幾何型、pointと他のすべての幾何型との組み合わせ、そして次の型の組み合わせで利用できます。
(box、lseg)、(lseg、line)、(polygon、circle)(そして可換の組み合わせ)。 
        circle '<(0,0),1>' <-> circle '<(5,0),1>'→3 | 
| 
        geometric_type@>geometric_type→boolean 
最初のオブジェクトは2番目のオブジェクトを含んでいるか?
次の型の組み合わせで利用できます。
        (box、point)、
        (box、box)、
        (path、point)、
        (polygon、point)、
        (polygon、polygon)、
        (circle、point)、
        (circle、circle)。 
        circle '<(0,0),2>' @> point '(1,1)'→t | 
| 
        geometric_type<@geometric_type→boolean 
最初のオブジェクトは2番目のオブジェクトに含まれているかあるいはその上にあるか?
次の型の組み合わせで利用できます。
        (point、box)、
        (point、lseg)、
        (point、line)、
        (point、path)、
        (point、polygon)、
        (point、circle)、
        (box、box)、
        (lseg、box)、
        (lseg、line)、
        (polygon、polygon)、
        (circle、circle)。 
        point '(1,1)' <@ circle '<(0,0),2>'→t | 
| 
        geometric_type&&geometric_type→boolean 
これらのオブジェクトは重なり合っているか?
(共通の点があれば真となります。)
box、polygon、circleで利用可能です。 
        box '(1,1),(0,0)' && box '(2,2),(0,0)'→t | 
| 
        geometric_type<<geometric_type→boolean 
最初のオブジェクトは完全に2番目のオブジェクトの左にあるか?
point、box、polygon、circleで利用可能です。 
        circle '<(0,0),1>' << circle '<(5,0),1>'→t | 
| 
        geometric_type>>geometric_type→boolean 
最初のオブジェクトは完全に2番目のオブジェクトの右にあるか?
point、box、polygon、circleで利用可能です。 
        circle '<(5,0),1>' >> circle '<(0,0),1>'→t | 
| 
        geometric_type&<geometric_type→boolean 
最初のオブジェクトは2番目のオブジェクトの右にはみ出していないか?
box、polygon、circleで利用可能です。 
        box '(1,1),(0,0)' &< box '(2,2),(0,0)'→t | 
| 
        geometric_type&>geometric_type→boolean 
最初のオブジェクトは2番目のオブジェクトの左にはみ出していないか?
box、polygon、circleで利用可能です。 
        box '(3,3),(0,0)' &> box '(2,2),(0,0)'→t | 
| 
        geometric_type<<|geometric_type→boolean 
最初のオブジェクトは完全に2番目のオブジェクトの下にあるか?
point、box、polygon、circleで利用可能です。 
        box '(3,3),(0,0)' <<| box '(5,5),(3,4)'→t | 
| 
        geometric_type|>>geometric_type→boolean 
最初のオブジェクトは完全に2番目のオブジェクトの上にあるか?
point、box、polygon、circleで利用可能です。 
        box '(5,5),(3,4)' |>> box '(3,3),(0,0)'→t | 
| 
        geometric_type&<|geometric_type→boolean 
最初のオブジェクトは2番目のオブジェクトの上にはみ出していないか?
box、polygon、circleで利用可能です。 
        box '(1,1),(0,0)' &<| box '(2,2),(0,0)'→t | 
| 
        geometric_type|&>geometric_type→boolean 
最初のオブジェクトは2番目のオブジェクトの下にはみ出していないか?
box、polygon、circleで利用可能です。 
        box '(3,3),(0,0)' |&> box '(2,2),(0,0)'→t | 
| 
        box<^box→boolean 
最初のオブジェクトは2番目のオブジェクトの下か?
(辺が接しているのを許容します)
        
        box '((1,1),(0,0))' <^ box '((2,2),(1,1))'→t | 
| 
        box>^box→boolean 
最初のオブジェクトは2番目のオブジェクトの上か?
(辺が接しているのを許容します)
        
        box '((2,2),(1,1))' >^ box '((1,1),(0,0))'→t | 
| 
        geometric_type?#geometric_type→boolean 
これらのオブジェクトは交差しているか?
次の型の組み合わせで利用できます。
        (box、box)、
        (lseg、box)、
        (lseg、lseg)、
        (lseg、line)、
        (line、box)、
        (line、line)、
        (path、path)。 
        lseg '[(-1,0),(1,0)]' ?# box '(2,2),(-2,-2)'→t | 
| 
        ?-line→boolean 
        ?-lseg→boolean 
線は水平か?
        
        ?- lseg '[(-1,0),(1,0)]'→t | 
| 
        point?-point→boolean 
点は水平に並んでいるか?
(つまりy座標が同じであるということです。)
        
        point '(1,0)' ?- point '(0,0)'→t | 
| 
        ?|line→boolean 
        ?|lseg→boolean 
線は垂直か?
        
        ?| lseg '[(-1,0),(1,0)]'→f | 
| 
        point?|point→boolean 
点は垂直に並んでいるか?
(つまりx座標が同じであるということです。)
        
        point '(0,1)' ?| point '(0,0)'→t | 
| 
        line?-|line→boolean 
        lseg?-|lseg→boolean 
(指定された)2つの線は垂直か?
        
        lseg '[(0,0),(0,1)]' ?-| lseg '[(0,0),(1,0)]'→t | 
| 
        line?||line→boolean 
        lseg?||lseg→boolean 
線は平行か?
        
        lseg '[(-1,0),(1,0)]' ?|| lseg '[(-1,2),(1,2)]'→t | 
| 
        geometric_type~=geometric_type→boolean 
オブジェクトは同じか?
point、box、polygon、circleで利用可能です。 
        polygon '((0,0),(1,1))' ~= polygon '((1,1),(0,0))'→t |