Changelog
[1.0.0] - 2025-05-13 (Advanced Symbolic Capabilities & UI Enhancements)
This major update significantly expands the symbolic mathematics capabilities by integrating a wider range of Nerdamer.js functions and refines the user experience with enhanced options and documentation.
✨ Added
- Expanded Symbolic Operations (via Nerdamer.js):
- Systems of Equations: Implemented
solveEquations([eq1,...], [vars,...])for solving simultaneous equations, with custom argument parsing for user-friendly input. - Equation Rearrangement: Added
solveFor(equation, variable)to symbolically make a variable the subject of an equation, with custom argument parsing. - Calculus - Differentiation:
diff(expression, variable [, order])for symbolic derivatives. - Calculus - Indefinite Integration:
integrate(expression, variable)for symbolic indefinite integrals. - Calculus - Definite Integration:
defint(expression, variable, start, end)for symbolic definite integrals. - Calculus - Limits:
limit(expression, variable, point)for computing symbolic limits. - Calculus - Symbolic Summation:
sum(expression, indexVar, lowerBound, upperBound). - Calculus - Symbolic Product:
product(expression, indexVar, lowerBound, upperBound). - Algebra - Factoring:
factor(polynomial)for symbolic factorization. - Algebra - Expansion:
expand(expression)for polynomial expansion. - Algebra - Partial Fractions:
partfrac(expression, variable)for partial fraction decomposition. - Algebra - Polynomial Roots:
roots(polynomial [, variable])to find roots of polynomials. - Algebra - GCD/LCM:
gcd(expr1, expr2)andlcm(expr1, expr2)for symbolic and numerical greatest common divisor/least common multiple. - Algebra - Polynomial Coefficients & Degree:
coeffs(poly, var)anddeg(poly, var). - Algebra - Complete the Square:
sqcomp(expression, variable). - Expression Simplification:
simplify(expression). - Number Theory - Primality Test:
isPrime(integerExpression). - Transforms - Laplace & Inverse Laplace:
laplace(expr, tVar, sVar)andilt(expr, sVar, tVar).
- Systems of Equations: Implemented
- User Interface & Experience:
- Options Page: Introduced a dedicated options page (
options.html) allowing customization of:- Base font size for the UI.
- Default height and width for the pop-out window.
- Font families for Title, Links, Results/History, and Input areas.
- Help Page: Added a comprehensive
help.htmlpage, linked from the calculator, detailing features, syntax, and examples for both Math.js and the newly integrated Nerdamer.js functions. - Visual Feedback for Copy: Implemented visual feedback in the title bar ("Copied!" or "Copy Failed!") when attempting to copy results.
- Options Page: Introduced a dedicated options page (
- Internal:
- Refactored
processInputinpopup.jsto route a wider array of function calls to Nerdamer.js, including specific argument parsing forsolveEquationsandsolveFor. - Updated state saving/loading to correctly persist and re-evaluate Math.js user-defined functions.
- Improved handling and display of errors from both Math.js and Nerdamer.js.
- Refactored
🛠️ Changed
- Documentation: Significantly updated
README.mdand createdREFERENCE.mdto reflect all new features and provide comprehensive usage guidance. - Nerdamer Integration: Shifted from only using
solve()to a broader integration strategy, leveraging more of Nerdamer's symbolic modules. - Error Handling: More specific error messages for invalid arguments in custom-parsed Nerdamer functions.
Previous Versions (for context):
[0.2.0] (Initial Equation Solving)
- Added:
- Integrated Nerdamer.js (
nerdamer.all.min.js). - Introduced basic algebraic equation solving via the
solve(equation, variable)command.
- Integrated Nerdamer.js (
- Known Limitations:
solve()had limitations for general symbolic forms and transcendental equations.
[0.1.0] (Core Math.js Functionality)
- Initial Release:
- Core calculator functionality powered by Math.js (arithmetic, variables, user-defined functions, units, matrices, complex numbers).
- Basic UI with input/output areas, history,
@variable, and pop-out window. - Persistent state for history, variables, and functions.