Существуют механизмы вычислений для скалярных параметров, а также механизмы вычислений более высокого уровня для таблиц, обычно используемые для таких приложений, как финансовое планирование, расчеты комиссионных и сборов, расчеты сети и контракта ...
Позвольте мне объяснить это в ближайшее время. Рассмотрим следующие формулы для скаляров:
1) z = f1(x,y)
2) p = f2(z,n)
3) q = f3(x,p)
...
и так далее. Для настройки таких функций и деревьев зависимостей требуется механизм вычислений со скалярными параметрами. Я бы (также) рекомендовал следующую ссылку для такого механизма вычислений, написанного на c #, как хорошую отправную точку:
http://www.codeproject.com/Articles/246374/A-Calculation-Engine-for-NET
Как уже упоминалось, существуют также механизмы вычислений с табличными функциями, которые принимают таблицы в качестве параметров. Основной принцип, но тот же:
1) (T4, T5) = TableFunction1(T1, T2, T3)
2) (T7, T8) = TableFunction2(T2, T4)
...
и т. Д. Обратите внимание, что табличная функция может возвращать несколько таблиц в качестве выходных данных, как показано выше.
Здесь можно наблюдать две ключевые проблемы:
a) Значения таблиц T7 и T8 зависят от таблиц T2 и T4. Поэтому таблицы T7 и T8 необходимо обновлять, выполняя функцию «TableFunction2» только в случае изменения одного из входных параметров T2 или T4.
Аналогично, T4 необходимо обновлять, только если T1, T2 или T3 обновлены; дерево зависимостей!
b) Отделение базы данных от процесса расчета: механизм расчета должен работать независимо от какой-либо фиксированной структуры данных или схемы базы данных, чтобы его можно было интегрировать с любой базой данных и структурой данных.
Вы можете найти мою статью, в которой эти принципы объясняются по адресу:
Логическая архитектура структуры вычислений на основе правил
http://finaquant.com/logical-architecture-of-a-rule-based-calculation-framework/1053
Теперь на основе этих принципов разрабатывается библиотека C # / .NET для механизма вычислений с таблицами в качестве входных и выходных параметров.
Примечание для модераторов: пожалуйста, удалите ссылку выше, если она считается саморекламой.