C_R

3657 Reputation

21 Badges

6 years, 157 days

MaplePrimes Activity


These are replies submitted by C_R

@acer 

I fear that I have not been able to express myself sufficiently.
In software it is difficult to adress all possible use errors. This one occured in combination of units and add(sequence): add(sequence) worked fine before (but not with units).

Why was not obvious for me from the help page and also support could not spot the use error in a first iteration (concluding that this a bug).

After clarification I tested the use of sets, list and arrays with units with one element an excluded this solution in my original post. I should have made this clear.

The question I wanted to adress: Can this use error happen to other users and is it important enough to be adressed? I still cannot answer this. Hence this post.

I have further described my difficulties with the help page. Also here the question is: Do other users have the same difficulties and is it important enough to be adressed? I have also searched for a usefull example where adding operands makes sense. This seems to be a new functionality (which can come with new errors). Regarding the help page, support agreed that missinterpretation and use errors are possible and further examples would be helpfull.

If we leave the discussion as is, some might conclude that the user is the error (I have heard this statement about users from non-Maple developers). Unfortunately we do not have a representative sample of test users from beginners to experts at hand to validate this.

My takeway from the discussion is that passing sequences to procedures is in general not a good practise. I must have overlooked something in the documentation (programming guide?). If someone could point me to the corresponding pages, I will study them again. Maybe I am too biased from other languages.

@acer 

Good point. To preserve the lhs to make the output selfexplaning I have to

since the following is not printing in 2D

and convert does not allow options as indexes

(1@@0=(evalf*GetUnit)@Constant@convert[name])(x);

 

@all
More backround:

I ran into this by the habit of removing or not using brackets (?Definition,bracket) wherever it helps improving readability.

add works on many objects, including expression sequences, by simply using add(name). Some users, as myself, would not add overhead to it without good reasons (now I have one).

The degeneration of a seqence to a scalar expression and applying add to it is maybe rare and may not justify a code change of a well proven build-in function.

On the other hand, I cannot deduce from the add help page a good practise of converting a sequence to something safe. On the contraray, the help page highlights the addition of sequences in the first sentence: "The add function is used to add up an explicit sequence of values".

In fact, since add works so well I only consulted the help page after running into this problem. Then I contacted support which required developers to investigate. After clarification that the problem is on my side I got the suggestion to discuss it here.

After your comments, it seems even more likely that applying add to a scalar expression is dispensable and potentially "dangerous".

If reworking the help page is an option to adress this, I would suggest an example with sequences. Maybe this:

add(a[i]*x^i, i = 1 .. 1);# adopted from the help page. Upper bound of range changed for example in a loop
seq(a[i]*x^i, i = 1 .. 1):# user not knowing the range option of add
add(%); 
                             a[1] x

                            a[1] + x

I would also suggest moving bullet points 8, 9 before bullet point 7 (which adresses addition of operands). My preference would still be a warning or in this case returning an expression unevaluated.

I hope the discussion helps in the general context of learning to use Maple correctly, adopting good practise and avoiding errors.

@Anthrazit

To reproduce the problem more hardware details are helpfull:

type of connetor (HDMI or DVI),

type of connection (direct from the graphics card or via a docking station or a dock),

routing (directly to the monitor or interconnected monitors),

"logging back to Windows": Is a system restart involved?

Edit: A hypothesis

3 Triggers: Rotating the monitor or plugging in a monitor seems to update monitor configurations in the same way that changing the numbering of monitors does. 

After login, the system does not seem to collect the information in the same way. Somehow only for the Java-API Maple is running in, the anti-aliasing is not working correctly.

@acer 

Best readabilty is probably in the middle: Not too much of everything.
In the same way the non-Maple readers will have a hard time understanding functional programming and some advanced Maple user dislike it.

For some reasons I like it. With your more serious note I could improve a command that I am missing in the ScientificConstant package

with(ScientificConstants):
GetDef := x -> (evaln=(evalf*GetUnit)@Constant)(x):
GetDef(g)
                                      /m \
                      g = 9.80665 Unit|--|
                                      | 2|
                                      \s /

I took me some time to figure out why the following did not work (operator precedence of @ and *  ->  parentheses are missing around the compound functions):

(eval = evalf@Constant * GetUnit@Constant)(g)

Your code examples are always an enriching. Thank you for taking the time.

@acer 

