clicl...@freenet.de wrote:
>
> Waldek Hebisch schrieb:
> >
> >
> > A little trivia which may be of some interest: wc on Rubi files
> > gives 36417 lines (1495769 bytes). For comparison wc on FriCAS
> > integrator gives 10075 lines (400679 bytes). So, Rubi is 3.5 times
> > larger than FriCAS integrator...
> >
>
> ... but probably faster on average. And it would be still faster if the
> linear list of conditional rules were recoded into an IF-THEN-ELSE
> decision tree (actually an old idea of Albert Rich).
Averages tell only part of the story. My measurements indicate
that FriCAS could do significant part of Rubi 1 testsuite
using 4ms or less per integral. Most integrals was done below 10ms.
The average was completely dominated by a small number of long
running integrals.
It seems that three of them hit bugs:
integrate(cos(x)^2/sqrt(cos(x)^4 + cos(x)^2 + 1), x)
integrate(tan(x)*sqrt(sec(x)^3 + 1), x)
integrate(sqrt(tan(x)^2 + 2*tan(x) + 2), x)
One hits unimplemented part of Risch algorithm:
integrate(sin(x)*atan(sqrt(sec(x) - 1)), x)
AFAICS the other works, the asin(sqrt(x+1) - sqrt(x)) case
is slow (19 s on fast machine):
integrate(asin(x)*log(x), x)
(1)
+--------+ +--------+
| 2 | 2
log(2\|- x + 1 + 2) - log(- 2\|- x + 1 + 2)
+
+--------+
| 2 +--------+
x\|- x + 1 | 2
(- 2x log(x) + 2x)atan(------------) + (2log(x) - 4)\|- x + 1
2
x - 1
/
2
Type: Union(Expression(Integer),...)
integrate(x*asin(x)/sqrt(1 - x^2), x)
+--------+
+--------+ | 2
| 2 x\|- x + 1
(2) \|- x + 1 atan(------------) + x
2
x - 1
Type: Union(Expression(Integer),...)
integrate(asin(sqrt(x+1) - sqrt(x)), x)
(3)
+------------------+
+-----+ +-+ | +-+ +-----+ +-----+ +-+
(3\|x + 1 + \|x )\|2\|x \|x + 1 - 2x + (8x + 3)asin(\|x + 1 - \|x )
-----------------------------------------------------------------------
8
Type: Union(Expression(Integer),...)
integrate(log(1 + x*sqrt(1 - x^2)), x)
(4)
-
4
*
atan
2 +-+ +-+ 2 +-+
x \|2 \|3 - 2x \|2
/
+--------------------------------------------------+
| +--------+
| 2 | 2 4 +-+ 4 2
2 |(8x - 16)\|- x + 1 - 8x \|3 + 16x - 16x + 16
x |--------------------------------------------------
| 4
\| x
+
+--------+
+-+ | 2 2 +-+
- 2\|2 \|- x + 1 + (- x + 2)\|2
+
4
*
atan
2 +-+ +-+ 2 +-+
x \|2 \|3 + 2x \|2
/
+--------------------------------------------------+
| +--------+
| 2 | 2 4 +-+ 4 2
2 |(8x - 16)\|- x + 1 + 8x \|3 + 16x - 16x + 16
x |--------------------------------------------------
| 4
\| x
+
+--------+
+-+ | 2 2 +-+
- 2\|2 \|- x + 1 + (- x + 2)\|2
+
+--------+
| 2
4x log(x\|- x + 1 + 1)
+
+--------+
2 | 2 4 +-+ 4 2
+-+ (8x - 16)\|- x + 1 + 8x \|3 + 16x - 16x + 16
- \|3 log(--------------------------------------------------)
4
x
+
+--------+
2 | 2 4 +-+ 4 2
+-+ (8x - 16)\|- x + 1 - 8x \|3 + 16x - 16x + 16
\|3 log(--------------------------------------------------)
4
x
+
+-+
\|2
- 4atan(------------------------------------------)
+------------------+
| +-+ 2 +-+ +-+ +-+
2\|- 2x\|3 + 2x + 2 - \|2 \|3 + 2x\|2
+
+-+
\|2
- 4atan(----------------------------------------)
+----------------+
| +-+ 2 +-+ +-+ +-+
2\|2x\|3 + 2x + 2 + \|2 \|3 + 2x\|2
+
+-+ +-+ 2 +-+ +-+ 2
\|3 log(2x\|3 + 2x + 2) - \|3 log(- 2x\|3 + 2x + 2) - 8x
/
4
Type: Union(Expression(Integer),...)
integrate(tan(x)*sqrt(1 + tan(x)^4), x)
(5)
+-----------+
| 4 2
2log(\|tan(x) + 1 - tan(x) )
+
+-----------+
+-+ 2 +-+ | 4 4 2
+-+ (2\|2 tan(x) - 2\|2 )\|tan(x) + 1 + 3tan(x) - 2tan(x) + 3
\|2 log(--------------------------------------------------------------)
4 2
tan(x) + 2tan(x) + 1
+
+-----------+
| 4
2\|tan(x) + 1
/
4
Type: Union(Expression(Integer),...)
integrate(x^3*exp(asin(x))/sqrt(1-x^2), x)
+--------+
| 2
x\|- x + 1
- atan(------------)
+--------+ 2
2 | 2 3 x - 1
((- 3x - 3)\|- x + 1 + x + 3x)%e
(6) --------------------------------------------------------
10
Type: Union(Expression(Integer),...)
--
Waldek Hebisch
heb...@math.uni.wroc.pl