How clementsw/interferometer works
This is a compact Python library for representing and designing universal optical interferometers. A typical workflow generates or supplies a unitary matrix, decomposes it into a triangular or square beam-splitter mesh, then calculates the resulting transformation or draws the mesh. The source excerpts show these capabilities implemented in one module; the README documents the square-mesh example and plotting feature. The graph reflects those documented capabilities without assuming additional internal modules.
Main entry points: __init__.py Public API · main.py Square decomposition
Components 10
Other components
- Library user
- Public API
interferometer/__init__.py - Haar unitary
interferometer/main.py - Triangle decomposition
interferometer/main.py - Square decomposition
interferometer/main.py - Interferometer model
interferometer/main.py - Transformation calculation
interferometer/main.py - Mesh drawing
interferometer/main.py - NumPy
- Matplotlib
Connections 20
- Library user → Public API: imports
- Public API → Haar unitary: exports
- Public API → Triangle decomposition: exports
- Public API → Square decomposition: exports
- Public API → Interferometer model: exports
- Library user → Haar unitary: requests
- Haar unitary → NumPy: uses
- Library user → Triangle decomposition: supplies matrix
- Library user → Square decomposition: supplies matrix
- Haar unitary → Square decomposition: supplies matrix
- Triangle decomposition → Interferometer model: builds mesh
- Square decomposition → Interferometer model: builds mesh
- Triangle decomposition → NumPy: uses
- Square decomposition → NumPy: uses
- Library user → Transformation calculation: requests
- Interferometer model → Transformation calculation: calculates
- Transformation calculation → NumPy: uses
- Library user → Mesh drawing: requests
- Interferometer model → Mesh drawing: draws mesh
- Mesh drawing → Matplotlib: renders with