samer@4: function [y,k]=safe_exp(x,l) samer@4: % safe_exp - high dynamic range exponential samer@4: % samer@4: % safe_exp :: X:[[N,M]] -> [[N,M]], [[1,M]]. samer@4: % samer@4: % returns y and k such that exp(X) = y * exp(k) and samer@4: % maximum value in y is 1. samer@4: samer@4: k=max(x,[],1); samer@4: y=exp(x-repmat(k,size(x,1),1)); samer@4: