Inference in Switching Linear Dynamical Systems (SLDSs) is known to be intractable. Various approximation algorithms are available, all have some drawbacks; some are numerical unstable, other do not give satisfactory approximations or are too limited. For that reason we developed the Expectation Correction (EC) algorithm. The algorithm and its performance compared to other methods are described in a research report and JMLR paper.
An optimised Matlab C Mex implementation of the EC algorithm as well as a demonstration code are available.
In order to compile the code you need the ATLAS C libraries. Since the performance of those libraries depends on the type of machine on which you are using them, it is worth taking some time to build a specific version instead of using precompiled binaries.