struct g: field_functor<g,point> {
  point operator() (const point& x) const { 
    return point(-cos(pi*x[0])*sin(pi*x[1]),
                  sin(pi*x[0])*cos(pi*x[1])); }
  g() : pi(acos(Float(-1.0))) {}
  const Float pi;
};
struct f: field_functor<f,point> {
  point operator() (const point& x) const { return 2*sqr(pi)*_g(x); }
  f() : pi(acos(Float(-1.0))), _g() {}
  const Float pi; g _g;
};
