    (declare (type image-float g2a g2b g2c h2a h2b h2c h2d))
********
    (+$ (*$ ($ .5) (-$ (square$ g2a) (square$ g2c)))
        (*$ ($ .46875) (-$ (square$ h2a) (square$ h2d)))
        (*$ ($ .28125) (-$ (square$ h2b) (square$ h2c)))
        (*$ ($ .1875) (-$ (*$ h2a h2c) (*$ h2b h2d))))))
********


(defmacro c3-from-steerables (g2a g2b g2c h2a h2b h2c h2d)
  `(let ((g2a ,g2a)
        (g2b ,g2b)
        (g2c ,g2c)
        (h2a ,h2a)
        (h2b ,h2b)
        (h2c ,h2c)
        (h2d ,h2d))
    (declare (type image-float g2a g2b g2c h2a h2b h2c h2d))
**********
    (+$ (-$ (*$ g2a g2b))
        (-$ (*$ g2b g2c))
        (*$ ($ -.9375) (+$ (*$ h2c h2d) (*$ h2a h2b)))
        (*$ ($ -1.6875) h2b h2c)
        (*$ ($ -.1875) h2a h2d))))
**********