Ejemplo n.º 1
0
        public static ImplicitMatrix <T> operator *(ImplicitMatrix <T> m1, ImplicitMatrix <T> m2)
        {
            if (m1.Columns != m2.Rows)
            {
                throw new Exception("Matrix multiplication error, row of m1 isn't equal to the column count of m2");
            }

            ImplicitMatrix <T> output = new ImplicitMatrix <T>(m1.Rows, m2.Columns);

            for (int i = 0; i < output.Rows; i++)
            {
                for (int j = 0; j < output.Columns; j++)
                {
                    CalculatingUnit <T> item = bop.Zero();
                    foreach (MatrixItem mItem1 in m1.mRf[i])
                    {
                        if (m2.mCf[j].Exists(x => x.row == mItem1.column))
                        {
                            MatrixItem mItem2 = m2.mCf[j].Find(x => x.row == mItem1.column);
                            item = bop.Add(item, bop.Multiply(mItem1.value, mItem2.value));
                        }
                    }
                    output[i, j] = item;
                }
            }
            return(output);
        }
Ejemplo n.º 2
0
        public static HyperPoint <T> operator *(ImplicitMatrix <T> m, HyperPoint <T> p)
        {
            if (m.Columns != p.Dim)
            {
                throw new Exception("Matrix multiplication error, row of m1 isn't equal to the column count of m2");
            }

            HyperPoint <T> output = new HyperPoint <T>(m.Rows);

            for (int i = 0; i < output.Dim; i++)
            {
                CalculatingUnit <T> item = bop.Zero();
                foreach (MatrixItem mItem in m.mRf[i])
                {
                    item = bop.Add(item, mItem.value * p[mItem.column]);
                }
                output[i] = item;
            }
            return(output);
        }
 private Action GetArgumentAction(CalculatingUnit unit)
 {
     return(() => { unit.ComputeParameter(new int[1, 2]); });
 }
 private Action GetArgumentNullAction(CalculatingUnit unit)
 {
     return(() => { unit.ComputeParameter(null); });
 }