Class: Expression

Expression(exprParsed)

new Expression(exprParsed)

Wrapper around a mathjs expression tree used by Heta model elements.

Parameters:
Name Type Description
exprParsed math.Node

Parsed mathjs expression node.

Properties:
Name Type Description
exprParsed math.Node

Parsed mathjs expression node.

num number | undefined

Numeric value for constant expressions.

isComparison boolean

true for comparison expressions.

Methods

calcUnit(component) → {Unit|undefined}

Calculates expression units in the context of a model component.

Parameters:
Name Type Description
component Component

Component used for reference lookup and logging.

Returns:

Calculated unit, if it can be inferred.

Type
Unit | undefined

clone() → {Expression}

Creates a deep clone of this expression.

Returns:

Cloned expression.

Type
Expression

dependOn() → {Array.<string>}

Lists unique symbols used by the expression.

Returns:

Symbol names excluding function names and constants e, pi.

Type
Array.<string>

dependOnNodes() → {Array.<math.SymbolNode>}

Lists symbol nodes used by the expression.

Returns:

Symbol nodes excluding function names and constants e, pi.

Type
Array.<math.SymbolNode>

functionList() → {Array.<math.FunctionNode>}

Lists function calls used by the expression.

Returns:

Unique function nodes.

Type
Array.<math.FunctionNode>

hasBooleanResult() → {boolean}

Checks whether the expression has a boolean result.

Returns:

true for boolean operators or boolean constants.

Type
boolean

linearizeFor(target) → {Array.<math.Node>}

Linearizes the expression by a target symbol.

Parameters:
Name Type Description
target string

Symbol name.

Returns:

Pair [slope, intercept] as mathjs nodes.

Type
Array.<math.Node>

multiply(multiplier) → {Expression}

Creates an expression equal to this expression multiplied by multiplier.

Parameters:
Name Type Default Description
multiplier string | number 1

Multiplier expression.

Returns:

Product expression.

Type
Expression

substituteByDefinitions() → {Expression}

Expands non-core user-defined function calls.

Returns:

Expression with function bodies substituted.

Type
Expression

toString(options) → {string}

Serializes the expression with mathjs formatting options.

Parameters:
Name Type Description
options object

mathjs toString options.

Returns:

Expression string.

Type
string

translateSymbol(translator) → {Expression}

Creates a translated copy with renamed symbols.

Function names are not renamed. Existing user-defined function nodes are kept as-is so their fnObj metadata remains attached.

Parameters:
Name Type Description
translator object.<string, string>

Map from old symbol names to new names.

Returns:

Translated expression.

Type
Expression

updateReferences(q) → {void}

Rewrites symbol references using prefix, suffix, and rename.

Parameters:
Name Type Description
q object

Import options.

Returns:
Type
void

(static) fromString(exprStringOrNumber) → {Expression}

Parses a string or number into an Expression.

Parameters:
Name Type Description
exprStringOrNumber string | number

Expression source.

Returns:

Parsed expression.

Type
Expression