Carl Love

Carl Love

26658 Reputation

25 Badges

11 years, 228 days
Himself
Wayland, Massachusetts, United States
My name was formerly Carl Devore.

MaplePrimes Activity


These are replies submitted by Carl Love

@nm I wasn't saying that you were doing something wrong. Yes, this is a bug in Maple. The purpose of my Reply is to show that the bug can be isolated to the Physics Updates add-on package (not the core Physics package that's prepackaged with Maple). The Updates include numerous changes outside the Physics package.

Display the contents of the global variable libname. It'll be a sequence of file-directory names. One of them is for the Updates; it should be obvious which one. If you remove it from libname, it won't be used. This can be done temporarily.

There is a problem now that there are divergent versions of Maple with different bugs: with Updates and without.

@JAMET There is no difficulty with diff. But you shouldn't have quotes in the line with the solve command.

@Art Kalb It can be done without freeze thaw by temporarily changing the processed xis to something else, like this:

subs(
    xi= H(1)*xi, %xi= xi, 
    subsindets(expr, identical(xi)^integer, u-> subs(xi= %xi, H(op(2,u))*u))
);

@acer I think that your double subsindets can be replaced with

thaw(subs(xi= H(1)*xi, subsindets(expr, identical(xi)^integer, u-> freeze(H(op(2,u))*u))))

Is there any reason to not do this?

@C_R You can also use subs[eval](int= 1, expr). The 'eval' in this context is a keyword index-placed parameter for subs. It doesn't literally mean the eval command, although the effect is quite simiar.

@C_R This is not a feature or any special syntax of eval; rather, it's a feature of explicit numbers. When they are used as function symbols, they are their corresponding constant functions, and all arguments are ignored.

This is said in this somewhat awkwardly placed paragraph on help page ?function:

  • If, in this case, an expression such as 2(x) is a function application, it represents the constant function 2 (the function that is 2 everywhere). The result of evaluating it is the number 2.

The awkward part is that its previous paragraph, which is strictly about the corresponding 1-D- vs. 2-D-Input difference, could lead one to think that the 2nd paragraph is also about an input-mode nuance. The first words of the paragraph---"If, in this case, ..."---imply a logical link to the previous paragraph; yet, the 2nd paragraph is actually about something more general than input mode.

@Ronan Are the square roots of integers only? rational numbers only? Or might they be square roots involving the parameter t? Is there always only a single variable, such as t?

@sursumCorda If you want a larger default screenwidth, why not just change it yourself? Just put

interface(screenwidth= 200);  #example

in your initialization file.

@Ronan To generalize my (GCD of numerators)/(LCM of denominators) technique, I think some restrictions need to be put on the field of the entries. Something like the field of quotients of a Euclidean domain. An example would be the field of rational functions with rational coefficients. Are your projective-geometry examples of that form?

@Aliocha Yes, degree 64 is not a practical example. I used it to emphasize the performance gain. AS I SAID AND YOU'VE IGNORED, I redid the example at degree 12 and I still got a 4X improvement. The number of test-data points used is irrelevant to any timing comparison, except that it needs to be sufficiently large so that neither timing is 0. Since the resolution of Maple's time is 1/64th of a second on most processors (a huge value for modern processors), a large number of test points are needed to get over that hurdle.

I've occasionally seen processors for which Maple's time resolution was 1/256th of a second, but I've never seen smaller than that.

@sursumCorda I think that the most likely explanation is that in those earlier versions, lprint and showstat didn't make use of screenwidth. The fact that the long number lprinted in your legacy version has no \ line continuation characters is good evidence that screenwidth is not being considered.

As an aside, long lines of code printed without hanging indents look hideous to me.

@Aliocha You are comparing two measurements that have been rounded down to 0; no valid comparison can be made.

You mention a "difference" in timings. Differences are irrelevant. It's the ratio of the timings that matters.

Please post a complete example.

My example shows a 9X performance boost for dense degree-64 polynomials. That's significant and substantial. You can lower the degree to 12, or whatever, and redo it. The performance gain may not be as much, but there will be some gain. For degree 12, I get a 4X improvement with Horner's.

@mmcdara Your and are identical because x is meaningless in this context. In other words, your converted polynomial is still in its original form, not Horner form.

@mmcdara Please post an error-free worksheet showing your timing test, and I will comment on it.

@Scot Gould Just eyeballing the OP's screenshot, I see that f1 and f3 are quadratic and the other four equations are linear wrt the 6 solution variables. That seems fairly simple, and it seems unlikely that Maple would choke on it. Because there are two quadratics, there are likely multiple solutions. So, you should change your eval to

eval(s, [T][1])

First 6 7 8 9 10 11 12 Last Page 8 of 691