_Expression
it.grypho.scala.leonardo.core._Expression
trait _Expression
Base trait of every expression tree node, shared across all domains.
The dual-evaluation contract: eval returns Right when the expression fully reduces to a concrete _Value; Left when some variable is still free and the node is returned in its most-reduced symbolic form.
children / rebuild enable generic structural traversal so algorithms that visit every node type (Substitute, Analysis, …) do not need to match each case explicitly. Binder positions (e.g. the differentiation variable) are excluded from children; rebuild carries them through unchanged.
freeVars is cached per instance — computed once from children, then O(1). New node types inherit a correct default automatically.
Attributes
- Graph
-
- Supertypes
-
class Objecttrait Matchableclass Any
- Known subtypes
-
class _Feedbackclass _ImpulseResponseclass _Parallelclass _Seriesclass _StepResponsetrait _ElementWiseclass _EqualityCheckclass _Equationclass MatSumclass Transposeclass _Matrixclass _Heavisidetrait _MatrixShapedtrait _Valueclass _Basedclass _Boolclass _Complexclass _MatrixValueclass _Numberclass _Rationalclass _Truthclass _Distributionclass _Variableclass _Differentiableclass _Domainclass _Singularitiesclass _Comparisonclass _Solveclass _SolveSystemtrait _Connectiveclass Andclass Impliesclass Notclass Orclass Xorclass _Defuzzifytrait _Membershipclass GaussMFclass SigMFclass Somewhatclass TrapMFclass TriMFclass Veryclass _TruthOfclass Determinantclass _EigDecompositionclass _EigenDecompositionclass _JordanDecompositionclass _LUDecompositionclass _MatrixIndextrait _MatrixOperationclass IdentityMatrixclass Inverseclass MatProductclass MatScaleclass ZeroMatrixclass _MatrixExponentialclass _QRDecompositionclass _DistributionOfclass _DistributionQueryclass _Expectationclass _Variancetrait NamedFunctionclass Acosclass Acoshclass Asinclass Asinhclass Atanclass Atanhclass Betaclass BetaIclass Binomclass Catalanclass Ciclass Cosclass Coshclass Cotclass Cothclass Cscclass Cschclass Digammaclass Eiclass Erfclass Erfcclass Expclass Factorialclass FresnelCclass FresnelSclass Gammaclass GammaPclass GammaQclass Harmonicclass Liclass Lnclass LogBaseclass LogGammaclass MultiFactorialclass Secclass Sechclass Siclass Sinclass Sinhclass Tanhclass Tgclass _Balancedclass _Functionclass _Functionalclass _ODEclass _DefIntegralclass _Derivativeclass _FourierSeriesclass _Integralclass _Laurentclass _Limitclass _Padeclass _Tabulateclass _Taylorclass _Fourierclass _InverseLaplaceclass _InverseZTransformclass _Laplaceclass _ZTransformtrait _Operationclass Powerclass Productclass Ratioclass Sumclass _Patternclass _Sequenceclass _ToBaseclass _PairStatisticclass _Regressclass _Statisticclass _Testtrait _VectorOperatorclass _Curlclass _Divclass _Gradclass _Hessianclass _Jacobianclass _Laplacian
Members list
In this article