function_tree
A simple library for parsing strings into callable function-trees.
0.9.1
5.2K downloads/mo
#3792 most downloaded on pub.dev
ram6ler/function-tree
What this package is like to depend on
Last release 3 years ago
no release in 18 months
Release timing varies
gaps range from 3 weeks to 1.4 years
Nearly every release is documented
notes for 14 of 14 stable releases
Nothing withdrawn
no release was ever pulled
9 years old
15 releases · first in 2017
0 releases in the last 12 months
see the full history below
Release timeline
15 releases · Sep 2017 to Dec 2023Releases
latest 15-
0.9.103 Dec 2023Release notes
Open source →- Added the ability to create symbolic derivatives from single variable functions where they are well defined. Early versions had numeric differentiation (and integration), but these were removed in later versions as not being part of the focused use case. (I'm not sure whether symbolic derivatives will stay either — they're still experimental.) These can be accessed through the methods
SingleVariableFunction.derivativeandMultiVariableFunction.partial. The resulting trees are often unnecessarily large for now; tree pruning to come if the trees are to stay!
- Added the ability to create symbolic derivatives from single variable functions where they are well defined. Early versions had numeric differentiation (and integration), but these were removed in later versions as not being part of the focused use case. (I'm not sure whether symbolic derivatives will stay either — they're still experimental.) These can be accessed through the methods
-
0.9.009 Sep 2023Release notes
Open source →- Incorporated Dart 3 features.
- More resilient to repeated negation / confirmation.
- Added a representation method on trees to show structure.
- Added a
toStringrepresentation of nodes and function trees. - Cleaned up the code base to be easier to read and to better match the dart.dev recommendations.
- Interpreter shakes out some unnecessary components, such as parentheses surrounding constants, while generating tree.
-
0.8.1325 Jun 2022 -
0.8.1212 Apr 2021Release notes
Open source →- Parse numbers as
doubles instead ofnums to prevents common use case issues with large integers.
- Parse numbers as
-
0.8.1109 Mar 2021 -
0.8.109 Mar 2021 -
0.8.0-dev.124 Feb 2021 pre-releaseRelease notes
Open source →- Added null safety!
- String interpolation appears even slower than before, but the generated function trees are still pretty efficient (once generated, within an order of magnitude of native Dart math library functions).
-
0.7.018 Feb 2021Release notes
Open source →- Added functionality for two-parameter functions,
log,nrtandpowin response to a feature request.
- Added functionality for two-parameter functions,
-
0.6.023 Apr 2020 -
0.5.005 Jan 2020Release notes
Open source →- Dusted out some cobwebs.
- Renamed
FunctionTreeMultiVariableFunctionandFunctionOfXSingleVariableFunction, which is more expressive. - Removed zero, derivative and integral estimates, which I feel were tangential.
-
0.2.604 Aug 2018Release notes
Open source →Fixed ambiguity issue: if the user chooses a variable name in an expression that happens to be a special constant name (such as 'e'), the parser will take occurrences in the expression to mean that the variable.
-
0.2.503 Aug 2018Release notes
Open source →- Marked as ready for Dart 2.
- dartfmt-ed some of the files.
- Added support for the
%operator. - Added support for
floor,ceilandround. - Added come timing comparisons between evaluating native Dart functions, function tree instances and repeated string parsing in
test/.
-
0.2.030 Jul 2018Release notes
Open source →- Re-wrote the parsing engine: code much cleaner and easier to read.
- Cleared out deprecated dart:math constants.
- Updated code for Dart 2.
- Added support for
abs.
-
0.1.102 Oct 2017Release notes
Open source →- Basic numerical differentiation.
- Basic numerical integration (Simpson).
- Basic zero-finding (Newton).
- Very much proof of concept.
-
0.1.024 Sep 2017Release notes
Open source →- Initial version, proof of concept.
- Very little checking of input at this stage.