RPN 28x Calc

Version History

Version 3.5.4

July 2023

  • Prevents the assitant window from being hidden when transitioning from Slide Over of Split View into Full Screen mode.
  • Corrects factorial of zero: 0! = 1.
  • Corrects accessibility label for the units button.
  • Page change adjustments.
  • Improved keyboard support using iOS 13 API.

Version 3.5.3

December 2022

  • Brings back the nice button titles, especially for the square root title, the A-Z title, and buttons with sigma or arrow characters. This was caused by a enum coding change that had been recommended by swiftlint; unfortunately the initial change was incomplete.
  • Updates project settings for Xcode 14.1.

Version 3.5.2

October 2022

  • Corrects the calculation of n-th roots. The implementation of Newton's method to calculate n-th roots was incorrect for some values.

Version 3.5.1

September 2022

  • Fixes a crash when starting button reordering.

Version 3.5

September 2022

  • Adds 147 scientific units & constants. Located under the 'Units' tab in the assistant viewer. Double-tap a unit to add it to the stack.
  • Unit conversion with CONVERT command. 'CONVERT' is now the secondary command for 'EEX' on the main page. Note that units can be prefixed using standard ISO-prefixes, e.g. 'cm'. Multiple units can be combined: 'm/s' or 'kg/m*s^2'. Temperatures '°K' can also be written as 'K'. The ISO-hecto prefix 'h' can also be written as 'H'. For incompatible unit conversions a 'Inconsistent Units' (2818) error will be shown. The 'Invalid Unit String' (2817) error occurs when the unit string is not correct, e.g. when a non-existing unit name is entered.
  • The assistant window with the log/variable/units viewer is now also on iPhone. Tap the 'ear' button in the top left corner to open or close the viewer. Tap the down-arrow to expand the viewer height.
  • Debugging programs: add breakpoints with HALT; use SST to step through the commands. When a program is paused, a ring-shaped indicator appears in the status bar (instead of the busy indicator) and a SST-CONT-button panel appears. For better visibility, the SST-CONT panel has a more distinct background colour. The SST-CONT-button panel can be repositioned horizontally, note that it can snap to the central position. The chosen position is saved and restored. Stepped through commands are shown in the (HUD) overlay view. When the program finishes, '»' is shown.
  • Adds upper-tail probability commands for the chi-square (UTPC), Snedecor's-F (UTPF), standard normal (UTPS), normal (UTPN), and Student's-T (UTPT) distributions. Note that these commands are not shown on the iPhone button pages; but they can be typed in.
  • Enhanced the precision for results returned by the SQRT command. Reduces rounding for commands like DEG and COMB.
  • '0.5 ^' now returns a complex result for negative operands.
  • Fixes negative, fractional powers of non-complex operands, e.g. '2 -1.4 ^'.
  • Adjusts matrix-vector division, avoiding invalid dimension error.
  • Adds secondary buttons for: µ (micro), and ° (degree), ' (tick), and " (quote). A few other secondary buttons were shifted. On iPhone, also added numbers, period, and comma as secondary buttons to the A-Z page.
  • Corrects the drawing of disabled buttons using a dimmed overlay layer.
  • Corrects the drawing of the ° (degree) symbol.
  • Reduced some view animation durations.
  • Fixes the texts shown in the overlay (HUD), especially for multiple, consecutive outputs.
  • Shows wider lines of text in the log viewer.
  • Fixes an issue when typing commands like PASTE, EDIT or VISIT. Avoids PASTE output to be missed when PASTE was typed in.
  • As always, diverse code improvements.

Version 3.4.1

April 2022

  • Corrects re-opeing of the last-used button page.

Version 3.4

