Neuron®
The Neuron® is the basis for the creation of open and secure federated networks for smart societies.
Loading...
Searching...
No Matches
Square.cs
6
8{
13 {
23 {
24 }
25
33 {
34 if (Operand.AssociatedObjectValue is double d)
35 return new DoubleNumber(d * d);
36
37 if (Operand is IRingElement E)
38 return Multiply.EvaluateMultiplication(E, E, this);
39
40 if (Operand.IsScalar)
41 throw new ScriptRuntimeException("Scalar operands must be double values or ring elements.", this);
42
44
45 foreach (IElement Child in Operand.ChildElements)
46 Result.Add(this.Evaluate(Child, Variables));
47
48 return Operand.Encapsulate(Result, this);
49 }
50
57 public ScriptNode Differentiate(string VariableName, Variables Variables)
58 {
59 int Start = this.Start;
60 int Len = this.Length;
62
63 return this.DifferentiationChainRule(VariableName, Variables, this.op,
64 new Multiply(
66 this.op,
67 Start, Len, Expression));
68 }
69
70 }
71}
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 TwoElement
2
Definition: DoubleNumber.cs:26
static IElement EvaluateMultiplication(IElement Left, IElement Right, ScriptNode Node)
Multiplies two operands.
Definition: Multiply.cs:69
ScriptNode Differentiate(string VariableName, Variables Variables)
Differentiates a script node, if possible.
Definition: Square.cs:57
Square(ScriptNode Operand, int Start, int Length, Expression Expression)
Square operator.
Definition: Square.cs:21
override IElement Evaluate(IElement Operand, Variables Variables)
Evaluates the node, using the variables provided in the Variables collection.
Definition: Square.cs:32
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.