Alec Mihailovs

Dr. Aleksandrs Mihailovs

4495 Reputation

21 Badges

20 years, 336 days
Mihailovs, Inc.
Owner, President, and CEO
Tyngsboro, Massachusetts, United States

Social Networks and Content at Maplesoft.com

Maple Application Center

I received my Ph.D. from the University of Pennsylvania in 1998 and I have been teaching since then at SUNY Oneonta for 1 year, at Shepherd University for 5 years, at Tennessee Tech for 2 years, at Lane College for 1 year, and this year I taught at the University of Massachusetts Lowell. My research interests include Representation Theory and Combinatorics.

MaplePrimes Activity


These are replies submitted by Alec Mihailovs

The solutions, perhaps, may be expressed either through theta functions (as it is well known for quintics) - that, probably, would give the fastest convergence, or through (generalized) hypergeometric functions, as it is known to be true for equations of form x^6+a*x+b=0.

However, Maple attempts for applications in mathematics ended  in 20th century, I think, so one can't expect Maple to be able to give the answer for that - other than reproducing steps done manually.

Alec

The solutions, perhaps, may be expressed either through theta functions (as it is well known for quintics) - that, probably, would give the fastest convergence, or through (generalized) hypergeometric functions, as it is known to be true for equations of form x^6+a*x+b=0.

However, Maple attempts for applications in mathematics ended  in 20th century, I think, so one can't expect Maple to be able to give the answer for that - other than reproducing steps done manually.

Alec

That's certainly true. Timing should be done on larger intervals (at least few seconds) - otherwise it doesn't make any sense anyway - there is no much difference practically between 0.01 sec and 1 sec while there is a huge difference between 1 sec and 100 sec.

In general, while seq and map both being linear, seq is usually faster and uses less memory.

Alec

 

That's certainly true. Timing should be done on larger intervals (at least few seconds) - otherwise it doesn't make any sense anyway - there is no much difference practically between 0.01 sec and 1 sec while there is a huge difference between 1 sec and 100 sec.

In general, while seq and map both being linear, seq is usually faster and uses less memory.

Alec

 

Do you realize that there should be 2 different summation parameters (or indices), say m and n, and not just one n in both sums?

Alec

Do you realize that there should be 2 different summation parameters (or indices), say m and n, and not just one n in both sums?

Alec

In this particular example, on one of our lab computers that I access remotely (since Maplesoft wasn't that kind this year as to provide me with a copy of Mape 13, and our school is using Mathematica), the results are

restart:
a:=[seq(4*i+1,i=1..2000)]:
t,ba:=time(),kernelopts(bytesalloc):
map(i->Power(i,43214342341) mod 5423524532,a):
time()-t,kernelopts(bytesalloc)-ba;
                              
                            0.015, 786288

restart:
t,ba:=time(),kernelopts(bytesalloc):
seq(i&^43214342341 mod 5423524532,i=5..8001,4):
time()-t,kernelopts(bytesalloc)-ba;

                            0., 196572

In other words, seq beats map by a large margin.

Alec

In this particular example, on one of our lab computers that I access remotely (since Maplesoft wasn't that kind this year as to provide me with a copy of Mape 13, and our school is using Mathematica), the results are

restart:
a:=[seq(4*i+1,i=1..2000)]:
t,ba:=time(),kernelopts(bytesalloc):
map(i->Power(i,43214342341) mod 5423524532,a):
time()-t,kernelopts(bytesalloc)-ba;
                              
                            0.015, 786288

restart:
t,ba:=time(),kernelopts(bytesalloc):
seq(i&^43214342341 mod 5423524532,i=5..8001,4):
time()-t,kernelopts(bytesalloc)-ba;

                            0., 196572

In other words, seq beats map by a large margin.

Alec

There is, certainly, a difference in opinions between conspiracy theorists and conspiracy practicists ... :)

I agree, implicit multiplication seems to cause most problems. Another thing causing many problems is using underscore, i.e. _ for [ ] and backwards.

Take a look, for example, at the original post in that recent thread.

The OP defined S_3 and then tried to use it as S[3] - such things are visually undistinguishable. Then ident was defined permgroup*(... - obviously, he didn't intend to do that - the multiplication sign was produced by implicit multiplication.

Alec

 

Darin,

You did a great job in your blog explaining how things work and it was an interesting reading.

Parallelization is, certainly, an important (and unavoidable) goal for future Maple development.

What I wrote, was about our Maple usage in the current situation, not about Maple development and future prospects. I'd like to find out how the Task model, or Threads:-Create could be used to improve our current Maple experience.

I may be wrong, but it seems as including it in our procedures wouldn't give a noticeable speedup - if a procedure runs for hours or days in Maple, it will still run for days and hours after the parallelization. So the usual ways of speed improvement, such as using Compiler:-Compile (or switching to Python, Mathematica, C# etc.) are preferable.

On the other hand - parallelization is not all about speed-up. It allows creating asynchronous servers and clients, in particular, or allows two different procedures run at the same time and communicate with each other exchanging information.

Such things would be useful for our projects, independently of speed-up or slowing-down, and if you could give an example of such usage of parallelization, that would be great.

Alec

For example,

f:=e^p/(e^(2*p)+e^p);

                                     p
                                    e
                           f := -----------
                                 (2 p)    p
                                e      + e

1/simplify(1/f);

                                  1
                                ------
                                 p
                                e  + 1

normal(expand(f));

                                  1
                                ------
                                 p
                                e  + 1


normal(f,expanded);
                                  1
                                ------
                                 p
                                e  + 1

Alec

For example,

f:=e^p/(e^(2*p)+e^p);

                                     p
                                    e
                           f := -----------
                                 (2 p)    p
                                e      + e

1/simplify(1/f);

                                  1
                                ------
                                 p
                                e  + 1

normal(expand(f));

                                  1
                                ------
                                 p
                                e  + 1


normal(f,expanded);
                                  1
                                ------
                                 p
                                e  + 1

Alec

That could be done using deprecated stats package,

stats[describe,mean]([x,3,1+x]);

                                    2 x
                              4/3 + ---
                                     3

It is already in Maple, so one doesn't have to install it.

Alec

That can be done in a plot - with using textplot to print the matrix elements, and then adding lines - dashed or not.

Alec

That can be done in a plot - with using textplot to print the matrix elements, and then adding lines - dashed or not.

Alec

First 34 35 36 37 38 39 40 Last Page 36 of 180