Overview
ProCalc serves as a replacement for the standard Windows calculator. In contrast to its competitor, it allows entering the whole equation at once, using more advanced math – such as matrices, DMS notation or complex numbers – defining variables and functions, drawing 2D and 3D graphs and more. It is designed with simplicity in mind, so it won’t cover much of your workspace, while providing some additional mathematical firepower you might need in your everyday work.
System requirements
ProCalc requires:
 Windows Vista or Windows 7
 .NET Framework 4.0
 DirectX 11 runtimes
 A DirectX 9.0c – enabled video card
The latter requirements apply only, if you want to draw graphs.
Basic features
The following features are available in the free version of ProCalc.
Math expression evaluation
ProCalc is capable of doing the following calculations:

Simple calculations.
 2+2*2
 = 6
 (12+8)*3
 = 60
The following operators are supported: +, , *, /, \ (integer division), % (remainder), ^ (power), <<, >> (binary shift left and right), <, >, <=, >=, ==, != (value comparison operations, returns boolean values), &, , # (binary or logical and, or and xor operations). The unary operators include: – and ! (binary negation).

Predefined functions
 sin(3.14)
 = 0.00159265291648683
 sqrt(2)
 = 1.4142135623731
Currently, the following predefined functions are available: sin, cos, tan, ctg, arcsin, arccos, arctan, arcctg, abs, round, trunc, frac, sqrt, sqr, ln, length, copy, pos, insert, delete, uppercase, lowercase, strtoint, inttostr.

Complex number processing.
 1+2i
 = 1 + 2i
 (1+2i)*(3+4i)
 = 5 + 10i

Lists. The lists are supported, but not much functionality is available for them. I plan to include some functionality later. You can use the lists, however, to perform many calculations at once.
 {1+2, 5*8}
 = {3, 40}

Matrices. Common matrix operations are available. Elements in row are separated by comma (,), and rows are separated by semicolon (;). Note, that you can put any numeric value into matrix, including the nested matrices. ProCalc will perform operations on them as long as they will make sense.
 [1,2;3,4]*[5,6;7,8]
 = [19, 22; 43, 50]
 [1+2i;[1,2;3,4]]*[5,7]
 = [5 + 10i, 7 + 14i; [5, 10; 15, 20], [7, 14; 21, 28]]

Boolean operations – including value comparison.
 (true  false) # true
 = False
 2*7<3*6
 = True

Integer fractions (use extended view to read the fraction)
 26/17+43/16
 = 1147/272

DMS values. Note, that DMS is just another way to describe real values. Use the extended view to read results. Please note, that real values are represented by floating point values and operations on these may not be accurate – as in following example. This is not my fault – this is just, how the floating point math works. In future, I consider replacing the real notation for DMS values with native one, which will preserve the accuracy of results.
 12:20:35+1:30:00
 = 13:50:34.99

Values in other numeric systems. Use 0h to denote hexadecimal value, 0b – binary and 0o – octal. Use extended display to read values in all available numeric systems.
 0hfa & 0h1e
 = 0h1a

Defining user variables
 a=5
 = The variable was added!
 a*20
 = 100

Defining user functions, or – if you like – macros
 f(x)=2*x
 = The function has been added!
 f(5)
 = 10
 f([1,2;3,4])
 [2, 4; 6, 8]
ProCalc is aware of sqrt(1) being a complex value. However, I use the de Moivre’s formula, which operates on floating point numbers. You are already aware of their disadvantages, so don’t be suprised to see following result:
In terms of floating point math, the above result means just 0 + 1i = 0 + i = i. If you want more accurate tool, just use Maxima or Octave. Note, that Windows calculator is not able to do such calculation.
ProCalc is also sensitive to types. So, the 1×1 matrix [1] is not equivalent to floatingpoint value 1. However, if you need to extract the value, you may use the indexer:
Note, that indexers are zerobased.
The extended view
You can view the results of evaluation as a binary, octal or hexadecimal value, a fraction or a DMS value.
History of operations
You can access a history of evaluations for the session.
2D graphs
ProCalc can draw graphs of function y = f(x). You can use all variables and functions you’ve defined in the main window. ProCalc will also reflect immediately to all changes you make – for example, if you change value of the variable or redefine the function. This way you can watch the changes of a graph in real time.
3D graphs
ProCalc draws graphs of function y = f(x, z).
Value sliders
If you want to watch closely, how the graph depends on one of its parameters, you can open a Value Slider window for specific variable (or variables). With its help you can smoothly change the variable value and immediately watch the results.
Advanced features
Some of the ProCalc features are restricted to the extended version. When you obtain the license key, ProCalc is extended with the following functionalities:
Parametric 2D graphs
You can draw graphs defined as following: { x = f(t); y = g(t) }.
Parametric 3D graphs
In the 3D mode, you can draw two additional kinds of parametric graphs. The first one is similar to the 2D mode and covers the functions defined as following: { x = f(t); y = g(t); z = h(t) }.
Second allows one to draw parametric surfaces. These are defined by the following set: { x = f(u, v); y = g(u, v); z = h(u, v) }.
…and more
This summary covers the 1.0 version of ProCalc. All ProTools, including the ProCalc, are under constant development, so expect some new features soon.