April 2021

  • Adds complex numbers. To enter complex numbers, begin with a leading parenthesis. One or two numbers must follow, optionally a closing parenthesis. The parentheses and the operand separator are shown dimmed in the display.
  • Adds a USER page for user-defined buttons. Populate the page with the MENU command. Added an information message, shown when the USER page is empty. User-defined button titles are limited to 12 characters. Titles with 6 or more characters give rise to double-width buttons.
  • Adds support for interactive button reordering. Button positions are normally locked. You need to enable reordering in the settings. Customized button ordering are stored in a local file.
  • Arrays may now contain real or complex numbers.
  • Adds new commands for complex numbers: R->C (real to complex), C->R (complex to real), RE (real part), IM (imaginary part), CONJ (conjugate), R->P (rectangular to polar), P->R (polar to rectangular), ARG (argument), and SCONJ (store conjugate).
  • Adds commands for paired statistics: COL∑ (sigma columns), CORR (correlation), COV (covariance), LR (linear regression), and PREDV (predict value). Added ∑PAR variable support for storage of the column indices and the linear regression values.
  • Adds USER as a second function to SHIFT. You need to press it twice within about a second to activate it. To get to the USER page, you an also swipe right until you see the left-most page. On iPad, you can also use the page indicator.
  • To delete a user-defined button, drag it upwards and outside the button area.
  • Added a button to the settings to allow the user to revert to the factory-default button order.
  • Changed the '->' command to no longer act like an auto-executing button. This made it difficult to type it in on the A-Z page.
  • Reorganised the settings; created a new section for number formats.
  • Fixes an entry being deleted when trying to enter a symbol at the beginning of the entry.
  • Reorganizes the buttons to accommodate for the new commands for complex number and paired statistics. On iPad, the STD, FIX, SCI, and ENG buttons are now on the 'Binary' page.
  • The info panel, i.e. the text box seen in the upper part of the side panel (iPad only) is now updated whenever the number format changes.
  • Added explicit rounding for FIX.
  • Adds support for complex numbers to the statistics commands. Changed the data storage used by the statistics table.
  • Adds single and double quotes as second functions to the A-Z letter page.
  • Re-activates the rpn28xcalc:// URL scheme.
  • Removes support for obsolete data encoding used by versions 2.x.

Version 3.3

February 2021

  • Adds support for thousand separators. Allocated flag 47 as an on-off flag for the separators. A custom thousand separator can be selected in the settings, offering comma, period, or space as alternative characters. The decimal separator takes precedence; when using a custom thousand separator, it must be chosen as a different character.
  • Enhanced the operand colouring. All operand separators and thousand separators are shown dimmed, even when embedded within arrays, lists or programs. Previously, only the leading or trailing array/list/string/binary operand separators were dimmed. Changed the log to also display multi-coloured operands (iPad only).
  • Lightened the dark-mode variant of the dimmed separator colour slightly to improve readability.
  • Revived changing the decimal and operand separator button titles, correctly showing the current settings.
  • Adds patch to avoid bad results for EXP with values below -252.672.
  • Changed how the top-most stack row is shown on iPhone. The row may now be shown partially hidden, even when no values are on that level (and scrolling is not enabled). This improves layout in landscape orientation, e.g. on iPhone 12.
  • Minor code cleanup.
  • Project updates for Xcode 12.

Version 3.2

May 2020

  • Eliminates animation conflicts which had caused sluggish button responses. Every key-tap is now detected.
  • The assistant window can now make better use of the available space on large iPads, i.e. for 11-inch or 12.9-inch iPads. In landscape orientation, the assistant window will use the left-hand area.
  • Uses high-precision power function to calculate powers with integer exponents. This also fixes a Swift-Foundation bug which crashed for values that could not be converted from Double to Decimal.
  • Makes the busy spinner appear white in dark mode. N.B. The spinner only appears while executing slow programs.
  • Removes the obsolete "Animate All Buttons" setting with which button highlighting could be disabled. Buttons will always highlight when you touch them.
  • Tapping to reposition the cursor in the entry field no longer competes with lingering scroll indicators. The scroll indicators are now hidden as soon as the entry field has finished scrolling. In other words, now that the scroll bars disappear sooner, you can tap characters sooner.
  • Adds a dark mode colour variant for variables in the assistant window while they are being edited, i.e. when the text '(VISIT…)' is shown.
  • Corrects selection when finishing editing an entry from a lower stack level.
  • Inconsequential code updates to appease new SwiftLint deities.

Version 3.1

March 2020

  • Adds a dark appearance theme (requires iOS 13 or iPadOS 13). New setting in the preferences window to select the appearance and icon. Dark colour and image variants based on other, historical colour scheme examples. Darker background image.
  • Corrects the handling of FOR loops to allow non-integer start, stop and STEP values as well as variables.
  • Adds an alternative dark app icon.
  • Removes requirement to check for Bluetooth when enabling external keyboards. This also avoids having to ask for access to Bluetooth.
  • Adds haptic button feedback for iPhones. Adds a setting to enable it. This is more fine-tuned in iOS 13.
  • Fixes an issue that for multiple, fast button presses, some touch events were not detected. Mysteriously, this effect was only ever seen for the medium-wide digit buttons. Sadly, this fix comes with the cost of disabling the visible button press animations for the medium-width sized digit buttons.
  • Adds an option to re-enable the button press animations for all buttons.
  • Changes how individual settings are hidden on devices that do not support them.
  • Adjust minor interface alignments, colours, error messages, the colour of the info menu button, and how buttons are identified.
  • Fixes button ordering when changing to/from wide interface layout.
  • Fixes occasional incomplete display scrolling to the bottom of the screen.
  • Corrects audio category name to 'ambient'.
  • Removes links to Twitter from the info menu (and these web pages).
  • Requires iPadOS/iOS 12 or later.

