Re: [fricas-devel] Re: [BUG] another case of falsely claim an integral is not integrable

2020-12-05 Thread Qian Yun




On 12/5/20 11:26 PM, Waldek Hebisch wrote:

On Sat, Dec 05, 2020 at 09:06:22PM +0800, oldk1331 wrote:

Almost sure it is bug when adding new kernel in cache, in function
"enterInCache".


ATM our handling of kernel cache is unsound.  Basicaly, kernel
cache assumes order and in fact there are no consistent order
on kernels.


Can you share more details about this?

Still, it shocks me a little that we trade correctness for speed...


Currently, IMO correct direction is to limit creation of
new kernel and better detect cases when we already created
needed kernel.  This in necessary to avoid other bugs
and with limiting creation of kernels using linear
search will be less problematic.


I agree. "trigs2explogs" would be a good place to start
limiting creation of kernels.

Also, does that mean we will move to linear search in
the future?


On Fri, Dec 4, 2020, 6:11 PM Qian Yun  wrote:



If we replace
  gg := eval(gg0, tgg0, tgg1)
in integrat.spad with
  gg := trigs2explogs(gg0, [])
then this bug disappears.  But I'm still not clear about the
root cause of this bug.


Have you tried 'subst' instead of 'eval'?  'subst' is dumber
and hence ususaly safer than 'eval'.



I tried using "subst" instead of "eval", doesn't solve this bug.

--
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 fricas-devel+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/fricas-devel/093b937f-77e8-b40a-3e46-2f5178bba028%40gmail.com.


Re: [fricas-devel] Re: [BUG] another case of falsely claim an integral is not integrable

2020-12-05 Thread Waldek Hebisch
On Sat, Dec 05, 2020 at 09:06:22PM +0800, oldk1331 wrote:
> Almost sure it is bug when adding new kernel in cache, in function
> "enterInCache".

ATM our handling of kernel cache is unsound.  Basicaly, kernel
cache assumes order and in fact there are no consistent order
on kernels.  Many problems would go away if we would switch
to linear search for kernels (awoiding use of order).  But
that would slow down unormously routines making heavy
use of kernels (mainly series expansion and limits).  And
some problem would remains.

Currently, IMO correct direction is to limit creation of
new kernel and better detect cases when we already created
needed kernel.  This in necessary to avoid other bugs
and with limiting creation of kernels using linear
search will be less problematic.

One recuring problem is that expression routines try to
be smart and perform various simplifications.  In integrator
we need full control of kernels and _any_ kernel trasformation
without explicit request from integrator is a bug.  In
cases where integrator depended on some behind the scene
kernel manipulations in other routines we need to make
sure that integrator still have sufficient control.  This
may require creating new versions of auxiliary routines.
Let me add that large part of 'integrat.spad' is a quick
hack to mitigate some bad effects of transformations in
other routines.  This should be replaced by new routine...

> 
> On Fri, Dec 4, 2020, 6:11 PM Qian Yun  wrote:
> 
> >
> > If we replace
> >  gg := eval(gg0, tgg0, tgg1)
> > in integrat.spad with
> >  gg := trigs2explogs(gg0, [])
> > then this bug disappears.  But I'm still not clear about the
> > root cause of this bug.

Have you tried 'subst' instead of 'eval'?  'subst' is dumber
and hence ususaly safer than 'eval'.

-- 
  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 fricas-devel+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/fricas-devel/20201205152658.GA14442%40math.uni.wroc.pl.


[fricas-devel] Re: [BUG] another case of falsely claim an integral is not integrable

2020-12-05 Thread oldk1331
Almost sure it is bug when adding new kernel in cache, in function
"enterInCache".

On Fri, Dec 4, 2020, 6:11 PM Qian Yun  wrote:

>
> > Tracing shows the computation diverge at "extendedEuclidean" in
> > "normalHermiteIntegrate" of TranscendentalHermiteIntegration in
> > intrf.spad.
>
> The reason that "extendedEuclidean" gives wrong result is that
> something wrong happened earlier: there are expressions with
> the same appearance but have different kernel underneath.
>
> The creation of different kernels happens at "trigs2explogs"
> in "integrate" in integrat.spad.
>
> The definition of "trigs2explogs" seems alright, still it's
> unknown why the same input may produce different kernels.
>
> If we replace
>  gg := eval(gg0, tgg0, tgg1)
> in integrat.spad with
>  gg := trigs2explogs(gg0, [])
> then this bug disappears.  But I'm still not clear about the
> root cause of this bug.
>

-- 
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 fricas-devel+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/fricas-devel/CAGBJN91tvF4HV_qW4sVmkVSFptdqqjQHpDiHC%3DDeaXqY2bJXpA%40mail.gmail.com.