Neuron®
The Neuron® is the basis for the creation of open and secure federated networks for smart societies.
Loading...
Searching...
No Matches
Variance.cs
1using System;
2using System.Numerics;
8
10{
15 {
25 {
26 }
27
31 public override string FunctionName => nameof(Variance);
32
36 public override string[] Aliases
37 {
38 get { return new string[] { "var" }; }
39 }
40
48 {
49 return new DoubleNumber(CalcVariance(Argument.Values, this));
50 }
51
58 public static double CalcVariance(double[] Values, ScriptNode Node)
59 {
60 double Avg = Average.CalcAverage(Values, Node);
61 double Result = 0;
62 double d;
63 int i, c = Values.Length;
64
65 for (i = 0; i < c; i++)
66 {
67 d = (Values[i] - Avg);
68 Result += d * d;
69 }
70
71 Result /= c;
72
73 return Result;
74 }
75
83 {
84 return new ComplexNumber(CalcVariance(Argument.Values, this));
85 }
86
93 public static Complex CalcVariance(Complex[] Values, ScriptNode Node)
94 {
95 Complex Avg = Average.CalcAverage(Values, Node);
96 Complex Result = 0;
97 Complex d;
98 int i, c = Values.Length;
99
100 for (i = 0; i < c; i++)
101 {
102 d = (Values[i] - Avg);
103 Result += d * d;
104 }
105
106 Result /= c;
107
108 return Result;
109 }
110
118 {
119 throw new ScriptRuntimeException("Expected a numeric vector.", this);
120 }
121
122 }
123}
Class managing a script expression.
Definition: Expression.cs:39
static double CalcAverage(double[] Values, ScriptNode Node)
Calculates the average of a set of double values.
Definition: Average.cs:68
override string FunctionName
Name of the function
Definition: Variance.cs:31
Variance(ScriptNode Argument, int Start, int Length, Expression Expression)
Variance(v), Var(v)
Definition: Variance.cs:23
static Complex CalcVariance(Complex[] Values, ScriptNode Node)
Calculates the variance of a set of complex values.
Definition: Variance.cs:93
static double CalcVariance(double[] Values, ScriptNode Node)
Calculates the variance of a set of double values.
Definition: Variance.cs:58
override IElement EvaluateVector(IVector Argument, Variables Variables)
Evaluates the function on a vector argument.
Definition: Variance.cs:117
override string[] Aliases
Optional aliases. If there are no aliases for the function, null is returned.
Definition: Variance.cs:37
override IElement EvaluateVector(DoubleVector Argument, Variables Variables)
Evaluates the function on a vector argument.
Definition: Variance.cs:47
override IElement EvaluateVector(ComplexVector Argument, Variables Variables)
Evaluates the function on a vector argument.
Definition: Variance.cs:82
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