Version 3.0.2

February 2019

  • Adjusts layout for selected iPhone models. On some models, this freed space to show an additional stack level.
  • Avoids rounding errors when restoring data. No longer uses JavaScript number encoding in JSON files as these are interpreted as being 'doubles' with reduced accuracy.
  • Corrects the website and email links in the (i)nfo menu.

Version 3.0.1

January 2019

  • Fixes an issue trying to decode data that was written by older versions of the app (2.x).

Version 3.0

January 2019

  • Incorporates a new engine that supports programming!
  • Adds support for matrices, i.e. arrays within arrays.
  • Also runs on iPhone. Supports all models, in any shape or size, as long as it uses iOS 11 or later.
  • On iPad, supports multitasking in Slide Over and Split View mode.
  • Supports all iPad sizes.
  • On iPhone, adds a time-limited HOME page command as a shortcut to return to the main page (press the red shift button twice in quick succession).
  • Enhances statistics commands to operate on statistics matrices as well as arrays.
  • Adds programming commands: IFT (if-then), IFTE (if-then-else), IF, IFERR (if error), THEN, ELSE, START, FOR, NEST, STEP, DO, UNTIL, WHILE, REPEAT, END, ABORT, KILL, WAIT, BEEP (play a sound), CLLCD (clear LCD), CLMF (clear message flag), DISP (display), ERRM (error message), ERRN (error number), KEY, SF (set flag), CF (clear flag), FS? (flag set?), CF? (flag clear?), FS?C (flag set? clear), FX?X (flag clear? clear), FS?S (flag set? set), FC?S (flag clear? set) RCLF (recall flags), STOF (store flags).
  • Alpha mode. To support typing programs, you can use the alpha mode to enter command names. Also, you can press the 'alpha' indicator in the display to toggle the state of the alpha mode.
  • Statistics can now be multi-dimensional, i.e. you can add vectors.
  • Changed the selection model. When a level is selected: commands that consume operands will take the selected operand and deselect the level; the result is returned to the top of the stack; commands that don't consume operands will return the result at the selected level.
  • Changes internal settings to become accessible through the system flags (bits 31 to 64). Changes bit 52 to allow asynchronous tone generation.
  • Adds a display output layer for programmatic outputs produced by the DISP command.
  • Adds matrix commands: IDN (identity matrix), RDM (re-dimension), TRN (transpose), RNRM (row norm), CNRM (column norm), DET (determinate), RSD (residual), CROSS (cross product), DOT (dot product).
  • Adds new commands: S->R (signed binary to real), COMMAND.
  • Renamed commands: MODIFY -> EDIT, EDIT -> REORD (reorder).
  • Changes random numbers to use the RC4 stream cipher.
  • You can tap on the '2π' indicator to switch between RAD (radians) and DEG (degrees) mode. Likewise, you can tap on the number format indicator to change the number format.
  • Adds an option to keep the same button layout when you rotate your iPad into landscape orientation.
  • Updated how the display is resized. Its height is no longer calculated, but simply limited by the screen size. This results in that, when the display is fully extended, the top-most row in will only be partially visible (thus indicating that the user can use scrolling to reveal it). On the plus side, you can now see up to 31 rows on an iPad Pro!
  • Removed the version label from the main screen, and put it inside the info menu, where it belongs. This frees up more vertical real estate to be able to show another line in the display.
  • 0 n CON, i.e. with a zero-size width, is now an error; it will no longer create an empty array.
  • 0 →LIST no longer fails; it creates an empty list.
  • SAME will return 1 for items of the same value, e.g. 2 == as well as value equivalency, you would need to run a program like: « OVER TYPE OVER TYPE SAME ROT ROT SAME AND ». Tip: store this in a valuable named 'EQUAL'.
  • Dropped support for iOS 8 and 9. This version needs iOS 11 or later.

