예제 #1
0
        public override object Evaluate()
        {
            IList <double> v = LeftExpression.EvaluateAsRealVector();

            if (RightExpression == Expression <Object> .Null)
            {
                return(new CMatrix(MathStats.Histogram(v)));
            }
            else
            {
                object intvals = RightExpression.Evaluate();
                if (intvals is Complex)
                {
                    return(new CMatrix(MathStats.Histogram(v, ExpressionExtensions.AsInt32((Complex)intvals))));
                }
                else if (intvals is CMatrix)
                {
                    return(new CMatrix(MathStats.Histogram(v, ExpressionExtensions.AsRealVector((CMatrix)intvals))));
                }
                else
                {
                    throw ExceptionHelper.ThrowWrongArgumentType(intvals);
                }
            }
        }
예제 #2
0
        public override object Evaluate()
        {
            IList <Complex> m1 = LeftExpression.EvaluateAsExpandableComplexArray();
            IList <Complex> m2 = RightExpression.EvaluateAsExpandableComplexArray();

            return(MathStats.Correlation(m1, m2));
        }
예제 #3
0
        public override object Evaluate()
        {
            CMatrix m     = LeftExpression.EvaluateAsCMatrix();
            int     order = RightExpression.EvaluateAsInt32();

            return(MathStats.PopulationCentralMoment(m, order));
        }
예제 #4
0
        public void ModeTest()
        {
            //arrange
            double[] v        = new double[] { 1, 2, 2, 3, 6, 8, 8, 8, 9 };
            double   expected = 8.0;

            //action
            double actual = MathStats.Mode(v);

            //assert
            actual.Should().Be(expected);
        }
예제 #5
0
 public override object Evaluate()
 {
     return((Complex)MathStats.HarmonicMean(SubExpression.EvaluateAsExpandableDoubleArray()));
 }
예제 #6
0
 public override object Evaluate()
 {
     return((Complex)MathStats.Mean(SubExpression.EvaluateAsCMatrix()));
 }
예제 #7
0
 public override object Evaluate()
 {
     return(MathStats.Product(SubExpression.EvaluateAsCMatrix()));
 }
예제 #8
0
 public override object Evaluate()
 {
     return(MathStats.SumOfSquares(SubExpression.EvaluateAsCMatrix()));
 }
예제 #9
0
 public override object Evaluate()
 {
     return(MathStats.SampleKurtosis(SubExpression.EvaluateAsCMatrix()));
 }
예제 #10
0
 public override object Evaluate()
 {
     return(MathStats.PopulationSkewness(SubExpression.EvaluateAsCMatrix()));
 }
예제 #11
0
 public override object Evaluate()
 {
     return((Complex)MathStats.SampleStandardDeviation(SubExpression.EvaluateAsCMatrix()));
 }
예제 #12
0
 public override object Evaluate()
 {
     return((Complex)MathStats.PopulationVariance(SubExpression.EvaluateAsCMatrix()));
 }