1using System.Threading.Tasks;
46 int i, c = Matrix.Rows;
50 for (i = 0; i < c; i++)
55 for (i = 0; i < c; i++)
60 for (i = 0; i < c; i++)
65 for (i = 0; i < c; i++)
66 Elements.
Add(
this.Evaluate(Matrix.GetRow(i),
Variables));
69 return Argument.Encapsulate(Elements,
this);
80 return Argument.Encapsulate(Elements,
this);
135 int i, c = Matrix.Rows;
139 for (i = 0; i < c; i++)
144 for (i = 0; i < c; i++)
149 for (i = 0; i < c; i++)
154 for (i = 0; i < c; i++)
155 Elements.
Add(await
this.EvaluateAsync(Matrix.GetRow(i),
Variables));
158 return Argument.Encapsulate(Elements,
this);
169 return Argument.Encapsulate(Elements,
this);
295 #region IIterativeEvaluation
A chunked list is a linked list of chunks of objects of type T .
void Add(T Item)
Adds an item to the collection.
Base class for all types of sets.
override ICollection< IElement > ChildElements
An enumeration of child elements. If the element is a scalar, this property will return null.
Class managing a script expression.
Base class for funcions of one variable.
ScriptNode Argument
Function argument.
Base class for funcions of one vector variable.
virtual Task< IElement > EvaluateVectorAsync(DoubleVector Argument, Variables Variables)
Evaluates the function on a vector argument.
virtual async Task< IElement > EvaluateNonVectorAsync(IElement Argument, Variables Variables)
Evaluates the function on a non-vector. By default, the non-vector argument is converted to a vector ...
override string[] DefaultArgumentNames
Default Argument names
override async Task< IElement > EvaluateAsync(IElement Argument, Variables Variables)
Evaluates the function.
virtual Task< IElement > EvaluateVectorAsync(BooleanVector Argument, Variables Variables)
Evaluates the function on a vector argument.
virtual Task< IElement > EvaluateVectorAsync(IVector Argument, Variables Variables)
Evaluates the function on a vector argument.
virtual Task< IElement > EvaluateVectorAsync(ComplexVector Argument, Variables Variables)
Evaluates the function on a vector argument.
abstract IElement EvaluateVector(IVector Argument, Variables Variables)
Evaluates the function on a vector argument.
virtual IElement EvaluateVector(ComplexVector Argument, Variables Variables)
Evaluates the function on a vector argument.
override IElement Evaluate(IElement Argument, Variables Variables)
Evaluates the function.
virtual bool CanEvaluateIteratively
If the node can be evaluated iteratively.
virtual IElement EvaluateNonVector(IElement Argument, Variables Variables)
Evaluates the function on a non-vector. By default, the non-vector argument is converted to a vector ...
virtual IIterativeEvaluator CreateEvaluator()
Creates an iterative evaluator for the node.
virtual IElement EvaluateVector(BooleanVector Argument, Variables Variables)
Evaluates the function on a vector argument.
FunctionOneVectorVariable(ScriptNode Argument, int Start, int Length, Expression Expression)
Base class for funcions of one vector variable.
virtual IElement EvaluateVector(DoubleVector Argument, Variables Variables)
Evaluates the function on a vector argument.
Default iterator for one-vector-variable functions.
Base class for all nodes in a parsed script tree.
int Length
Length of expression covered by node.
int Start
Start position in script expression.
static IElement Encapsulate(Array Elements, bool CanEncapsulateAsMatrix, ScriptNode Node)
Encapsulates the elements of a vector.
Basic interface for all types of elements.
Basic interface for matrices.
Basic interface for vectors.
Basic interface for all types of sets.
A function that can be iteratively evaluated, meaning it can be iteratively computed one element at a...
An interative evaluator of a function supporting the IIterativeEvaluation interface.