Version 2.2.1

January 2016

  • Added an option reduce motion in the startup animation. Prior to iOS 8, the default is "Off". On iOS 8 or later, this setting will be pre-set to mirror the value of the "Reduce Motion" setting of the General > Accessibility pane of the main Settings application. However, once the value is changed in the settings panel within the app, that value will be retained and used from then on, irrespective of what may be set in the Settings application.
  • Fixed: The grey Copy & Paste Shortcut bar will no longer appear, whether or not Bluetooth is enabled. Previously, it would appear when Bluetooth was on, and the bar would then stay until the app was restarted.
  • Updated the startup animation to animate the app icon rather than the entire launch image.

Version 2.2

December 2015

  • The display status indicators for LC, SHIFT, (2π), HEX-DEC-OCT-BIN, and STD-SCI-FIX-ENG are now active! You can tap on them to change their state.
  • Registering access to twitter: and itms-apps: URL schemes as required by iOS 9.
  • Updated the RPN 28x Calc icon to use the same button fonts.
  • Using a launch image with the app icon.

Version 2.1

May 2015

  • You can now delete entries from the log.
  • Pull up in the log for access to more commands: clear the log, share log items.
  • Added ≠ (not equal) command and aliases: CHS, SQRT, and == (equal).
  • Corrected the font encoding and added more glyphs.
  • Nicer selection colours in the log and variable viewer.

Version 2.0.1

March 2015

  • Corrected the comma (,) button for cases when the decimal separator has been changed to use periods.
  • Improved the operand parsing which has been unable to restore numbers in the order of 1E128 or larger.
  • The entries in the command log are also updated when the decimal separator is changed.
  • Fixed a crash seen during manual re-ordering when less than 4 levels are on the stack.
  • Corrected a minor animation glitch at startup.

Version 2.0

February 2015

  • New data & command log in a separate notebook window. Up to about 500 log entries are shown in the log viewer.
  • New variable viewer, also in the notebook window.
  • Added COPYN command to copy multiple items.
  • New SEL and DSEL commands to programmatically select and deselect stack levels.
  • Changed some commands to store the correct operands for the LAST command.
  • More checks for conflicting selections.
  • New interface rendering solution.
  • More modern fonts used for the buttons.
  • Reduced install size by about 30%.
  • Internal re-structuring.
  • Minimum system requirement is now iOS 7.1 (up from iOS 6.1). Works fine on iOS 8.1.

Version 1.3.5

November 2014

  • Altered secondary views to conform to iOS 8: eMail, Twitter, and settings.
  • Changes to the colour theme will be applied as soon as the settings window is closed.
  • Eye candy: Got rid of the white line at the bottom of the screen.
  • Removed all app rating requests.
  • Internal redecorations.

Version 1.3.4

August 2014

  • Fixed: The feedback form got the destination email back.
  • Minor changes under the hood.

Version 1.3.3

May 2014

  • Corrected UserGuide URL composition.
  • Added rpn28xcalc:// URL scheme.
  • Minor code adjustments for Xcode 5.1.
  • Now using XCTestCase classes.

Version 1.3.2

January 2014

  • Fixed: Text alignment in stack view for iOS 6.1.

Version 1.3.1

November 2013

  • New: A depth counter in top of the stack display. NB. The counter is shown when not all levels can be shown in the display.
  • Fixed: An issue when running iOS 6.1.

Version 1.3

November 2013

  • Refined support for iOS 7; it now requires iOS 6.1 or later.
  • New: Support for external keyboards.
  • Better: Binary numbers are now edited using the current display type (MODIFY command).
  • Fixed: Trying to MODIFY an empty stack creates an error.
  • New app icon with a flatter appearance for iOS 7.
  • Changed the background to a custom linen pattern.
  • Updated popup menu; added a link to our homepage and @RPN28xCalc on Twitter.

Version 1.2

April 2013

  • Added support for a gray interface theme; the default is brown.
  • The decimal separator can now be adjusted in the settings window.
  • Binary numbers like HEX
  • Waking up from sleep in landscape orientation will now be in the correct rotation.

Version 1.1

June 2012

  • Added support for Landscape orientation.
  • Fixes an issue related to handling numbers in different language settings (locale).
  • The FIX number formatting now correctly handles very large numbers.

Version 1.0

May 2012

  • First version.
  • Auto-resizable display.
  • Support for operand selection.
  • Retina-resolution images for the new iPad.