_ElementWise

it.grypho.scala.leonardo.core._ElementWise
trait _ElementWise extends _Expression

Marker trait for expression nodes whose children may receive per-element algorithm passes (derive, simplify, expand, integrate).

An algorithm may distribute over children and rebuild the same shape only when this trait is present and the distribution is mathematically valid for all such algorithms. Linear containers qualify; product-like nodes that require product rules must not be marked. Lives in core so domain packages can opt in without creating a cross-domain import.

Attributes

Graph
Supertypes
trait _Expression
class Object
trait Matchable
class Any
Known subtypes
class _Equation
class MatSum
class Transpose
class _Matrix

Members list

Value members

Inherited and Abstract methods

def children: List[_Expression]

Sub-expressions subject to recursive structural traversal. Binder positions (e.g. the differentiation variable) are excluded.

Sub-expressions subject to recursive structural traversal. Binder positions (e.g. the differentiation variable) are excluded.

Attributes

Inherited from:
_Expression
def eval(env: Environment): Either[_Expression, _Value]

Reduces this expression in the given environment.

Reduces this expression in the given environment.

Value parameters

env

variable bindings and display precision

Attributes

Returns

Right(v) when all free variables resolved to concrete values; Left(e) when reduction is partial or impossible

Inherited from:
_Expression
def rebuild(newChildren: List[_Expression]): _Expression

Reconstructs the same node shape with replacement sub-expressions.

Reconstructs the same node shape with replacement sub-expressions.

Value parameters

newChildren

replacements in the same order and count as children

Attributes

Inherited from:
_Expression

Inherited fields

lazy val freeVars: Set[String]

Cached set of free variable names; O(1) after the first access.

Cached set of free variable names; O(1) after the first access.

Attributes

Inherited from:
_Expression