A lightweight framework for generating, solving, and verifying solutions of algebraic equations.
Haskell
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
log
resources
src
COURSES
README
learnivore.cabal
mathdata.hs

README

run cabal install in this directory to install learnivore, 
  then execute with learnivore -p 8000
  then go to localhost:8000
  then input an equation
  
for interactive console access, cd into src, load ghci, and run :l Equations
  and use solveExpression to simplify arithmetic and algebraic expressions from strings
  and use solveEquation to solve arithmetic and algebraic equations from strings

to run the test suite, cd into src, load ghci, and run :l Tests


Current Functionality:
----------------------

Solves algebraic equations of one variable
Example:


putStrLn $ solveEquation "2^x=4"
------------------
2.0^x = 4.0
=>
x = log<2.0>(4.0)
=>
x = 2.0

putStrLn $ solveEquation "2^x+1=log<2>(8)"
-------------------
(2^x) + 1 = log<2>(8)
=>
(2^x) + 1 = 3.0
=>
2^x = 3.0 - 1
=>
2^x = 2.0
=>
x = log<2>(2.0)
=>
x = 1.0

putStrLn $ solveEquation "x^3+5=32"
--------------------
(x^3) + 5 = 32
=>
x^3 = 32 - 5
=>
x^3 = 27
=>
x = <3>√(27)
=>
x = 3.0



future plans:
-------------
todo:
add extensive trig tests
add rationals
add complex numbers and their operations
add basic derivatives and integrals



to be ready for release:
add rationals, factoring polynomials and integers, factorial, degrees vs radians
add i and other operations on complex numbers, basic derivatives and integrals,
add systems of equations
add basic vectors/matrices


write an algebraic expression generator, reusing the transformations, and adding a few generative (non-equivalent) transformations ([Seed] -> [Generator] -> (Expression, [Generator]))

set up QuickCheck for testing (using HUnit for now)

to continue on the engineering math track:
linear algebra, derivatives, integrals 

to continue on the university level math track:
logics, combinatorics, abstract algebra, category theory

TODO BUGS: 
1 error and 4 failures in current spec suite
should display correct solution if incorrect solution is given to quiz question

should not generate equations that it cannot solve (use perfect square determinants to generate integer solvable polynomials, etc)

Snap
  - expose as a json api
    - Equations
      - solve (*DONE*)
      - generate (*PARTIAL*)
      - verify solution (equation -> solution) (*PARTIAL*)
    - Quiz Stream
    ------------ maybe later
    - Expressions
      - simplify
      - generate
      - verify solution