## 729 Reputation

8 years, 158 days

## NLPSolve does not localize names?...

```v := x -> `if`(x::numeric, x^2, 'procname(args)'):
u := x -> `if`(x::numeric, x^2, 'procname(args)'):

Optimization:-NLPSolve(v(x), {-1 <= x, x <= 1});
Error, (in Optimization:-NLPSolve) unsupported type of index, HFloat(1.0)

Optimization:-NLPSolve(u(x), {-1 <= x, x <= 1});
[1.83670992315982423*10^(-40), [x = -1.35525271560688*10^(-20)]]
```

u and v are identical.

## NLPSolve is not reentrant?...

```f := proc(x, rec := true)
if rec then Optimization:-NLPSolve(2, y -> (y -~ 1/4).(y -~ 1/4), [], [<-1, -1>, <1, 1>],
maximize = false) end if;
(x -~ 1/4).(x -~ 1/4)
end proc:

fgrad := proc(x, g) g[1 .. 2] := 2*~(x -~ 1/4) end proc:

Optimization:-NLPSolve(2, f, [], [<-1, -1>, <1, 1>],
Warning, no iterations performed as initial point satisfies first-order conditions
[0.125000000000000000, Vector[column](2, [0., 0.])]

Optimization:-NLPSolve(2, x -> f(x, false), [],  [<-1, -1>, <1, 1>],
[0., Vector[column](2, [.250000000000000, .250000000000000])]
```

The inner NLPSolve doesn't do anything, except it breaks the outer NLPSolve.

## MeijerG([[1/2], []], [[], [1]], z)...

Maple
```f:= z-> MeijerG([[1/2], []], [[], [1]], z);

simplify(f(z));
0
convert(f(z), hypergeom);
0
f(.2);
Error, (in evalf/MeijerG/limit) numeric exception: division by zero

f(2.2);
-0.4721129136
```

It seems that when MeijerG is not analytic on the unit circle, simplify and convert give a result that's valid only inside the unit circle.

## Hyperbolic functions of intervals...

```ii := evalr(csch(INTERVAL(-infinity .. -1, 1 .. infinity)));
INTERVAL(-csch(1) .. 0, csch(1) .. 0)

evalr(ii-ii);
-csch(1)
```

(Make sure you don't have the Typesetting level set to Extended, or ii won't be displayed correctly.)

There are no functions to test for interval membership (or to compute intersections/unions of intervals), so it's unclear how Maple treats the interval csch(1)..0, but apparently evalr is getting tripped up by it.

Also:

```evalr(sech(INTERVAL(-infinity .. -1, 1 .. infinity)));
0

evalr(arccsch(INTERVAL(-infinity .. -1, 1 .. infinity)));
Error, (in evalr/arccsch) too many levels of recursion
```

## Product of intervals...

Maple

Here Maple treats the intervals as independent, as I think it should:

```INTERVAL(1 .. 2)+INTERVAL(1 .. 2);
INTERVAL(1 .. 2) + INTERVAL(1 .. 2)

INTERVAL(1 .. 2)-INTERVAL(1 .. 2);
INTERVAL(1 .. 2) - INTERVAL(1 .. 2)
```

(even though for the first one an autosimplification to 2*INTERVAL(1..2) wouldn't matter). But as soon as there are non-linear terms, Maple ignores that rule:

```INTERVAL(1 .. 2)^2-INTERVAL(1 .. 2)^2;
0

INTERVAL(1 .. 2)/INTERVAL(1 .. 2);
1

INTERVAL(-1 .. 1)*INTERVAL(-1 .. 1);
2
INTERVAL(-1 .. 1)
```

That means I cannot substitute intervals for variables in a formula. In fact, I don't know how INTERVAL(-1 .. 1)*INTERVAL(-1 .. 1) can be computed as a product of two independent intervals at all, there doesn't seem to be any way to pass it to evalr.

 First 6 7 8 9 10 11 12 Page 8 of 14
﻿