series expansion.
Chris Dams
chrisd at sci.kun.nl
Fri Mar 26 15:56:00 CET 2004
Hello everybody,
Question: what is the output of
ex test=1+power(x,4)*sqrt(1+x*x);
cout << test.series(x==0,2) << endl;
Answer: Order(1)
Question: Why?
Answer: Because in the x-involving product order=2, degsum=4, ldegree of
the sqrt is 0, the sqrt is expanded up to order -2 and
Order(x^2)*Order(x^-2)=Order(1).
Question: What is to be done now?
Answer: Have a look at the attached patch.
Bye,
Chris Dams
-------------- next part --------------
Index: pseries.cpp
===================================================================
RCS file: /home/cvs/GiNaC/ginac/pseries.cpp,v
retrieving revision 1.75
diff -r1.75 pseries.cpp
790c790,794
< int real_ldegree = buf.expand().ldegree(sym-r.rhs());
---
> int real_ldegree = 0;
> try {
> real_ldegree = buf.expand().ldegree(sym-r.rhs());
> }
> catch (std::runtime_error) {}
802a807,812
>
> if(degsum>order)
> { epvector epv;
> epv.push_back(expair(Order(_ex1),order));
> return (new pseries(r, epv))->setflag(status_flags::dynallocated);
> }
More information about the GiNaC-devel
mailing list