#include using namespace blitz; using namespace blitz::tensor; struct C1 { double f(double x) const { return x*x; } BZ_DECLARE_MEMBER_FUNCTION(C1,f) }; struct C2 { double f(double x) const { return sqrt(x); } BZ_DECLARE_MEMBER_FUNCTION(C2,f) }; int main() { int ii; const int N=314; Array A(N,N); A = i * 0.5 + j; C1 c1; C2 c2; for (ii=0; ii<10000; ++ii) A = c2.f(c1.f(A)); return 0; }