Beispiel #1
0
            public double[,] Evaluate(ArrayQuery.Bounds bounds, bool strict)
            {
                var vector = Vector.Enumerate(bounds, strict);

                double[,] matrix;
                Action <int, double> setFunc;

                if (Row)
                {
                    matrix  = new double[1, vector.Count];
                    setFunc = (idx, val) => matrix[0, idx] = val;
                }
                else
                {
                    matrix  = new double[vector.Count, 1];
                    setFunc = (idx, val) => matrix[idx, 0] = val;
                }
                var i = 0;

                foreach (var val in vector)
                {
                    setFunc(i++, val);
                }
                return(matrix);
            }
Beispiel #2
0
 public double[,] Evaluate(ArrayQuery.Bounds bounds, bool strict) =>
 Expressions.Aggregate(EmptyMatrix <double> .Instance, (current, expression) =>
                       current.Concat(expression.Evaluate(bounds, strict), Row ? MatrixUtils.MatrixDimension.Row : MatrixUtils.MatrixDimension.Col));
Beispiel #3
0
 public double[,] GetMatrix([NotNull] ArrayQuery.Bounds bounds, bool strict) => _expression?.Evaluate(bounds, strict) ?? EmptyMatrix <double> .Instance;