[General Topics] Skyica:
Classification of apps and compilation of features

Kinds of calculators

Since for different people and different purposes, different types of calculator apps will be optimal, let us first make a classification.

Traditional handheld calculators may be classified as follows (excluding completely basic and financial calculators):

Basic scientific calculators

Advanced numeric scientific calculators

(distinguished from the basic ones by e.g. equation solving, calculus, and matrix calculation capabilities)

Programmable calculators

Graphing calculators

CAS (Computer algebra system, i.e. symbolic computation) calculators

(also including the functionality of advanced numeric, programmable, and graphing calculators)

However, if one needs more than a basic scientific calculator at all, it will probably be useful to have symbolic as well as numeric calculation, and also graphing (and possibly programming).

This also seems to be what most calculator app developers have thought, since nearly all good apps with a functionality exceeding basic scientific calculators include at least basic symbolic computation and graphing features.

Therefore, I will classify the apps here simply as “basic” or “advanced” calculators for feature comparison.

Nevertheless, a more detailed classification is useful and will be used to structure this review:

Advanced general-purpose calculators

Apps with a wide range of advanced numeric and symbolic computation and graphing that are convenient for both quick and more complicated calculations.

Graphing tools

Apps specializing in graphing, whether or not they include other functionality.

CAS answer engines

Apps with powerful symbolic computation, that also accept input in natural language, and can give not only calculation results, but also information on mathematical definitions and concepts (WolframAlpha is currently the only such app).

Advanced learning calculators

Apps designed for learning mathematics, often with symbolic computation, showing intermediate calculation steps, and able to recognize written problems from photos.

Advanced calculators of other types

E.g., apps with a “notebook interface” (similar to Mathematica), computer algebra systems with a command-line interface, and apps with programming / scripting.

Intermediate scientific and graphing calculators

Apps with some advanced features like 2D graphing, basic numeric / symbolic calculus, numeric equation solving. Up to the level of the TI-84.

Basic scientific calculators

Apps without advanced mathematics like calculus, that are nevertheless suitable for science and engineering (with features like scientific constants and units, and base-n calculation).

Features and test problems

To be able to objectively compare the apps, I have made lists of important features and some test problems.

The test problems are of course quite arbitrary and cover only a small part of the features, and a still smaller part of the range of important problem types. Nevertheless, I think they give some helpful insight into the power and reliability of the apps.

The features that I consider essential are in blue and will be used as the baseline for the reviews. More advanced features, which fewer people will need, are in parenthesis. Even more advanced features are in double-parenthesis. The test problems are in green.

Advanced calculator features and test problems​

As a basis I have taken the functionality of advanced hardware calculators like the TI-89 or TI-Nspire CAS, while considering the capabilities of modern Android devices.

Numeric and symbolic calculation

(in addition to the basic functionality of all scientific calculators):

Complex numbers: Rectangular and polar form, common operations and functions

Symbolic computation essentials:

Calculation with exact values (fractions, roots, pi, etc.)

e^pi/e^(2pi) should be simplified to 1/e^pi or e^-pi

Automatic simplification

2x/(x^2-1)-1/(x-1) should be simplified to 1/(x+1)

(Factorization and expansion of polynomials)

((Equation manipulation))

(Assumptions, e.g. domain constraints)

Equation solving:

Numeric

Ln(x) = -x should be solved as x = 0.567143

sin(x) = x/2 should be solved as x = {0, ±1.89549}

Symbolic

sin(1/x)=0 should be solved as x = 1/(n*pi)

ln(x*y) = y*ln( y) should be solved as x = y^(y-1)

Real and complex solutions

(X+1)^2 = -1 should be solved as x = -1±i

(Equation systems)

x²+y² = 2 and x²*y² = 1 should be solved as x = ±1 and y = ±1

(Specification of variable ranges)

(Inequalities)

Differentiation and integration:

Numeric

Symbolic

(e^x+1)/(e^x-1) should be integrated to 2*ln|e^x-1|-x

1/(1+sin(x)) should be integrated to e.g. tan(x/2-pi/4), or -2/(tan(x/2)+1), or (sin(x)-1)/cos(x)

x/(1+sin(x)) should be integrated to e.g. 2*ln(cos(-x/2+pi/4))-x*tan(-x/2+pi/4)

x/ln(x) should be integrated to Ei(2*ln(x))

Multiple / nested operations

Other calculus and analysis:

Finding minima and maxima, numeric (and symbolic)

