Write
Метод анализирует содержимое матрицы, определяет её структурный тип (симметричная, эрмитова, треугольная, ленточная и так далее) и записывает содержимое матрицы в открытый файл в соответствии с выбранным методом хранения.
long matrix::Write(
|
Параметры
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).
Перечисление, определяющее метод хранения матрицы.
ID |
Описание |
|---|---|
BLASSTORAGE_GENERAL |
Сохранение как есть |
BLASSTORAGE_COMPACT |
Компактное хранение |
BLASSTORAGE_BAND |
Ленточное хранение |