Version
13.2.0
March 31, 2020
New module in the Python app: matplotlib.pyplot
It is now possible to use some functions of the matplotlib.pyplot module in Python. In particular, this subset provides a tool for plotting curves, scatterplots and histograms.
 The functions available in the matplotlib.pyplot module are listed in the Modules section of the Toolbox menu:
arrow()
, axis()
, bar()
, grid()
, hist()
, plot()
, scatter()
, show()
, text()
.
 The figures are displayed with the instruction
show()
. To make the figure disappear and return to the shell, simply press the Back key.
 The figures can be scrolled using the arrow keys and zoomed using the + and  keys.
 An example script, parabola.py, has been added to the list of scripts. To draw the figure, run
simulation()
.
Version
13.1.0
March 17, 2020
Additional results in the Calculation application
It is possible to go up in the history to show additional information on the result of particular calculations, thanks to the menu made up of three dots.
 When the result is an integer, the calculator gives the following additional results: hexadecimal form, binary form and integer factorization where relevant.
 When the result is a fraction, the calculator gives the following additional results: mixed fraction and Euclidean division of the numerator by the denominator.
 When the result or the input is
sin(x)
or cos(x)
, the calculator gives the following additional results: angle, value of the cosine and sine and a representation of the trigonometric circle.
 When the result is a complex number, the calculator gives the following additional results: absolute value, argument, real part, imaginary part and a representation in the complex plane.
Units
The Calculation app is now ready to handle calculations with units.
 Units are prefixed by the character
_
and and named by their International System of Units symbol, e.g. _m
for meters.
 A new section in the toolbox menu lists all the units that can be used.
 The result of a calculation with units is displayed with the most relevant unit. For example, the calculation
30_s+30_s
gives the result: 1_min
.
 It is also possible to perform conversions by using the arrow key
sto→
. For example, to convert 3 meters to centimeters, type: 3_m→_cm
.
Enhancement of the Python application
Many improvements have been made to the Python application.
 It is now possible to copy/paste a selection defined by the user. To select part of a text, hold down shift and press the right or left arrow keys. Copy the selection by pressing shift and then copy. Paste the selection by pressing shift and then paste.
 It is possible to use a new module,
ion
, to read the state of the keyboard keys. The keydown()
function of this module returns True
if the key is pressed, and False
if not.
 The font size used in the Python application can be set from the Settings application.
 The size of the Python script storage space has been multiplied by two and the size of the stack has been multiplied by four.
 The following functions have been added to the Toolbox menu catalog:
list.append(x)
, list.clear()
, list.count(x)
, list.index(x)
, list.insert(i,x)
, list.pop(i)
, list.remove(x)
, list.reverse()
and list.sort()
.
Other improvements
 The Fisher distribution was added to the Probability application.
 Expressions of the form
y(x)
are now interpreted as multiplications when y
has not been defined as a function.
 The Equation app displays a message when variables created by the user are interpreted as such or used as unknowns.
 The scrolling of the value tables has been speeded up.
 The models for the power and trigonometric regressions are now consistent with the models used in other mathematical softwares.
 Moving the cursor over a curve is speeded up if the left or right arrow key is held down for a long time.
 When the Exam Mode is active, the Exam Mode menu in the Settings app explains how to quit the Exam Mode.
Special thanks
We would like to thank all the contributors who helped us release this update: Alexandre André, Adrien Bertrand, JeanBaptiste Boric, Lionel Debroux, Joachim Le Fournis and Neven Sajko
Version
12.4.0
December 12, 2019
This version enables the reactivation of the exam mode when it is already active. The exam mode also persists when the device is reset.
Version
12.3.0
November 26, 2019
This version fixes some bugs in the Sequences application and with the engineering notation.
Version
12.2.0
November 12, 2019
Parametric and polar functions
It is now possible to plot polar and parametric functions in the Functions application. The application has three modes: cartesian, polar and parametric. To choose the mode you want, select the name of the function and press OK.
 To change the curve type (cartesian, polar, parametric), select the name of the function and press OK, then go in the Curve Type section.
 It is possible to change the definition domain of a function by selecting the name of the function and pressing OK, then go in the Domain of definition section.
 By default, the definition domain of polar and parametric functions is
