Skip to content

enrique-guillen/sym_differ

Repository files navigation

SymDiffer

This repository is the core repository of the SymDiffer application. It implements the use cases of the SymDiffer application and contains the implementation of its mathematical operations.

Purpose and current state

This repository was created to showcase an approach to implementing a Symbolic Differentiation Program, akin to the one presented in the Structure and Interpretation of Computer Programs, implementing the set of derivative rules explained in most introductory calculus textbooks, developed in an incremental & iterative fashion.

This repository now serves that purpose more or less, although the expression reduction module has a lot of room for improvement (for example, the expression x + x + 1 + 1 will only be simplified to x + x + 2 and not something more desirable, like 2x + 2). Improving it could make it a useful standalone feature but there are no plans at the moment to do that -- feel free to make a fork of this repository to add that.

Development instructions & commands

  • There is a .ruby-version file that indicates with which Ruby version this project was developed. You can use rbenv or another method to install this Ruby version.
  • Run bundle install to install all dependencies.
  • To run the automated acceptance criteria tests, run bundle exec cucumber. report.cucumber.html is already git-ignored if you want to generate a report file in your local repository.
  • To run RSpec tests: bundle exec rspec spec component_tests. The spec/ folder contains typical unit tests whereas the component_tests/ tests can test multiple units, as well as tests that are too slow to be written in a TDD fashion.
  • rubocop and reek should be executed for static analysis.

See also

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published