CalculusCalculator v2.0.0 Help

The following are common standards for all text box inputs

0. Direct LaTeX Code Input

In addition to the standard Python/SymPy syntax below, this version supports entering LaTeX code directly. Prefix the LaTeX code with a half-width dollar sign $ as a marker, and the system will automatically convert the LaTeX expression into a SymPy expression for computation.

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: It must start with $, and it must be a half-width dollar sign. If it does not start with $, the system will parse the expression using the original SymPy/Python syntax rules. LaTeX parsing supports common mathematical symbols and structures; complex expressions may also mix LaTeX and SymPy syntax.

1. Mathematical Symbol Input Standard

  1. Add/sub/mul/div: + - * /
  2. Power: ** (e.g. x**2 means x squared)
  3. Square root: sqrt()
  4. Absolute value: abs()
  5. General logarithm log_a(x): log(x, a)
  6. Natural logarithm ln(x): log(x)
  7. Trigonometric functions: sin() cos() tan() cot() sec() csc()
  8. Inverse trigonometric 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 parentheses () are sufficient
  14. Imaginary unit: I

Examples:

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

2. Set / Interval Input Standard

  1. Roster method: FiniteSet(1,2,3)
  2. Set-builder method: 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

3. Function Input Standard

For a function already defined on the "Define" page, you can use it directly in most other input boxes:

4. 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).

5. Compute Tab

Three 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

6. Vector Features

On the "Define Vector" page, 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.

7. Triangle Solving

On the "Solve Triangle" page, 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.

8. Function Plotting

On the "Plot Function" page, you can plot function graphs.

Usage

  1. Expression mode: enter the function expression directly (e.g. x**2, sin(x))
  2. Select function mode: choose a function defined on the "Define" page from the dropdown
  3. Set the left/right endpoints of the domain (default [-10, 10]), supporting SymPy expressions
  4. Click the Plot button 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.

9. Plane Geometry

On the "Plane Geometry" page, define points, lines, segments, circles, triangles, and polygons, then visualize them on the "Plane Plot" page.

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

Switch to the "Plane Plot" page; all defined objects are checked by default. Uncheck the ones you don't need, then click Plot or Update to generate the Matplotlib image.

10. Solid Geometry

On the "Solid Geometry" page, define 3D points, lines, planes, and segments, then visualize them in 3D on the "Solid Plot" page.

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

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

11. Plane Geometry Calculation

On the "Plane Compute" page, 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) on the "Plane Geometry" page; on "Plane Compute" select "Triangle Area" with parameters A,B,C; the result is 6.

12. Solid Geometry Calculation

On the "Solid Compute" page, 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) on the "Solid Geometry" page; on "Solid Compute" select "Tetrahedron Volume" with parameters A,B,C,D; the result is 1/6.

13. Enter Shortcut and Menu Adjustment

  1. Enter shortcut: pressing Enter in the main text input box of each page automatically triggers the corresponding function button (e.g. "Derivative", "Integral", "Compute", "Save"), without manually clicking.
  2. Menu bar adjustment: a "Compute" item is added to the menu bar, containing "Plane Compute", "Solid Compute", and the original "Compute" (general computation), for clearer categorization.
  3. Help page optimization: the help page now auto-adjusts its layout with the window instead of being a fixed size.

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: 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 "Features → 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 pyqt5-math-widget (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, or open the formula dialog via the menu "Edit → Formula Input"
  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.

19. Menu Adjustment

  1. The "Solve Triangle" feature moved from its standalone location to a sub-item of the "Solve" menu
  2. The "Transform" feature moved to a sub-item of the "Compute" menu
  3. A "Cache" sub-item is added under the "File" menu bar, clicking it opens the cache tab
  4. Project structure optimization: added __init__.py to the core/ directory; refactored ui/i18n.py into core/settings.py

20. Blockly Feature (new in v2.0.0)

A new "Blockly" feature lets you build a visual computation flow by dragging and snapping blocks together, completing complex computations without writing code. Open the block editor on the "Blockly" page. Currently supported:

21. Splash Screen and Startup Optimization (new in v2.0.0)

A new splash screen shows progress and hints while the program loads resources, avoiding a blank wait during startup. Combined with the existing lazy-loading (lazy_loader) mechanism, the overall startup speed is optimized.

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.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/8/14