#include #include #include using std::vector; Mexp::Mexp() : Function("mexp",1) { } void Mexp::evaluate (SArray &value, vector const &args) const { int n = args[0]->dim(true)[0]; int N = args[0]->length(); double *expmat = new double[N]; MatrixExpPade(expmat, args[0]->value(), n, 1); value.setValue(expmat, N); delete [] expmat; } Index Mexp::dim (vector const &args) const { return args[0]->dim(true); } bool Mexp::checkParameterDim (vector const &args) const { Index const &dim = args[0]->dim(true); return (dim.size() == 2) && (dim[0] == dim[1]); }