Table of Contents

ChangeLog

xFunc v4.5.0 (dev)

xFunc v4.4.1

  • #733 - Lexer optimization.
  • #743 - Upgrade to .NET 8. (#744)
  • #749 - Remove the obsolete serialization APIs. (#750)

xFunc v4.4.0

  • #680 - Remove Moq. (#651).
  • #688 - DocFx Documentation.
  • #175 - Support rational numbers (#693).
  • #667 - Migrate to NUnit (#700).
  • #701 - Align units ToString implementation with parser.
  • #704 - Lambda can't resolve a parameter (#705).
  • #706 - CallExpression uses incorrect scope for parameters evaluation (#707).
  • #708 - Remove unnecessary variables.
  • #710 - Add ability to execute expression from files (#712).
  • #717 - Support partial application of functions (#718).
  • #720 - New Results API (#723).

xFunc v4.3.0

  • #641 - Introduce VectorValue/MatrixValue (#648).
  • #131 - Support aliases for simplify, deriv and etc. (#652).
  • #653 - Add support of function currying (#661).
  • #662 - The simplification of trigonometric and inverse trigonometric functions is not correct (#665).
  • #663 - Add support of variables to factorial (#669).
  • #673 - Units should be wrapped into quotes (#674).

xFunc v4.2.0

  • #620 - Create Converter benchmarks / performance improvements (#621, #622).
  • #623 - Use shared instance of constants in ParameterCollection (#624).
  • #625 - Remove russian localization (#626).
  • #628 - Create CallExpression / High-Order Functions (#635).
  • #641 - Reduce memory allocation and increase ImmutableArray<T> speed (#640).
  • #304 - Parse assignment operators / 'if' function as expression instead of statement (#642).
  • #525 - Try Central Package Management (#526).
  • #608 - Variable names not case sensitive (#613).

xFunc v4.1.0

  • #557 - Split xFunc UI to separate repository. (#558)
  • #553 - Add more cases to type analyzer (exception handling). (#554)
  • #544 - Add support of operations on different unit types. (#545)
  • #542 - Implement unit value comparison. (#543)
  • #516 - Volume: cm³, m³, l, in³, gal, ft³, yd³. (#527)
  • #515 - Area Units (#523)
  • #192 - Support for exponential form of a complex number. (#488)
  • #489 - Add basic simplification rules for Power and Temperature units. (#490)
  • #491 - Mass Units: mg, g, kg, slugs, lb, t, oz.
  • #514 - Length: nm, µm, mm, cm, m, km, in, ft, yd, mi, nmi, chains, rods, au, ly, pc. (#519)
  • #513 - Time: μs, ms, s, min, hr, days, weeks, years, add ns. (#521)
  • #467 - Relicense from Apache to MIT (#468)
  • #474 - Upgrade to .NET 6 (#478)
  • #423 - Add README to NuGet package (#423)
  • #486 - Add Temperature Unit (#487)
  • #364 - [Simplifier] Add more simplification rules (#406), (#407)
  • #308 - Add Power Unit (#409)
  • #457 - Add support for string data type (#458)
  • #464 - Add string concatenation support (#465)
  • #308 - Add Convert function (#459)
  • #464 - Add string data-type support to parameters (#466)

xFunc v4.0.1

  • #417 - Complex Numbers are parsed incorrectly (#418)
  • #420 - Expression with trailing space (#421)

xFunc v4.0.0

  • About 6 times faster and about 11 times lower memory usage.
  • #304 - Parse assignment operators / 'if' function as expression instead of statement
  • #306 - Create wrapper struct for double (#360)
  • #343 - Precedence of operators (#344)
  • #345 - Use InheritDoc (#346)
  • #357 - Pad bin/hex numbers (#358)
  • #362 - Differentiation of x^x returns wrong expression (#363)
  • #345 - Limit types that can be used as Parameter (#369)
  • #338 - Simplify AngleValue same as Number (#342)
  • #331 - Immutable expressions (#337)
  • #332 - Create function to convert Number to ComplexNumber (#335)
  • #327 - Provide configurable fallback scenario for Analyzers (#328)
  • #302 - Add 'tohex', 'tooct', 'tobin' functions (#326)
  • #324 - Dictionary as parameters storage (#325)
  • About 6.8 times faster and about 14.5 times lower memory usage for parsing.
  • #303 - Introduce bitwise shift operators (#305)
  • #311 - Use structs for Tokens (#319)
  • #312 - Remove Lexer from public API (#317)
  • Deterministic builds (#295)
  • #291 - Try Nullable reference types (#293)
  • #269 - Precalculate common angles for trigonometric functions (#292)
  • #289 - Implement 'Sign', '==', '!=', '<', '>', '<=', '>=' for Angle Numbers (#290)
  • #286 - '2 ^ -2' does not work (#287)
  • #284 - Implicit mul and exponentiation cannot be parsed (#285)
  • Update shared number consts (#283)
  • #279 - Add Trunc and Frac functions (#280)
  • #268 - Introduce units (deg, rad, etc) (#278)
  • Add context to analyzer. (#277)
  • #275 - Remove parent property (#276)
  • #119 - Add support of ternary operator (#272)
  • #228, #236 - Buffered Enumerator (#271)
  • #262 - Add 'Log' simplification rules (#263)
  • #260 - UI is crashed for 'sqrt(x)' graphs (#261)
  • SourceLink (#258)
  • #256 - Differentiator Performance (#257)
  • Use strict types (Variable instead of IExpression) in Inc, Dec, AddAsssign, SubAssign, DivAssign, MulAssing (#252)
  • #248 - xFunc Dotnet Tool (#251)
  • Add FxCop (#249)
  • Add StyleCop (#247)
  • #235 - Expressions are parsed incorrectly
  • #236 - Rework parser (remove RPN)
  • #244 - The ^ operator should be right-associative