Добавлена поддержка методов Flat для матриц. Это позволяет адресоваться
к элементу матрицы через один индекс, а не через два.
double matrix::Flat(ulong index) const;
void matrix::Flat(ulong index,double value);
Псевдокод вычисления адреса элемента матрицы:
ulong row=index / mat.Cols();
ulong col=index % mat.Cols();
mat[row,col]
Например, для матрицы matrix mat(3,3) доступы можно записать так:
на чтение — x=mat.Flat(4), что эквивалентно записи x=mat[1][1]
на запись — mat.Flat(5, 42), что эквивалентно записи mat[1][2]=42
В случае вызова функции с некорректным для матрицы индексом будет сгенерирована критическая ошибка исполнения OutOfRange.