Write

Метод анализирует содержимое матрицы, определяет её структурный тип (симметричная, эрмитова, треугольная, ленточная и так далее) и записывает содержимое матрицы в открытый файл в соответствии с выбранным методом хранения.

long matrix::Write(
   int                file_handle,     // хендл файла, открытого для записи
   ENUM_BLAS_STORAGE  storage_method   // метод записи
   );

Параметры

file_handle

[in]  Хендл файла, возвращаемый FileOpen().

storage_method

[in]  Значение перечисления ENUM_BLAS_STORAGE, определяющее метод записи.

Возвращаемое значение

Возвращает количество байтов, записанных в файл. В случае ошибки возвращает -1.

Примечание

Запись производится с текущей позиции файла. Файл должен быть открыт как бинарный для записи (флаги FILE_BIN|FILE_WRITE). Сначала записывается структура MqlMatrixInfo, затем содержимое матрицы в соответствии с выбранным методом хранения. Матрица должна иметь ненулевой размер.

Если выбран метод BLASSTORAGE_GENERAL, то матрица сохраняется как есть.

Если выбран метод BLASSTORAGE_COMPACT, то матрица сохраняется наиболее компактно. Например, если было определено, что матрица является general band (GB), то вычисляется размер (kl+ku+1)*cols. Если этот размер меньше, чем rows*cols, то матрица записывается как general band, в противном случае матрица записывается как general (GE).

Если выбран метод BLASSTORAGE_BAND и kl>=0 и ku>=0, то матрица записывается как band - general band (GB), symmetric band (SB), hermitian band (HB) или triangular band (TB).

ENUM_BLAS_STORAGE

Перечисление, определяющее метод хранения матрицы.

ID

Описание

BLASSTORAGE_GENERAL

Сохранение как есть

BLASSTORAGE_COMPACT      

Компактное хранение

BLASSTORAGE_BAND

Ленточное хранение