
ignored. d(d(_x * _y, _x), _y)(1.0); // f(x,y)=x*y, f ''xy(x,y)=0, so here one or two argument are all OK. and it can calculate derivative for some complicated expressions. theoretically, it can calculate high derivative for a expression as high as you want until the expression become zero. I want to share it with others, but it is not so perfect now. I need some suggestion to make it better.
Take a look at Proto. http://www.boost.org/libs/proto
Good idea, and this is all very neat, but I see a couple of issues: 1) Compile times for a compile time derivative is likely to be slow? 2) Isn't it easier to just calculate the derivative within a symbolic math package and then cut and paste the result into your code (Yacas is free for example)? 3) What happens for very complex expressions? Can the compile time code simplify the resulting derivative so that it is optimally evaluated? Most symbolic math packages will have a "simplify" function that does just that, without it, code might be very inefficient to evaluate, with it, compile times might be way too long :-( Regards, John.