HP Forums

Full Version: Plus42 Equations, Preview Release
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
Yes, all this is a bit tricky. I wrote a cash flow equation for Plus42, and what I did was to isolate the initial cash flow in a CF0 variable, separate from the cash flow list. Which is also good because the first cash flow doesn't have a #TIMES, this is usually the investment put at the beginning of a project.... The 17B has the UI to prompt the first cash flow (index 0) without a #T, and to prompt all the others with a #TIMES. Not too sure what is the best way to ensure compatibility, I think a slight mofication is acceptable here, since Plus42 has matrices....

HP started this mess with the 42S, as Thomas pointed out: REGOO is REGS[1], not REGS[0] !
The list indexing discrepancy between RPN (0-based) and equations (1-based) will have to stay, then.
But yes, FLOW() and #T should be 0-based, then legacy equations will work without change.
(and SIZEC, probably? A 5-item list/array is SIZEC=4, then?)

Werner
New update:

1. Implemented AMORT menu.
2. Made L() non-invertible, again.
3. SIZEC(), FLOW(), and #T() now use 0-based indexing.
Could #T() be modified so that for an Nx1 matrix it always returns 1 instead of a dimension error?
(if the index is within range, at least)
Cheers, Werner
[attachment=10377][attachment=10378][attachment=10376]Exciting development of "plus42", thank you.

Is it possible not to update the size of the menu bar?
The SETDS function is great for pixel graphics, but it completely compresses the menu bar titles.
For example, 8 enter 33 SETDS allows menus consisting of 8 letters to be read correctly. With 8 enter 100 it is already no longer readable.
For a good graphical representation I find 35 enter 33 SETDS perfect.
What do you think about it?

Pierre
New update:

1. AMORT wasn't very usable with a 2-line display. Fixed.
2. #T() now returns 1 for Nx1 matrices (providing the row index is within range).
3. Fixed menu-related crash in EQNVAR with no equation variables.
Great, thanks Thomas!
Werner
(02-16-2022 04:29 PM)Pierre Mengisen Wrote: [ -> ]Is it possible not to update the size of the menu bar?

Currently, no.

It's an interesting idea, though, I'll put it on the list for possible future improvements.

UPDATE: There's actually another enhancement I'm thinking of, that is a bit similar in its main use case, and that is high-resolution PIXEL and AGRAPH. I its simplest form, this could mean that those two functions simply have access to smaller pixels, while text continues to be rendered as it is now. That would keep the familiar UI while allowing more detailed graphs.

Lots of things are possible, including high-resolution fonts etc., and I'm not opposed to any of them, except I have to make some choices if I want to release something before I'm old. ;-)
New update:

Just a few small issues...

1. EQN → CALC → EXIT → EXIT would leave you in the SOLVER menu, instead of exiting all menus. Fixed.
2. The seams between the horizontal stripes of the skin image, used to fill the extra space needed for stretching the display, could show up as thin dark horizontal lines on certain Android devices. Now painting the stripes with a few pixels of overlap in order to prevent this.
3. On Android, ROW+ etc. did not resize the display immediately, when using built-in skins. Fixed.
Just found a small bug in Windows version: using COL+ has no effect on calculator screen. Displayed columns number remains the same (22).
It works fine on Android version.
In both cases i am using the skins which come out-of-the-box, i.e. the only one available on Windows and "Portrait Short" on Android.
(02-17-2022 02:19 PM)Marco Polo Wrote: [ -> ]Just found a small bug in Windows version: using COL+ has no effect on calculator screen. Displayed columns number remains the same (22).
It works fine on Android version.
In both cases i am using the skins which come out-of-the-box, i.e. the only one available on Windows and "Portrait Short" on Android.

Good point, but that's actually not a bug, but a shortcoming in the documentation, which should explain what is going on here.

The issue is that changing the number of columns requires changing the pixel scale, because the skin resizing only allows the display to grow taller, not wider. And that's a problem in the Windows and Linux versions of Plus42, because unlike the other three, those two do not support fractional scaling.

It's not completely impossible to use more than 22 columns in the Windows and Linux versions, but until I add support for fractional scaling to them, the only way is to use a skin that can accommodate more columns without fractional scaling, by changing an existing skin to have more room for the display, or by reducing the pixel size.
New update:

