Computes an approximate of the action of the matrix exponential of A on B using series of Chebyshev polynomials.
NOTE: This function is very similar to scipy.sparse.linalg.expm_multiply
with two major differences though:
1. A must be symmetric positive definite.
2. The time values must be negative.
Args:
A: the operator whose exponential is of interest (must be a
symmetric positive definite csr_matrix).
B: the matrix or vector to be multiplied by the matrix exponential of A (ndarray).
start: (scalar, optional) the starting time point of the sequence.
stop: (scalar, optional) the end time point of the sequence, unless endpoint is set to False. In that case, the sequence consists of all but the last of num + 1 evenly spaced time points, so that stop is excluded. Note that the step size changes when endpoint is False.
num: (int, optional) number of time points to use.
endpoint: (bool, optional) if True, stop is the last time point. Otherwise, it is not included.
K: (int, optional) The degree of the dominant Chebyshev polynomial (10 by default).
dev: (str, optional) the device ('cpu' or 'gpu') on which to compute (currently only cpu is supported).