Code covered by the BSD License  

Highlights from
slatec

from slatec by Ben Barrowes
The slatec library converted into matlab functions.

[zabsresult,zr,zi]=zabs(zr,zi);
function [zabsresult,zr,zi]=zabs(zr,zi);
zabsresult=[];
persistent q s u v ; 

;
%***BEGIN PROLOGUE  ZABS
%***SUBSIDIARY
%***PURPOSE  Subsidiary to ZBESH, ZBESI, ZBESJ, ZBESK, ZBESY, ZAIRY and
%            ZBIRY
%***LIBRARY   SLATEC
%***TYPE      ALL (ZABS-A)
%***AUTHOR  Amos, D. E., (SNL)
%***DESCRIPTION
%
%     ZABS COMPUTES THE ABSOLUTE VALUE OR MAGNITUDE OF A DOUBLE
%     PRECISION COMPLEX VARIABLE CMPLX(ZR,ZI)
%
%***SEE ALSO  ZAIRY, ZBESH, ZBESI, ZBESJ, ZBESK, ZBESY, ZBIRY
%***ROUTINES CALLED  (NONE)
%***REVISION HISTORY  (YYMMDD)
%   830501  DATE WRITTEN
%   910415  Prologue converted to Version 4.0 format.  (BAB)
%***end PROLOGUE  ZABS
if isempty(u), u=0; end;
if isempty(v), v=0; end;
if isempty(q), q=0; end;
if isempty(s), s=0; end;
%***FIRST EXECUTABLE STATEMENT  ZABS
u = abs(zr);
v = abs(zi);
s = u + v;
%-----------------------------------------------------------------------
%     S*1.0D0 MAKES AN UNNORMALIZED UNDERFLOW ON CDC MACHINES INTO A
%     truemlv FLOATING ZERO
%-----------------------------------------------------------------------
s = s.*1.0d+0;
if( s==0.0d+0 )
zabsresult = 0.0d+0;
elseif( u>v ) ;
q = v./u;
zabsresult = u.*sqrt(1.0d+0+q.*q);
csnil=dbstack(1); csnil=csnil(1).name(1)~='@';
if csnil&&~isempty(inputname(1)), assignin('caller','FUntemp',zr); evalin('caller',[inputname(1),'=FUntemp;']); end
if csnil&&~isempty(inputname(2)), assignin('caller','FUntemp',zi); evalin('caller',[inputname(2),'=FUntemp;']); end
return;
else;
q = u./v;
zabsresult = v.*sqrt(1.0d+0+q.*q);
csnil=dbstack(1); csnil=csnil(1).name(1)~='@';
if csnil&&~isempty(inputname(1)), assignin('caller','FUntemp',zr); evalin('caller',[inputname(1),'=FUntemp;']); end
if csnil&&~isempty(inputname(2)), assignin('caller','FUntemp',zi); evalin('caller',[inputname(2),'=FUntemp;']); end
return;
end;
csnil=dbstack(1); csnil=csnil(1).name(1)~='@';
if csnil&&~isempty(inputname(1)), assignin('caller','FUntemp',zr); evalin('caller',[inputname(1),'=FUntemp;']); end
if csnil&&~isempty(inputname(2)), assignin('caller','FUntemp',zi); evalin('caller',[inputname(2),'=FUntemp;']); end
end
%DECK ZACAI

Contact us at files@mathworks.com