Оценка математических выражений, которая включает единицы измерения - PullRequest
1 голос
/ 06 декабря 2011

Похоже на этот вопрос но отличается. Там много хороших ответов, но ни один не делает Единицы измерения.

Как насчет .NET-совместимого (даже через COM, если необходимо) средства оценки математических выражений, которое включает единицы измерения?

Я пробовал NCalc для выражений без единиц измерения. Я знаю, F # может сделать это в коде. Google Calculator великолепен, но недоступен в качестве поддерживаемого API и не подходит в качестве сервисной базы для этого проекта.

Вот интересная статья на эту тему . Он охватывает расчеты в единицах измерения, но не учитывает преобразования «аддитивных постоянных», такие как градусы Цельсия в градусы Фаренгейта (по их заключению). И это поднимает хороший вопрос о веществе . "Галлоны бензина" против "галлонов молока". Единицы измерения одинаковы, но вещество различно, и поэтому, возможно, следует рассматривать библиотеку как различную. И с правильными уравнениями алхимика, сколько молока с галлона бензина дают? : -Р

Подходит ли NCalc для этого? В противном случае, сколько работы потребуется для улучшения NCalc? Существуют ли другие .Net-совместимые библиотеки, которые могут обрабатывать единицы измерения?

1 Ответ

0 голосов
/ 13 декабря 2011

FParsec кажется интересным!Это помогает только с выражением парсинга шагов, но это похоже на большую часть битвы.Поддерживает компактные, BNF-подобные определения в F # и может предоставлять высококачественные сообщения об ошибках.

Dimensional Anaylsis по-прежнему является заказным заданием, но с правильно проанализированным AST будет трудно реализовать?

...