mathjs/docs/reference/functions/simplifyCore.md
2023-06-13 12:21:04 +02:00

2.4 KiB

layout
default

Function simplifyCore #

simplifyCore() performs single pass simplification suitable for applications requiring ultimate performance. To roughly summarize, it handles cases along the lines of simplifyConstant() but where knowledge of a single argument is sufficient to determine the value. In contrast, simplify() extends simplifyCore() with additional passes to provide deeper simplification (such as gathering like terms).

Specifically, simplifyCore:

  • Converts all function calls with operator equivalents to their operator forms.
  • Removes operators or function calls that are guaranteed to have no effect (such as unary '+').
  • Removes double unary '-', '~', and 'not'
  • Eliminates addition/subtraction of 0 and multiplication/division/powers by 1 or 0.
  • Converts addition of a negation into subtraction.
  • Eliminates logical operations with constant true or false leading arguments.
  • Puts constants on the left of a product, if multiplication is considered commutative by the options (which is the default)

Syntax #

math.simplifyCore(expr)
math.simplifyCore(expr, options)

Parameters #

Parameter Type Description
node Node | string The expression to be simplified
options Object Simplification options, as per simplify()

Returns #

Type Description
Node Returns expression with basic simplifications applied

Throws #

Type Description

Examples #

const f = math.parse('2 * 1 * x ^ (1 - 0)')
math.simplifyCore(f)                          // Node "2 * x"
math.simplify('2 * 1 * x ^ (1 - 0)', [math.simplifyCore]) // Node "2 * x"

See also #

simplify, simplifyConstant, resolve, derivative