# `trigmv`, `trighmv` - The action of trigonometric and hyperbolic matrix functions

`trigmv` contains two MATLAB functions for computing cosm(tA)b and sinm(tA)b - `trigmv` - as well as coshm(tA)b and sinh(tA)b - `trighmv`, where A is an n-by-n matrix and b an n-by-1 vector.

The functionality of trigmv`and trighmv` is based on `expmv` by Al-Mohy and Higham. Furthermore, the function `expmv` is extended - see expmv.m for more details. That the original functionality and interface is preserved.

The basic functionality is as follows:

• trigmv(t,A,b) computes [cosm(tA)b, sinm(tA)b]
• trigmv(t,A,B) computes [cosm(tA)B, sinm(tA)B], for a skinny n-by-m matrix B
• trighmv(t,A,b) computes [coshm(tA)b, sinhm(tA)b]
• trighmv(t,A,B) computes [coshm(tA)B, sinhm(tA)B], for a tall, skinny n-by-m matrix B

The functions work for any matrix A and only use matrix-vector products with A and A^*.

Function `test.m` runs some simple test code.

Detail on the underlying algorithms can be found in the preprint:

N. J. Higham and P. Kandolf, "Computing the Action of Trigonometric and Hyperbolic Matrix Functions" MIMS Eprint 2016.40, University of Manchester

## External contribution

Parts of this code are from `expmv` - Matrix exponential times a vector.

For more information on `expmv` by Al-Mohy and Higham visit the homepage or read the corresponding publication:

A. H. Al-Mohy and N. J. Higham, "Computing the action of the matrix exponential, with an application to exponential integrators" SIAM J. Sci. Comput., 33(2):488--511, 2011.