A lightweight framework for generating, solving, and verifying solutions of algebraic equations.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


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

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:
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

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)

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