## 2453 Reputation

14 years, 48 days

## risky...

In my opinion, handling O(10^4) lines of code in the Standard GUI is a risky business. Much worst than spending 5-10 minutes scrolling down, there is a sizable probability that the worksheet itself gets corrupted provoking loss of code, as many cases posted here have shown. Meaning that I never do that. So a question: does Edit > Select All work? If so, it might be easier/safer to copy & paste all and then remove the excess. Otherwise, it might be more convenient to export to mpl format, edit there and paste back into the worksheet.

## good question...

This is exactly what I was asking myself right now! May be omission, an "efficiency" consideration, or something else, who knows? Sadly, it is something that we cannot know for sure without access to the full code documentation of this defined on-the-fly procedure (assuming that such explanation was documented).

## How it goes on...

Trying to make the story short, the radicals are denested and then converted to RootOf calls, as seen here:

```> trace(`simplify/constant`):
> trace(`simplify/RootOf`):
> expr2 := sqrt(sqrt(26)-sqrt(10))*sqrt(sqrt(26)+sqrt(10)):
> simplify(expr2);
{--> enter simplify/constant, args = 2^(1/2)*(13^(1/2)-5^(1/2))^(1/2)*(13^(1/2)
+5^(1/2))^(1/2)
...
{--> enter simplify/RootOf, args = RootOf(_Z^2-2,index = 1)*RootOf(_Z^2-RootOf(
_Z^2-13,index = 1)+RootOf(_Z^2-5,index = 1),index = 1)*(1/4*RootOf(_Z^2-RootOf(
_Z^2-13,index = 1)+RootOf(_Z^2-5,index = 1),index = 1)*RootOf(_Z^2-2,index = 1)
*RootOf(_Z^2-5,index = 1)+1/4*RootOf(_Z^2-RootOf(_Z^2-13,index = 1)+RootOf(_Z^2
-5,index = 1),index = 1)*RootOf(_Z^2-2,index = 1)*RootOf(_Z^2-13,index = 1))
...
```

Then, the builtin procedure denom called in line 5 of simplify/RootOf returns the result:

```> ex:=RootOf(_Z^2-2,index = 1)*RootOf(_Z^2-RootOf(
> _Z^2-13,index = 1)+RootOf(_Z^2-5,index = 1),index = 1)*(1/4*RootOf(_Z^2-RootOf(
> _Z^2-13,index = 1)+RootOf(_Z^2-5,index = 1),index = 1)*RootOf(_Z^2-2,index = 1)
> *RootOf(_Z^2-5,index = 1)+1/4*RootOf(_Z^2-RootOf(_Z^2-13,index = 1)+RootOf(_Z^2
> -5,index = 1),index = 1)*RootOf(_Z^2-2,index = 1)*RootOf(_Z^2-13,index = 1)):
>
> denom(ex);
4
```

## coercing...

The coercing procedure ~Matrix is builtin, so that the command `~Matrix(LL)` is shorter and should be fast. Have you made any timing comparison with the rtable statement?

## the outcome of dismantle...

I agree. The help documentation on the POLY data structure is somewhat poor. I find more informative Roman's posts made here time ago, in particular this one, as well as this paper. That item DEGREES(HW) in the outcome of dismantle stand for the word encoding total degree and exponents.

## documentation quality...

I agree with you about the problem of documentation quality. It is a problem of priorities, and in a deeper perspective a widespread cultural problem in the IT industry, Maplesoft in particular. The cartoon linked by Axel in this thread illustrates the situation.

## Maples...

Another example showing that "Maple" was not the best choice of name...

## Mathematical sets...

What is needed is a true representation of mathematical sets, besides this computational set data structure based on memory addresses.

## Gaston Gonnet...

I have counted 38 procedures copyrighted by Gaston Gonnet in the fsolve tree. So, I think that he is the best person to answer this question.

## Exactly...

Exactly, this is the big problem of playing patchwork by having different languages and features non compatible between interfaces.

## where this answer comes from...

This answer cames from the method MeijerG, check e.g. with `infolevel[IntegrationTools]:=3`.

## LaTeX and text...

I would say both, LaTeX for math and text for Maple input. Sadly, this site has taken the bad part of Stack exchange about vote competition, but not the good part about LaTeX typesetting. If this one were a well developed site, LaTeX typesetting could have associated both its LaTeX code and its Maple text input.

## The observed behavior...

No, I do not agree. Search for Pi, or execution of `?Pi` resulted until Maple 17 in the help page ?initialconstants by default, i.e. at the top of the search results, rather the lower case disambiguation help page ?pi as in Maple 18. I do expect the previous behavior, meaning that I do want case sensitive search results. Casing variations may always find room in subsequent positions of the search results.

Your pet peeve is incomplete. There are many more names that Maple Standard GUI prints as π starting with ``&pi;``.

Decisions made by management and developers building Maple or any other piece of software, and specially commercial software, have the problem of being developed in isolation, within a cultural bubble. Roughly, only after releasing they can receive user feedback, very frequently showing that assumptions made within that bubble do not hold. So, rather than learning to live with, users do have to provide feedback as complete and precise as possible about what has to be changed and improved. Sometimes pressure works :)

## pi is known...

Actually pi is known in Maple as a procedure of the numtheory package, PrimePi in Mathematica. So, actually ?pi plays the somewhat unfrequent role of a disambiguation page between an existing command and a "paternalistic" entry. There is yet another thing. There was a change in the sorting of the help database in Maple 18 wrt Maple 17 and earlier. For this particular issue, the help page ?initialconstants is at the top in Maple 17 when searching for Pi (or executing ?Pi), while the help page ?pi stands on top in Maple 18. This change might be considered  a regression bug.

## old version...

The result shown in this application, about a spurious branch cut to the left of x=Re(z)<-1 for `f(z)=(z-1)^(1/2)*(z+1)^(1/2)`, has been fixed long time ago in more recent versions of the package MathematicalFunctions. In particular, this is the result in the current Maple 18.02:

```> MathematicalFunctions:-Version();
"/opt/maple18/lib/update.mla", 2014, October 20, 21:29 hours
> f:=(z-1)^(1/2)*(z+1)^(1/2):
> F:=(z^2-1)^(1/2):
What is missing in Maple is the non naive "simplification" from `(z-1)^(1/2)*(z+1)^(1/2)` to `(z^2-1)^(1/2)*csgn(0, z, 1)`, see e.g. Reasoning about the elementary functions of complex analysis, Robert M. Corless et al, Section 4.1 (after Lemma 2).