# Importance Sampling for State Space Models (isssm)


<!-- WARNING: THIS FILE WAS AUTOGENERATED! DO NOT EDIT! -->

## Install

### Option 1: Install from PyPI (for users)

``` sh
pip install isssm
```

### Option 2: Development Setup with uv (for contributors)

This project uses [uv](https://github.com/astral-sh/uv) for dependency
management and virtual environments.

1.  **Install uv** (if not already installed):

    ``` sh
    # On macOS/Linux
    curl -LsSf https://astral.sh/uv/install.sh | sh

    # On Windows
    powershell -c "irm https://astral.sh/uv/install.ps1 | iex"
    ```

2.  **Clone the repository**:

    ``` sh
    git clone https://github.com/stefanheyder/isssm.git
    cd isssm
    ```

3.  **Create a virtual environment**:

    ``` sh
    uv venv
    ```

4.  **Activate the virtual environment**:

    ``` sh
    # On macOS/Linux
    source .venv/bin/activate

    # On Windows
    .venv\Scripts\activate
    ```

5.  **Install the package in development mode**:

    ``` sh
    uv pip install -e ".[dev]"
    ```

## How to use

Please check out [the
documentation](https://stefanheyder.github.io/isssm) for details and
examples.

For the mathematics and further details, please have a look at my [PhD
thesis](https://github.com/stefanheyder/dissertation).

## Development Workflow with nbdev

This project uses [nbdev](https://nbdev.fast.ai/) for literate
programming. Here’s how to work with it:

1.  **Edit notebooks in the `nbs/` directory**:

    All development happens in Jupyter notebooks in the `nbs/`
    directory.

2.  **Export your changes to Python modules**:

    ``` sh
    nbdev_export
    ```

3.  **Build the documentation**:

    ``` sh
    nbdev_docs
    ```

4.  **Preview the documentation locally**:

    ``` sh
    nbdev_preview
    ```
