Strange problem with units and range variables/implicit loops

Strange problem with units and range variables/implicit loops - Сообщения

#1 Опубликовано: 25.02.2019 15:30:20
Martin Kraska

Martin Kraska

1222 сообщений из 2150 понравились пользователям.

Группа: Moderator

if x is 1m, the loop fails, if x=1, it succeeds. Any idea, what is going on? How to explain?

unit-range.png
unit-range.sm (4 КиБ) скачан 38 раз(а).
Martin Kraska Pre-configured portable distribution of SMath Studio: https://en.smath.info/wiki/SMath%20with%20Plugins.ashx
#2 Опубликовано: 25.02.2019 16:07:55
Jean Giraud

Jean Giraud

983 сообщений из 6866 понравились пользователям.

Группа: User

Wrote

Any idea, what is going on? How to explain?


Old style works OK.

mkUnits.PNG
#3 Опубликовано: 25.02.2019 16:17:36
Martin Kraska

Martin Kraska

1222 сообщений из 2150 понравились пользователям.

Группа: Moderator

vectorize also works independently of previous values of x. It is just the above example of implicit loops. I am not searching for alternatives but want to have robust implicit loops. They contribute to readable documents. Closer to pencil and paper handcalc than to algorithmic pseudocode.
Martin Kraska Pre-configured portable distribution of SMath Studio: https://en.smath.info/wiki/SMath%20with%20Plugins.ashx
1 пользователям понравился этот пост
frapuano 25.02.2019 16:35:00
#4 Опубликовано: 25.02.2019 16:33:07
overlord

overlord

549 сообщений из 1332 понравились пользователям.

Группа: Moderator

when you assign 1m to x, it doesn't accept to be vectorized with range function afterwards.
making x a vector firstly, the problem is gone.
my diagnosis is; data type error. similar to C++, Basic, etc

regards

newstyle.png
1 пользователям понравился этот пост
sergio 25.02.2019 17:14:00
#5 Опубликовано: 25.02.2019 16:46:43
Martin Kraska

Martin Kraska

1222 сообщений из 2150 понравились пользователям.

Группа: Moderator

Wrote

when you assign 1m to x, it doesn't accept to be vectorized with range function afterwards.
making x a vector firstly, the problem is gone.
my diagnosis is; data type error. similar to C++, Basic, etc

regards



Sorry, but the problem is that the presence or absence of the unit in the existing value of x should not matter regardless what you are going to assign to x afterwards.

The failing implicit loop doesn't have any units involved, I would expect the loop to cleanly overwrite whatever pre-existing scalar value. I am well aware that pre-existing matrix values may proagate to the result if the dimensions are bigger than what is adressed in the loop.

Also, if there is some problem which can't be fixed, I'd vote for a better error message. In the given case, "Cannot calculate" will leave most users in frustration and dispair.

BTW, the first statement in your example just crushes the vectorize() function. It doesn't affect the actual value of y.
Martin Kraska Pre-configured portable distribution of SMath Studio: https://en.smath.info/wiki/SMath%20with%20Plugins.ashx
#6 Опубликовано: 25.02.2019 17:10:46
overlord

overlord

549 сообщений из 1332 понравились пользователям.

Группа: Moderator

yeah Martin you are right a out my vectorize solution.
we expect to overwrite the values but somehow it doesn't.
we can use clear(x) before the new assignment temporarily, while this is inspected and corrected if necessary.

regards

ps: if x is a matrix then it seems this problem disappears also.

newstyle.png
1 пользователям понравился этот пост
frapuano 25.02.2019 17:42:00
#7 Опубликовано: 25.02.2019 18:59:58
Alvaro Diaz Falconi

Alvaro Diaz Falconi

992 сообщений из 1674 понравились пользователям.

Группа: User

Hi. THis also fails too. Actually, it is a short form for the function NameVec in mathcad.

namevec.gif

Best regards.
Alvaro.

#8 Опубликовано: 25.02.2019 20:04:02
Jean Giraud

Jean Giraud

983 сообщений из 6866 понравились пользователям.

Группа: User

Wrote

I'd vote for a better error message. In the given case, "Cannot calculate" will leave most users in frustration and dispair.


"can not calculate" because "syntax error"
"can not calculate" also appears in 6179 and 5346
resulting from more than a single "syntax error"

Syntax.PNG
#9 Опубликовано: 26.02.2019 07:27:45
Davide Carpi

Davide Carpi

1415 сообщений из 2872 понравились пользователям.

Группа: Moderator

Thank you we'll check it. I agree that the behavior should be the same regardless if there is an unit.

Wrote

Hi. THis also fails too.


There's no indexing in your LHS; the syntax you were looking for is the following:

2019-02-26 11_21_33-Window.png

Wrote

"can not calculate" because "syntax error"
"can not calculate" also appears in 6179 and 5346 resulting from more than a single "syntax error"


This is because implicit assignment loops by vectors are available since SMath Studio 0.99.6638, in previous versions it's invalid syntax.
If you like my plugins please consider to support the program buying a license; for personal contributions to me: paypal.me/dcprojects
3 пользователям понравился этот пост
sergio 26.02.2019 08:35:00, Radovan Omorjan 26.02.2019 09:11:00, Alvaro Diaz Falconi 26.02.2019 17:33:00
#10 Опубликовано: 26.02.2019 10:17:03
Jean Giraud

Jean Giraud

983 сообщений из 6866 понравились пользователям.

Группа: User

Wrote

This is because implicit assignment loops by vectors are available since SMath Studio 0.99.6638, in previous versions it's invalid syntax.


Yes Davide, missing for local implicit previous 6638.
It turns red some of Ber7 & Alvaro stuff.
For the essentials, I don't miss local implicit loop.

Cheers ... Jean

idxVect.PNG
#11 Опубликовано: 26.02.2019 17:35:38
Alvaro Diaz Falconi

Alvaro Diaz Falconi

992 сообщений из 1674 понравились пользователям.

Группа: User

Wrote



Wrote

Hi. THis also fails too.


There's no indexing in your LHS; the syntax you were looking for is the following:
...



Oh, yes, thanks. That's correct.

Best regards.
Alvaro.
  • Новые сообщения Новые сообщения
  • Нет новых сообщений Нет новых сообщений