예제 #1
0
        public static GaNumMultivector CreateVectorFromRow(Matrix matrix, int row)
        {
            var gaSpaceDim = matrix.ColumnCount.ToGaSpaceDimension();

            var mv = new GaNumMultivector(gaSpaceDim);

            for (var col = 0; col < matrix.ColumnCount; col++)
            {
                mv.AddFactor(1, col, matrix[row, col]);
            }

            return(mv);
        }
예제 #2
0
        public static GaNumMultivector CreateVectorFromColumn(Matrix matrix, int col)
        {
            var gaSpaceDim = matrix.RowCount.ToGaSpaceDimension();

            var mv = new GaNumMultivector(gaSpaceDim);

            for (var row = 0; row < matrix.RowCount; row++)
            {
                mv.AddFactor(1, row, matrix[row, col]);
            }

            return(mv);
        }
예제 #3
0
        public static GaNumMultivector CreateFromColumn(Matrix matrix, int col)
        {
            Debug.Assert(matrix.RowCount.IsValidGaSpaceDimension());

            var mv = new GaNumMultivector(matrix.RowCount);

            for (var index = 0; index < matrix.RowCount; index++)
            {
                mv.AddFactor(index, matrix[index, col]);
            }

            return(mv);
        }
예제 #4
0
        public static GaNumMultivector CreateVectorFromRow(double[,] exprArray, int row)
        {
            var colsCount  = exprArray.GetLength(1);
            var gaSpaceDim = colsCount.ToGaSpaceDimension();

            var mv = new GaNumMultivector(gaSpaceDim);

            for (var col = 0; col < colsCount; col++)
            {
                mv.AddFactor(1, col, exprArray[row, col]);
            }

            return(mv);
        }
예제 #5
0
        public static GaNumMultivector CreateVectorFromColumn(double[,] exprArray, int col)
        {
            var rowsCount  = exprArray.GetLength(0);
            var gaSpaceDim = rowsCount.ToGaSpaceDimension();

            var mv = new GaNumMultivector(gaSpaceDim);

            for (var row = 0; row < rowsCount; row++)
            {
                mv.AddFactor(1, row, exprArray[row, col]);
            }

            return(mv);
        }
예제 #6
0
        public GaNumMultivector CliffConj()
        {
            var resultMv = new GaNumMultivector(GaSpaceDimension);

            foreach (var term in NonZeroTerms)
            {
                resultMv.AddFactor(
                    term.Key,
                    term.Key.BasisBladeIdHasNegativeClifConj(),
                    term.Value
                    );
            }

            return(resultMv);
        }
예제 #7
0
        public static GaNumMultivector CreateFromRow(double[,] exprArray, int row)
        {
            var cols = exprArray.GetLength(1);

            Debug.Assert(cols.IsValidGaSpaceDimension());

            var mv = new GaNumMultivector(cols);

            for (var col = 0; col < cols; col++)
            {
                mv.AddFactor(col, exprArray[row, col]);
            }

            return(mv);
        }
예제 #8
0
        public static GaNumMultivector CreateFromColumn(double[,] exprArray, int col)
        {
            var rows = exprArray.GetLength(0);

            Debug.Assert(rows.IsValidGaSpaceDimension());

            var mv = new GaNumMultivector(rows);

            for (var row = 0; row < rows; row++)
            {
                mv.AddFactor(row, exprArray[row, col]);
            }

            return(mv);
        }
예제 #9
0
        public static GaNumMultivector CreatePseudoscalar(int gaSpaceDim, double coef)
        {
            var resultMv = new GaNumMultivector(gaSpaceDim);

            return(resultMv.AddFactor(gaSpaceDim - 1, coef));
        }
예제 #10
0
        public static GaNumMultivector CreateUnitScalar(int gaSpaceDim)
        {
            var resultMv = new GaNumMultivector(gaSpaceDim);

            return(resultMv.AddFactor(0, 1.0d));
        }
예제 #11
0
        public static GaNumMultivector CreateBasisBlade(int gaSpaceDim, int id)
        {
            var resultMv = new GaNumMultivector(gaSpaceDim);

            return(resultMv.AddFactor(id, 1.0d));
        }
예제 #12
0
        public static GaNumMultivector CreateTerm(int gaSpaceDim, int id, double coef)
        {
            var resultMv = new GaNumMultivector(gaSpaceDim);

            return(resultMv.AddFactor(id, coef));
        }