help-octave
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: memory exhausted, precision ok


From: Daniel Heiserer
Subject: Re: memory exhausted, precision ok
Date: Wed, 29 Jul 1998 10:31:21 +0200

A. Scottedward Hodel wrote:
> 
> I ran the following code on 1 172x172 matrix:
> 
> # truncate acd to 6 digits of precision...
> for ii=1:rows(acd)
>   for jj = 1:columns(acd)
>     eval(["acd(ii,jj) = ",sprintf("%12.6E",acd(ii,jj));]);
>   endfor
> endfor
> 


Hi, 
here is my solution of your precision stuff (no ideas about the memory):
------------------ chop ---------------------------
function back=precision(in,prec)
%  PRECISION(X,PREC)
%  precision chops some digits. The accuracy of 
%  the output equals to prec. Default for prec is 6.
%  WARNING: works for real only 
%  mailto: address@hidden

if (nargin <2)
        prec=6;
        disp('Warning using default precision.');
else
        prec=floor(prec);
end
disp(['Precision is ',num2str(prec),' digits.']);
prec=prec-1;

% take care of the signature
signature=sign(in);
absin=abs(in);
% split into exponent and base
exponent=log(absin)./log(10);
digits=absin./10.^floor(exponent);

% well, no lets take the precision
digits=round(digits*10^prec)/10^prec;

% lets merge the stuff again
back=signature.*digits.*10.^floor(exponent);
---------------------- chop --------------------
-- 
Mit freundlichen Gruessen
                                 Daniel Heiserer
-----
--------------------------------------------------------------
Daniel Heiserer, BMW AG, Knorrstrasse 147, 80788 Muenchen
Abteilung EK-20
Tel.: 089-382-21187, Fax.: 089-382-42820
mailto:address@hidden



reply via email to

[Prev in Thread] Current Thread [Next in Thread]