CalculusCalculator v2.1.0 Help

The following applies to all text input boxes

0. Interface Structure and Menus

Since v2.1.0, all former standalone feature tabs have been integrated into the All-in-One page, making the interface much simpler. The current menu bar and tab structure:

Menu bar

MenuItemsDescription
FileSave As / Open / Cache / Settings / Exitproject save/load, cache management and interface settings
FeaturesHome / All-in-One / Editoropen the home page, the All-in-One page, and the Blockly editor
AboutGitHub Link / Web Version / Guide / Helpproject links and built-in help

Tabs

There are 6 kinds of tabs: Home, All-in-One, Help, Settings, Cache, and Blockly Editor. Multiple tabs of the same kind can be open at once (titles are auto-numbered); tabs can be closed and reordered by dragging.

All-in-One page

The All-in-One page is the main interface for all kinds of computation, divided left-to-right into three areas whose widths can be adjusted by dragging the splitters:

  1. Define area: choose a type from the top dropdown (Function, Set, Vector, Plane Geometry, Solid Geometry) to define functions and objects; objects are grouped by type in the tree list and can be read or deleted.
  2. Compute area: choose a computation type from the dropdown (Compute, Derivative, Integral, Equation, Inequality, System of Equations, System of Inequalities, Plane Compute, Solid Compute, Transform, Solve Triangle — 11 in total); the input rows adapt to the selected type.
  3. Plot area: choose a mode from the dropdown (Plane Geometry mode, Solid Geometry mode, Function mode), check the objects to draw, then click Plot or Update to generate the image.
Enter shortcut: pressing Enter in the main text input box of each page automatically triggers the corresponding button (e.g. "Compute", "Save"), without manually clicking.

1. Direct LaTeX Code Input

Besides the standard Python/SymPy syntax below, you can enter LaTeX code directly. Prefix the LaTeX code with a half-width dollar sign $; the system converts the LaTeX expression into a SymPy expression automatically.

Usage:

#MeaningLaTeX inputEquivalent SymPy input
1x over 2$\frac{x}{2}x/2
2x squared$x^{2}x**2
3square root of x$\sqrt{x}sqrt(x)
4sin(x)$\sin{x}sin(x)
5natural log ln(x)$\ln{x}log(x)
6pi π$\pipi
7infinity ∞$\inftyoo
Note: the prefix must be a half-width $. Without it, the expression is parsed with the standard SymPy/Python rules. LaTeX parsing supports common math symbols and structures; complex expressions may mix LaTeX and SymPy syntax.

2. Math Symbol Input Standard

  1. Addition / subtraction / multiplication / division: + - * /
  2. Power: ** (e.g. x**2 means x squared)
  3. Square root: sqrt()
  4. Absolute value: abs()
  5. Logarithm log_a(x): log(x, a)
  6. Natural log ln(x): log(x)
  7. Trig functions: sin() cos() tan() cot() sec() csc()
  8. Inverse trig functions: asin() acos() atan() acot() etc.
  9. Hyperbolic functions: sinh() cosh() tanh() etc.
  10. Euler's number: e
  11. Pi: pi
  12. Positive / negative infinity: oo / -oo
  13. Parentheses: round brackets () work everywhere
  14. Imaginary unit: I

Examples:

#MeaningExpression to enter
12x2*x
2x squaredx**2
3square root of xsqrt(x)
4logarithm base 2 of xlog(x,2)
5natural log ln(x)log(x)
6sine of xsin(x)

3. Set / Interval Input Standard

  1. Roster form: FiniteSet(1,2,3)
  2. Set-builder form: ImageSet(Lambda(x, f(x)), Domain)
  3. Built-in sets:
  4. Intervals:
  5. Union: Union(A,B)
  6. Intersection: Intersection(A,B)
  7. Complement / difference: Complement(A,B), where A is the universal set

Examples:

#MeaningExpression to enter
1set {1,2}FiniteSet(1,2)
2interval [1,2]Interval(1,2)
3interval [1,2)Interval.Ropen(1,2)
4interval (1,2)Interval.open(1,2)
5union {0}∪[1,2]Union(FiniteSet(0),Interval(1,2))
6intersection {1,2}∩{2,3}Intersection(FiniteSet(1,2),FiniteSet(2,3))
7complement R \ [-1,1]Complement(Reals,Interval(-1,1))

FiniteSet use cases

ImageSet use cases

4. Function Input Standard

For a function already defined in the Define area of the All-in-One page, you can use it directly in most other input boxes:

5. Denominator Rationalization