0..2π
.
 By default, the definition domain of cartesian functions is
inf..inf
. You can reset it by typing inf
ou inf
.
 By adjusting the definition domains it is therefore possible to plot piecewise functions.
 The expression of a polar function needs to use the θ symbol, it can be typed using the x,n,t key.
 The expression of a parametric function needs to be typed as a column vector of size 2. The first coefficient is the expression of
x(t)
while the second is the expression of y(t)
.
Enhancement of matrix computations
Matrix computations are now exact.
Enhancement of the Sequences application
It is now possible to define a third sequence in the Sequences application.
Enhancement of the Probability application
 The following probability distributions have been added: chisquared, Student and geometric.
 The functions associated to the normal and binomial distributions have been added to the Toolbox.
Other improvements
 The multiplication symbol is now displayed as a cross or omitted when possible. In case of ambiguous syntax, the multiplication is displayed as a dot.
 The engineering notation has been added in the Result format section of the Settings application.
 The gradians have been added in the Angle measure section of the Settings application.
 Computations using
floor
, ceil
, frac
are now exact.
 MicroPython has been updated to version 1.11.
Special thanks
We would like to thank all the contributors who helped us release this update: Alexandre André, Xavier Andréani, JeanBaptiste Boric, Tiago Pires and Roman Wueest.
Version
11.2.0
June 26, 2019
Improved Calculation app
 The exact result of an input with a decimal number can now be displayed. To make it visible, simply go back to the decimal result with the arrows to select it. Once the decimal result is selected, the exact result appears.
 When the input or the result is too long and exceeds the screen, lateral arrows are displayed to indicate that you can scroll the line.
Improved graph navigation
 It is now possible to type directly on the keyboard the value of the cursor abscissa.
 In the Functions app, when displaying a tangent, it is also possible to type directly the abscissa at which to place the tangent.
 In the Functions app, the Calculate menu available via the OK key now allows you to search for inverse images. Be aware that the antecedent must be located in the window to be found.
Addition of special characters
The texts in the menus and the interface now show the accented characters in some languages.
Enhancement of the Python kandinsky
module
 The
color
function now returns a tuple of the type (r,g,b).
 The
kandinsky
functions requiring a color as an argument accept a color defined by a tuple (r,g,b).
 New function that fills a rectangle of origin
(x,y)
: fill_rect(x,y,width,height,color)
.
 The
draw_string
function accepts two new optional arguments, the color of the text (color1
) and the background color (color2
): draw_string('text',x,y[,color1][,color2])
.
Other improvements
 The maximum size of the matrices has been increased to
10*10
.
 Better handling of the battery icon: the calculator warns the user early enough in case of a low battery to prevent it from switching to DFU mode when charging.

random
is no longer processed accurately so that it is not simplified.
 When calculating an integral, if the user has previously stored a value in the variable used as an integration variable, this value is not substituted in the calculation.
 The symbolic calculation has been removed from the software in order to comply with some exam regulations.
Special thanks
We would like to thank Xavier Andréani who helped us release this update.
Version
10.1.0
March 13, 2019
Exact calculation with complex numbers
The results of calculations involving complex numbers are now given in exact and approximate format.
 Complex number quotients are simplified.
 Complex number arguments are given using pi.
 In the Settings application it is possible to choose the number format in the Complex format section. For example, the option Real, set by default, gives only the real roots of the polynomials. With this option,
