# Code

A selection of scientific computing projects that I maintain on GitHub.

#### Chebfun in Python

##### pychebfun

An implementation of Trefethen and Battles' Chebfun package in Python.

#### B-Splines on symmetric spaces

##### bsplinelab

Using the de Casteljau algorithm to create $C^2$ splines on symmetric spaces.

#### Image matching with PyTorch

##### diffeopt

Minimise any loss function using automatic differentiation to do direct or indirect matching

#### Computing shape invariants of planar curves using finite element method

##### femshape

Python library for computing shape invariants of planar curves using finite element method and the FEniCS package.

#### Bifurcation diagrams of nonlinear wave equations

##### SpectraVVave

Bifurcation diagrams of traveling waves for nonlinear wave equations.

#### Spin system simulator

##### spinsys

Simulations of spin systems with the spherical midpoint method.

#### Multi-symplectic solver in Python

##### multishake

Simulations of wave maps with the multi-symplectic SHAKE method.

#### Homogeneous space integrators

##### homogint

Integrate any differential equation on any homogeneous space. It is an implementation of the skeleton description of Runge–Kutta methods on homogeneous spaces. The only requirement is to have an isotropy choice at your disposal for the homogeneous space at hand. Many such isotropy choices are available from our paper. There are examples in the corresponding notebook demo.