On Sun, Jan 10, 2021 at 12:57:55PM +0100, Ralf Hemmecke wrote:
> >> It would be good to know (and best specified in the code) even if
> >> it is not intended to be visible to an enduser.
>
> > BTW2: Such details as internal representation of Liouvillian
> > functions are normally left undocumented, because documentation
> > encourages users to depend on such details and they are subject to
> > change.
>
> I usually distinguish between documentation for users (that's
> essentially what should go into the ++ docstrings) and for programmers.
> Both are important and useful. Of course, everything that is not in
> explicitly part of the API (i.e. the ++ docstring) is subject to change
> any time.
>
> > In fact, '%iint' may be gone in few years (or even months if you are
> > optimistic):
>
> I have certainly nothing against removing %iint from FriCAS users, but
> currently, without any documentation, it basically says that FriCAS
> cannot integrate that expression.
>
> So as a short term fix we have two options:
> (1) before returning a result, FriCAS checks whether it contains %iint
> and if yes, then returns "not integrable" in elementary functions.
> (2) Add a "where" expression to the result that says what the %iint
> expression stands for or (until %iint disappears in a few months)
> explain in in ++ docstrings of "integrate" (with a note that %iint
> might be gone in the future).
>
> I somewhat would prefer (2). But we should do something about %iint now.
I think both proposals are wrong. Namely, they try to hide the
bug. Hiding bugs makes sense only if bug is very disruptive
and very hard to fix. Neither is true in this case.
Otherwise hiding bugs is counterproductive: you want bugs
to be visible so that they can be found and fixed.
Variation of (1), that is signalinig internal error when
unexpected '%iint' survives 'postSubst' makes some sense.
But it adds little value (this whole discussion started
because Sage signals error) and there is some subtlety.
Namely integrator may be called from some other routine.
It is possible that caller introduces '%iint', such
'%iint' should survive integration and routine that
introduced it is supposed to remove it from final
result.
--
Waldek Hebisch
--
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 view this discussion on the web visit
https://groups.google.com/d/msgid/fricas-devel/20210110122603.GA4737%40math.uni.wroc.pl.