sqrt(1)
returns the result: unreal
. You can also enable the Cartesian and Polar options that give complex results in cartesian or polar form. In this case, the polynomial roots are complex and sqrt(1)
returns i
or exp(i*pi/2)
depending on the setting.
Turtle module in Python
It is now possible to use the turtle module in Python. It is a simple and ideal drawing tool for teaching algorithmics.
 The functions available in the turtle module are specified in the Modules section of the Toolbox menu and in the Catalogue.
 The drawing can be interrupted by pressing the Back button.
 The Python app has a new example script (squares.py). To draw the figure, run the command
squares()
.
Improved graph interface
 The colors of the grid now indicate the main and secondary graduations.
 When the frame does not show the axes, you can still see the graduations.
 If graduations values overlap each other, only the extreme values are displayed.
 The automatic zoom of some functions such as
sin^2+cos^2
has been adapted.
 The legend of the graph takes into account the domain of the function.
f(x)=x/x
returns the value undef
in 0.
 When the user disables the Y auto option and adds a function, the zoom remains the same.
Other improvements
 In Natural writing mode, when dividing a multiplication, the fraction line is drawn over the entire multiplication.
 In the Calculations app, when the result is a polynomial (e. g.
x^2+2x+1
), the powers are sorted in descending order.
 In the Calculation and Sequences apps, the symbol “=” has been added next to “f(x)”/ “Un”.
 The maximum limit of the mu/sigma ratio has been increased in the Probability application.
 Correction of rounding errors.
Special thanks
We would like to thank JeanBaptiste Boric who helped us a lot for this update. We also thank Rémy Da Costa Faro and Roman Wueest for their contributions.
Version
9.2.0
January 09, 2019
Improved variables handling
This update includes many improvements in the handling of variables:
 The functions defined in the Functions application can now be used in other applications.
 The var menu has been modified accordingly. The Functions section displays all the functions of the Functions application and the Expressions section displays the number and matrix variables.
 It is now possible to define composed functions using the names of existing functions. You can for instance define
g(x)
as f(x)/2
.
 You can also define a function in the Calculation application by typing, for example,
2+x→h(x)
. The h
function will then be listed in the Functions application.
 Variable names (expression or function) can be freely chosen using the characters : a..z, A..Z, 0..9 and _. A variable name cannot start with a number nor contain more than 7 characters.
 It is possible to rename a function in the Functions application by selecting the name of this function and pressing OK.
 The number of functions in the list of functions is no longer limited.
 The following functions in the Toolbox take an additional argument: diff(), int(), sum(), prod(). This argument indicates which variable is used for derivation, integration, …
Bug fixes and enhancements
 In the Calculation application, if the result of the approximation of the exact value is
undef
, it is no longer displayed.
 In the Python application, it is possible to import the
time
module and use the sleep()
and monotonic()
functions.
 In the Python application, the functions
float()
and eval()
have been added to the catalog.
 The number of Python scripts is no longer limited.
 The software includes a new parser.
 On the simulator, the drawing is now done in real time when using the
kandinsky
module in Python.

log(x,10)
is automatically converted to log(x)
.
 In the Statistics application, a bug in the display of the histogram scales has been fixed.
 In the Regressions application, a bug in the selection of cells in the table of the Stats tab has been fixed. The cells were also enlarged.
Special thanks
We would like to thank all the contributors who helped us release this update: JeanBaptiste Boric, Lionel Debroux and Damien Nicolet.
Version
1.8.1
November 21, 2018
Summary
This update includes new features for your calculator and some patches that improve the performance of your device.
Increased Python storage memory
The storage capacity for Python scripts has increased fourfold.
You can check your calculator’s available memory on your Workshop account: workshop.numworks.com/python/calculator.
Rewritten calculation engine
The whole calculation engine has been rewritten. There are many improvements, including:
 Handling new operations with complex numbers (hyperbolic trigonometry, logarithms, inverse trigonometry, etc)
 Handling the
inf
symbol
 Handling memory errors
 Proper use of the significant figures selected in the Parameters application
 Simplification of a logarithm according to its base
