* Tests for symbolic differentiation, including various functions. */
/*
- * GiNaC Copyright (C) 1999 Johannes Gutenberg University Mainz, Germany
+ * GiNaC Copyright (C) 1999-2000 Johannes Gutenberg University Mainz, Germany
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
-#include <ginac/ginac.h>
+#include "ginac.h"
+
+#ifndef NO_NAMESPACE_GINAC
using namespace GiNaC;
+#endif // ndef NO_NAMESPACE_GINAC
static unsigned check_diff(const ex &e, const symbol &x,
const ex &d, unsigned nth=1)
{
ex ed = e.diff(x, nth);
- if ((ed - d).compare(exZERO()) != 0) {
+ if ((ed - d).compare(ex(0)) != 0) {
switch (nth) {
case 0:
clog << "zeroth ";
pow(y*b+pow(y,2)*x+a,-2)*pow(y,2))*
pow(1+pow(a*x+b+y*pow(x,2),2)*pow(y*b+pow(y,2)*x+a,-2),-1);
*/
+ /*
d = pow(1+pow(a*x+b+y*pow(x,2),2)*pow(y*b+pow(y,2)*x+a,-2),-1)
*pow(y*b+pow(y,2)*x+a,-1)*(a+2*y*x)
+pow(y,2)*(-a*x-b-y*pow(x,2))*
pow(pow(y*b+pow(y,2)*x+a,2)+pow(a*x+b+y*pow(x,2),2),-1);
+ */
+ d = pow(y,2)*pow(pow(b+y*pow(x,2)+x*a,2)+pow(y*b+pow(y,2)*x+a,2),-1)*
+ (-b-y*pow(x,2)-x*a)+
+ pow(pow(b+y*pow(x,2)+x*a,2)+pow(y*b+pow(y,2)*x+a,2),-1)*
+ (y*b+pow(y,2)*x+a)*(2*y*x+a);
result += check_diff(e, x, d);
return result;
symbol x("x");
ex e, d, ed;
- e = sin(x).series(x, exZERO(), 8);
- d = cos(x).series(x, exZERO(), 7);
+ e = sin(x).series(x, 0, 8);
+ d = cos(x).series(x, 0, 7);
ed = e.diff(x);
- ed = static_cast<series *>(ed.bp)->convert_to_poly();
- d = static_cast<series *>(d.bp)->convert_to_poly();
+ ed = series_to_poly(ed);
+ d = series_to_poly(d);
- if ((ed - d).compare(exZERO()) != 0) {
+ if ((ed - d).compare(ex(0)) != 0) {
clog << "derivative of " << e << " by " << x << " returned "
<< ed << " instead of " << d << ")" << endl;
return 1;