Neuron®
The Neuron® is the basis for the creation of open and secure federated networks for smart societies.
Loading...
Searching...
No Matches
Cube.cs
6
8{
13 {
23 {
24 }
25
33 {
34 if (Operand.AssociatedObjectValue is double d)
35 return new DoubleNumber(d * d * d);
36
37 if (Operand is IRingElement E)
38 {
40 return Multiply.EvaluateMultiplication(E2, E, this);
41 }
42
43 if (Operand.IsScalar)
44 throw new ScriptRuntimeException("Scalar operands must be double values or ring elements.", this);
45
47
48 foreach (IElement Child in Operand.ChildElements)
49 Result.Add(this.Evaluate(Child, Variables));
50
51 return Operand.Encapsulate(Result, this);
52 }
53
60 public ScriptNode Differentiate(string VariableName, Variables Variables)
61 {
62 int Start = this.Start;
63 int Len = this.Length;
65
66 return this.DifferentiationChainRule(VariableName, Variables, this.op,
67 new Multiply(
69 new Square(this.op, Start, Len, Expression),
70 Start, Len, Expression));
71 }
72
73 }
74}
A chunked list is a linked list of chunks of objects of type T .
Definition: ChunkedList.cs:54
Class managing a script expression.
Definition: Expression.cs:41
Represents a constant element value.
Base class for all nodes in a parsed script tree.
Definition: ScriptNode.cs:69
int Length
Length of expression covered by node.
Definition: ScriptNode.cs:101
ScriptNode DifferentiationChainRule(string VariableName, Variables Variables, ScriptNode Argument, ScriptNode Differentiation)
Implements the differentiation chain rule, by differentiating the argument and multiplying it to the ...
Definition: ScriptNode.cs:195
Expression Expression
Expression of which the node is a part.
Definition: ScriptNode.cs:177
int Start
Start position in script expression.
Definition: ScriptNode.cs:92
Base class for all unary operators.
static readonly DoubleNumber ThreeElement
3
Definition: DoubleNumber.cs:31
Cube(ScriptNode Operand, int Start, int Length, Expression Expression)
Cube operator.
Definition: Cube.cs:21
ScriptNode Differentiate(string VariableName, Variables Variables)
Differentiates a script node, if possible.
Definition: Cube.cs:60
override IElement Evaluate(IElement Operand, Variables Variables)
Evaluates the node, using the variables provided in the Variables collection.
Definition: Cube.cs:32
static IElement EvaluateMultiplication(IElement Left, IElement Right, ScriptNode Node)
Multiplies two operands.
Definition: Multiply.cs:69
Collection of variables.
Definition: Variables.cs:25
Basic interface for all types of elements.
Definition: IElement.cs:21
Basic interface for all types of ring elements.
Definition: IRingElement.cs:10
Base interface for lambda expressions.