Alec Mihailovs

Dr. Aleksandrs Mihailovs

4495 Reputation

21 Badges

20 years, 343 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

That's a nice one!

I tried to avoid using -> in the map :)

Alec

That's a nice one!

I tried to avoid using -> in the map :)

Alec

Robert,

I just noticed output=piecewise option in dsolve,numeric. I don't recall using it earlier. Is it something new?

Alec

Robert,

I just noticed output=piecewise option in dsolve,numeric. I don't recall using it earlier. Is it something new?

Alec

The order of a product of disjoint cycles is the lcm of their lengths, so one can define

element_order:=x->ilcm(map(nops,x)[]);

or in more obfuscated form,

element_order:=ilcm@op@curry(map,nops);

For example,

a:=elements(Z3)[3];
                           a := [[1, 3, 2]]
element_order(a);
                                  3
element_order([]);
                                  1

Also, that could be done by finding the order of the cyclic subgroup generated by an element,

grouporder(permgroup(3,{a}));
                                  3
grouporder(permgroup(3,{[]}));
                                  1

Alec

The order of a product of disjoint cycles is the lcm of their lengths, so one can define

element_order:=x->ilcm(map(nops,x)[]);

or in more obfuscated form,

element_order:=ilcm@op@curry(map,nops);

For example,

a:=elements(Z3)[3];
                           a := [[1, 3, 2]]
element_order(a);
                                  3
element_order([]);
                                  1

Also, that could be done by finding the order of the cyclic subgroup generated by an element,

grouporder(permgroup(3,{a}));
                                  3
grouporder(permgroup(3,{[]}));
                                  1

Alec

A very nice construction, by the way.

Alec

Another one, in ?currentdir:

The current directory is not affected by the resart command.

I would be surprised if anything got affected by that command.

Alec

 

1) RealDomain was not loaded. The example worked because sqrt was redefined so that it was undefined except for non-negative real numbers.

2) It is possible to load RealDomain by executing

with(RealDomain):

However, that may be not such a good idea as it seems, and it doesn't replace all commands - just some of them.

Alec

Acer,

Thank you! That was an interesting reading.

Wouldn't it be more useful if Programmer indexing (with one parameter) showed only actually stored elements (together with their Mathematical indexing in the sparse case) - and that, probably, would be easier to implement (as pointers)?

From other point of view, something like that can be accomplished with op, I think. But then, it is not exactly clear why such a change in notation was introduced (except, maybe, a possibility of extending Arrays over their limits, which, probably, could be easily done with usual square brackets instead.)

And it breaks backward compatipility (unthinkable!)

Alec

Compare that, say, with Vector Calculus,

with(VectorCalculus):
a:=<1,2,3>;

                        a := e  + 2 e  + 3 e
                              x      y      z

3*a;

                          3 e  + 6 e  + 9 e
                             x      y      z

0*a;

                                 0 e
                                    x

Both work OK.

Alec

That's different structures (even if they produce the same result.). &wedge is an algebra product, and multiplication by constants is a linear space structure. Both of them should work, I think.

And multiplication by constants works OK for non-zero constants. It has a problem only with 0.

And the current situation leads to other wrong calculations. For example,

(3*dx)&wedge dy;
                              3 dx ^ dy

(0*dx)&wedge dy;

                                 0 dx

Alec

I didn't try that in SAGE (yet), but Mathematica can do that. The algebraic inequality very simple - just using plain Reduce, and the trigonometric inequality with some tweaking (Reduce gives a long run which I interrupted after about an hour.)

Alec

I didn't try that in SAGE (yet), but Mathematica can do that. The algebraic inequality very simple - just using plain Reduce, and the trigonometric inequality with some tweaking (Reduce gives a long run which I interrupted after about an hour.)

Alec

Mathematica puts everything that they can in the kernel. Every new release more and more of their code is transferred from  Mathematica code to code in C.

SAGE does a similar thing. They are trying to rewrite Python code in Cython, which translates it to C (giving about 30 - 100 times increase in speed usually.)

Alec

First 100 101 102 103 104 105 106 Last Page 102 of 180