In modules such as derivative, integral, equation solving, and expression simplification, if the denominator of a result contains a radical, the system automatically rationalizes the denominator, simplifying the result into its simplest form where both numerator and denominator are integral or radical expressions.

Example: When computing 1/sqrt(2), the result is automatically displayed as sqrt(2)/2 instead of 1/sqrt(2).

6. Computation Engines

In the Compute area of the All-in-One page with the "Compute" type, four computation engines are supported:

  1. Python built-in engine: uses Python's built-in eval to quickly compute numeric expressions; results are shown as plain text
  2. Mpmath high-precision engine: customizable decimal precision, suitable for high-precision numeric computation; results are shown as plain text
  3. Sympy symbolic engine: performs symbolic computation based on Sympy; results are displayed both as LaTeX code and as plain text.
  4. Latex code generation engine: generates the corresponding Latex code directly from the input Python expression

7. Vector Features

In the Define area of the All-in-One page with the "Vector" type, you can define 2D vectors and perform vector operations.

Define a vector

  1. Vector name: defaults to v, customizable
  2. Vector x/y coordinates: enter the x and y components separately, supporting SymPy expressions (e.g. sqrt(3), pi/2)
  3. Click Save to add the vector to the list, or Delete to remove the selected vector

Vector properties

Vector operations

  1. Select two defined vectors from the dropdown
  2. Select the operation type: addition, subtraction, dot product, angle
  3. Click Compute; the result is displayed both as rendered LaTeX and as plain text
Example: Define v1 = (1, 0), v2 = (0, 1); the addition yields (1, 1), the dot product is 0, and the angle is π/2.

8. Triangle Solving

In the Compute area of the All-in-One page with the "Solve Triangle" type, enter the known conditions of a triangle to solve for the remaining unknowns.

Condition input

  1. Three condition boxes, each with a type selectable from the dropdown: angle A, angle B, angle C, side a, side b, side c
  2. Fill in the values in the corresponding input boxes, supporting SymPy expressions (e.g. pi/3, sqrt(2))
  3. Exactly 3 valid conditions must be filled in

Supported cases

CaseKnown conditionsNote
ASAtwo angles and the included sideunique solution
AAStwo angles and a non-included sideunique solution
SAStwo sides and the included angleunique solution
SSAtwo sides and an angle opposite one of themmay have two, one, or no solution
SSSthree sidesunique solution
Example: condition1=angleA=pi/3, condition2=angleB=pi/4, condition3=sidec=5, solve for angleC, sidea, sideb.
If multiple solutions exist (e.g. SSA), the system labels them "Solution 1", "Solution 2" respectively.

9. Function Plotting

In the Plot area of the All-in-One page with "Function mode" selected, you can plot function graphs.

Usage

  1. Expression mode: enter the function expression directly (e.g. x**2, sin(x))
  2. Select function mode: check functions defined in the Define area
  3. Set the left/right endpoints of the domain (default [-10, 10]), supporting SymPy expressions
  4. Click Plot or Update to generate the graph

Features

Example: Enter sin(x), set the domain to [0, 2*pi], and click Plot to see a complete sine wave.

10. Plane Geometry

In the Define area of the All-in-One page with the "Plane Geometry" type, define points, lines, segments, circles, triangles, and polygons, then visualize them in the Plot area with "Plane Geometry mode".

Define objects

  1. Select a creation method from the dropdown (19 in total)
  2. Enter the object name
  3. Enter the parameters (separated by half-width English commas)
  4. Press Enter or click the Save button to create the object

Supported creation methods

CategoryMethodParameters
Basicpoint by coordinatesx, y
Basicline through two pointspoint1, point2
Basiccircle by center and radiuscenter, radius
Basiccircle through three points (circumcircle)point1, point2, point3
Basictriangle through three pointspoint1, point2, point3
Basicpolygon by vertex listpoint1, point2, ...
Circlecircle with diameter endpointspoint1, point2
Circlecircle by center and a point on itcenter, pointOnCircle
Lineperpendicular bisector of a segmentsegmentName
Lineparallel through a pointpointName, segmentName
Lineperpendicular through a pointpointName, segmentName
Lineangle bisector of two linesline1, line2
Lineangle bisector (three points)point1, point2(vertex), point3
Trianglemedian of a triangletriangleName, vertexIndex(0/1/2)
Trianglealtitude of a triangletriangleName, vertexIndex(0/1/2)
Trianglemidline of a triangletriangleName
Triangleincircle of a triangletriangleName
Triangleexcircle of a triangletriangleName, vertexIndex(0/1/2)
Segmentsegment through two pointspoint1, point2

Plotting