1. 2D plotting.
2. LINE function. Draws a straight line between two points, provided either as four real numbers or as two complex numbers, using the same coordinate convention as PIXEL.
3. In the equation editor, functions without parameters can now be evaluated by pressing CALC.
4. Printing amortization tables is now interruptible.

About the function plotter:

1. Start with GRAPH → 2D. (3D and other types will follow...)
2. Select a program using PGM (PGMPLOT), or an equation object using EQN (EQNPLOT). Note: equations can also be selected from the equation editor, by highlighting the desired one in the list view and then pressing GRAPH. This puts you in the main GRAPH menu with the equation selected, so you can then proceed as below, skipping the PGM / EQN step.
3. To check the selected program or equation, press Shift-PGM or Shift-EQN. They both have the same effect; you don't have to remember whether a program or an equation was selected.
4. Select which parameters are to be plotted on which axis: press PARM (PARAM), then press XAXIS, select the parameter to be used for the independent variable, then press YAXIS, and select the parameter to be used for the dependent variable. Press STK to have the parameter taken from, or returned to, the stack.
For programs without MVAR declarations, or equations without named parameters, PARAM will automatically select STK for both XAXIS and YAXIS.
5. If necessary, assign values to all parameters that will be held constant during the plot, by pressing CNST (CONST) and assigning values as needed.
6. Specify the plot range by pressing VIEW (VIEW.P). You must provide XMIN and XMAX, and you may also provide YMIN and YMAX, or you may use SCAN instead, which samples the function at every 10th pixel and then expands the resulting range by another 10% at both ends.
Use Shift with any of XMIN, XMAX, YMIN, or YMAX, to review the respective setting and also recall it to the stack, or use Shift-SCAN to view all four at once.
7. Press PLOT. The plot should appear on the screen.
8. Once the plot has finished, you are in Plot Viewer mode. While in this mode, the following key assignments are in effect:

7/8/9/4/6/1/2/3: move crosshair cursor around the screen. If the cursor is hard against an edge and you try to move it even further, the plot view will jump in that direction by 1/4 the screen size.
5: re-center the plot on the current crosshair location.
ENTER: place the coordinates of the current crosshair position in the X register, as a complex number.
+ or −: zoom in or out by a factor of 2, keeping the coordinates of the center of the screen constant. (To zoom in on a particular spot, move the crosshairs to that spot, then press 5 to re-center the plot, then press + to zoom in.)
PRINT: print the current plot.
Backspace or EXIT: Leave the Plot Viewer
Shift-EXIT: Exit the app, without leaving the Plot Viewer.
(02-23-2022 12:47 PM)Thomas Okken Wrote: [ -> ]New update:

1. 2D plotting.
2. LINE function. Draws a straight line between two points, provided either as four real numbers or as two complex numbers, using the same coordinate convention as PIXEL.
3. In the equation editor, functions without parameters can now be evaluated by pressing CALC.
4. Printing amortization tables is now interruptible.

Thank you for your work, outstanding indeed.
I have Plus42 on my work laptop and mobile phone :-)

Neverthless, i am becoming a little perplexed.
Plus42 is becoming to be very similar to a 48sx: algebraic equations, folders, an excellent solver, infinite stack with RPL behaviour, UOM management and now even graphs.

I am asking myself what is the real target of you project: a supercharged 42s/Free42 with part of 48sx capability? a 48sx with RPN and a different solver?

Considering that no hardware version of Plus42 is foreseen at present, what is the advantage of Plus42 over an emulated 48sx, eventually with HP41E or other free (or paid) RPN emulators?

Not a criticism, just need to understand.

Cheers
Marco Polo
(02-23-2022 02:16 PM)Marco Polo Wrote: [ -> ]
(02-23-2022 12:47 PM)Thomas Okken Wrote: [ -> ]New update:

1. 2D plotting.
2. LINE function. Draws a straight line between two points, provided either as four real numbers or as two complex numbers, using the same coordinate convention as PIXEL.
3. In the equation editor, functions without parameters can now be evaluated by pressing CALC.
4. Printing amortization tables is now interruptible.

Thank you for your work, outstanding indeed.
I have Plus42 on my work laptop and mobile phone :-)

