Esempio n. 1
0
        private static void CopyToMatrix <T>(BaseSquareMatrix <T> matrix, T[] values)
        {
            int k = 0;

            for (int i = 0; i < matrix.Order; i++)
            {
                for (int j = 0; j < matrix.Order; j++)
                {
                    matrix[i, j] = values[k++];
                }
            }
        }
Esempio n. 2
0
        private static void Validate <T>(BaseSquareMatrix <T> matrix, T[] values)
        {
            if (values == null)
            {
                throw new ArgumentNullException($"The {nameof(values)} can't be null");
            }

            if (values.Length > matrix.Lenght)
            {
                throw new ArgumentException($"The number of element of {nameof(values)} can't more than capacity of matrix!");
            }
        }
Esempio n. 3
0
 /// <summary>
 /// Extension methos for finding sum
 /// </summary>
 /// <param name="left"> Matrix </param>
 /// <param name="right"> Matrix </param>
 protected abstract SquareMatrix <T> Add(BaseSquareMatrix <T> left, SquareMatrix <T> right);
Esempio n. 4
0
 /// <summary>
 /// Call neede method
 /// </summary>
 /// <param name="left"> Matrix </param>
 /// <param name="right"> Matrix </param>
 public BaseSquareMatrix <T> DynamicAdd(BaseSquareMatrix <T> left, BaseSquareMatrix <T> right)
 => Add((dynamic)left, right);
        /// <summary>
        /// Find sum of two matrixes
        /// </summary>
        /// <typeparam name="T"> Type of elements </typeparam>
        /// <param name="left"> Matrix </param>
        /// <param name="right"> Matrix </param>
        /// <returns> Sum </returns>
        public static BaseSquareMatrix <T> Add <T>(this BaseSquareMatrix <T> left, BaseSquareMatrix <T> right)
        {
            var visitor = new MatrixSumVisitor <T>();

            return(visitor.DynamicAdd(left, right));
        }