In the Plot area with "Plane Geometry mode", all defined objects are checked by default. Uncheck the ones you don't need, then click Plot or Update to generate the Matplotlib image.

11. Solid Geometry

In the Define area of the All-in-One page with the "Solid Geometry" type, define 3D points, lines, planes, and segments, then visualize them in the Plot area with "Solid Geometry mode".

Supported methods

MethodParameters
point by coordinatesx, y, z
line through two pointspoint1, point2
parallel plane through a pointplaneName, pointName
perpendicular plane to a line through a pointlineName, pointName
parallel line to a line through a pointlineName, pointName
perpendicular to a line through a pointpointName, lineName
perpendicular to a plane through a pointplaneName, pointName
plane through a line and an external pointlineName, pointName
plane through two intersecting/parallel linesline1Name, line2Name
foot of perpendicular from point to planepointName, planeName
foot of perpendicular from point to linepointName, lineName
3D segment through two pointspoint1, point2

Plotting

In the Plot area with "Solid Geometry mode", filter objects via checkboxes, then click Plot or Update to generate a 3D rotatable Matplotlib image (with transparent planes and colored lines).

12. Plane Geometry Calculation

In the Compute area of the All-in-One page with the "Plane Compute" type, use defined points, lines, circles, triangles, polygons, etc. for geometric computation. Parameters are separated by half-width English commas, and defined objects are referenced by name.

Supported operations (32 in total)

CategoryOperationParameter example
Pointdistance between two pointsA, B
Pointmidpoint coordinatesA, B
Pointcollinearity checkA, B, C
Pointtranslate pointA, 1, 2
Pointrotate point about a fixed pointA, pi/2, O
Pointreflect point across a lineA, L1
Lineline equationA, B
Lineline slopeA, B
Lineintersection of two linesL1, L2
Linedistance from point to lineA, L1
Lineangle between two linesL1, L2
Lineparallel / perpendicular checkL1, L2
Circlecenter / radius / area / perimeterC1
Circleintersection of two circlesC1, C2
Circletangent line equationA, C1
Trianglearea / perimeter / circumcenter / incenter / centroid / orthocenterT1
Trianglecircumradius / inradiusT1
Triangleright/isosceles/equilateral checkT1
Polygonarea / perimeterA, B, C, D
Transformtranslate / rotate / reflectsee Point operations
Vectorvector between points / magnitude / dot product / angleA, B
Example: First define points A(0,0), B(3,0), C(0,4) in the Define area with the "Plane Geometry" type; in the Compute area select "Plane Compute" → "Triangle Area" with parameters A,B,C; the result is 6.

13. Solid Geometry Calculation

In the Compute area of the All-in-One page with the "Solid Compute" type, use defined 3D points, lines, planes, etc. for spatial geometric computation.

Supported operations (22 in total)

CategoryOperationParameter example
Pointdistance / midpoint between two pointsA, B
Pointdistance from point to planeA, P1
Pointdistance from point to lineA, L1
Pointproject point onto plane / lineA, P1 or A, L1
Pointcoplanarity checkA, B, C, D
Linedirection vector / intersection / angleL1, L2
Lineparallel / perpendicular checkL1, L2
Lineprojection of line onto planeL1, P1
Planeplane equation from three pointsA, B, C
Planeplane normal vectorP1
Planeangle / intersection line / parallel-perpendicular of two planesP1, P2
Line-Planeintersection of plane and lineP1, L1
Line-Planeangle between line and planeL1, P1
Volumetetrahedron volumeA, B, C, D
Vector(3D)vector / magnitude / dot / cross / angle between pointsA, B
Oblique projectionprojection / inverse / area ratioA or 1,2,0
Example: First define points A(0,0,0), B(1,0,0), C(0,1,0), D(0,0,1) in the Define area with the "Solid Geometry" type; in the Compute area select "Solid Compute" → "Tetrahedron Volume" with parameters A,B,C,D; the result is 1/6.

14. Differential Equation Input Standard

Differential equation input does not follow the function input standard above, because the solution is unknown before solving. The system excludes all defined functions when parsing the expression to avoid interference, and the function to solve for is fixed as f(x).

In the input, use f(x).diff(x,n) to denote the n-th derivative with respect to x. The 1 can be omitted, so f(x).diff(x) denotes the first derivative.

Example: in the Compute area select "Equation" and check "Differential Equation", enter f(x).diff(x,1) on the left and f(x)+1 on the right, completing the input of f'(x)=f(x)+1; click Solve to get f(x)=C1*exp(x)-1.

15. Settings, Language and Theme

