Exemplo n.º 1
0
        //-----------------------------------------------------------------

        public static DenseMatrix[] Init2D(float value = 0)
        {
            return(new DenseMatrix[]
            {
                MatrixFactory.Init(value),
                MatrixFactory.Init(value),
            });
        }
Exemplo n.º 2
0
        public static DenseMatrix ApplyDeviations(this DenseMatrix V, DenseMatrix[] dev, DenseMatrix defaultValues)
        {
            DenseMatrix V2 = MatrixFactory.Init(float.MinValue);

            for (int r = 0; r < V.RowCount; r++)
            {
                for (int c = 0; c < V.ColumnCount; c++)
                {
                    int dr = 0, dc = 0;
                    dc = dev[Direction.C][r, c].Round();
                    dr = dev[Direction.R][r, c].Round();

                    var adjIdx = V.GetAdjustedIndexes(r, c, dr, dc);
                    int c2     = adjIdx[Direction.C];
                    int r2     = adjIdx[Direction.R];

                    if (r2 < V.RowCount && c2 < V.ColumnCount)
                    {
                        V2[r2, c2] = V[r, c];
                    }
                }
            }

            // Compensation: Cover the areas yet not affected by deviations
            for (int r = 0; r < V.RowCount; r++)
            {
                for (int c = 0; c < V.ColumnCount; c++)
                {
                    if (V2[r, c] == float.MinValue)
                    {
                        if (defaultValues != null)
                        {
                            V2[r, c] = defaultValues[r, c];
                        }
                        else
                        {
                            V2[r, c] = V[r, c];
                        }
                    }
                }
            }

            return(V2);
        }
Exemplo n.º 3
0
        // -----------------------
        public static DenseMatrix ApplyDeviations(this DenseMatrix V, DenseMatrix[] dev, float defaultValue)
        {
            DenseMatrix defaultValues = MatrixFactory.Init(defaultValue);

            return(V.ApplyDeviations(dev, defaultValues));
        }