Minima of sin(1/x) should be given like 2/(4pi*n-pi)

Sums and products of sequences, also infinite, numeric and symbolic

Limits, also one-sided, numeric and symbolic

(Taylor expansion)

((Differential equations solving))

Matrices and vectors:

Standard operations and functions

(Vector calculus, esp. gradient, divergence, curl)

Basic number theory and combinatorics: random, prime factorization, gcd, lcm, factorial, nCr, nPr

Base-n calculation: conversion and bitwise operations for binary, octal, hexadecimal numbers

Statistics and probability

One and two variable statistics: with frequencies, (histograms, box plots)

Regression: Linear, quadradic, logarithmic, exponential, …, with plots

((Confidence intervals calculations))

((Statistical tests, e.g. t, z, F, chi², ANOVA))

(Probability distribution calculations)

Calculation with units and unit conversion

Scientific constants

2D and 3D graphing

Display of multiple graphs in one coordinate system, also of different types

(Multiple workspaces, i.e. coordinate systems)

Graph types:

Cartesian function plots

2D: Polar function plots

Parametric plots, in 3D both curves and surfaces

(Implicit plots)

4*(x^2+y^2+z^2)+16*x*y*z = 1 (Cayley's cubic surface)

((Differential equations plots))

((Complex plots))

Display:

2D: (Customizable) grid, adapting to zoom (with major and minor lines)

3D: Labeled coordinate axes, (optional semitransparent x-y-plane, optional x-y-grid)

Custom colors for individual graphs

(3D: Surface display: solid with variable transparency, and as wireframe)

(3D: Both orthographic and perspective projection)

((3D: Quality settings))

(Animation of parameter variables)

Portrait and landscape orientation

Navigation:

Equal and independent scale of axes

2D: Simultaneous pan and zoom with 2 fingers

3D: Complete and intuitive navigation, e.g., orbit around center with one finger, pan and zoom with 2 fingers

(3D: Automatic rotation)

Analysis:

2D: Tracing

2D: Display of coordinates of intersections, zeros, extrema

Environment and user interface

Variables and functions:

Saving values to variables

(Custom-named variables for storing values and for use in symbolic computation)

(User-defined functions that can be used in numeric and symbolic calculations)

(Piecewise defined functions), ((Programmed functions))

(Intermediate calculation steps)

((Programming environment))

Input and output:

Display and input of expressions in standard mathematical notation, like in a textbook

Copy and paste, also parts of expressions

Undo & Redo

(Automatic calculation without tapping enter key)

(Multiple workspaces)

(“Quick Info”: Display of various useful information about the entered expression or result with one tap, e.g.: prime factorization for integers, alternative formats for numbers, alternative forms for expressions with variables, solutions for different variables for equations, graphs for expressions and equations with 1 or 2 variables)

History of calculations

Import / export, (sync and share) of variables, functions, (and history)

Adaption and customization:

Convenient interface for small phones, good use of the space available on large phones (and tablets)

Adjustable display text size (and keyboard size)

(Keyboard layouts for different screen sizes), ((Custom keyboard layouts))

(Light and dark mode, different themes, custom colors)

Documentation and source

Complete user guide (with full text search), (in-app and external)

(Function / command reference with full text search)

(Info / description of the algorithms used)

(Open source)

For Basic scientific calculators, I use a separate list:

Basic scientific calculator features​

Calculation

in addition to the basic functionality of all scientific calculators:

Basic number theory and combinatorics: random numbers, prime factorization, gcd, lcm, factorial, nCr, nPr

(Calculation with fractions, roots, pi)

(Base-n calculation: conversion and bitwise operations for binary, octal, hexadecimal numbers)

(Complex numbers: Rectangular and polar, common operations and functions)

(One-variable statistics)

(Calculation with units and unit conversion)

(Scientific constants)

Memories/variables, functions

Enough memories/variables

Using variables directly in expressions, not just inserting the value

(Saving functions)

Input and output:

(Standard mathematical notation, like in a textbook)

Otherwise, multi-line

Copy and paste, (also parts of expressions)

(Undo & Redo)

(Automatic calculation without tapping enter key)

Number formatting:

Custom number of decimal places, round/cut modes

Scientific and engineering formats

Thousands separator

(Repeated decimals)

History of calculations

(Import / export of variables, functions, and history)

Adaption and customization:

(Different keyboard layouts, custom keyboard layouts)

Light and dark mode, (different themes, custom colors)

User guide