Improved Settings application
The parameter name is enhanced with a visual use case in the following sections: Angle measure, Result format, Writing format and Complex format.
Bug fixes and enhancements
 In Python, underscore prefixed function names no longer appear in the var menu
 In Calculation, bug fix related to the use of the
=
symbol in the display of the results
Special thanks
We would like to thank the contributor who helped us release this update: Rémy Da Costa Faro.
Version
1.7.1
October 16, 2018
Summary
This update includes some patches that improve the performance of your device, including the calculation of the median for a statistical set and a better German translation.
Special thanks
We would like to thank all the contributors who helped us release this update: Michael Haupt and Marc David Vardai.
Version
1.7.0
September 05, 2018
Summary
This update includes new features for your calculator and some patches that improve the performance of your device.
New regression models
The Regression app now allows you to use the following models:
 Linear
 Quadratic
 Cubic
 Quartic
 Logarithmic
 Exponential
 Power
 Trigonometric
 Logistic
Bug fixes and enhancements
 The blinking of the LED indicating the exam mode is more regular
 Fix bug in the median computation
 The selection color is more contrasted in the warning messages
 The design of the switches are inverted
 New square root design
 Fix display bugs in the Toolbox menu of the Sequence app
Special thanks
We would like to thank all the contributors who helped us release this update: JeanBaptiste Boric, Rémy Da Costa Faro,David Meenan, Damien Nicolet, Louis Rannou et Claire Savinas.
Version
1.6.0
June 12, 2018
Summary
This update includes new features for your calculator and some patches that improve the performance of your device.
New Home screen
The applications have been reorganised and the scrolling is now vertical. Each scroll shows three new icons, which is faster than horizontal scrolling (two new icons per scroll).
New application : Equations
This application lets you solve equations and systems of equations with both exact and numerical solutions.
 Exact solutions for the systems with 1 to 6 unknowns variables
 The real and complex roots, as well as the discriminant of quadratic equations, are given in an exact form
 Equations with a single unknown variable are solved with a numerical algorithm that will ask you to set an interval in which to search the solutions
 All lowercase letters can be used to name an unknown variable
Improved Statistics and Regression applications
 In Statistics, it is now possible to use noninteger values in the Sizes column
 In Statistics and Regression, the Data tab has two new tables, to be able to work with three series of data simultaneously
 in Statistics and Regression, it is possible to generate a column using a formula by selecting the column title and pressing OK
Improved Python application
Syntax highlighting is now available in the Python application and the MicroPython version has been updated to version 1.9.4.
Bug fixes and enhancements
 The maximum value allowed for parameter n in the binomial distribution has been increased to 99999
 When editing a Python script, the cursor is positioned between parentheses when using a function like cos, sin, log, …
 In Python, it is possible to interrupt an infinite loop containing an
input
by pressing the Home key
 Some bugs due to switching the Degrees/Radians setting have been fixed
Special thanks
We would like to thank all the contributors who helped us release this update: JeanBaptiste Boric, Tillmann Karras et Damien Nicolet.
Version
1.5.0
May 17, 2018
Summary
This update includes new features for your calculator and some patches that improve the performance of your device.
The calculator now features natural writing input
You can switch between Linear and Natural input mode in the “Writing format” section of the Settings application.
With Natural writing, expressions can be written like on paper, including:
 Fractions
 Matrices
 Subscripts and superscripts
 Absolute values
 Etc.
Line numbering in the Python editor
The lines in the Python editor are now numbered: errors returned by the console can be identified more quickly.
Bug fixes and enhancements
 The screen brightness setting does not change when the calculator is connected
 The display of the serial number has changed
Special thanks
We would like to thank all the contributors who helped us releasing this update: JeanBaptiste Boric and Claire Savinas.
Version
1.4.1
April 16, 2018
Summary
 Fix MicroPython random module
 Fix a bug of nondetection of the calculator when plugged to a computer
 Fix a bug that required a manual reset of the calculator at the end of the update
