Hi Ralf,

On 02/02/2015 03:39 PM, Ralf Hemmecke wrote:
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 : () -> %
Actually, either way is fine, but I would somehow prefer the second
variant. The bad thing is anyway that if (as in (*)) only the name of
the function is listed, i.e., without its axioms, then it's pretty
unclear what the exact requirements of L are. So instead of listing just
the function signatures, it should be similar to the introduction of
DifferentialRing.
https://github.com/fricas/fricas/blob/master/src/algebra//catdef.spad#L269
Thanks for your comments. I've included the function descriptions along with the signatures.
Another point, is the return type of integrate_sols. Isn't it a bit
unhandy to go for Union(L, List L)?

Wouldn't List(L) or Union(L, Record(ltilde: L, r: L)) be better? Or
maybe  Record(ltilde: L, r: Union(L, failed))?
I don't know, actually. Union(L, List(L)) seemed to best fit the description of the function as mentioned in the paper. However, Union(L, Record(ltilde: L, r: L)) also seems good as it offers extra information about what the 2 elements actually mean in the latter case. So, I've changed the return type to it.
Ralf

Thanks,
Abhinav.

--
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.

Reply via email to