Neuron®
The Neuron® is the basis for the creation of open and secure federated networks for smart societies.
Loading...
Searching...
No Matches
FunctionOneMatrixVariable.cs
1using System.Threading.Tasks;
5
6namespace Waher.Script.Model
7{
12 {
22 {
23 }
24
28 public override string[] DefaultArgumentNames => new string[] { "M" };
29
37 {
38 if (Argument is IMatrix Matrix)
39 {
40 if (Matrix is DoubleMatrix DoubleMatrix)
41 return this.EvaluateMatrix(DoubleMatrix, Variables);
42
43 if (Matrix is ComplexMatrix ComplexMatrix)
44 return this.EvaluateMatrix(ComplexMatrix, Variables);
45
46 if (Matrix is BooleanMatrix BooleanMatrix)
47 return this.EvaluateMatrix(BooleanMatrix, Variables);
48
49 return this.EvaluateMatrix(Matrix, Variables);
50 }
51 else
52 return this.EvaluateMatrix((IMatrix)MatrixDefinition.Encapsulate(new IElement[] { Argument }, 1, 1, this), Variables);
53 }
54
61 public override async Task<IElement> EvaluateAsync(IElement Argument, Variables Variables)
62 {
63 if (Argument is IMatrix Matrix)
64 {
65 if (Matrix is DoubleMatrix DoubleMatrix)
66 return await this.EvaluateMatrixAsync(DoubleMatrix, Variables);
67
68 if (Matrix is ComplexMatrix ComplexMatrix)
69 return await this.EvaluateMatrixAsync(ComplexMatrix, Variables);
70
71 if (Matrix is BooleanMatrix BooleanMatrix)
72 return await this.EvaluateMatrixAsync(BooleanMatrix, Variables);
73
74 return await this.EvaluateMatrixAsync(Matrix, Variables);
75 }
76 else
77 return await this.EvaluateMatrixAsync((IMatrix)MatrixDefinition.Encapsulate(new IElement[] { Argument }, 1, 1, this), Variables);
78 }
79
87
95 {
97 }
98
106 {
108 }
109
117 {
119 }
120
128 {
129 return Task.FromResult<IElement>(this.EvaluateMatrix(Argument, Variables));
130 }
131
139 {
140 return Task.FromResult<IElement>(this.EvaluateMatrix(Argument, Variables));
141 }
142
150 {
151 return Task.FromResult<IElement>(this.EvaluateMatrix(Argument, Variables));
152 }
153
161 {
162 return Task.FromResult<IElement>(this.EvaluateMatrix(Argument, Variables));
163 }
164
165 }
166}
Class managing a script expression.
Definition: Expression.cs:39
Base class for funcions of one matrix variable.
virtual Task< IElement > EvaluateMatrixAsync(ComplexMatrix Argument, Variables Variables)
Evaluates the function on a matrix argument.
override string[] DefaultArgumentNames
Default Argument names
virtual IElement EvaluateMatrix(ComplexMatrix Argument, Variables Variables)
Evaluates the function on a matrix argument.
virtual Task< IElement > EvaluateMatrixAsync(BooleanMatrix Argument, Variables Variables)
Evaluates the function on a matrix argument.
virtual IElement EvaluateMatrix(DoubleMatrix Argument, Variables Variables)
Evaluates the function on a matrix argument.
override IElement Evaluate(IElement Argument, Variables Variables)
Evaluates the function.
virtual Task< IElement > EvaluateMatrixAsync(IMatrix Argument, Variables Variables)
Evaluates the function on a matrix argument.
FunctionOneMatrixVariable(ScriptNode Argument, int Start, int Length, Expression Expression)
Base class for funcions of one matrix variable.
virtual IElement EvaluateMatrix(BooleanMatrix Argument, Variables Variables)
Evaluates the function on a matrix argument.
override async Task< IElement > EvaluateAsync(IElement Argument, Variables Variables)
Evaluates the function.
abstract IElement EvaluateMatrix(IMatrix Argument, Variables Variables)
Evaluates the function on a matrix argument.
virtual Task< IElement > EvaluateMatrixAsync(DoubleMatrix Argument, Variables Variables)
Evaluates the function on a matrix argument.
Base class for funcions of one variable.
ScriptNode Argument
Function argument.
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
int Start
Start position in script expression.
Definition: ScriptNode.cs:92
static IMatrix Encapsulate(ICollection< IElement > Rows, ScriptNode Node)
Encapsulates the elements of a matrix.
Collection of variables.
Definition: Variables.cs:25
Basic interface for all types of elements.
Definition: IElement.cs:20
Basic interface for matrices.
Definition: IMatrix.cs:9