Dear developers, I have been using the Ginac library for some of my hobby programs now and I believe a generic C++ CAS would be very valuable. I have grown interest in symbolic integration and tried implementing polynomial factorization, it seems quite hard to do efficiently, but doable. I have even bought the book mentioned in the todo list (the second edition). Altough I have just began to read it the book mentions that some recent algorithms for trancedental integration do not require polynomial factorization. So I would like to try and implement one of these algo's. My question is, what are your thoughts on how to implement integration in a nice fashion? I tought about implementing some kind of antiderivative operator wich can be used in expressions and gives the indefinite integral. The reason I preffer operators to member function is that it allows unsolvable integrals to remain in the equation and still be numerically evaluable. In this fashion I would like to create a differential operator so ODE's and PDE's can be expressed in Ginac and numerically solved. The hobby program I am trying to make should become a generic numerical integrator for arbitrary PDE's by dynamicaly generating code. I already have a class that converts an expression to its Chebyshev-Pade approximation, compiles it to double arithmetic and dynamicly links it in. So gentleman, what are your thoughts? Sincerely, R. Bloemen
Beste Remco,
My question is, what are your thoughts on how to implement integration in a nice fashion? I tought about implementing some kind of antiderivative operator wich can be used in expressions and gives the indefinite integral. The reason I preffer operators to member function is that it allows unsolvable integrals to remain in the equation and still be numerically evaluable. In this fashion I would like to create a differential operator so ODE's and PDE's can be expressed in Ginac and numerically solved.
There is already a class "integral" in GiNaC, as you may know. This class contains a left and a right boundary, so it is not immediately suitable for representing an indefinite integral, but I think it could be made suitable. Instead of holding a left and a right boundary, it could hold a more general "integration_region" object that should be in a certain state in the case of an indefinite integral or in another state representing an interval. The advantage is that this way it is not necessary to introduce a new class for a different kind of integral. Veel succes! Chris
participants (2)
-
Chris.Dams@mi.infn.it
-
Remco Bloemen