Open the settings page via the menu bar "File → Settings" to configure the following:

  1. Interface language: Chinese / English. Takes effect immediately and is persisted; restored automatically on next launch.
  2. Interface theme: Light / Dark. Takes effect immediately and is persisted; restored automatically on next launch.
  3. English help: the help page switches automatically with the interface language; selecting English loads the English help (see help_en.html in this page's English version).

Both settings are saved as JSON under the Qt standard configuration directory (typical path AppData/Local/CalculusCalculator/CalculusCalculator/settings.json), with content such as {"language": "zh_CN", "theme": "dark"}.

Via the menu bar "File → Save / Open" you can save the current workspace (including theme and language) as a project file, which restores the saved theme and language when opened.

16. Expression Cache

Temporarily store and manage commonly used expressions via the "Cache" feature, in two ways:

Cache tab

  1. Open the cache tab via the menu bar "File → Cache" to display all cached expressions
  2. Double-click any cached item in the list to copy its text to the clipboard
  3. The cache list in the tab syncs in real time with the main window's cache data

Input box quick buttons

Each text input box has three icon quick buttons on its right:

IconFunctionDescription
keyboardVisual inputopen the formula editor dialog to insert math symbols and structures graphically
openOpen cachepop up the cache dialog; double-click a cached item to fill the current input box
plusStore to cachestore the current input box text into the cache (duplicates move to front; icon briefly becomes a checkmark)

17. Visual Formula Input

A visual math formula input panel based on MathLive (bundled in the math_input/ directory). Since v2.0.0, the formula editor's underlying engine has been replaced with MathLive, offering a smoother input experience and more accurate symbol rendering.

Usage

  1. Click the keyboard icon button on the right of any input box to open the formula dialog
  2. In the dialog, use the toolbar to select math structures (fractions, roots, sub/superscripts, Greek letters, etc.), operators, or functions
  3. After editing, click OK; the formula is automatically converted to a SymPy expression and filled into the input box

Toolbar groups

18. Save Settings

On the "Save Settings (when saving)" area of the settings page, you can fine-tune which types of information are saved via checkboxes:

OptionDescription
Function listcustom function definitions (fs dict)
Equation list (systems)list of all entered equation expressions
Inequality list (systems)list of all entered inequality expressions
Vector listall defined vectors
All cache contentsall expressions cached in the cache area
Plane geometry object listpoints, lines, circles, triangles, etc. defined in plane geometry
Solid geometry object listpoints, lines, planes, etc. defined in solid geometry
All text box textstext content in all input boxes
All selection box optionscurrent selection of all dropdown boxes
All expression display contentscontents of all formula rendering views
All settings optionstab index, language, theme, and other framework settings
Tip: All list items are checked by default. If you uncheck an item, that type of data will not be saved; when loading, if the save does not contain that type of data, the current state is kept unchanged. Standalone tabs contained in older save files are skipped automatically when loading and do not affect the rest of the restore.

19. Blockly Feature

Open the Blockly editor via "Features → Editor" and build a visual computation flow by dragging and snapping blocks together, completing complex computations without writing code. Currently supported:

20. Splash Screen and Startup Optimization

A splash screen shows progress and hints while the program loads resources, avoiding a blank wait during startup. v2.1.0 further optimizes the startup flow:

Additional Resources

The above content fully references the language specifications of Python 3.12 and SymPy 1.14.

If you have questions, please refer to:

  1. Python official docs: https://docs.python.org/3.12/
  2. SymPy official docs: https://docs.sympy.org/latest/index.html
  3. Mpmath official docs: https://mpmath.readthedocs.io/en/latest/

Version History

VersionRelease dateCore updates
v2.1.02026-10-10Removed 18 standalone feature tabs (Define Function, Define Vector, Define Plane Geometry, Define Solid Geometry, Algebraic Compute, Transform, Plane Compute, Solid Compute, Solve Triangle, Equation, Inequality, System of Equations, System of Inequalities, Plot Function, Plane Plot, Solid Plot, Derivative, Integral) — all features integrated into the "All-in-One" page (Define / Compute / Plot areas); "Blockly mode" menu moved into the "Features" menu; startup optimizations: QWebEngine kernel lazily initialized on first use, lightweight splash screen, redundant formula view refreshes skipped at startup, staged startup profiling added
v2.0.02026-08-14New Blockly feature (visual computation flow); formula editor backend upgraded to MathLive; new splash screen and optimized startup; English help documentation added; Blockly added dual-mode code preview (native SymPy code / library code); fixed LaTeX output rendering misdetection; fixed subscript access error when sympify receives a SymPy object

Thank you for using it!

LiMingkang

2026/10/10