Библиотека оценки формул Java с функцией неупорядоченных переменных

В настоящее время я ищу java-библиотеку (или нативную библиотеку с java API) для анализа и оценки формул.

Используя рекомендации отсюда, я просмотрел множество библиотек:

  • JFormula
  • JEval
  • Symja
  • JEP

Но ни одна из них не соответствует моим потребностям, а именно:

  • Множественные вычисление формулы с зависимостью между ними (формула всегда влияет на переменную с использованием других переменных или числовых значений)
  • Возможность изменить только одну формулу из примерно 50, с хорошими характеристиками, если изменяется только одна формула
  • нет необходимости вручную обрабатывать зависимости переменных
  • Автоматически обновлять другие зависимые переменные при изменении формулы
  • Возможность прослушивать, какая переменная изменилась
  • нет необходимости иметь специальный формат для переменных (пользователь напрямую вводит имя и не не хочу иметь сложную нотацию)

Может быть, пример будет лучше. Допустим, у нас есть, введенные в систему в таком порядке:

  • a = b + c
  • c = 2 * d
  • b = 3
  • d = 2

Я хотел бы иметь возможность чтобы ввести эти 4 строки в этом порядке и запросить результат «а» (или «б», что угодно).Затем, если в пользовательском интерфейсе (по сути табличная переменная <> формула) "b" изменить на "2 * d", библиотека автоматически изменит значение "b" и "a" и вернет мне (или обеду и событие или вызов функции) список изменений

Лучшей библиотекой была бы такая же, как JEP, но с возможностью изменения порядка переменных и возможностью автоматического вычисления зависимых переменных

Я знаю, что компиляторы и программное обеспечение для работы с электронными таблицами использует такие механизмы, но я не нашел java или библиотек, совместимых с java, которые можно было бы использовать напрямую.

Кто-нибудь знает такую?

РЕДАКТИРОВАТЬ: Точность: вопрос действительно о библиотеке или, в конечном итоге, о наборе библиотек, которые нужно связать вместе. Вопрос для проекта в компании и идея в том, чтобы потратить минимальное количество времени. Решение "сделай сам" уже оценено и не входит в объем вопроса

10
задан Léo Léopold Hertz 준영 17 July 2012 в 02:51
поделиться