applications.collages.collageAlgebra:
{
  a = const(36),
  r = const(2/(1 + sqrt(5))),
  
  kite = { polygon((0,-cos(2 * #a)),(sin(2 * #a),0),
                   (0,cos(#a) / #r),(-sin(2 * #a),0))},
    
  dart = {polygon((0,0),(sin(#a) / #r,cos(#a) / #r),
                 (0,cos(#a) / #r - cos(2 * #a)),(-sin(#a) / #r,cos(#a) / #r))},
  
  rk1 = scale(#r) . rotate(180 + #a) . translate(0,cos(#a) / #r),
  rk2 = translate(sin(2 * #a),0) . scale(#r) . rotate(3 * #a) .
        translate(0,-cos(2 * #a)),
  rk3 = translate(-sin(2 * #a),0) . scale(#r) . rotate(-3 * #a) .
        translate(0,-cos(2 * #a)),
  refine-kite = <rk1,rk2,rk3>,
  
  invert = translate(0,cos(2 * #a)) . rotate(-3 * #a) . scale(1/#r) .
           translate(-sin(2 * #a),0),
  invert = <invert>,
  
  rd1 = translate(0,-cos(#a) / #r) . rotate(180) . scale(#r),
  rd2 = scale(#r) . rotate(180 - #a) . translate(sin(#a) / #r,cos(#a) / #r),
  refine-dart = <rd1,rd2>
  
  
}
