Alejandro Jakubi

MaplePrimes Activity


These are replies submitted by Alejandro Jakubi

@Robert Israel 

In a sense yes. I was using Maple 15.01 kernel and interface with 14.01 library in the last couple of days...

It turned out an ini file, copied from M14 to 15, and not properly changed. Thank you for making me check. After correcting it, I get the same results as you.

Indeed, in Maple 15.01 a call to LinearAlgebra:-Multiply, without option _fromdot, executes `.` and falls into the bug, as its code shows:

showstat(LinearAlgebra:-Multiply,1..3);
LinearAlgebra:-Multiply := overload( [
proc( A::Matrix, B::Matrix, _fromdot::truefalse := false, inplace::truefalse := false, outputoptions::list := [])
local aRow, C, DatatypeA, DatatypeB, DatatypeMix, DatatypeOut, DT, IndexFnA, IndexFnB, IndexFnOut, localA, localB, nrowsA, ncolsA, nrowsB, ncolsB, OrderA, OrderB, OO, RO, row, StorageA, StorageB, StorageOut, typeA, typeB;
   1   if not (_fromdot or inplace) and outputoptions = [] and _rest = NULL then
   2     try
   3       return A . B
         catch :
           ...

Nevertheles, it was an interesting, though unintended, experiment. In particular, it reinforces the case that this bug lays in the kernel.

For me, in Maple 15.01 LinearAlgebra:-Multiply(A,B) works fine in a reproducible way. Moreover, I do not see the option _fromdot in the code. I get for the relevant line:

showstat(`.`,1..3);
`.` := proc()
local s, t, i, const, const1, f, hasrtable, b1, b2;
   1   if nargs = 2 and type([args],['rtable', 'rtable']) then
   2     try
   3       return LinearAlgebra:-Multiply(args)
         catch :
           ...
         end try
         ...
       end if;
       ...
end proc

Actually, I get an error for such option:

LinearAlgebra:-Multiply(A,B,_fromdot);
Error, (in LinearAlgebra:-Multiply) invalid output option: _fromdot

So, I do not know the origin of the difference in your results

Indeed, as I have shown in the tracing above, Maple 14.01 executes two stages of code for `.`: a kernel one (execute .) and a library one (--> enter .), while Maple 15.01 executes only the kernel stage, where the new bug is located.

Maple has three user interfaces, two graphic ones: Classic and Standard, and a command line one. Indeed, Ctrl + F6 does not work in Standard GUI. You can use instead Ctrl + Tab for switching tabs.

Maple has three user interfaces, two graphic ones: Classic and Standard, and a command line one. Indeed, Ctrl + F6 does not work in Standard GUI. You can use instead Ctrl + Tab for switching tabs.

Actually the bug seems to occur in the dot operator. Compare tracing of the first case in Maple 14.01 vs 15.01:

#Maple 14.01
trace(`.`):
A:= Matrix(3,2,symbol=a, shape=diagonal):
B:= Matrix(2,2,symbol=b):
A . B;
execute ., args = Matrix(3, 2, [[...],[...],[...]], datatype = anything, storage = diagonal,
shape = [diagonal]), Matrix(2, 2, [[...],[...]], datatype = anything)
{--> enter ., args = Matrix(3, 2, [[...],[...],[...]], datatype = anything, storage = diagonal,
shape = [diagonal]), Matrix(2, 2, [[...],[...]], datatype = anything)

                 [a[1, 1] b[1, 1]    a[1, 1] b[1, 2]]
                 [                                  ]
                 [a[2, 2] b[2, 1]    a[2, 2] b[2, 2]]
                 [                                  ]
                 [       0                  0       ]

#Maple 15.01
trace(`.`):
A:= Matrix(3,2,symbol=a, shape=diagonal):
B:= Matrix(2,2,symbol=b):
A . B;
execute ., args = Matrix(3, 2, [[...],[...],[...]], datatype = anything, storage = diagonal,
shape = [diagonal]), Matrix(2, 2, [[...],[...]], datatype = anything)

                 [a[1, 1] b[1, 1]    a[2, 2] b[2, 2]]
                 [                                  ]
                 [a[2, 2] b[2, 1]           0       ]
                 [                                  ]
                 [a[1, 1] b[1, 2]           0       ]

 

As, in Maple 15.01, the computation does not enter the procedure `.`, which calls LinearAlgebra:-Multiply, a workaround is using directly LinearAlgebra:-Multiply:

LinearAlgebra:-Multiply(A,B);
                 [a[1, 1] b[1, 1]    a[1, 1] b[1, 2]]
                 [                                  ]
                 [a[2, 2] b[2, 1]    a[2, 2] b[2, 2]]
                 [                                  ]
                 [       0                  0       ]

LinearAlgebra:-Multiply(A,C);
       [a[1, 1] c[1, 1]    a[1, 1] c[1, 2]    a[1, 1] c[1, 3]]
       [                                                     ]
       [a[2, 2] c[2, 1]    a[2, 2] c[2, 2]    a[2, 2] c[2, 3]]

It comes out, on the one hand, because of executing a with(VectorCalculus) statement. One of its consequences is that aritmetic operators get overloaded by VectorCalculus versions. And on the other hand, because of what many users (including me) consider a bug in the GUI in displaying them, and as such was reported long time ago.

It would be nicer if you edit your post, avoiding that junk, by copying your statement before executing with(VectorCalculus).

@Markiyan Hirnyk You may find this thread interesting.

@Axel Vogt 

Looking something else I have reread your question. Here you can find four files from former user 102. I hope that it helps a little bit..

@Markiyan Hirnyk 

This computation is made in SolveTools:-Polynomial:-Quadratic, which is called with option domain = absolute (whatever it means):

trace(SolveTools:-Polynomial:-Quadratic):
RealDomain:-solve({x^2+y^2+v^2=0,v<2}, {x});
{--> enter SolveTools:-Polynomial:-Quadratic, args = z^2+y^2+v^2, z, dropmultiplicity = FAIL,
explicit = FAIL, domain = absolute

                                   2    2
                            a0 := y  + v


                               a1 := 0


                               a2 := 1


                                    2      2
                         dis := -4 y  - 4 v


                                    2      2
                         rat := -4 y  - 4 v


                                   2    2 1/2
                        t1 := 2 (-y  - v )

<-- exit SolveTools:-Polynomial:-Quadratic (now in SolveTools:-Polynomial:-ModuleApply) =
[(-y^2-v^2)^(1/2), -(-y^2-v^2)^(1/2)]}

     {          2    2 1/2            2    2 1/2
     { [{x = (-y  - v )   }, {x = -(-y  - v )   }]        v < 2
     {
     {                     []                             2 <= v

Erik's elementary example can be handled (since Maple 14) by:

solve(x^4=1,x,real);
                                1, -1

While problems occur when the domain is both real and parametric. The messages produced here are informative of the limitations:

solve(x^2+y^2+v^2=0,x,parametric,real);
Warning, solve does not support parametric solving over the real numbers: complex solution
will be returned. 2 2 1/2 2 2 1/2 [{x = (-y - v ) }, {x = -(-y - v ) }] solve({x^2+y^2+v^2=0,v<2},x,parametric,real);
Warning, solve does not support parametric solving over the real numbers: complex solution
will be returned.

Error, (in SolveTools:-Parametric) invalid input: inequalities are not supported

@Markiyan Hirnyk 

This computation is made in SolveTools:-Polynomial:-Quadratic, which is called with option domain = absolute (whatever it means):

trace(SolveTools:-Polynomial:-Quadratic):
RealDomain:-solve({x^2+y^2+v^2=0,v<2}, {x});
{--> enter SolveTools:-Polynomial:-Quadratic, args = z^2+y^2+v^2, z, dropmultiplicity = FAIL,
explicit = FAIL, domain = absolute

                                   2    2
                            a0 := y  + v


                               a1 := 0


                               a2 := 1


                                    2      2
                         dis := -4 y  - 4 v


                                    2      2
                         rat := -4 y  - 4 v


                                   2    2 1/2
                        t1 := 2 (-y  - v )

<-- exit SolveTools:-Polynomial:-Quadratic (now in SolveTools:-Polynomial:-ModuleApply) =
[(-y^2-v^2)^(1/2), -(-y^2-v^2)^(1/2)]}

     {          2    2 1/2            2    2 1/2
     { [{x = (-y  - v )   }, {x = -(-y  - v )   }]        v < 2
     {
     {                     []                             2 <= v

Erik's elementary example can be handled (since Maple 14) by:

solve(x^4=1,x,real);
                                1, -1

While problems occur when the domain is both real and parametric. The messages produced here are informative of the limitations:

solve(x^2+y^2+v^2=0,x,parametric,real);
Warning, solve does not support parametric solving over the real numbers: complex solution
will be returned. 2 2 1/2 2 2 1/2 [{x = (-y - v ) }, {x = -(-y - v ) }] solve({x^2+y^2+v^2=0,v<2},x,parametric,real);
Warning, solve does not support parametric solving over the real numbers: complex solution
will be returned.

Error, (in SolveTools:-Parametric) invalid input: inequalities are not supported

@Gary Palmer 

Just be careful and check the code in the generated mpl file as the 2D input parser (involved in the export to Maple Input ) is somewhat buggy. For instance, commented lines (begining with #) become NULL.

@Gary Palmer 

Just be careful and check the code in the generated mpl file as the 2D input parser (involved in the export to Maple Input ) is somewhat buggy. For instance, commented lines (begining with #) become NULL.

@Gary Palmer 

I have run your document in Maple 14.01 as is and including plotsetup(maplet) at the begining. In the first case, the animation is created in a few seconds, while in the second case no output is produced within a few minutes. Though in this process more memory is consumed, it does not seem to be the critical limitation (may be a factor of two higher or so). My initial guess goes in the direction of data structures (arrays) being used by the maplet driver. For a check, I have run your document as is in Maple 12.02 (actually with a minor modification of the orientation option). The reason is that the maplet driver is more or less frozen at that stage. And I have found that the animation is not produced either in any reasonable time (and with a memory consumption similar to Maple 14.01 using the maplet driver).

In short, the maplet way seems to be excluded for your animations. So, the next option to try may be edit your code in an external editor and read it into the GUI.

First 84 85 86 87 88 89 90 Last Page 86 of 109