Neverthless, i am becoming a little perplexed.
Plus42 is becoming to be very similar to a 48sx: algebraic equations, folders, an excellent solver, infinite stack with RPL behaviour, UOM management and now even graphs.

I am asking myself what is the real target of you project: a supercharged 42s/Free42 with part of 48sx capability? a 48sx with RPN and a different solver?

Considering that no hardware version of Plus42 is foreseen at present, what is the advantage of Plus42 over an emulated 48sx, eventually with HP41E or other free (or paid) RPN emulators?

Not a criticism, just need to understand.

Cheers
Marco Polo
I think Plus42 has a lot of value over a 48:
-Classic 4-stack RPN, both direct mode and programming, with its sheer simplicity compared to the unecessarily complex RPL;
-Powerful equation language à la 17B/27S. The 48 has equations too, but way less flexible. Especially, no L() and G();
-Simplicity: only one shift key, all the 42S normal usage is preserved, no clumsy symbolics...
-And, if you want, compacity. You are not forced to use the big screen, you can still keep the 2 original rows and do away with graphics...
(02-23-2022 02:16 PM)Marco Polo Wrote: [ -> ]Considering that no hardware version of Plus42 is foreseen at present, what is the advantage of Plus42 over an emulated 48sx, eventually with HP41E or other free (or paid) RPN emulators?

It's still an HP-42S at heart. Which I, personally, find much nicer to use than the 41 or the RPL series.

The fact that it is strictly an app for now has never bothered me before. I use Free42 on my computers and hand-held devices, and Plus42 is now taking over that role, and making the occasional side trips to RPL emulators unnecessary.

The hardware part is not my concern; I'm an independent developer, I'm not SwissMicros' software provider. Whether they or anyone else wants to build this as calculator firmware is their decision...
(02-23-2022 02:42 PM)Thomas Okken Wrote: [ -> ]It's still an HP-42S at heart. Which I, personally, find much nicer to use than the 41 or the RPL series.

The fact that it is strictly an app for now has never bothered me before. I use Free42 on my computers and hand-held devices, and Plus42 is now taking over that role, and making the occasional side trips to RPL emulators unnecessary.

The hardware part is not my concern; I'm an independent developer, I'm not SwissMicros' software provider. Whether they or anyone else wants to build this as calculator firmware is their decision...
As a matter of fact my usage of hardware calculator in getting lesser and lesser and i find more practical to use an app (Go49gp, Emu48+ or Plus42).
Anyway, i miss the real keyboard feedback but appreciate a lot the possibility of using an app in low light conditions and the ease of backup.

I remember all the license problems after DM42 was released :-(
I fixed the PLOT crash on Android.

I uploaded new builds for all platforms, since the bug had the potential to cause crashes on the other ones as well.
(02-23-2022 02:34 PM)Vincent Weber Wrote: [ -> ]I think Plus42 has a lot of value over a 48:
-Classic 4-stack RPN, both direct mode and programming, with its sheer simplicity compared to the unecessarily complex RPL;
Personally i prefer the RPL stack behaviour (i find it more intuitive) and don't find RPL language so complex.

Quote:-Powerful equation language à la 17B/27S. The 48 has equations too, but way less flexible. Especially, no L() and G();
The 48 solver can solve also program objects, so the "equation concept" is somewhat superseded. I have not yet experimented the 17B/27S/Plus42 equation language, but from a quick manual reading it seems to me functionally like the 48 solver used with program instead of equation. I may be wrong

Quote:-Simplicity: only one shift key, all the 42S normal usage is preserved, no clumsy symbolics...
-And, if you want, compacity. You are not forced to use the big screen, you can still keep the 2 original rows and do away with graphics...
Totally agree
I wonder if there is a mistaken assumption at play here, that by developing a souped-up version of Free42, I'm making a statement that everyone should use it and there is no more reason for anything else to exist.

For the record, I'm making no such statement, I'm merely developing the kind of calculator app that I myself find pleasant to use, and that does everything I want it to. If enough other people feel the same way, maybe it will even pay my bills for a while. Smile
(02-23-2022 04:14 PM)Thomas Okken Wrote: [ -> ]If enough other people feel the same way, maybe it will even pay my bills for a while. Smile
I wish you have a pleasant surprise :-)
Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
Reference URL's