Класс CmaAlgorithm является потомком CmaList,
наследуя от него операторы [ ], присваивания и преобразования типов.
При создании объекта CmaAlgorithm указывается
имя алгоритма, под которым он был зарегистрирован в управляющем ядре.
По имени алгоритма однозначно определяется состав его методов.
Можно создать сколько угодно экземпляров алгоритмов с данным именем.
CmaAlgorithm (maString name, ImaKernel* kernel);
Конструктор CmaAlgorithm скрывает вызов функции управляющего ядра
CreateAlgorithm.
При создании алгоритма создается дерево алгоритма,
поддерево параметров и все методы алгоритма вместе со своими поддеревьями:
maString GetDescription();
Функция возвращает описание всех своих методов. Это описание является
объединением всех описаний, возвращенных определителями методов в функции
ImaMethodDef::GetDescription.
CmaCell& operator[] (long i);
CmaCell& operator[] (maString i);
Функция позволяет получать доступ к дереву параметров и деревьям методов стандартным образом.
Дерево параметров всегда имеет номер 0.
HRESULT SetMethod(ImaMethodDef *mdef)
Функция создает новый метод по по определителю метода и добавляет его в
свой список методов. Полезно для подключения методов, которые расположены
в самой пользовательской программе, а не в библиотеке.
CmaList Param ();
Функция дает доступ к параметрам алгоритма.
CmaMethod Method (maString name);
Функция дает доступ к методам алгоритма.
HRESULT Verify ();
HRESULT Verify(int cellno);
HRESULT Verify(maString name);
Функции проверяют правильность формирования всех аргументов метода,
в том числе соответствие размеров и размерностей матриц данных.
Проверяется также соответствие размеров с аргументами других
сформированных методов данного алгоритма.
Метод считается
сформированным,
если заданы все его обязательные аргументы.
Функцию Verify следует вызывать после формирования метода,
но перед первым обращением к функциям Calc или CalcCell данного метода.
Проверка осуществляется в соответствии
с описаниями всех методов данного алгоритма.
В случае обнаружения ошибок функция проверки записывает соответствующие
сообщения в отладочный поток алгоритма и возвращает MA_ERR_VERIFY.