Code Monkey home page Code Monkey logo

ssmtoybox_old's People

Contributors

jacobnzw avatar

Watchers

 avatar

ssmtoybox_old's Issues

Documentation using Sphinx

Generate documentation using Sphinx in PyCharm.

Use NumPy style docstrings. Sphinx converts them to reStructuredText using the napoleon extension (which handles NumPy and Google docstrings).

Do this in a separate branch, because I still don't know what the Sphinx quickstart utility will do to the directory structure.

Restructuring and Consolidation

Turn the following packages (directories) into modules (files):

  • inference: Many classical filters (EKF,UKF, CKF, GHKF) contained in cubature.py, extended.py, gausshermite.py, unscented.py should be moved to ssinfer.py, because they don't take up much space anyway. The files are mostly very short.
    • The short code snippets showcasing each filter can be moved to demos package.
  • models: State-space models don't need to be separated into modules, because there isn't that many of them.
    • The code in the main() has the same role as the code snippets in files containing the filters. Fusing the code and moving it into a demos package is much more sensible.
  • transforms: The BQ transforms deserve their own package, because they tightly depend on bqmodel.py and bqkernel.py. The classical transforms can be moved from quad.py and taylor.py into mtran.py.

It might later turn out, that the demos shouldn't be a package either :). Who knows?!

The above changes should result in the following project structure:

./bq
./demos
./docs
./tests
datagen.py
mtran.py
ssinf.py
ssmod.py
utils.py

Contents:

  • ./bq: BQ transforms, because they are more complex. Contents: bqmtran.py, bqmod.py, bqkern.py
  • ./demos: demos showcasing each filter, or comparing filter performance on each example
  • ./docs: Sphinx generated documentation
  • ./tests: all the current test files, test cases for each filter separately so that failures can be easily identified.
  • datagen.py: base classes with code for simulating continuous-time systems with any noise and specific systems in sub-classes. Rename to dsys.py?
  • mtran.py: base classes for general moment transform and sigma-point transforms, sub-classes for the classical moment transforms such as Unscented, Taylor, Gauss-Hermite, fully-symmetric, Monte Carlo, spherical-radial.
  • ssinf.py: base classes, concrete inference algorithms (filters/smoothers) such as EKF, UKF, CKF, GHKF, GPQKF, TPQKF, filters for Student densities etc.
  • ssmod.py: base classes for various SSMs, concrete SSMs like demodulation, ungm, tracking, pendulum, oscillators, etc.
  • utils.py: functions for evaluating various performance metrics (RMSE, INC, NCI, NLL) and helper functions (variance bootstrapping etc.)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.