Ejemplo n.º 1
0
        public static unsafe double[][] Dot(this long[,] a, double[][] b, double[][] result)
        {
            int N = result.Length;
            int K = a.Columns();
            int M = result.Columns();

            var t = new double[K];

            fixed(long *A = a)
            for (int j = 0; j < M; j++)
            {
                for (int k = 0; k < t.Length; k++)
                {
                    t[k] = b[k][j];
                }

                long *pa = A;

                for (int i = 0; i < N; i++)
                {
                    double s = (double)0;
                    for (int k = 0; k < t.Length; k++)
                    {
                        s += (double)((double)(*pa++) * (double)t[k]);
                    }
                    result[i][j] = (double)s;
                }
            }

            return(result);
        }