acer

32313 Reputation

29 Badges

19 years, 314 days
Ontario, Canada

Social Networks and Content at Maplesoft.com

MaplePrimes Activity


These are replies submitted by acer

The point of the original question, I believe, was to crreate a procedure which did that for an arbitrary list. Ie, to make it know both the list and the list's name. Your example has that separation coded right into the seq call explicitly, and thus doesn't generalize as a tool for handling other lists.

acer

The point of the original question, I believe, was to crreate a procedure which did that for an arbitrary list. Ie, to make it know both the list and the list's name. Your example has that separation coded right into the seq call explicitly, and thus doesn't generalize as a tool for handling other lists.

acer

The original data was exact, so it would not be appropriate if Maple were automatically to convert the data to floating-point and then give a corresponding floating-point result (which is what those super fast methods above do).

acer

The original data was exact, so it would not be appropriate if Maple were automatically to convert the data to floating-point and then give a corresponding floating-point result (which is what those super fast methods above do).

acer

That paragraph is in the section covering the zip() function. It's not surprising that sqrt() may not be one of the affected routines. The zip() routine "zips" an action across two parameters, while sqrt() takes the square root of a single parameter.

About the only way I can see to even make zip(sqrt,A,B) valid is for B to be merely an option such as 'symbolic'. But that wouldn't be particularly apt here and would likely not help much in the hardware datatype rtable case, which is also central (but left out, above) to that quoted paragraph covering zip's enhancements..

acer

That paragraph is in the section covering the zip() function. It's not surprising that sqrt() may not be one of the affected routines. The zip() routine "zips" an action across two parameters, while sqrt() takes the square root of a single parameter.

About the only way I can see to even make zip(sqrt,A,B) valid is for B to be merely an option such as 'symbolic'. But that wouldn't be particularly apt here and would likely not help much in the hardware datatype rtable case, which is also central (but left out, above) to that quoted paragraph covering zip's enhancements..

acer

Well.. most of the posted answers were reasonably efficient, in terms of computation time and use of memory resources. One can also get almost identical performance (on this example task) with,

p := (L::uneval) -> seq(cat(L,x),x in eval(L));

The main reason that I posted a procedure (not just entered as an arrow operator) was, as I mentioned, that I didn't know what else you might want to inject in and around the concatenating bit. Judging by your earlier tries, it seemed that I should focus on the bit that did the trick -- the evaln|uneval|quoted-args. It's a bit of a sliding scale, between the map2 solution, through the above code, and on to this next below, and then the others posted.

p := proc(L::uneval)
  seq(cat(L,x),x in eval(L));
end proc:

I would agree, that it's usually a good idea to check the relative performance of candidate implementations, especially if it's for something that you intend on using a great deal at some low level. Sometimes that, and other issues like which methods are more easily debugged, etc, can end up making more difference on once-coded stuff than does compactness of the code representation.

acer

Well.. most of the posted answers were reasonably efficient, in terms of computation time and use of memory resources. One can also get almost identical performance (on this example task) with,

p := (L::uneval) -> seq(cat(L,x),x in eval(L));

The main reason that I posted a procedure (not just entered as an arrow operator) was, as I mentioned, that I didn't know what else you might want to inject in and around the concatenating bit. Judging by your earlier tries, it seemed that I should focus on the bit that did the trick -- the evaln|uneval|quoted-args. It's a bit of a sliding scale, between the map2 solution, through the above code, and on to this next below, and then the others posted.

p := proc(L::uneval)
  seq(cat(L,x),x in eval(L));
end proc:

I would agree, that it's usually a good idea to check the relative performance of candidate implementations, especially if it's for something that you intend on using a great deal at some low level. Sometimes that, and other issues like which methods are more easily debugged, etc, can end up making more difference on once-coded stuff than does compactness of the code representation.

acer

The question was also asked on comp.soft-sys.math.maple , and Robert Israel gave a (more specialized) answer there on the following day.

acer

(I had to edit this, to correct it)

This works for me, in 2D Math input mode, in Maple 12,

H := x -> `if`( type(x,even), print("Even"), print("Odd") );

There was a missing end bracket in the other example just above (the one using lhs).

acer

(I had to edit this, to correct it)

This works for me, in 2D Math input mode, in Maple 12,

H := x -> `if`( type(x,even), print("Even"), print("Odd") );

There was a missing end bracket in the other example just above (the one using lhs).

acer

This sounds like it could be a java problem. Did you write that you are using OSX? Isn't that the one platform where Maple's Standard GUI will use the installed system JRE rather than one which is bundled with Maple itself? Which JRE do you have installed as the default for use by applications? I suggest emailing support@maplesoft.com with the details (including OS version and installed default Java version).

acer

This sounds like it could be a java problem. Did you write that you are using OSX? Isn't that the one platform where Maple's Standard GUI will use the installed system JRE rather than one which is bundled with Maple itself? Which JRE do you have installed as the default for use by applications? I suggest emailing support@maplesoft.com with the details (including OS version and installed default Java version).

acer

The more usual (and correct, and documented) syntax for that is like this,

  interface(rtablesize=11);

The fact that what you showed works appears to be a bit of a fluke, likely due to assignment to interface's remember table and the internal display mechanism being OK with that.

> interface(verboseproc,rtablesize);
                                     1, 10
 
> interface(rtablesize):=13;
                          interface(rtablesize) := 13
 
> interface(verboseproc,rtablesize);
                                     1, 10
 
> interface(rtablesize=13);
                                      10
 
> interface(verboseproc,rtablesize);
                                     1, 13

acer

The more usual (and correct, and documented) syntax for that is like this,

  interface(rtablesize=11);

The fact that what you showed works appears to be a bit of a fluke, likely due to assignment to interface's remember table and the internal display mechanism being OK with that.

> interface(verboseproc,rtablesize);
                                     1, 10
 
> interface(rtablesize):=13;
                          interface(rtablesize) := 13
 
> interface(verboseproc,rtablesize);
                                     1, 10
 
> interface(rtablesize=13);
                                      10
 
> interface(verboseproc,rtablesize);
                                     1, 13

acer

First 532 533 534 535 536 537 538 Last Page 534 of 591