Skip to content

General design ideas

mschuene edited this page Apr 18, 2013 · 2 revisions

General design ideas


  • expresso.core

    General Namespace, which provides

    • basic facilities to construct and manipulate mathematical expressions
    • setting up a logic context for manipulating expressions
    • translating an expression to a normal,canonical form
      • performs basic simplification / calculations of constants?
      • other forms of manipulation ?
    • General rule based translator

  • expresso.optimization

    Namespace for optimizing standart expressions

    • check for common subexpressions and only calculate them once
    • apply more sophisticated simplification rules
    • merging simple sums etc to transform a multipass expression to an equivalent single-pass expression
    • optimizing the order of matrix multiplications
    • compiling the optimized expression tree to a function which takes the parameters as arguments and calls the corresponding core.matrix functions neccessary to compute the result ?
    • apply more transformations - inspired by theano

  • expresso.solve

    Namespace for solving (sets of) standart expressions in regard to a variable X

    • rewrite an equation if there is only one occurrence of the variable x
    • apply a polynomial solve routine if applicable
    • if above rules fail, try to reduce the occurences of x to one
Clone this wiki locally