Skip to content

Releases: xirf/texpr

v0.1.4

24 Feb 16:12
Immutable release. Only release title and notes can be modified.

Choose a tag to compare

v0.1.3

12 Jan 04:52
4fe9702

Choose a tag to compare

What's Changed

  • Release v0.1.1 by @xirf in #7
  • feat: Introduce Evaluability system for expressions by @xirf in #8
  • Release v0.1.3 by @xirf in #9

Full Changelog: v0.1.1...v0.1.3

v0.1.2: Real-Only Mode for Graphing Applications

09 Jan 04:01

Choose a tag to compare

Real-Only Mode for Graphing Applications

Added

  • Interval Arithmetics: Added support for interval arithmetics.
  • Real-Only Mode: Added realOnly parameter to Texpr, Evaluator, and EvaluationVisitor classes. When enabled, operations that would produce complex numbers (like sqrt(-1) or ln(-1)) return NaN instead. This provides Desmos-like behavior for graphing applications.
// Default: complex number support
final texpr = Texpr();
texpr.evaluate(r'\sqrt{-1}'); // Returns ComplexResult(0 + 1i)

// Real-only mode: NaN for undefined real operations
final texprGraph = Texpr(realOnly: true);
texprGraph.evaluate(r'\sqrt{-1}'); // Returns NumericResult(NaN)

Changed

  • FunctionRegistry: Refactored to support real-only aware function handlers alongside standard handlers.

Full Changelog: v0.1.1...v0.1.2

v0.1.1

07 Jan 10:12

Choose a tag to compare

Bug Fixes & UX Improvements

  • Parsing: Fixed strict syntax parsing for integral bounds (e.g., \int_0^1 is now supported).
  • Evaluation: Fixed evaluateNumeric behavior for complex numbers; results are now handled correctly when using evaluate().
  • JSON Export: Fixed VectorExpr JSON schema to use components key, matching the AST definition.

Added

  • LaTeX Commands: Implemented support for common academic symbols:
    • Arrows: \mapsto, \Rightarrow, \Leftarrow, \Leftrightarrow.
    • Relation & Set Operators: \approx, \propto, \cup, \cap, \setminus, \subset, \subseteq, \supset, \supseteq.
    • Quantifiers: \forall and \exists (parsed as variables for syntax tolerance).
    • Decorations: \dot, \ddot, and \bar functions for physics and statistical notation.

Changed

  • Breaking Change: Renamed LatexException to TexprException (and LatexParserException -> ParserException, etc.) to better align with the library name.
  • Error Messages: Significantly improved parser error clarity. Error messages now use readable symbols (e.g., got: '*') instead of internal enum names (e.g., got: multiply).
  • Parser: Improved syntax tolerance for known commands on implicit multiplication (e.g., sin(x)).
  • Documentation: Updated feature guides, notation references, and example code.

v0.1.0

02 Jan 08:53

Choose a tag to compare

Draft Release: Benchmarks, WASM, and Documentation Overhaul.

  • WASM Support: Added initial WebAssembly compilation targets and examples (wasm/).
  • Benchmarks: Comprehensive benchmarking suite added (benchmark/).
  • Documentation: Extensive updates to API docs and feature guides.
  • Testing: Expanded test coverage for complex features and edge cases.

v0.0.1: Initial Release of TeXpr

01 Jan 10:30

Choose a tag to compare

Initial release of TeXpr.

This is a complete rebranding and evolution of the legacy latex_math_evaluator project. It serves as a engine for parsing, evaluating, and analyzing LaTeX math expressions.

✨ Features

  • Core Parsing:

    • Full recursive descent parser for standard mathematical LaTeX.
    • Generates a structured Abstract Syntax Tree.
    • Supports implicit multiplication, variable binding, and custom functions.
  • Evaluation Engine:

    • Numeric: Arithmetic, Trig, Log, Roots, Factorials.
    • Complex Numbers: Full support for i, Euler's identity, and complex transcendental functions.
    • Matrix: Determinants, Inverses, Transposition, and basic arithmetic.
    • Calculus: Numerical integration (Simpson's Rule) and Symbolic differentiation (Product/Chain rules).
  • Interop & Export:

    • JSON: Export AST to JSON for external tooling.
    • MathML (Alpha): Export to standard web-compatible MathML.
    • SymPy (Alpha): Generate Python/SymPy code from Dart objects.
  • Advanced Features:

    • Optimization: Multi-layer caching (L1-L4) with LRU/LFU policies.
    • Analysis: Piecewise differentiation and symbolic simplification.
    • Diagnostics: Levenshtein-based suggestions for syntax errors.

(Note: This project builds upon 1,800+ tests and architecture from the deprecated latex_math_evaluator v0.2.0)