Version
1.4.0
April 11, 2018
Summary
This update includes new features for your calculator and some patches that improve the performance of your device.
You can now send scripts between a calculator and a computer
The new Python tab of workshop.numworks.com features an interface that allows you to:
 Write scripts online and transfer them to your calculator
 Manage a personal library of scripts on your account (created online or downloaded from your calculator)
 Access a public library where you can share your scripts with other users
 Manage scripts on your calculator
Simplified update procedure
 Future updates will be able to be made without pressing the reset button
 Python scripts can be saved during an update
Bug fixes and enhancements
 Upgrade to MicroPython 1.9.3
 Improve Yauto in the Functions app
 The graph window automatically adapts to periodic functions
 Smart incrementation of the table in the Statistics application
 Fix bugs in the Sequences app
Special thanks
We would like to thank all the contributors who helped us releasing this update: Adrien Bertrand, JeanBaptiste Boric, Zhaofeng Li, Damien Nicolet, Claire Savinas.
Version
1.3.0
February 01, 2018
Summary
This update includes new features for your calculator and some patches that improve the performance of your device.
Sequences app enhancement
 You can now define dependent sequences : allowed syntax shorcuts can be found in the Toolbox
 Enable to change the initial index of the sequence
Functions app enhancement
 New menu “Calculate” can be opened pressing OK when the cursor is on a curve
 Find a minimum or a maximum
 Find a zero/root
 Find an intersection
 Compute an integral
 Compute a tangent equation
 Enhance the graphic design of the graph window and the cursor
Python app enhancement
 Add random module. Add available functions in the Toolbox menu :
getrandbits
, seed
, randrange
, randint
, choice
, random
, uniform
 Add
input()
, min()
, max()
, list[m:n]
, single quote
Probability app enhancement
 All results can now be selected and copied
 Increase the accuracy of the results
 Textfields can now be stretched and adapted to the text they contain
 Use erf and erf inverse for normal distributions
New functions in Toolbox

factor(n)
: integer factorization

