• radicalSolve() in FriCAS is pathetic

    From nobody@nowhere.invalid@21:1/5 to All on Thu Nov 30 12:40:33 2023
    Oh dear! In FriCAS 1.3.9 try:

    radicalSolve(64*z^4 + 64*z^3 + 32*z^2 - 8*z + 1)

    and then try:

    ii := rootOf(ii^2+1)
    factor(64*z^4 + 64*z^3 + 32*z^2 - 8*z + 1, [ii])

    to see what is wrong with radicalSolve(). (The integer quartic splits
    into gaussian-integer quadratics.)

    Also, unparse() in FriCAS refuses to convert the result from
    radicalSolve() of the type List(Equation(Expression(Integer))) back
    to InputForm. Why shouldn't this be be allowed?!? (The prettyprinted
    ASCII monster is appended below.)

    Derive 6.10 factors the integer polynomial right away as:

    FACTOR(64*z^4 + 64*z^3 + 32*z^2 - 8*z + 1, Complex)
    = 64*(z - SQRT(2)/4 + 1/4 + #i*(1/4 - SQRT(2)/4))
    *(z + SQRT(2)/4 + 1/4 + #i*(SQRT(2)/4 + 1/4))
    *(z + SQRT(2)/4 + 1/4 - #i*(SQRT(2)/4 + 1/4))
    *(z - SQRT(2)/4 + 1/4 + #i*(SQRT(2)/4 - 1/4))

    This polynomial arises in integral 5.66 (#401) from the Timofeev test
    suite:

    INT(TAN(x)/(SQRT(TAN(x)) - 1)^2, x)
    = - x/2 + 1/(1 - SQRT(TAN(x))) + 1/2*LN(COS(x))
    + LN(1 - SQRT(TAN(x)))
    + 1/SQRT(2)*LN((1 + TAN(x) + SQRT(2)*SQRT(TAN(x)))/SEC(x))
    - 1/SQRT(2)*ATAN(1 + SQRT(2)*SQRT(TAN(x)))
    + 1/SQRT(2)*ATAN(1 - SQRT(2)*SQRT(TAN(x)))
    = - x/2 + 1/(1 - SQRT(TAN(x))) + 1/2*LN(COS(x))
    + LN(1 - SQRT(TAN(x)))
    + 1/SQRT(2)*ATANH((1 + TAN(x))/(SQRT(2)*SQRT(TAN(x))))
    - 1/SQRT(2)*ATAN(1 + SQRT(2)*SQRT(TAN(x)))
    + 1/SQRT(2)*ATAN(1 - SQRT(2)*SQRT(TAN(x)))

    which was discussed in the <sci.math.symbolic> thread "Boooooooooooooooooooooooooo" from April to June 2016. Note that the
    one and only radical extension needed to express the antiderivative is
    SQRT(2).

    No doubt, radicalSolve() in FriCAS needs to be overhauled.

    Martin.

    PS: The result from radicalSolve(64*z^4 + 64*z^3 + 32*z^2 - 8*z + 1) in
    FriCAS 1.3.9 is:

    [
    z
    =
    -
    +--+
    \|13
    *
    ROOT
    +------------------+2
    +-+ +---+ 3| +---+ +-+
    (68 \|3 - 18 \|- 1 )\|18 \|- 1 \|3 + 35
    +
    +------------------+
    +-+ +---+ 3| +---+
    +-+ +-+
    (208 \|3 - 234 \|- 1 )\|18 \|- 1 \|3 + 35 -
    676 \|3
    *
    ROOT
    +------------------+2
    +---+ +-+ 3| +---+ +-+
    (- 18 \|- 1 \|3 + 35)\|18 \|- 1 \|3 + 35
    +
    +------------------+
    3| +---+ +-+
    169 \|18 \|- 1 \|3 + 35 - 169
    +
    +------------------+2
    +---+ +-+ 3| +---+ +-+
    (702 \|- 1 \|3 - 1365)\|18 \|- 1 \|3 + 35
    +
    +------------------+
    3| +---+ +-+
    - 6591 \|18 \|- 1 \|3 + 35 - 13182
    +
    +-+
    13 \|3
    *
    ROOT
    +------------------+2
    +---+ +-+ 3| +---+ +-+
    (- 18 \|- 1 \|3 + 35)\|18 \|- 1 \|3 + 35
    +
    +------------------+
    3| +---+ +-+
    169 \|18 \|- 1 \|3 + 35 - 169
    +
    - 507
    /
    2028
    ,

    z
    =
    +--+
    \|13
    *
    ROOT
    +------------------+2
    +-+ +---+ 3| +---+ +-+
    (68 \|3 - 18 \|- 1 )\|18 \|- 1 \|3 + 35
    +
    +------------------+
    +-+ +---+ 3| +---+
    +-+ +-+
    (208 \|3 - 234 \|- 1 )\|18 \|- 1 \|3 + 35 - 676
    \|3
    *
    ROOT
    +------------------+2
    +---+ +-+ 3| +---+ +-+
    (- 18 \|- 1 \|3 + 35)\|18 \|- 1 \|3 + 35
    +
    +------------------+
    3| +---+ +-+
    169 \|18 \|- 1 \|3 + 35 - 169
    +
    +------------------+2
    +---+ +-+ 3| +---+ +-+
    (702 \|- 1 \|3 - 1365)\|18 \|- 1 \|3 + 35
    +
    +------------------+
    3| +---+ +-+
    - 6591 \|18 \|- 1 \|3 + 35 - 13182
    +
    +-+
    13 \|3
    *
    ROOT
    +------------------+2
    +---+ +-+ 3| +---+ +-+
    (- 18 \|- 1 \|3 + 35)\|18 \|- 1 \|3 + 35
    +
    +------------------+
    3| +---+ +-+
    169 \|18 \|- 1 \|3 + 35 - 169
    +
    - 507
    /
    2028
    ,

    z
    =
    -
    +--+
    \|13
    *
    ROOT
    +------------------+2
    +-+ +---+ 3| +---+ +-+
    (- 68 \|3 + 18 \|- 1 )\|18 \|- 1 \|3 + 35
    +
    +------------------+
    +-+ +---+ 3| +---+
    +-+ +-+
    (- 208 \|3 + 234 \|- 1 )\|18 \|- 1 \|3 + 35 +
    676 \|3
    *
    ROOT
    +------------------+2
    +---+ +-+ 3| +---+ +-+
    (- 18 \|- 1 \|3 + 35)\|18 \|- 1 \|3 + 35
    +
    +------------------+
    3| +---+ +-+
    169 \|18 \|- 1 \|3 + 35 - 169
    +
    +------------------+2
    +---+ +-+ 3| +---+ +-+
    (702 \|- 1 \|3 - 1365)\|18 \|- 1 \|3 + 35
    +
    +------------------+
    3| +---+ +-+
    - 6591 \|18 \|- 1 \|3 + 35 - 13182
    +
    -
    +-+
    13 \|3
    *
    ROOT
    +------------------+2
    +---+ +-+ 3| +---+ +-+
    (- 18 \|- 1 \|3 + 35)\|18 \|- 1 \|3 + 35
    +
    +------------------+
    3| +---+ +-+
    169 \|18 \|- 1 \|3 + 35 - 169
    +
    - 507
    /
    2028
    ,

    z
    =
    +--+
    \|13
    *
    ROOT
    +------------------+2
    +-+ +---+ 3| +---+ +-+
    (- 68 \|3 + 18 \|- 1 )\|18 \|- 1 \|3 + 35
    +
    +------------------+
    +-+ +---+ 3| +---+
    +-+ +-+
    (- 208 \|3 + 234 \|- 1 )\|18 \|- 1 \|3 + 35 +
    676 \|3
    *
    ROOT
    +------------------+2
    +---+ +-+ 3| +---+ +-+
    (- 18 \|- 1 \|3 + 35)\|18 \|- 1 \|3 + 35
    +
    +------------------+
    3| +---+ +-+
    169 \|18 \|- 1 \|3 + 35 - 169
    +
    +------------------+2
    +---+ +-+ 3| +---+ +-+
    (702 \|- 1 \|3 - 1365)\|18 \|- 1 \|3 + 35
    +
    +------------------+
    3| +---+ +-+
    - 6591 \|18 \|- 1 \|3 + 35 - 13182
    +
    -
    +-+
    13 \|3
    *
    ROOT
    +------------------+2
    +---+ +-+ 3| +---+ +-+
    (- 18 \|- 1 \|3 + 35)\|18 \|- 1 \|3 + 35
    +
    +------------------+
    3| +---+ +-+
    169 \|18 \|- 1 \|3 + 35 - 169
    +
    - 507
    /
    2028
    ]

    Type: List(Equation(Expression(Integer)))

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From nobody@nowhere.invalid@21:1/5 to clicliclic@freenet.de on Thu Dec 21 18:16:17 2023
    "clicliclic@freenet.de" schrieb:

    Oh dear! In FriCAS 1.3.9 try:

    radicalSolve(64*z^4 + 64*z^3 + 32*z^2 - 8*z + 1)

    and then try:

    ii := rootOf(ii^2+1)
    factor(64*z^4 + 64*z^3 + 32*z^2 - 8*z + 1, [ii])

    to see what is wrong with radicalSolve(). (The integer quartic splits
    into gaussian-integer quadratics.)

    Also, unparse() in FriCAS refuses to convert the result from
    radicalSolve() of the type List(Equation(Expression(Integer))) back
    to InputForm. Why shouldn't this be be allowed?!? (The prettyprinted
    ASCII monster is appended below.)

    Derive 6.10 factors the integer polynomial right away as:

    FACTOR(64*z^4 + 64*z^3 + 32*z^2 - 8*z + 1, Complex)
    = 64*(z - SQRT(2)/4 + 1/4 + #i*(1/4 - SQRT(2)/4))
    *(z + SQRT(2)/4 + 1/4 + #i*(SQRT(2)/4 + 1/4))
    *(z + SQRT(2)/4 + 1/4 - #i*(SQRT(2)/4 + 1/4))
    *(z - SQRT(2)/4 + 1/4 + #i*(SQRT(2)/4 - 1/4))

    This polynomial arises in integral 5.66 (#401) from the Timofeev test
    suite:

    INT(TAN(x)/(SQRT(TAN(x)) - 1)^2, x)
    = - x/2 + 1/(1 - SQRT(TAN(x))) + 1/2*LN(COS(x))
    + LN(1 - SQRT(TAN(x)))
    + 1/SQRT(2)*LN((1 + TAN(x) + SQRT(2)*SQRT(TAN(x)))/SEC(x))
    - 1/SQRT(2)*ATAN(1 + SQRT(2)*SQRT(TAN(x)))
    + 1/SQRT(2)*ATAN(1 - SQRT(2)*SQRT(TAN(x)))
    = - x/2 + 1/(1 - SQRT(TAN(x))) + 1/2*LN(COS(x))
    + LN(1 - SQRT(TAN(x)))
    + 1/SQRT(2)*ATANH((1 + TAN(x))/(SQRT(2)*SQRT(TAN(x))))
    - 1/SQRT(2)*ATAN(1 + SQRT(2)*SQRT(TAN(x)))
    + 1/SQRT(2)*ATAN(1 - SQRT(2)*SQRT(TAN(x)))

    which was discussed in the <sci.math.symbolic> thread "Boooooooooooooooooooooooooo" from April to June 2016. Note that the
    one and only radical extension needed to express the antiderivative is SQRT(2).

    No doubt, radicalSolve() in FriCAS needs to be overhauled.


    According to old notes of mine, a simple way to split any suitable
    quartic:

    a + b*x + c*x^2 + d*x^3 + e*x^4

    into quadratics is by factorizing its resolvent:

    4*a*c*e - a*d^2 - b^2*e + e*(b*d - 4*a*e)*y - c*e^2*y^2 + e^3*y^3

    and expressing the quadratics in terms of any one resolvent root y as:

    1/(4*e)*(e*y - e*(d*y - 2*b)/SQRT(d^2 + 4*e*(e*y - c))
    + (d - SQRT(d^2 + 4*e*(e*y - c)))*x + 2*e*x^2)
    *(e*y + e*(d*y - 2*b)/SQRT(d^2 + 4*e*(e*y - c))
    + (d + SQRT(d^2 + 4*e*(e*y - c)))*x + 2*e*x^2)

    which applies if d^2 + 4*e*(e*y - c) /= 0 and doesn't involve a, or as:

    1/(4*e)*(e*y - SQRT(e*(e*y^2 - 4*a))
    + (d - e*(d*y - 2*b)/SQRT(e*(e*y^2 - 4*a)))*x + 2*e*x^2)
    *(e*y + SQRT(e*(e*y^2 - 4*a))
    + (d + e*(d*y - 2*b)/SQRT(e*(e*y^2 - 4*a)))*x + 2*e*x^2)

    which applies if e*y^2 - 4*a /= 0 and doesn't involve c. For d^2 +
    4*e*(e*y - c) = 0 one can use:

    1/(4*e)*(e*y - SQRT(e*(e*y^2 - 4*a)) + d*x + 2*e*x^2)
    *(e*y + SQRT(e*(e*y^2 - 4*a)) + d*x + 2*e*x^2)

    while for e*y^2 - 4*a = 0 one finds:

    1/(4*e)*(e*y + (d - SQRT(d^2 + 4*e*(e*y - c)))*x + 2*e*x^2)
    *(e*y + (d + SQRT(d^2 + 4*e*(e*y - c)))*x + 2*e*x^2)

    As no cube roots can appear, this way of splitting a quartic is
    advantageous whenever its resolvent possesses at least one rational
    root. Indeed, the resolvent of 64*z^4 + 64*z^3 + 32*z^2 - 8*z + 1
    simply is:

    (4*y - 3)*(4*y + 1)*y

    Using all three resolvent roots in turn yields three different ways of splitting the quartic; if the quartic is real, at least one pair of
    factors is real as well.

    Martin.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From nobody@nowhere.invalid@21:1/5 to clicliclic@freenet.de on Thu Jan 11 13:13:03 2024
    "clicliclic@freenet.de" schrieb:

    "clicliclic@freenet.de" schrieb:

    Oh dear! In FriCAS 1.3.9 try:

    radicalSolve(64*z^4 + 64*z^3 + 32*z^2 - 8*z + 1)

    and then try:

    ii := rootOf(ii^2+1)
    factor(64*z^4 + 64*z^3 + 32*z^2 - 8*z + 1, [ii])

    to see what is wrong with radicalSolve(). (The integer quartic
    splits into gaussian-integer quadratics.)

    Also, unparse() in FriCAS refuses to convert the result from
    radicalSolve() of the type List(Equation(Expression(Integer))) back
    to InputForm. Why shouldn't this be be allowed?!? (The prettyprinted
    ASCII monster is appended below.)

    Derive 6.10 factors the integer polynomial right away as:

    FACTOR(64*z^4 + 64*z^3 + 32*z^2 - 8*z + 1, Complex)
    = 64*(z - SQRT(2)/4 + 1/4 + #i*(1/4 - SQRT(2)/4))
    *(z + SQRT(2)/4 + 1/4 + #i*(SQRT(2)/4 + 1/4))
    *(z + SQRT(2)/4 + 1/4 - #i*(SQRT(2)/4 + 1/4))
    *(z - SQRT(2)/4 + 1/4 + #i*(SQRT(2)/4 - 1/4))

    This polynomial arises in integral 5.66 (#401) from the Timofeev
    test suite:

    INT(TAN(x)/(SQRT(TAN(x)) - 1)^2, x)
    = - x/2 + 1/(1 - SQRT(TAN(x))) + 1/2*LN(COS(x))
    + LN(1 - SQRT(TAN(x)))
    + 1/SQRT(2)*LN((1 + TAN(x) + SQRT(2)*SQRT(TAN(x)))/SEC(x))
    - 1/SQRT(2)*ATAN(1 + SQRT(2)*SQRT(TAN(x)))
    + 1/SQRT(2)*ATAN(1 - SQRT(2)*SQRT(TAN(x)))
    = - x/2 + 1/(1 - SQRT(TAN(x))) + 1/2*LN(COS(x))
    + LN(1 - SQRT(TAN(x)))
    + 1/SQRT(2)*ATANH((1 + TAN(x))/(SQRT(2)*SQRT(TAN(x))))
    - 1/SQRT(2)*ATAN(1 + SQRT(2)*SQRT(TAN(x)))
    + 1/SQRT(2)*ATAN(1 - SQRT(2)*SQRT(TAN(x)))

    which was discussed in the <sci.math.symbolic> thread "Boooooooooooooooooooooooooo" from April to June 2016. Note that the
    one and only radical extension needed to express the antiderivative
    is SQRT(2).

    No doubt, radicalSolve() in FriCAS needs to be overhauled.


    According to old notes of mine, a simple way to split any suitable
    quartic:

    a + b*x + c*x^2 + d*x^3 + e*x^4

    into quadratics is by factorizing its resolvent:

    4*a*c*e - a*d^2 - b^2*e + e*(b*d - 4*a*e)*y - c*e^2*y^2 + e^3*y^3

    and expressing the quadratics in terms of any one resolvent root y as:

    1/(4*e)*(e*y - e*(d*y - 2*b)/SQRT(d^2 + 4*e*(e*y - c))
    + (d - SQRT(d^2 + 4*e*(e*y - c)))*x + 2*e*x^2)
    *(e*y + e*(d*y - 2*b)/SQRT(d^2 + 4*e*(e*y - c))
    + (d + SQRT(d^2 + 4*e*(e*y - c)))*x + 2*e*x^2)

    which applies if d^2 + 4*e*(e*y - c) /= 0 and doesn't involve a, or
    as:

    1/(4*e)*(e*y - SQRT(e*(e*y^2 - 4*a))
    + (d - e*(d*y - 2*b)/SQRT(e*(e*y^2 - 4*a)))*x + 2*e*x^2)
    *(e*y + SQRT(e*(e*y^2 - 4*a))
    + (d + e*(d*y - 2*b)/SQRT(e*(e*y^2 - 4*a)))*x + 2*e*x^2)

    which applies if e*y^2 - 4*a /= 0 and doesn't involve c. For d^2 +
    4*e*(e*y - c) = 0 one can use:

    1/(4*e)*(e*y - SQRT(e*(e*y^2 - 4*a)) + d*x + 2*e*x^2)
    *(e*y + SQRT(e*(e*y^2 - 4*a)) + d*x + 2*e*x^2)

    while for e*y^2 - 4*a = 0 one finds:

    1/(4*e)*(e*y + (d - SQRT(d^2 + 4*e*(e*y - c)))*x + 2*e*x^2)
    *(e*y + (d + SQRT(d^2 + 4*e*(e*y - c)))*x + 2*e*x^2)

    As no cube roots can appear, this way of splitting a quartic is
    advantageous whenever its resolvent possesses at least one rational
    root. Indeed, the resolvent of 64*z^4 + 64*z^3 + 32*z^2 - 8*z + 1
    simply is:

    (4*y - 3)*(4*y + 1)*y

    Using all three resolvent roots in turn yields three different ways of splitting the quartic; if the quartic is real, at least one pair of
    factors is real as well.


    In version 3.1.10 of FriCAS, unparse() can convert the result from radicalSolve() of the type List(Equation(Expression(Integer))) back
    to InputForm:

    radicalSolve(64*z^4 + 64*z^3 + 32*z^2 - 8*z + 1)

    [equation(z,((-1)*(((((-18)*((-1)/3)^(1/2)+68)*((54*((-1)/3)^(1/2)+35)^(1/3))^2+((-234)*((-1)/3)^(1/2)+208)*(54*((-1)/3)^(1/2)+35)^(1/3)+(-676))*((((-54)*((-1)/3)^(1/2)+35)*((54*((-1)/3)^(1/2)+35)^(1/3))^2+169*(54*((-1)/3)^(1/2)+35)^(1/3)+(-169))/3)^(1/2)
    +((702*((-1)/3)^(1/2)+(-455))*((54*((-1)/3)^(1/2)+35)^(1/3))^2+(-2197)*(54*((-1)/3)^(1/2)+35)^(1/3)+(-4394)))/39)^(1/2)+(((((-54)*((-1)/3)^(1/2)+35)*((54*((-1)/3)^(1/2)+35)^(1/3))^2+169*(54*((-1)/3)^(1/2)+35)^(1/3)+(-169))/3)^(1/2)+(-13)))/52),equation(z,
    ((((((-18)*((-1)/3)^(1/2)+68)*((54*((-1)/3)^(1/2)+35)^(1/3))^2+((-234)*((-1)/3)^(1/2)+208)*(54*((-1)/3)^(1/2)+35)^(1/3)+(-676))*((((-54)*((-1)/3)^(1/2)+35)*((54*((-1)/3)^(1/2)+35)^(1/3))^2+169*(54*((-1)/3)^(1/2)+35)^(1/3)+(-169))/3)^(1/2)+((702*((-1)/3)^(
    1/2)+(-455))*((54*((-1)/3)^(1/2)+35)^(1/3))^2+(-2197)*(54*((-1)/3)^(1/2)+35)^(1/3)+(-4394)))/39)^(1/2)+(((((-54)*((-1)/3)^(1/2)+35)*((54*((-1)/3)^(1/2)+35)^(1/3))^2+169*(54*((-1)/3)^(1/2)+35)^(1/3)+(-169))/3)^(1/2)+(-13)))/52),equation(z,((-1)*((((18*((-
    1)/3)^(1/2)+(-68))*((54*((-1)/3)^(1/2)+35)^(1/3))^2+(234*((-1)/3)^(1/2)+(-208))*(54*((-1)/3)^(1/2)+35)^(1/3)+676)*((((-54)*((-1)/3)^(1/2)+35)*((54*((-1)/3)^(1/2)+35)^(1/3))^2+169*(54*((-1)/3)^(1/2)+35)^(1/3)+(-169))/3)^(1/2)+((702*((-1)/3)^(1/2)+(-455))*(
    (54*((-1)/3)^(1/2)+35)^(1/3))^2+(-2197)*(54*((-1)/3)^(1/2)+35)^(1/3)+(-4394)))/39)^(1/2)+((-1)*((((-54)*((-1)/3)^(1/2)+35)*((54*((-1)/3)^(1/2)+35)^(1/3))^2+169*(54*((-1)/3)^(1/2)+35)^(1/3)+(-169))/3)^(1/2)+(-13)))/52),equation(z,(((((18*((-1)/3)^(1/2)+(-
    68))*((54*((-1)/3)^(1/2)+35)^(1/3))^2+(234*((-1)/3)^(1/2)+(-208))*(54*((-1)/3)^(1/2)+35)^(1/3)+676)*((((-54)*((-1)/3)^(1/2)+35)*((54*((-1)/3)^(1/2)+35)^(1/3))^2+169*(54*((-1)/3)^(1/2)+35)^(1/3)+(-169))/3)^(1/2)+((702*((-1)/3)^(1/2)+(-455))*((54*((-1)/3)^(
    1/2)+35)^(1/3))^2+(-2197)*(54*((-1)/3)^(1/2)+35)^(1/3)+(-4394)))/39)^(1/2)+((-1)*((((-54)*((-1)/3)^(1/2)+35)*((54*((-1)/3)^(1/2)+35)^(1/3))^2+169*(54*((-1)/3)^(1/2)+35)^(1/3)+(-169))/3)^(1/2)+(-13)))/52)]

    but the result involves unnecessary cube roots as before.

    Martin.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From nobody@nowhere.invalid@21:1/5 to clicliclic@freenet.de on Sat Jan 27 18:01:27 2024
    "clicliclic@freenet.de" schrieb:

    [...]

    This polynomial arises in integral 5.66 (#401) from the Timofeev test
    suite:

    INT(TAN(x)/(SQRT(TAN(x)) - 1)^2, x)
    = - x/2 + 1/(1 - SQRT(TAN(x))) + 1/2*LN(COS(x))
    + LN(1 - SQRT(TAN(x)))
    + 1/SQRT(2)*LN((1 + TAN(x) + SQRT(2)*SQRT(TAN(x)))/SEC(x))
    - 1/SQRT(2)*ATAN(1 + SQRT(2)*SQRT(TAN(x)))
    + 1/SQRT(2)*ATAN(1 - SQRT(2)*SQRT(TAN(x)))
    = - x/2 + 1/(1 - SQRT(TAN(x))) + 1/2*LN(COS(x))
    + LN(1 - SQRT(TAN(x)))
    + 1/SQRT(2)*ATANH((1 + TAN(x))/(SQRT(2)*SQRT(TAN(x))))
    - 1/SQRT(2)*ATAN(1 + SQRT(2)*SQRT(TAN(x)))
    + 1/SQRT(2)*ATAN(1 - SQRT(2)*SQRT(TAN(x)))

    which was discussed in the <sci.math.symbolic> thread "Boooooooooooooooooooooooooo" from April to June 2016. Note that the
    one and only radical extension needed to express the antiderivative is SQRT(2).


    In version 3.1.10 of FriCAS, the integral:

    integrate(tan(x)/(sqrt(tan(x)) - 1)^2, x)

    evaluates to:

    (((2^(1/2)+(-1))*tan(x)+((-1)*2^(1/2)+1))*log(2^(1/2)*tan(x)^(1/2)+(tan(x)+1))+((4*tan(x)+(-4))*log(tan(x)^(1/2)+(-1))+((((-1)*2^(1/2)+(-1))*tan(x)+(2^(1/2)+1))*log((-1)*2^(1/2)*tan(x)^(1/2)+(tan(x)+1))+((((-2)*2^(1/2)+2)*tan(x)+(2*2^(1/2)+(-2)))*atan(2^(
    1/2)*tan(x)^(1/2)+1)+((((-2)*2^(1/2)+(-2))*tan(x)+(2*2^(1/2)+2))*atan(2^(1/2)*tan(x)^(1/2)+(-1))+((-4)*tan(x)^(1/2)+(-4)))))))/(4*tan(x)+(-4))

    which can be restated as:

    (SQRT(TAN(x)) + 1)/(1 - TAN(x)) + LN(SQRT(TAN(x)) - 1)
    + (SQRT(2) - 1)/4*LN(TAN(x) + SQRT(2)*SQRT(TAN(x)) + 1)
    - (SQRT(2) + 1)/4*LN(TAN(x) - SQRT(2)*SQRT(TAN(x)) + 1)
    - (SQRT(2) - 1)/2*ATAN(SQRT(2)*SQRT(TAN(x)) + 1)
    - (SQRT(2) + 1)/2*ATAN(SQRT(2)*SQRT(TAN(x)) - 1)

    and thus constitutes an interesting alternative to the solutions above.

    Martin.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)