Neuron®
The Neuron® is the basis for the creation of open and secure federated networks for smart societies.
Loading...
Searching...
No Matches
Reverse.cs
1using System.Numerics;
6
8{
13 {
23 {
24 }
25
29 public override string FunctionName => nameof(Reverse);
30
38 {
39 if (Argument.AssociatedObjectValue is string s)
40 {
41 if (string.IsNullOrEmpty(s))
42 return Argument;
43
44 char[] Characters = s.ToCharArray();
45
46 System.Array.Reverse(Characters);
47
48 return new StringValue(new string(Characters));
49 }
50 else
51 return base.EvaluateNonVector(Argument, Variables);
52 }
53
61 {
62 int i, c = Argument.Dimension;
63 IElement[] E = new IElement[c];
64
65 for (i = 0; i < c; i++)
66 E[c - i - 1] = Argument.GetElement(i);
67
68 return Argument.Encapsulate(E, this);
69 }
70
78 {
79 int i, c = Argument.Dimension;
80 double[] E = new double[c];
81 double[] V = Argument.Values;
82
83 for (i = 0; i < c; i++)
84 E[c - i - 1] = V[i];
85
86 return new DoubleVector(E);
87 }
88
96 {
97 int i, c = Argument.Dimension;
98 Complex[] E = new Complex[c];
99 Complex[] V = Argument.Values;
100
101 for (i = 0; i < c; i++)
102 E[c - i - 1] = V[i];
103
104 return new ComplexVector(E);
105 }
106
114 {
115 int i, c = Argument.Dimension;
116 bool[] E = new bool[c];
117 bool[] V = Argument.Values;
118
119 for (i = 0; i < c; i++)
120 E[c - i - 1] = V[i];
121
122 return new BooleanVector(E);
123 }
124
125 }
126}
Class managing a script expression.
Definition: Expression.cs:39
override IElement EvaluateNonVector(IElement Argument, Variables Variables)
Evaluates the function on a non-vector. By default, the non-vector argument is converted to a vector ...
Definition: Reverse.cs:37
override string FunctionName
Name of the function
Definition: Reverse.cs:29
override IElement EvaluateVector(BooleanVector Argument, Variables Variables)
Evaluates the function on a vector argument.
Definition: Reverse.cs:113
Reverse(ScriptNode Argument, int Start, int Length, Expression Expression)
Reverse(v)
Definition: Reverse.cs:21
override IElement EvaluateVector(DoubleVector Argument, Variables Variables)
Evaluates the function on a vector argument.
Definition: Reverse.cs:77
override IElement EvaluateVector(ComplexVector Argument, Variables Variables)
Evaluates the function on a vector argument.
Definition: Reverse.cs:95
override IElement EvaluateVector(IVector Argument, Variables Variables)
Evaluates the function on a vector argument.
Definition: Reverse.cs:60
ScriptNode Argument
Function argument.
Base class for funcions of one vector variable.
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
Collection of variables.
Definition: Variables.cs:25
Basic interface for all types of elements.
Definition: IElement.cs:20
Basic interface for vectors.
Definition: IVector.cs:9