4 | | sage: var('x d a c b') |
5 | | (x, d, a, c, b) |
6 | | sage: integrate(sqrt(d*x^2 + e*x + c)*sqrt((b*x^2 + a)^2)/x^4,x, algorithm="giac") |
| 4 | sage: print(version()) |
| 5 | SageMath version 8.3.rc0, Release Date: 2018-07-08 |
| 6 | sage: a, b, c, d, e, x = SR.var('a b c d e x') |
| 7 | sage: F = sqrt(d*x^2 + e*x + c)*sqrt((b*x^2 + a)^2)/x^4 |
| 8 | sage: FF = integrate(F, x, algorithm='giac') |
| 12 | |
| 13 | This is fixed upstream and will be part of the next stable version of Giac. |
| 14 | |
| 15 | Another issue when using Giac for integration is the following: |
| 16 | {{{ |
| 17 | sage: print(version()) |
| 18 | SageMath version 8.3.rc0, Release Date: 2018-07-08 |
| 19 | sage: a, b, c, d, e, f, g, n, x = SR.var('a b c d e f g n x') |
| 20 | sage: G = 1/((g*x + f)^2*(b*log((e*x + d)^n*c) + a)^3) |
| 21 | sage: GG = integrate(G, x, algorithm='giac') |
| 22 | sage: GG |
| 23 | Done |
| 24 | sage: |
| 25 | }}} |
| 26 | |
| 27 | Quoting Frederic Han's comment (with minor edits): |
| 28 | |
| 29 | > this is a bug of the pexpect Giac interface that takes the string |
| 30 | > representation of the Giac output. The computation is done in Giac |
| 31 | > but when the output is large Giac just prints Done, and that is |
| 32 | > the string that the pxepect interface gets. It is not specific to |
| 33 | > integrate: it will concern all large Giac output. |
| 34 | |
| 35 | Quoting Bernard Parisse's comment: |
| 36 | |
| 37 | > The maximal size of objects that will be printed should be |
| 38 | > controllable with the environment variable `GIAC_TAILLEMAX` |
| 39 | > (default 1000). Size is not the length of the printed string, |
| 40 | > but the size of the `giac::gen` as defined in `symbolic.h`: |
| 41 | > {{{ |
| 42 | > unsigned taille(const gen & g,unsigned max); |
| 43 | > }}} |