Constant Vector as Argument in PPL
|
06-17-2024, 07:53 PM
Post: #1
|
|||
|
|||
Constant Vector as Argument in PPL
Hello Prime Friends,
I see a strange difference between the two PPL functions export bla() begin return normalize([0,0,-1]); end; export blu() begin return normalize([0,0,1]); end; SIZE(bla) equals 6 and the numbers don't seem to make a sense. I'd expect bla = [0,0,-1] since normalize(v) should be v/abs(v). blu and SIZE(blu) are [0,0,1] and 3 as expected. Do you know what's going on? Best Wishes, David |
|||
06-18-2024, 10:00 AM
Post: #2
|
|||
|
|||
RE: Constant Vector as Argument in PPL
No but I've had problems in the past passing vectors/matrices directly as arguments to functions causing syntax errors. The work-around was to assign them to variables and then use those as the function arguments.
Maybe this is linked to that same general 'bugginess'? |
|||
06-18-2024, 06:39 PM
(This post was last modified: 06-18-2024 07:14 PM by ftneek.)
Post: #3
|
|||
|
|||
RE: Constant Vector as Argument in PPL
(06-17-2024 07:53 PM)NumericDavid Wrote: Hello Prime Friends, Are you using the physical calculator or Virtual Calculator, and which revision number? In macOS VC revision 14425 SIZE(bla()) returns {3} in Home and 3 in CAS view, and bla() returns [0,0,-1] in both views. (06-18-2024 10:00 AM)BruceH Wrote: No but I've had problems in the past passing vectors/matrices directly as arguments to functions causing syntax errors. The work-around was to assign them to variables and then use those as the function arguments. Such as the issue described in this thread? I wonder if anything can be done to improve this behavior on the Prime. - neek |
|||
06-18-2024, 08:09 PM
(This post was last modified: 06-18-2024 08:21 PM by NumericDavid.)
Post: #4
|
|||
|
|||
RE: Constant Vector as Argument in PPL
(06-18-2024 06:39 PM)ftneek Wrote: Are you using the physical calculator or Virtual Calculator, and which revision number? Both physical Prime G2 2.1.14730 and same Version on Windows 11 virtual calculator. Both, Device and virtual answer correctly on normalize([0,0,-1]) in their Home Screen. Also, storing [0,0,-1] in some variable first and applying the function then works perfectly. I'm trying to understand why... |
|||
06-18-2024, 09:05 PM
Post: #5
|
|||
|
|||
RE: Constant Vector as Argument in PPL
I could not make SIZE(bla()) return 6 on my VC, even from another PPL program. Can you share exactly the steps you take to reproduce a result of 6?
- neek |
|||
06-18-2024, 10:01 PM
Post: #6
|
|||
|
|||
RE: Constant Vector as Argument in PPL
May we concentrate on the actual calculator? Differences between Mac or Windows VC are less important to me.
I just entered into a physical HP Prime G2 the program: verbatim" EXPORT BLA() BEGIN normalize([0,0,-1]) END; " By tapping the "Run" virtual button in the Program Catalog view, i obtain the answer: verbatim" BLA [0,0.31511344578, 0.904534033733,0,0, -0.301511344578] " Which is unexpected to me. On contrast, if i omit the "-" symbol in the program above, i obtain, by "Run" the answer: verbatim" BLA [0,0,1] " Which is what i'd expect. |
|||
06-19-2024, 12:10 AM
(This post was last modified: 06-19-2024 12:14 AM by ftneek.)
Post: #7
|
|||
|
|||
RE: Constant Vector as Argument in PPL
Mentioning the behavior of the Prime across hardware versions/firmware revisions can help the developers pinpoint when a bug is introduced, making it easier to track down and fix.
Indeed, on a physical calculator the program behaves as you describe while normalize([0,0,-1]) correctly returns [0,0,-1] in Home view. I will file a ticket on the bug tracker, let's hope it can be resolved. - neek |
|||
06-22-2024, 07:10 PM
(This post was last modified: 06-22-2024 07:36 PM by NumericDavid.)
Post: #8
|
|||
|
|||
RE: Constant Vector as Argument in PPL
OK, that's a valid point. The problem occurs on our Prime G2 Hardware and my Windows 11 64bit VC, both on 2023 04 13 (14730) but not on your VC (Mac).
I have a feeling that issue might be related to a CAS/ not CAS irritation. My application is purely numeric but normalize() seems to try to return an expression instead of numeric vector. |
|||
06-22-2024, 07:23 PM
Post: #9
|
|||
|
|||
RE: Constant Vector as Argument in PPL
Update:
nrm([5 10 -1]) translates to nrm(ListToMat({0,1,3,5,10,-1})) first, and then things go wrong. This might be where the "6" comes from. |
|||
06-22-2024, 08:34 PM
Post: #10
|
|||
|
|||
RE: Constant Vector as Argument in PPL
(06-22-2024 07:10 PM)NumericDavid Wrote: I have a feeling that issue might be related to a CAS/ not CAS irritation. My application is purely numeric but normalize() seems to try to return an expression instead of numeric vector. I think you are on the right track. It appears that normalize() is a command dedicated to CAS, and passing a parameter inside a PPL program might not be handled correctly. Therefore, when you enter the program not as pure PPL, but as a CAS region, everything works correctly: Code: #cas However, a simpler solution is to substitute individual elements of the vector one by one, e.g., normalize[0,0,-1] instead of normalize([0,0,-1]). Then your program will look like this: Code: export bla() This should solve your problem. Piotr Kowalewski |
|||
« Next Oldest | Next Newest »
|
User(s) browsing this thread: 3 Guest(s)