HvD: A weird property of Maxima screwed up the closed shell implementations of the functionals. 
HvD: A weird property of Maxima screwed up the closed shell implementations
of the functionals. 

If you define:

   f(x,y):=x*(y^(1/2));
   g(x,y):=diff(f(x,y),y);
   h(a):=g(a,a);

I would have expected that Maxima first differentiates f and then substitutes
x=a, y=a, but actually it does not. Instead it first substitutes and then
differentiates. This messed up the implementation of the closed forms of the
functionals. 

To force the correct behavior one needs to use the "at" function:

   h(a):=at(g(x,y),[x=a,y=a]);

which tells Maxima to differentiate first and then substitute. Life is always
full of surprises...





rangsimanketkaew/NWChem