# Wiki

Clone wiki# function-tree / Home

Home | Basic Functions | Multi-variable functions | About

# Home

Welcome to *function-tree*, a Dart library that converts string representations of numerical functions into callable, function-like objects.

## Basic use

import 'package:function_tree/function_tree.dart'; import 'dart:math' show PI; main() { // A string representation of a function... String myFunction = "1.5 * sin(2 * (x - PI / 3)) + 2"; // Create a function-like object from the string... var f = new FunctionOfX(myFunction); // We can now call f as if it were a true function... print(f(PI)); // And get a TeX representation of the function... print(f.tex); // For multi-variable functions, we need to specify // the variable names... var ft = new FunctionTree( fromExpression: "1.5 * sin(2 * (x - PI / 3)^2) + y", withVariableNames: ["x", "y"]); // We can now call it like a function, specifying // variable substitutions using a map... print(ft({"x": 1, "y": 2})); }

## Supported syntax

The string expressions used to build the function-trees should be similar to expression that can be used in Dart programming after importing `dart:math`

, such as `3 * sin(x) + 1`

. Several additions exist, however, including:

- the
`^`

operator, to raise to a power `π`

, to represent π (`PI`

can also be used)- the trigonometric functions
`sec`

,`csc`

and`cot`

are defined - the hyperbolic functions
`sinh`

,`cosh`

and`tanh`

are defined

Updated