Differentiator изначально задумывался как подспорье перед написанием собственного языка программирования, помогая понять алгоритм рекурсивного спуска. Несмотря на это, проект полезен сам по себе, так как помогает брать производные сложных математических функций.
- Язык программирования: C
- Сборка: CMake
- Визуализация дерева выражений: DOT (Graphviz)
- Вывод в файл: LaTeX
- Unit тесты: Criterion (в планах)
- Компилятор C
- CMake
- Graphviz (для визуализации дерева)
- LaTeX (для вывода результата)
-
Клонируйте репозиторий:
git clone https://github.com/Rustic-soul/Differentiator.git cd Differentiator -
Создайте директорию для сборки и перейдите в неё:
mkdir build cd build -
Сконфигурируйте проект с помощью CMake:
cmake ..
-
Соберите проект:
cmake --build .
-
Поместите математическое выражение, от которого нужно посчитать производную, в файл
path_to_project/images/exp/exp.txt. -
Запустите исполняемый файл
differentiatorиз папкиpath_to_project/build:./differentiator
-
Результат будет сохранен в файл
path_to_project/images/tex/res.tex, который будет содержать исходную функцию и её производную. -
Вы можете изменить переменную, по которой происходит дифференцирование, в файле
main.c.
- Добавить тестирование с использованием библиотеки Criterion.
- Дамп промежуточных результатов дифференцирования в файл LaTeX.
- Реализация разложения функции по Тейлору.
- Реализация разложения функции по Маклорену.
- Добавление еще одного алгоритма упрощения получившегося после дифференцирования выражения (помимо свёртки констант и удаления нейтральных элементов).
Шляпин Илья
Буду рад обратной связи и предложениям по улучшению проекта!