Sun Jan 23 13:15:10 EST 2011

State space models: representation?

When using lambda abstractions to represent state space models with
flat arguments and output value vector structure, some information
gets lost.

It would be better to find a common representation for the functional
part and attach the meta information somehwere else, i.e. statically.

What I mean is, a state update function can be:

     (lambda (s i)
       (let ((s1 ...)
             (s2 ...)
             (o1 ...)
             (o2 ...))
         (values s o)))

Where the input and output values are structs, and the equations are
in unpacked form.

Combinators that chain state space models together then could be
written in terms of how they wire these structs.


  - The `state-space-eqs' macro in the previous post doesn't do much,
    and it doesn't have a proper input/output spec: it would work
    better with names.

    Naming inputs can be done using keywords, but naming outputs seems
    to be only possible by wrapping values in a struct.

  - I don't really want a struct: I just want static information that
    keeps track of the names, so I can use the names in combinators.
    Put differently, at run time these can just be vectors, but at
    compile time there is name information.

Let's start with binding the dictionaries to identifiers at compile
time, and see where this leads us.