Well, I have to admit that my obsession to avoid the assignemt operator and exclusively use equation expressions (and equation labels in 2D-Math, see here for an example that was quite challenging for me) has lead to a kind of partial blindness. A name that evaluates to annother name is something that did not came to my mind as an option.
Thank you!

@Anthrazit 

I can only guess.

maplew.exe, that starts javaw.exe, might do that (passing command line options)

So, either there are commands possible in maple.ini or jawaw.exe has its own ini file or something can be set in the regedit.

The question is beyond the rendering issue and, IMO, worth branching off.

@Anthrazit 

I know that feeling. Either Windows was improved or the update reseted a configuration responsible for that anti-aliasing issue. In the second case the issue can come back.

@acer 

I would be happy if you could improve this simple example

with(ScientificConstants)

sigma; % = evalf(Constant(%))*GetUnit(Constant(%))

sigma = 0.5670366658e-7*Units:-Unit(kg/(s^3*K^4))

(1)

alias(`#msub(mi("T"),mn("0"));` = T__0)

E = sigma*T^4

E = sigma*T^4

(2)

`ΔE` = sigma*(T^4-T__0^4)

`ΔE` = sigma*(T^4-`#msub(mi("T"),mn("0"));`^4)

(3)

params := sigma = 0.5670366658e-7*Units:-Unit(kg/(s^3*K^4)), T__0 = 293*Unit('K'), T = 500*Unit('K')

sigma = 0.5670366658e-7*Units:-Unit(kg/(s^3*K^4)), `#msub(mi("T"),mn("0"));` = 293*Units:-Unit(K), T = 500*Units:-Unit(K)

(4)

eval(`ΔE` = sigma*(T^4-`#msub(mi("T"),mn("0"));`^4), [params])

`ΔE` = 3126.070258*Units:-Unit(kg/(s^3*K^4))*Units:-Unit(K)^4

(5)

lhs(`ΔE` = 3126.070258*Units:-Unit(kg/(s^3*K^4))*Units:-Unit(K)^4) = convert(rhs(`ΔE` = 3126.070258*Units:-Unit(kg/(s^3*K^4))*Units:-Unit(K)^4), units, W/m^2)

`ΔE` = 3126.070258*Units:-Unit(W/m^2)

(6)

NULL

Download roman_in_subscript_example.mw

@Anthrazit 

I think whatever caused the rendering issue is nothing that MapleSoft can influence. Its more on the level of the OS and graphics card drivers.Maybe a different Java IDE is better integrated and would perform better.

For curiosity: Can you now rotate the screen without changing the quality and is organising monitors this way acceptable for you?

@acer I am using rarely assignements for parameters. If possible I do algebra first and then (as a final step) switch to numerics (numerical values and plots) using subs/eval. This way I can avoid reexecuting worksheets each time parameters are changed. I find it also easier to compare different parameter sets.

I was trained like this. New numerical results could be drived from one numerical result by applying scaling laws to ratios of parameters. This saved allot of time and errors doing numerical calculations by hand

Some MapleFlow examples do it differently. Many intermediate numerical results (computed with the assignement operator) are calculated for a single final result that does not convey the functional dependcies of algebraic expressions. Updating a parameter or equation updates the whole document similar to reexecuting the whole document. Not my style.

Strange: It looks like as if fonts are rescaled. I see a degradation when the resolution changes during a session (i.e. when Maple is running). This is what Microsoft (and Maplesoft) says can happen.

Do all monitors have the same resolution? 

Do you run the recommended (from Windows) scaling?

Can you change from internal to external graphics?

What happens when the rotated monitor is not monitor number 1?

@acer 

Thank you. It seems that I have to use alias to keep the input compact

@dharr better than nothing. Thanks

@acer 

I compared this too (couting seconds). Its about 6 seconds on a 5y old i7 with SSD. I do not feel a huge difference to older versions. However in the past I was stuggeling with huge delays (about a minute). The delays vanished and today I attribute them to my network configuration (which I cannot influence) and/or older Windows builds. 

I also remember other users ( Anthrazit ?) reporting delayed startup which could be resolved by turning off the startup page (Welcome page start.mw) if I remember correctly.

PS. from Maple.ini: Length of Startup in ms=7757 & Length of Startup in ms=9850 with Maple Screen Reader and startup page

First 8 9 10 11 12 13 14 Last Page 10 of 72