<<
  /SimpleDot { dup mul exch dup mul add 1 exch sub  }
  /InvertedSimpleDot { dup mul exch dup mul add 1 sub  }
  /DoubleDot  { 360 mul sin 2 div exch 360 mul sin 2 div add  }
  /InvertedDoubleDot { 360 mul sin 2 div exch 360 mul sin 2 div add neg  }
  /CosineDot { 180 mul cos exch 180 mul cos add 2 div  }
  /Double { 360 mul sin 2 div exch 2 div 360 mul sin 2 div add  }
  /InvertedDouble { 360 mul sin 2 div exch 2 div 360 mul sin 2 div add neg  }
  /Line { exch pop abs neg  }
  /LineX { pop  }
  /LineY { exch pop  }
  /Round { abs exch abs 2 copy add 1 le { dup mul exch dup mul add 1 exch sub  } { 1 sub dup mul exch 1 sub dup mul add 1 sub  } ifelse  }
  /Ellipse { abs exch abs 2 copy 3 mul exch 4 mul add 3 sub dup 0 lt { pop dup mul exch 0.75 div dup mul add 4 div 1 exch sub  } { dup 1 gt { pop 1 exch sub dup mul exch 1 exch sub 0.75 div dup mul add 4 div 1 sub  } { 0.5 exch sub exch pop exch pop  } ifelse  } ifelse  }
  /EllipseA { dup mul 0.9 mul exch dup mul add 1 exch sub  }
  /InvertedEllipseA { dup mul 0.9 mul exch dup mul add 1 sub  }
  /EllipseB { dup 5 mul 8 div mul exch dup mul exch add sqrt 1 exch sub  }
  /EllipseC { dup mul exch dup mul 0.9 mul add 1 exch sub  }
  /InvertedEllipseC { dup mul exch dup mul 0.9 mul add 1 sub  }
  /Square { abs exch abs 2 copy lt { exch  } if pop neg  }
  /Cross { abs exch abs 2 copy gt { exch  } if pop neg  }
  /Rhomboid { abs exch abs 0.9 mul add 2 div  }
  /Diamond { abs exch abs 2 copy add 0.75 le { dup mul exch dup mul add 1 exch sub  } { 2 copy add 1.23 le { 0.85 mul add 1 exch sub  } { 1 sub dup mul exch 1 sub dup mul add 1 sub  } ifelse  } ifelse  }
>>
