Abhinav Baid wrote:
>
>
> On 01/30/2015 07:47 PM, Waldek Hebisch wrote:
> > Abhinav Baid wrote:
> >> On Thursday, January 29, 2015 at 8:42:54 AM UTC+5:30, Waldek Hebisch wrote:
> >>> Abhinav Baid wrote:
> >>>
> >>> Also, I've implemented the integrate_sols procedure
> >>>> from ISSAC'97 Abramov/Hoeij paper [4] in SPAD and think that it can be
> >>>> added as an operation to the LinearOrdinaryDifferentialOperator1 domain
> >>>> [5]. I'd be glad to hear any comments on this too.
> >>> I took a quck look at it: the code looks good. We need to think
> >>> a bit where to put it.
> >>>
> >>> Another place (which, on second thought, I believe would be more apt)
> >> where the function could be added
> >> is the RationalLODE package, as it deals with LODO/LODE having rational
> >> function coefficients.
> >>
> > This one point of view. However Abramov and van Hoeij claim that
> > the method works for Ore algebras. FriCAS has quite general
> > implementation of Ore algebras, so it make sense to make
> > routine more general. ATM important ingredient, that is
> > "rational" solver is implemented only for differential operators
> > with rational coefficients, but there are methods to handle
> > operators with more general coefficients. So in the future
> > we should be able to use your routine in more general context.
> >
> Oh, the situation seems to be similar to the one in Maple. However, in
> Maple, the function is included in the diffop package. So, wouldn't it
> be better to include this in RationalLODE instead of waiting for a
> rational solver for Ore algebras?
I do not want to wait. One trick is to have a general function
which takes needed operations as parameters. So one can
have something like:
IntegrateSols(F, L) : Exports == Implementation where
F : Join(Field, CharacteristicZero, RetractableTo Integer,
RetractableTo Fraction Integer)
L : UnivariateSkewPolynomialCategory(F)
U ==> Union(F, "failed")
SF ==> (L, F) -> Record(particular : U, basis : List F)
Exports ==> with
integrate_sols : (L, L, L -> L, SF) -> Union(L, List(L))
++ integrate_sols(op, D, adjoint, rat_solve) ...
or put extra requirements on L like
L : UnivariateSkewPolynomialCategory(F) with
adjoint : % -> %
D : () -> %
Then in some other place (like RationalLODE) we can place a wrapper
which just passes extra parameters.
--
Waldek Hebisch
[email protected]
--
You received this message because you are subscribed to the Google Groups
"FriCAS - computer algebra system" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/fricas-devel.
For more options, visit https://groups.google.com/d/optout.