random()
: floating point number in [0,1[

randint(a,b)
: random integer in [a,b]
Calculation app enhancement
 Expand multinomials (a+b+c+…)^n

Ans
symbol is now replaced by its exact mathematical expression
 Simplify logarithms to base a
 Add the equal sign between an expression and its exact decimal value in the results
Bug fixes and enhancements
 Fix exponent layout alignment
 Fix bug in “significant figures” settings
 Fix bug with
inverse(x)
 Improve performance of the calculator
 Fix derivative bug with
abs(x)
and improve derivative computation
 In Home menu, pressing back or home buttons selects the Calculation app
Special thanks
We would like to thank all the contributors who helped us releasing this update: Adrien Bertrand, JeanBaptiste Boric, Yoann Dupas, Max Lekeux, Damien Nicolet, Gabriel Potter, Jacob Young.
Version
1.2.0
December 05, 2017
Summary
This update includes new features for your calculator and some patches that improve the performance of your device:
 Accurate math engine
 Python app
 In settings, ability to choose the number of displayed digits (between 1 and 14)
 Retrieve all digits when a result is copied from the calculation history
 Modify multiplication character (cross when editing, point when displaying)
 Fix the display of the results for the probabilities P(a<X<b)
Accurate math engine

Sums and products: factorization of expressions such as ax+bx, distributivity of multiplication, same denominator for the terms of a sum

Fractions: fractions are made irreducible

Exponentiation : simplification of expressions such as (a^x)(a^y) and (a^x)(b^x), expansion of (abc…)^r

Square roots: simplification with uniqueprimefactorization, elimination of rootmonomials and rootbinomials denominators

Trigonometric funtions: remarkable points (0, pi, pi/2, pi/3, pi/4, pi/5, pi/6, pi/8, pi/10, pi/12), simplification of expressions with parity and trigonometric formulas (all angles are given between 0 and pi/2), simplification of sin/cos in tan, simplification of arccos(cos)…

Logarithm and exponential: composition with ln and exp, formulas such as ln(ab), ln(a^x) or exp(a)*exp(b)

Integers: computation with arbitrarily large integers (display is limited to 100 digits) : factorial, binomial coefficient,…

Complex numbers: powers of i, simplification of exp(iPi*x) expressions
 Results can be displayed both in exact and approximate form. Only in the approximate form is shown if the expression is irreducible or no simplification can happen
 Exact calculation is used in all the applications to prevent float rounding errors but all the results are approximated
Python app
 Add an interactive shell
 Ability to copy a line of the history with OK
 Interface : list of scripts with option buttons and a button at the bottom to open the shell
 Ability to import a script in the interactive shell
 Ability to add some additional scripts
 Ability to name/rename a script
 Ability to delete a script
 Ability to choose wether a script is autoimported in the shell
 Add a shortcut in the option menu to only import the current script
 Automatic indentation
 Add a shortcuts menu and a catalog in the toolbox
 Ability to use alphabetical keys to navigate in the catalog
 Add modules: math, cmath and kandinsky
 Display error details in the shell
 The var key gives a list of the global variables and functions defined by the user
Special thanks
We would like to thank all the contributors who helped us releasing this update: Ian Abbott, Damien Nicolet, Jacob Young.
Version
1.1.3
October 04, 2017
Summary
This update includes new features for your calculator and some patches that improve the performance of your device:
 Automatic insertion of ans before sto
 “Floor” and “ceiling” symbols
 Origin/end of text field shortcuts by pressing shift left or shift right
 Numerical integration algorithm improvement
 Fix what x,n,t key inserts according to the place of the cursor in the expression (sum, product, diff or int).
 Fix “undef” results in some operations on complex numbers
 Add sample standard deviation in Statistics
 Pressing shift in alpha locked mode is a toggle to switch between lowercase and capital letters
 Decrease the width of the x/n column in Functions/Sequences to allow the user to read the values of two functions/sequences
Special thanks
We would like to thank all the contributors who helped us releasing this update: Ian Abbott, Adrien Bertrand, TJ Horner, Damien Nicolet, Jacob Young.
Version
1.1.2
September 07, 2017
Summary
This update fixes the computation of powers of 0.
Special thanks
We would like to thank all the contributors who helped us releasing this update: Jacob Young.
Version
1.1.1
September 06, 2017
Summary
This update includes new features for your calculator and some patches that improve the performance of your device:
 Option to adjust the brightness of the screen
 Patch concerning the factorial function
 Fix matrix dimensions in transposition, multiplication and opposite
 Displaying the right device serial number
 Fix power function (negative numbers)
 Give an imaginary result for negative numbers’ square root
Option to adjust the brightness
You can now adjust the brightness of the screen. Just go to the Settings and use the left/right arrow to move the cursor to dim the screen.
Special thanks
We would like to thank all the contributors who helped us releasing this update: Adrien Bertrand, Dean Blackketter, JeanBaptiste Boric, Michael Davis, Marc Lagrange, Matt Waltz, Jacob Young.
Version
1.1.0
August 28, 2017
Summary
This update includes new features for your calculator and some patches that improve the performance of your device:
 Manage computations such as P(X=a) for discrete probability distributions
 Manage normal distribution inverse in the following case: P(mua≤X≤mu+a)=p
 Improve calculation accuracy
 Beta version of Python to edit and run programs
Probability app upgrades
You can now directly compute Binomial or Poisson probabilities given a in the expression: P(X=a).
The app also allows you to find a given p for the Normal distribution in the expression: P(mua≤X≤mu+a)=p.
Calculation accuracy upgrades
Your calculator handles doubleprecision numbers, twice accurate than the former floats used until now.
Python (beta version)
A beta version of Python is now available on your calculator. You will be able to edit and run a program but it is a test version: some features could be unavailable and you may encounter some unexpected bugs. A final version will be released soon.