You can make use of the matrixfunctions in fcmp. But unfortunately they can not be called immediately from a datastep or procedure. Therefore, what you can do is to make a matrix-function which call the fcmp's expmatrix-function. Your function can then be called from a datastep or from a procedure. proc fcmp outlib = work.func.matrix; subroutine matrixexp(m[*,*],t,y[*,*]); outargs y; call expmatrix(m, t, y); endsub; run; option cmplib=(work.func); data _NULL_; array a{2,2} _temporary_; array y{2,2} _temporary_; call matrixexp(a,4,y); run; I haven't tested if the functions declared in this way can be called from PROC MCMP, but they work within some other procedures (nlmixed for instance). I made an idea on this site about making the matrix functions directly available without first declare them with PROC FCMP. To my surprise it didnt get so positive votes :smileyshocked: https://communities.sas.com/ideas/1570
... View more