John May

Dr. John May

2351 Reputation

17 Badges

12 years, 75 days
Maplesoft
Guru
Pasadena, California, United States

Social Networks and Content at Maplesoft.com

Maple Application Center

I am a Senior Developer in the Mathematical Software Group and have been with Maplesoft since 2007. I am also an Adjunct Assistant Professor in the School of Computer Science at the University of Waterloo.

I have a Ph.D in Mathematics from North Carolina State University as well as Masters and Bachelors degrees from the University of Oregon. I have been working on research in computational mathematics since 1997.

My main research interests in are computational linear and polynomial algebra, especially numerical polynomial algebra. I currently work on the exact algebraic solvers as well as other subsystems of Maple.

MaplePrimes Activity


These are replies submitted by John May

While a semantic quibble, I want to add that it is not actually possible to remove elements from a list; lists are immutable and cannot be changed.  What is possible is to create a new list that lacks specified elements. It is an important distinction if your code needs to scale up to large applications.

I would not recommend using Maple's goto.  It is not documented and none of the code shipped with Maple uses it for a very good reason: it is very inefficient.

I would not recommend using Maple's goto.  It is not documented and none of the code shipped with Maple uses it for a very good reason: it is very inefficient.

@MySchizoBuddy Support for CUDA was added in Maple 14.  See ?CUDA for the details.

@Christopher2222 It is not ragged because of implicitplot, it is ragged due to undersampling the range in question.  That is, since no range is specified, you are zooming in on this:

plots:-display(plot(x^3-4*x),plot(x^3-4*x, style=point))

which results in:
plots:-display(plot(x^3-4*x), view=[-5..5,-5..5]);

plots:-display(plot(x^3-4*x), plot(x^3-4*x,style=point), view=[-5..5,-5..5])

Which can be remedied by giving a range:

plots:-display(plot(x^3-4*x,x=-3..3), view=[-5..5,-5..5]);

plots:-display(plot(x^3-4*x,x=-3..3),plot(x^3-4*x,x=-3..3,style=point), view=[-5..5,-5..5])

@Christopher2222 It is not ragged because of implicitplot, it is ragged due to undersampling the range in question.  That is, since no range is specified, you are zooming in on this:

plots:-display(plot(x^3-4*x),plot(x^3-4*x, style=point))

which results in:
plots:-display(plot(x^3-4*x), view=[-5..5,-5..5]);

plots:-display(plot(x^3-4*x), plot(x^3-4*x,style=point), view=[-5..5,-5..5])

Which can be remedied by giving a range:

plots:-display(plot(x^3-4*x,x=-3..3), view=[-5..5,-5..5]);

plots:-display(plot(x^3-4*x,x=-3..3),plot(x^3-4*x,x=-3..3,style=point), view=[-5..5,-5..5])

You shouldn't need numpoints, since the curve is not being generated by implicitplot.

 a:=plot(x^3-4*x,x=-3..3):
b:=plots:-implicitplot(1,x=-5..5,y=-5..5,
coloring=[black,black],filledregions=true):
plots:-display(a,b,view=[-5..5,-5..5],axis=[color=green]);

plots:-display(plot(x^3-4*x,x=-3..3),plots:-implicitplot(1,x=-5..5,y=-5..5,coloring=[black,black],filledregions=true),view=[-5..5,-5..5],axis=[color=green])

You would need it if you were trying to generate your curve with implicitplot

plots:-implicitplot(y=x^3-4*x,x=-5..5,y=-5..5);

plots:-implicitplot(y=x^3-4*x,x=-5..5,y=-5..5)

John

You shouldn't need numpoints, since the curve is not being generated by implicitplot.

 a:=plot(x^3-4*x,x=-3..3):
b:=plots:-implicitplot(1,x=-5..5,y=-5..5,
coloring=[black,black],filledregions=true):
plots:-display(a,b,view=[-5..5,-5..5],axis=[color=green]);

plots:-display(plot(x^3-4*x,x=-3..3),plots:-implicitplot(1,x=-5..5,y=-5..5,coloring=[black,black],filledregions=true),view=[-5..5,-5..5],axis=[color=green])

You would need it if you were trying to generate your curve with implicitplot

plots:-implicitplot(y=x^3-4*x,x=-5..5,y=-5..5);

plots:-implicitplot(y=x^3-4*x,x=-5..5,y=-5..5)

John

I like it!

 

John

In case anyone is wondering why I chose to use a button to load the data instead of using the startup code region: For worksheets downloaded from the Maple Cloud in Maple 14, the default security settings prevent the automatic execution of the startup code region.  Since I wanted to post this worksheet to the cloud and have people be able to use it without saving it and then reloading it, I put the startup code in a button component.

@acer Scary.

@JacquesC Not to imply that I am disinterested.  I just can imagine myself being in the top 10.

@Robert Israel That is a really good point.  These tests are not able to detect deviation from randomness at that level so they should be combined with some other tests as well.  Which means the followup post to this one practically writes itself.

For people like me who are not among that ~10 in the world, the example on the help page doesn't really give a good idea of why you might want to use ::uneval. When I use it, it is mostly for testing or measuring the evaluation of expressions. So, for those people who might end up here, here is a small example:

 benchmark := proc(e::uneval)
 local t, b;
     t, b := time(), kernelopts(':-bytesused');
     eval(e);
     return (time() - t)*Unit(second), (kernelopts(':-bytesused') - b)*Unit(byte);
 end proc

This is a simple extention of ?time that also records the memory used to evaluate the expression 'e'.

(**) benchmark(solve(x^50-1));
                                0.201 [s], 10924456 [byte]

@Alejandro Jakubi I do not remember what my answer was exactly and I do not know why it was removed (perhaps it was inaudible in the recording from the studio mic too).  But I can say that I have visited with Al Rich and had fruitful discussions with him about his indefinite integration project. We are certainly looking at ways to improve some of the weaknesses his tests show.

When looking at the test results however, it is important to keep in mind the following from the Rubi test suite description:

Since Rubi was developed in conjunction with the test suite, its good performance is to be expected. And no doubt there are many problems Rubi is unable to integrate.

Also, if I recall correctly, the test suite doesn't address continuity of results so it is not clear how his work would apply to the problem of definite integration.

3 4 5 6 7 8 9 Last Page 5 of 19