# pmm_tools.parity

*module*

Dense parity blocks with physical even=+1 as the default convention.

## pmm_tools.parity.diagonalize_parity_blocks

*function*

```python
def diagonalize_parity_blocks(hamiltonian, parity_operator, even_sign=+1)
```

Diagonalize Hamiltonian in parity blocks and embed in full space.

[View source](https://gitlab.kwant-project.org/qt/pmm_tools/-/blob/e412d66507a554f455ef935b755fc39f28ab4e05/pmm_tools/parity.py#L41-L70)

## pmm_tools.parity.parity_sector_indices

*function*

```python
def parity_sector_indices(parity_operator, even_sign=+1)
```

Return indices for a diagonal +/-1 parity operator.

Use even_sign=-1 for the five-site model's 2\*P_odd-I convention.

[View source](https://gitlab.kwant-project.org/qt/pmm_tools/-/blob/e412d66507a554f455ef935b755fc39f28ab4e05/pmm_tools/parity.py#L6-L22)

## pmm_tools.parity.split_parity_blocks

*function*

```python
def split_parity_blocks(matrix, parity_operator, even_sign=+1, validate=True)
```

Split a matrix into even and odd parity blocks.

[View source](https://gitlab.kwant-project.org/qt/pmm_tools/-/blob/e412d66507a554f455ef935b755fc39f28ab4e05/pmm_tools/parity.py#L25-L38)
