Home > Plus42 > History

2023-08-17: release 1.0.21 * Added string and list functions to the equation language. The new functions have been added to the FLAGS menu and CATALOG->FCN in the equation editor. List literals have the format {A:B:C}. List elements may be any type, including lists or matrices. * Equations: Fixed stack access within matrix literals. * Fixed LASTX option in the equation editor's stack menu (R↓ key). * Fixed Y^X with units where X is a negative reciprocal. * →LIST and LIST→ didn't print in TRACE mode. Fixed. 2023-08-11: release 1.0.20 * Added 1LINE and NLINE functions, to select 1-line or n-line mode. 1-line mode forces matrices and lists to be displayed in compact format, even if the display has more than 2 lines; n-line mode is the multi-line matrix and list display that was introduced in 1.0.17. The latter remains the default. * INPUT would crash if R/S was pressed while the stack was empty, in NSTK mode. Fixed. * ANUM would consider a decimal point or comma by itself as zero, instead of ignoring it. Fixed. * Added UNIT? to the UNIT.FCN menu. * If an error occurs while evaluating an equation, which does not exist in the EQN list, going to EQN mode and pressing R/S will now add the equation to the EQN list, and then start editing with the cursor on the site of the error. This used to work only for equations that were in the EQN list beforehand. * Added LASTX for equations, to work alongside REGX/REGY/REGZ/REGT, for read-only access to the RPN stack. * EDIT, EDITN, and INDEX didn't clear flags 76 and 77 (matrix edge wrap and end wrap), while they should. Fixed. * Decimal version: In HMS+ and HMS-, fixed handling of cases where either or both of the arguments has a number of minutes or seconds >= 60. (The binary version did not have this bug.) * Binary version: max digits for SHOW increased to 17. This was necessary because 16 digits was actually never enough to begin with. For example, 5 1/X and 5 SQRT X^2 1/X both returned a result that looked like 0.2 in SHOW, even though they are different, as can be easily verified with X=Y? or by subtracting them. It takes 17 decimal digits to ensure that different binary numbers will always be rendered as different decimal numbers. 2023-05-05: release 1.0.19 * Fixed the definition of the 'ton' unit (U.S. short ton). It was 10^10 times too large, due to a missing sign in the units definition table. * Equations like [1:2:3]=A, when entered without a name, weren't parsed correctly, because the part before the first colon would be incorrectly interpreted as a name. Fixed. * When an error occurs while evaluating an equation, and that equation exists in the EQN list, pressing R/S in the EQN list view will now start editing that equation, with the cursor on the part of the equation where the error occurred. 2023-04-17: release 1.0.18 * Fixed crash when loading state, when the current program is an equation that is only referenced by SOLVE/INTEG internal variables. * Changed Σ+/Σ- so that, in NSTK mode, they will accept a single real argument, assuming Y=0 in that case. * Added STOP() function for equation debugging. * In the equation editor, the named-equation catalog could select items from the wrong row. * Fixed handling of LCLV of indexed matrix. It used to leave any pushed indexed matrix in limbo until RTN. With this change, the pushed indexed matrix is popped immediately. * Tuned TONE frequencies to A440 scale. 2023-04-10: release 1.0.17a (iOS and MacOS) * Copy in PRGM mode was dropping line 01, because of an optimizer bug in the latest compiler. Reduced optimization level from -Os to -O1 to work around this problem. 2023-04-05: release 1.0.17 * Matrices and lists in the X register are now shown in full, or as much of them as will fit anyway, when the display size is set to more than 2 rows. * SOLVE in PLOT now provides more informative feedback for Extremum, Sign Reversal, and results from the direct solver. * Fixed crash in RTNERR when switching back to NSTK mode after FUNC/L4STK. * Fixed ASSIGN "" in programs. * Added PRREG to the PRINT menu. * NN→S now ignores the display mode and always acts like ALL mode is active. The idea being that if you care about the display mode, you'll probably be using N→S, and you only need NN→S if you specifically want to see full internal precision. 2023-03-17: release 1.0.16 * EDIT, EDITN, and INDEX now support lists, acting like they are 1-column matrices. (Empty lists are not supported, they must have at least one element. This limitation will be removed in a future release. Note that you can create a new 1-element list by simply doing NEWLIST 0 +.) This includes STOIJ, RCLIJ, STOEL, RCLEL, I+, I-, J+, J-, ←, ↑, ↓, →, INSR, DELR, and DIM. * Equation editor: now inserts spaces around logical AND, OR, XOR, and NOT. * Added PRREG. Because PRV "REGS" is not a good substitute. * Added NN→S. This works like N→S (convert number to string on the stack), but without the 12-digit mantissa length limit, so you get full precision in ALL mode. * Fixed stack lift handling in DELR and STOFLAG. * Fixed pasting 1/X, 10^X, and 4STK, when pasted without line number and with trailing space. * PRP and LIST in TRACE mode now print line numbers for all lines that are targets of GTOL or XEQL, like it already did for LBL lines. * Fixed pasting of GTOL and XEQL. 2022-12-14: release 1.0.15 * Fixed a couple of bugs in Paste of scalars in BINM, OCTM, and HEXM modes. * Fixed pasting of U+22A2 and U+22A6 ('append' characters used by i41CX and Emu42) and U+00B7 ('bullet' character used by Emu42). 2022-11-19: release 1.0.14 * Added support for new SI prefixes: R (ronna, 10^27), Q (quetta, 10^30), r (ronto, 10^-27), and q (quecto, 10^-30). 2022-11-12: release 1.0.13 * Fixed crash with one-arg RADIUS, ANGLE, XCOORD, and YCOORD. 2022-10-27: release 1.0.12 * SOLVE does a better job of reporting Sign Reversal when a function changes sign around a vertical asymptote, instead of reporting it as a root. * When returning to the equation editor after a parse error, the text could be positioned incorrectly on the screen, and the editor could even crash, in some cases. Fixed. * Added Boolean operators to the equation editor's PGM.FCN menu. * Made I%YR solver a bit more robust. * BASE: complex numbers and numbers with units were being copied or shown in non-decimal bases in some cases. * Better HEXM and OCTM handling in SHOW. * Fixed number entry in PRGM mode when BINM/OCTM/HEXM active. * No longer setting flag 22 if number entry ends with DROP in NSTK mode. * Added LINE PLOT.M SPFV SPPV TVM USFV USPV to CATALOG->MISC. * →PAR now produces more helpful output in TRACE mode. * Windows, Mac, and Linux versions: added Alt-1 through Alt-6 as mappings for the second row of the keyboard. 2022-10-01: release 1.0.11 * Fixed crash in SHOW for certain complex numbers. * Added A...F function. This allows programs to turn on HEXM mode with the A...F menu activated. * Added UBASE and UVAL to the equation parser. * PLOT: Fixed coordinate rounding at the top of the display. * Raised precedence of _ operator, so expressions like 40000_"km"/1_"d" can now be written without parentheses. * The direct solver now converts the solution to match the units of the previous value of the variable being solved for, if it existed already and had compatible units. In all other cases, the variable is overwritten, as before. * iOS version: Added Calculator / Print-Out swipe direction configuration option to Preferences. * Android, iOS, and MacOS ARM versions: Fixed incorrect Out of Range error returned by BASE functions in certain cases, e.g. BRESET 64 WSIZE 1 ENTER BASE÷. 2022-08-13: release 1.0.10 * Fixed crash in PARSE when parsing ITEM(). * Fixed (re,im) complex pasting. This was broken by localized copy & paste. * Special cases for pure real and pure imaginary in SQRT. 2022-06-19: release 1.0.9 * SGN() didn't evaluate its parameter, and instead consumed the value from level 1. Fixed. Note that this was a code generator bug; any expressions containing SGN() will have to be re-parsed in order to eliminate the effects of this bug. * SOLVE in PLOT, when used with a function with X:<STK>, would create an extraneous variable named "". Fixed. 2022-06-18: release 1.0.8 * I%YR iteration robustness improvements. * Localized Copy & Paste. * Fixed handling of invalid number keys in BASE. * Setting AMORT->TABLE parameters to 1 initially. * Fixed #P parameter check so it doesn't allow 0. * iOS and MacOS versions: Fixed skin rendering for iOS 16 and MacOS 13. 2022-06-11: release 1.0.7 * Fixed crash in variable catalog. * I%YR robustness improvements. 2022-06-08: release 1.0.6 * Fixed I%YR when PMT=0 (broken in 1.0.5) 2022-06-08: release 1.0.5 * TVM: PMT returned incorrect results in BEGIN mode. Fixed. * TVM: In some cases, I%YR could return inaccurate results because of poor starting guesses for the iteration. Fixed. * More accurate complex ACOS and ACOSH. * Android version: Now removes itself from the task list if exited using OFF. 2022-05-17: release 1.0.4 * TVM: Fixed error checks in N. 2022-05-13: release 1.0.3 * SOLVE now handles functions that are always positive or always negative a bit better, reporting Extremum when the iteration appears to be bouncing around without improving, instead of continuing indefinitely. * PLOT now detects <Not a Number> in XMIN/XMAX/YMIN/YMAX and reports Invalid Data, instead of freezing. 2022-05-09: release 1.0.2 * Added code to prevent freeze in PLOT under certain circumstances. 2022-05-09: release 1.0.1a (Android only) * Fix for crash on startup with Android versions before 4.3. 2022-05-05: release 1.0.1 * DIM "X", when X existed but was not a matrix, would cause a crash. Fixed. * Equations: NOT was broken, not recognized as Boolean operator. Fixed. * Equations: Added TYPE? and UNIT? functions. 2022-05-05: release 1.0a (Windows and Linux) * More efficient display updating, so long-running programs that update the display a lot don't waste a lot of CPU time repainting the display faster than the human eye can see, and spend more time actually running the program instead. Note that this update is for Windows and Linux only, because the Android, iOS, and MacOS versions already worked this way. 2022-04-27: release 1.0 * Based on Free42 3.0.11, with the addition of: a larger and resizable display, algebraic equations, attached units, directories, time value of money and amortization schedules, and function plotting.