Computing Branched Signatures#
Branched signatures are a tree-indexed variant of path signatures. Instead of recording iterated integrals indexed by words, they record coefficients indexed by rooted trees. These coefficients are the natural coordinates for branched rough paths, B-series, and their planar Lie-Butcher analogues.
Non-Planar and Planar Branched Signatures#
pysiglib currently supports two branched-signature algebras.
With planar=False (the default), the basis is made of decorated
non-planar rooted trees and the coproduct is the Butcher-Connes-Kreimer
(BCK) coproduct. This is the usual branched rough path setting over Euclidean
space.
With planar=True, the basis is made of decorated ordered forests of
planar rooted trees and the coproduct is the Munthe-Kaas-Wright (MKW)
coproduct. This is the algebra used for planar branched rough paths and
Lie-Butcher series.
The following tables compare the sizes of signatures and branched signatures
with scalar_term=False.
Preparing and indexing#
Before computing branched signatures, call pysiglib.prepare_branched_sig
once for each (dimension, degree, planar) combination that will be used.
The preparation step builds the tree or ordered-forest basis and the coproduct
tables used for convolution.
import numpy as np
import pysiglib
pysiglib.prepare_branched_sig(2, 3)
pysiglib.prepare_branched_sig(2, 3, planar=True)
path = np.array([[0.0, 0.0], [0.2, -0.3], [0.7, 0.4]])
# BCK non-planar branched signature.
bsig = pysiglib.branched_sig(path, 3)
# MKW planar branched signature.
planar_bsig = pysiglib.branched_sig(path, 3, planar=True)
Citation#
If you found this library useful in your research, please consider citing the paper:
@article{shmelev2025pysiglib,
title={pySigLib-Fast Signature-Based Computations on CPU and GPU},
author={Shmelev, Daniil and Salvi, Cristopher},
journal={arXiv preprint arXiv:2509.10613},
year={2025}
}