<extractMath>
<extractMath> is a General Operator
component that extracts data from mathematical expressions. (See also, the <matchesPattern> component
for an alternative method for extracting data.)
The types of data that can be extracted with <extractMath> are:
- the number of operands in the expression
- the individual operands themselves
- the functions involved in an expression
- the function arguments
Attributes and Properties
Attributes for <extractMath>
Highlighted (3)
displayDigitsinteger. Default value: 3. Number of significant digits to display when rendering this number.
formatkeyword. Input format.
| Value | Description |
|---|---|
text (default) | Plain-text math notation (e.g., x^2 + 1). |
latex | LaTeX-formatted math (e.g., x^{2} + 1). |
simplifykeyword. Level of simplification applied to the expression.
| Value | Description |
|---|---|
none (default) | No simplification is applied. |
full | Fully simplify the expression. |
numbers | Simplify numeric subexpressions only, leaving symbolic structure intact. |
numbersPreserveOrder | Like numbers, but does not reorder commutative operands. |
normalizeOrder | Reorder commutative operands into a canonical form without simplifying values. |
Number display (5)
avoidScientificNotationboolean. Default value: false. Whether to render numbers in full decimal form rather than scientific notation.
displayDecimalsinteger. Default value: 2. Number of decimal places to display when rendering this number.
displayDigitsinteger. Default value: 3. Number of significant digits to display when rendering this number.
displaySmallAsZeronumber. Default value: 1e-14. Threshold below which numbers are displayed as zero.
padZerosboolean. Default value: false. Whether to pad displayed numbers with trailing zeros to fill the requested digits/decimals.
Positioning (2)
anchorpoint. Default value: . Coordinates of the anchor point used to position this component on a graph.
positionFromAnchorkeyword. Where this component sits relative to its anchor point.
| Value | Description |
|---|---|
upperRight | Place the component above and to the right of the anchor point. |
upperLeft | Place the component above and to the left of the anchor point. |
lowerRight | Place the component below and to the right of the anchor point. |
lowerLeft | Place the component below and to the left of the anchor point. |
top | Place the component directly above the anchor point. |
bottom | Place the component directly below the anchor point. |
left | Place the component directly to the left of the anchor point. |
right | Place the component directly to the right of the anchor point. |
center (default) | Center the component on the anchor point. |
Other (16)
number. 1-based index of the argument to extract.
assumptionsmath. Default value: . Assumptions applied when simplifying or comparing.
createIntervalsboolean. Default value: false. Whether range expressions are interpreted as intervals.
createVectorsboolean. Default value: false. Whether tuple-like expressions are interpreted as vectors.
displayBlanksboolean. Default value: true. Whether blanks (placeholders) are visibly rendered.
draggableboolean. Default value: true. Whether the math component can be dragged on a graph.
expandboolean. Default value: false. Whether to expand the expression.
functionSymbolstextList. Default value: ["f","g"]. Symbols treated as function names when parsing.
layernumber. Default value: 0. Z-order layer index when shown on a graph.
number. 1-based index of the operand to extract.
parseScientificNotationboolean. Default value: false. Whether to parse expressions like 1e3 as scientific notation.
referencesAreFunctionSymbolsreference. References whose names should be treated as function symbols when parsing.
renderModetext. Default value: inline. How the math is rendered (e.g. "inline", "display").
splitSymbolsboolean. Default value: true. Whether multi-character symbols are split into a product of variables.
keyword. What kind of sub-expression to extract.
| Value | Description |
|---|---|
operand | Extract a single operand of the top-level operation. |
function | Extract the function being applied (for a function call). |
functionArgument | Extract an argument of the function being called. |
numOperands | Extract the count of operands at the top level. |
recursiveOperands | Extract all operands found recursively through nested operations. |
unorderedboolean. Default value: false. Whether tuple- or list-like math expressions should be treated as unordered for comparison.
Common to all components (9)
copyreference. Create an independent copy of another component by reference. Enter a references a $name.
disabledboolean. Default value: false. Whether this component is disabled and cannot be interacted with.
extendreference. Extend another component by reference, inheriting its children and attributes. Enter a reference as $name.
fixedboolean. Default value: false. Whether this component's value is fixed and cannot be modified.
fixLocationboolean. Default value: false. Whether this component's location is fixed (preventing it from being moved while still allowing other modifications).
hideboolean. Default value: false. Whether to hide this component from the rendered output.
isResponseboolean. Default value: false. Whether this component is treated as a response for the purposes of assessment.
nametext. The name used to reference this component from elsewhere in the document.
styleNumberinteger. Default value: 1. The style number used to select this component's visual styling from the available style definitions.
Properties for <extractMath name="e">
Highlighted (3)
$e.displayDigitsinteger. Number of significant digits to display when rendering this number.
$e.formattext. Input format.
$e.simplifytext. Level of simplification applied to the expression.
Number display (5)
$e.avoidScientificNotationboolean. Whether to render numbers in full decimal form rather than scientific notation.
$e.displayDecimalsinteger. Number of decimal places to display when rendering this number.
$e.displayDigitsinteger. Number of significant digits to display when rendering this number.
$e.displaySmallAsZeronumber. Threshold below which numbers are displayed as zero.
$e.padZerosboolean. Whether to pad displayed numbers with trailing zeros to fill the requested digits/decimals.
Positioning (2)
$e.anchorpoint. The coordinates where this component is anchored on the graph.
$e.positionFromAnchortext. Where this component sits relative to its anchor point.
Other (40)
$e.argumentNumbernumber. 1-based index of the argument to extract.
$e.assumptionsmath. Assumptions applied when simplifying or comparing.
$e.backgroundColortext. Human-readable name for this component's background color, derived from the active style and theme.
$e.columns[ math ]. The matrix's entries grouped by column.
$e.createIntervalsboolean. Whether range expressions are interpreted as intervals.
$e.createVectorsboolean. Whether tuple-like expressions are interpreted as vectors.
$e.disabledboolean. Whether this component is disabled and cannot be interacted with.
$e.displayBlanksboolean. Whether blanks (placeholders) are visibly rendered.
$e.draggableboolean. Whether the math component can be dragged on a graph.
$e.expandboolean. Whether to expand the expression.
$e.fixedboolean. Whether this component's value is fixed and cannot be modified.
$e.fixLocationboolean. Whether this component's location is fixed (preventing it from being moved while still allowing other modifications).
$e.functionSymbolstextList. Symbols treated as function names when parsing.
$e.isNumberboolean. Whether the expression evaluates to a finite number.
$e.isNumericboolean. Whether the expression evaluates to any number (including infinities).
$e.latexlatex. The expression rendered as a LaTeX string.
$e.layernumber. Z-order layer index when shown on a graph.
$e.list[ math ]. The math expression interpreted as a list (its elements).
$e.matrix[ math ]. The math expression interpreted as a matrix (its entries by row and column).
$e.matrixSizenumberList. The size of the math expression as a matrix, as a [numRows, numColumns] list.
$e.numbernumber. The numeric value of the expression (NaN if not a number).
$e.numColumnsinteger. The number of columns when the math expression is interpreted as a matrix.
$e.numDimensionsinteger. The number of dimensions if the math expression is interpreted as a vector or matrix.
$e.numListItemsinteger. The number of items when the math expression is interpreted as a list.
$e.numRowsinteger. The number of rows when the math expression is interpreted as a matrix.
$e.operandNumbernumber. 1-based index of the operand to extract.
$e.parseScientificNotationboolean. Whether to parse expressions like 1e3 as scientific notation.
$e.renderModetext. How the math is rendered (e.g. "inline", "display").
$e.rows[ math ]. The matrix's entries grouped by row.
$e.splitSymbolsboolean. Whether multi-character symbols are split into a product of variables.
$e.texttext. The expression rendered as a plain text string.
$e.textColortext. Human-readable name for this component's text color, derived from the active style and theme.
$e.textStyleDescriptiontext. Human-readable description of this component's text styling (color and any background color).
$e.unorderedboolean. Whether list-like values are treated as unordered.
$e.valueextractMath. The math expression value.
$e.vector[ math ]. The math expression interpreted as a vector (its components).
$e.xmath. The first component of the math expression when interpreted as a vector.
$e.ymath. The second component of the math expression when interpreted as a vector.
$e.zmath. The third component of the math expression when interpreted as a vector.
Common to all components (4)
$e.doenetMLtext. The DoenetML source code that produced this component.
$e.hideboolean. Whether to hide this component from the rendered output.
$e.isResponseboolean. Whether this component is treated as a response for the purposes of assessment.
$e.styleNumberinteger. The style number used to select this component's visual styling from the available style definitions.
Examples
Example: Extracting operands and number of operands
To extract an operand, you must also specify the operandNumber.
Example: Extracting functions and function arguments
To extract a function or functionArgument, you must first extract the operand under
consideration. In order to extract an individual functionArgument in the case of a multivariable
function; the argumentNumber must be provided as well.
Note that Doenet recognizes and as function symbols by default. If other symbols are to
represent functions, they can be defined within the <math> component using the functionSymbols attribute.
Attribute Examples
Attribute Example: type
The type attribute specifies the value to be extracted; it takes one of four possible
inputs: operand, numOperands, function, and functionArgument.
Attribute Example: operandNumber
The operandNumber attribute is necessary when the operand type is extracted. It
specifies the location of the requested operand within the expression.
Attribute Example: argumentNumber
When function arguments are extracted from a math expression, the argumentNumber
attribute specifies the location of the requested argument.