;+ ; NAME: ; trimultmat ; PURPOSE: (one line) ; multiply a set of tri-diagonal matrices ; DESCRIPTION: ; multiply a set of tri-diagonal matrices ; CATEGORY: ; Volatile Transport ; CALLING SEQUENCE: ; res = trimultmat(a, b, c, u) ; INPUTS: ; a - matrix of lower sub-diagonals (a[m,1..n-1]) ; b - matrix of diagonal (b[m,0..n-1]) ; c - matrix of upper sub-diagonal (c[m,0..n-2) ; u - matrix of vector to be multiplied ; OUTPUTS: ; r, s.t t[i,*]= [A] # r[i,*], where A is the tridiagonal matrix ; made of a[i,1:n-1], b[i,*], c[i,0:n-2] ; PROCEDURE: ; ; MODIFICATION HISTORY: ; Written 2011 Aug 27, by Leslie Young, SwRI ; 2016 Apr 11. Move into layoung/math IDL library ;- function trimultmat, a, b, c, u nxnyn,u,nx,n r = b*u r[*,1:n-1] = r[*,1:n-1] + a[*,1:n-1]*u[*,0:n-2] r[*,0:n-2] = r[*,0:n-2] + c[*,0:n-2]*u[*,1:n-1] return, r end