Алгоритм — это совокупность методов с общим списком параметров. Класс алгоритма наследует функциональность списка TmaReadList. При создании объекта TmaAlgorithm указывается имя алгоритма, под которым он был зарегистрирован в управляющем ядре. По имени алгоритма однозначно определяется состав его методов. Можно создать сколько угодно экземпляров алгоритмов с данным именем.
Свойства и функции класса TmaAlgorithm


constructor Create(Kernel:TmaKernel;const name:WideString)
Функция создает новый алгоритм и добавляет в него все методы, найденные в библиотеках по имени алгоритма name.
constructor Create(alg: ImaAlgorithm)
Функция создает новый алгоритм и добавляет в него все методы, найденные в библиотеках по имени алгоритма name.
constructor Create(algorithm:ImaAlgorithm)
Присоедимяет класс к уже существующему интерфейсу.
function Param: TmaList
Функция возвращает дерево параметров алгоритма.

Внимание! Никогда не уничтожайте класс, полученный из этой функции.


procedure ExecuteMethod(name:WideString;input:array of TmaMatrix;output:array of TmaMatrix)
Функция создает и выполняет метод name данного алгоритма со входными параметрами input и выходными параметрами output.

Параметры:

name имя выполняемого метода
input массив входных параметров алгоритма. Его элементами должны быть типа TmaMatrix
output массив выходных параметров алгоритма. Его элементами должны быть типа TmaMatrix
procedure SetMethod(mdef:ImaMethodDef)
Функция создает и добавляет в алгоритм новый метод с определителем mdef. Если метод с таким именем уже существует в алгоритме, он заменяется новым. При создании алгоритма с помощью функции управляющего ядра CreateAlgorithm все методы создаются ядром автоматически.
function GetMethod(name: WideString): TmaMethod
Находит метод по имени. Возвращает класс-оболочку с пустым указателем на интерфейс, если в алгоритме нет метода с таким именем.

Внимание! Никогда не уничтожайте методы, полученные из этой функции.


function Description:WideString
Возвращает описание всех методов данного алгоритма.
function VerifyMethod(num:integer):boolean
function VerifyMethod(name:WideString):boolean
Функции проверяют правильность формирования всех аргументов метода, в том числе соответствие размеров и размерностей матриц данных. Проверяется также соответствие размеров с аргументами других сформированных методов данного алгоритма. Метод считается сформированным, если заданы все его обязательные аргументы. Функцию VerifyMethod следует вызывать после формирования метода, но перед первым обращением к функциям Calc или CalcCell данного метода. Проверка осуществляется в соответствии с описаниями всех методов данного алгоритма. В случае обнаружения ошибок функция проверки записывает соответствующие сообщения в отладочный поток алгоритма и возвращает FALSE. Если метод сформирован неправильно, то результат его выполнения непредсказуем, так как функции метода Calc и CalcCell не обязаны проверять свои аргументы.
function Verify:boolean
Функция проверяет правильность формирования всех аргументов во всех методах. Проверка сводится к вызову VerifyMethod для каждого метода алгоритма. В случае обнаружения ошибок хотя бы в одном из методов функция записывает соответствующие сообщения в отладочный поток алгоритма и возвращает FALSE.
Все остальные функции наследуются от TmaReadList.