# \[ANN\] FiniteHorizonGramians.jl

**URL:** https://discourse.julialang.org/t/ann-finitehorizongramians-jl/107325
**Category:** Package Announcements
**Tags:** package, announcement, control, controlsystems
**Created:** [December 8, 2023, 12:50pm UTC](https://discourse.julialang.org/t/ann-finitehorizongramians-jl/107325 "2023-12-08T12:50:02Z")
**Posts on this page:** 1
**Page:** 1

<div class="post-metadata">

### Author: ![filtron](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/filtron/32/49692_2.png) [@filtron](https://discourse.julialang.org/u/filtron)
#### Post date: [December 8, 2023, 12:50pm UTC](https://discourse.julialang.org/t/ann-finitehorizongramians-jl/107325/1 "2023-12-08T12:50:02Z")

</div>

I’m pleased to announce [FiniteHorizonGramians.jl](https://github.com/filtron/FiniteHorizonGramians.jl). Given a pair of matrices (A, B), this package implements an algorithm for computing both the matrix exonential e^{A t}, and the finite horizon controllability Gramian over the interval [0, t], which is given by

G(A t, B \sqrt{t}) = \int\_0^t e^{A \tau} B B^\* e^{A^\* \tau} \mathrm{d} \tau. 

Though the major benefit of the package is that it can compute e^{A t} and an upper triangular Cholesky factor, U, of G in a numerically robust way, without forming G as an intermediate step.

In fact, the base algorithm computes (e^{At}, U), and then forms G as a post-processing step (if you want). The implementation is based on the pre-print:

[Tony Stillfjord and Filip Tronarp. “Computing the matrix exponential and the Cholesky factor of a related finite horizon Gramian.” arXiv preprint arXiv:2310.13462 (2023).](https://arxiv.org/abs/2310.13462)

Please see the README for installation instructions and a basic usage example. You can also browse the [documentation](https://filtron.github.io/FiniteHorizonGramians.jl/stable/) for a more complete description of the functionality in the package.
