Я разрабатываю математический синтаксический анализатор, который может оценивать String как '5+b*sqrt(c^2)'
. Я использую ANTLR для разбора и хорошо продвигаюсь. Теперь я упал на Java-класс BigDecimal
и подумал: эй, а почему бы здесь не подумать о точности.
Моя проблема в том, что Java API не предоставляет тригонометрических методов для BigDecimal
, таких как java.lang.Math
. Знаете ли вы, есть ли какие-нибудь хорошие математические библиотеки, такие как Apache Commons, которые решают эту проблему?
Другой вопрос - как реализовать метод мощности, чтобы я мог вычислить 4,9 ^ 1,4 с BigDecimal
s. Это возможно?
Также приветствуется запрос книги о численных вычислениях.