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.
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.
rpn28xcalc:// URL scheme.
Removes support for obsolete data encoding
used by versions 2.x.
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
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).
dark-mode variant of the dimmed separator colour slightly to improve
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.
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
Makes the busy spinner appear white in dark mode. N.B. The
spinner only appears while executing slow programs.
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.
selection when finishing editing an entry from a lower stack level.
Inconsequential code updates to appease new SwiftLint deities.
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.
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.
an option to re-enable the button press animations for all buttons.
Changes how individual settings are hidden on devices that do not support
Adjust minor interface alignments, colours, error messages, the
colour of the info menu button, and how buttons are identified.
button ordering when changing to/from wide interface layout.
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).
12 or later.
Adjusts layout for
selected iPhone models. On some models, this freed space to show an additional
Avoids rounding errors when restoring data. No longer
'doubles' with reduced accuracy.
Corrects the website and email links
in the (i)nfo menu.
Fixes an issue
trying to decode data that was written by older versions of the app (2.x).
Incorporates a new engine that supports
Adds support for matrices, i.e. arrays within
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
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
Enhances statistics commands to operate on statistics
matrices as well as arrays.
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.
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
Adds a display output layer for programmatic outputs
produced by the DISP command.
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.
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.
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.
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.
to twitter: and itms-apps: URL schemes as required by iOS 9.
the RPN 28x Calc icon to use the same button fonts.
launch image with the app icon.
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
Corrected the comma (,)
button for cases when the decimal separator has been changed to use
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.
crash seen during manual re-ordering when less than 4 levels are on the
Corrected a minor animation glitch at startup.
New data & command log in a separate notebook
window. Up to about 500 log entries are shown in the log viewer.
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
New interface rendering solution.
fonts used for the buttons.
Reduced install size by about 30%.
Minimum system requirement is now iOS 7.1
(up from iOS 6.1). Works fine on iOS 8.1.
Altered secondary views to conform to iOS 8: eMail, Twitter, and
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.
feedback form got the destination email back.