Code covered by the BSD License  

Highlights from
slatec

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

[ddawsresult,x]=ddaws(x);
function [ddawsresult,x]=ddaws(x);
ddawsresult=[];
persistent daw2cs dawacs dawcs eps first firstCall ntdaw ntdaw2 ntdawa xbig xmax xsml y ; if isempty(firstCall),firstCall=1;end; 

;
if isempty(eps), eps=0; end;
if isempty(ntdaw), ntdaw=0; end;
if isempty(ntdaw2), ntdaw2=0; end;
if isempty(ntdawa), ntdawa=0; end;
%***BEGIN PROLOGUE  DDAWS
%***PURPOSE  Compute Dawson's function.
%***LIBRARY   SLATEC (FNLIB)
%***CATEGORY  C8C
%***TYPE      doubleprecision (DAWS-S, DDAWS-D)
%***KEYWORDS  DAWSON'S FUNCTION, FNLIB, SPECIAL FUNCTIONS
%***AUTHOR  Fullerton, W., (LANL)
%***DESCRIPTION
%
% DDAWS(X) calculates the doubleprecision Dawson's integral
% for doubleprecision argument X.
%
% Series for DAW        on the interval  0.          to  1.00000E+00
%                                        with weighted error   8.95E-32
%                                         log weighted error  31.05
%                               significant figures required  30.41
%                                    decimal places required  31.71
%
% Series for DAW2       on the interval  0.          to  1.60000E+01
%                                        with weighted error   1.61E-32
%                                         log weighted error  31.79
%                               significant figures required  31.40
%                                    decimal places required  32.62
%
% Series for DAWA       on the interval  0.          to  6.25000E-02
%                                        with weighted error   1.97E-32
%                                         log weighted error  31.71
%                               significant figures required  29.79
%                                    decimal places required  32.64
%
%***REFERENCES  (NONE)
%***ROUTINES CALLED  D1MACH, DCSEVL, INITDS, XERMSG
%***REVISION HISTORY  (YYMMDD)
%   780401  DATE WRITTEN
%   890531  Changed all specific intrinsics to generic.  (WRB)
%   890531  REVISION DATE from Version 3.2
%   891214  Prologue converted to Version 4.0 format.  (BAB)
%   900315  CALLs to XERROR changed to CALLs to XERMSG.  (THJ)
%   920618  Removed space from variable names.  (RWC, WRB)
%***end PROLOGUE  DDAWS
if isempty(dawcs), dawcs=zeros(1,21); end;
if isempty(daw2cs), daw2cs=zeros(1,45); end;
if isempty(dawacs), dawacs=zeros(1,75); end;
if isempty(xbig), xbig=0; end;
if isempty(xmax), xmax=0; end;
if isempty(xsml), xsml=0; end;
if isempty(y), y=0; end;
if isempty(first), first=false; end;
if firstCall,   dawcs(1)=[-.6351734375145949201065127736293d-2];  end;
if firstCall,   dawcs(2)=[-.2294071479677386939899824125866d+0];  end;
if firstCall,   dawcs(3)=[+.2213050093908476441683979161786d-1];  end;
if firstCall,   dawcs(4)=[-.1549265453892985046743057753375d-2];  end;
if firstCall,   dawcs(5)=[+.8497327715684917456777542948066d-4];  end;
if firstCall,   dawcs(6)=[-.3828266270972014924994099521309d-5];  end;
if firstCall,   dawcs(7)=[+.1462854806250163197757148949539d-6];  end;
if firstCall,   dawcs(8)=[-.4851982381825991798846715425114d-8];  end;
if firstCall,   dawcs(9)=[+.1421463577759139790347568183304d-9];  end;
if firstCall,   dawcs(10)=[-.3728836087920596525335493054088d-11];  end;
if firstCall,   dawcs(11)=[+.8854942961778203370194565231369d-13];  end;
if firstCall,   dawcs(12)=[-.1920757131350206355421648417493d-14];  end;
if firstCall,   dawcs(13)=[+.3834325867246327588241074439253d-16];  end;
if firstCall,   dawcs(14)=[-.7089154168175881633584099327999d-18];  end;
if firstCall,   dawcs(15)=[+.1220552135889457674416901120000d-19];  end;
if firstCall,   dawcs(16)=[-.1966204826605348760299451733333d-21];  end;
if firstCall,   dawcs(17)=[+.2975845541376597189113173333333d-23];  end;
if firstCall,   dawcs(18)=[-.4247069514800596951039999999999d-25];  end;
if firstCall,   dawcs(19)=[+.5734270767391742798506666666666d-27];  end;
if firstCall,   dawcs(20)=[-.7345836823178450261333333333333d-29];  end;
if firstCall,   dawcs(21)=[+.8951937667516552533333333333333d-31];  end;
if firstCall,   daw2cs(1)=[-.56886544105215527114160533733674d-1];  end;
if firstCall,   daw2cs(2)=[-.31811346996168131279322878048822d+0];  end;
if firstCall,   daw2cs(3)=[+.20873845413642236789741580198858d+0];  end;
if firstCall,   daw2cs(4)=[-.12475409913779131214073498314784d+0];  end;
if firstCall,   daw2cs(5)=[+.67869305186676777092847516423676d-1];  end;
if firstCall,   daw2cs(6)=[-.33659144895270939503068230966587d-1];  end;
if firstCall,   daw2cs(7)=[+.15260781271987971743682460381640d-1];  end;
if firstCall,   daw2cs(8)=[-.63483709625962148230586094788535d-2];  end;
if firstCall,   daw2cs(9)=[+.24326740920748520596865966109343d-2];  end;
if firstCall,   daw2cs(10)=[-.86219541491065032038526983549637d-3];  end;
if firstCall,   daw2cs(11)=[+.28376573336321625302857636538295d-3];  end;
if firstCall,   daw2cs(12)=[-.87057549874170423699396581464335d-4];  end;
if firstCall,   daw2cs(13)=[+.24986849985481658331800044137276d-4];  end;
if firstCall,   daw2cs(14)=[-.67319286764160294344603050339520d-5];  end;
if firstCall,   daw2cs(15)=[+.17078578785573543710504524047844d-5];  end;
if firstCall,   daw2cs(16)=[-.40917551226475381271896592490038d-6];  end;
if firstCall,   daw2cs(17)=[+.92828292216755773260751785312273d-7];  end;
if firstCall,   daw2cs(18)=[-.19991403610147617829845096332198d-7];  end;
if firstCall,   daw2cs(19)=[+.40963490644082195241210487868917d-8];  end;
if firstCall,   daw2cs(20)=[-.80032409540993168075706781753561d-9];  end;
if firstCall,   daw2cs(21)=[+.14938503128761465059143225550110d-9];  end;
if firstCall,   daw2cs(22)=[-.26687999885622329284924651063339d-10];  end;
if firstCall,   daw2cs(23)=[+.45712216985159458151405617724103d-11];  end;
if firstCall,   daw2cs(24)=[-.75187305222043565872243727326771d-12];  end;
if firstCall,   daw2cs(25)=[+.11893100052629681879029828987302d-12];  end;
if firstCall,   daw2cs(26)=[-.18116907933852346973490318263084d-13];  end;
if firstCall,   daw2cs(27)=[+.26611733684358969193001612199626d-14];  end;
if firstCall,   daw2cs(28)=[-.37738863052129419795444109905930d-15];  end;
if firstCall,   daw2cs(29)=[+.51727953789087172679680082229329d-16];  end;
if firstCall,   daw2cs(30)=[-.68603684084077500979419564670102d-17];  end;
if firstCall,   daw2cs(31)=[+.88123751354161071806469337321745d-18];  end;
if firstCall,   daw2cs(32)=[-.10974248249996606292106299624652d-18];  end;
if firstCall,   daw2cs(33)=[+.13261199326367178513595545891635d-19];  end;
if firstCall,   daw2cs(34)=[-.15562732768137380785488776571562d-20];  end;
if firstCall,   daw2cs(35)=[+.17751425583655720607833415570773d-21];  end;
if firstCall,   daw2cs(36)=[-.19695006967006578384953608765439d-22];  end;
if firstCall,   daw2cs(37)=[+.21270074896998699661924010120533d-23];  end;
if firstCall,   daw2cs(38)=[-.22375398124627973794182113962666d-24];  end;
if firstCall,   daw2cs(39)=[+.22942768578582348946971383125333d-25];  end;
if firstCall,   daw2cs(40)=[-.22943788846552928693329592319999d-26];  end;
if firstCall,   daw2cs(41)=[+.22391702100592453618342297600000d-27];  end;
if firstCall,   daw2cs(42)=[-.21338230616608897703678225066666d-28];  end;
if firstCall,   daw2cs(43)=[+.19866196585123531518028458666666d-29];  end;
if firstCall,   daw2cs(44)=[-.18079295866694391771955199999999d-30];  end;
if firstCall,   daw2cs(45)=[+.16090686015283030305450666666666d-31];  end;
if firstCall,   dawacs(1)=[+.1690485637765703755422637438849d-1];  end;
if firstCall,   dawacs(2)=[+.8683252278406957990536107850768d-2];  end;
if firstCall,   dawacs(3)=[+.2424864042417715453277703459889d-3];  end;
if firstCall,   dawacs(4)=[+.1261182399572690001651949240377d-4];  end;
if firstCall,   dawacs(5)=[+.1066453314636176955705691125906d-5];  end;
if firstCall,   dawacs(6)=[+.1358159794790727611348424505728d-6];  end;
if firstCall,   dawacs(7)=[+.2171042356577298398904312744743d-7];  end;
if firstCall,   dawacs(8)=[+.2867010501805295270343676804813d-8];  end;
if firstCall,   dawacs(9)=[-.1901336393035820112282492378024d-9];  end;
if firstCall,   dawacs(10)=[-.3097780484395201125532065774268d-9];  end;
if firstCall,   dawacs(11)=[-.1029414876057509247398132286413d-9];  end;
if firstCall,   dawacs(12)=[-.6260356459459576150417587283121d-11];  end;
if firstCall,   dawacs(13)=[+.8563132497446451216262303166276d-11];  end;
if firstCall,   dawacs(14)=[+.3033045148075659292976266276257d-11];  end;
if firstCall,   dawacs(15)=[-.2523618306809291372630886938826d-12];  end;
if firstCall,   dawacs(16)=[-.4210604795440664513175461934510d-12];  end;
if firstCall,   dawacs(17)=[-.4431140826646238312143429452036d-13];  end;
if firstCall,   dawacs(18)=[+.4911210272841205205940037065117d-13];  end;
if firstCall,   dawacs(19)=[+.1235856242283903407076477954739d-13];  end;
if firstCall,   dawacs(20)=[-.5788733199016569246955765071069d-14];  end;
if firstCall,   dawacs(21)=[-.2282723294807358620978183957030d-14];  end;
if firstCall,   dawacs(22)=[+.7637149411014126476312362917590d-15];  end;
if firstCall,   dawacs(23)=[+.3851546883566811728777594002095d-15];  end;
if firstCall,   dawacs(24)=[-.1199932056928290592803237283045d-15];  end;
if firstCall,   dawacs(25)=[-.6313439150094572347334270285250d-16];  end;
if firstCall,   dawacs(26)=[+.2239559965972975375254912790237d-16];  end;
if firstCall,   dawacs(27)=[+.9987925830076495995132891200749d-17];  end;
if firstCall,   dawacs(28)=[-.4681068274322495334536246507252d-17];  end;
if firstCall,   dawacs(29)=[-.1436303644349721337241628751534d-17];  end;
if firstCall,   dawacs(30)=[+.1020822731410541112977908032130d-17];  end;
if firstCall,   dawacs(31)=[+.1538908873136092072837389822372d-18];  end;
if firstCall,   dawacs(32)=[-.2189157877645793888894790926056d-18];  end;
if firstCall,   dawacs(33)=[+.2156879197938651750392359152517d-20];  end;
if firstCall,   dawacs(34)=[+.4370219827442449851134792557395d-19];  end;
if firstCall,   dawacs(35)=[-.8234581460977207241098927905177d-20];  end;
if firstCall,   dawacs(36)=[-.7498648721256466222903202835420d-20];  end;
if firstCall,   dawacs(37)=[+.3282536720735671610957612930039d-20];  end;
if firstCall,   dawacs(38)=[+.8858064309503921116076561515151d-21];  end;
if firstCall,   dawacs(39)=[-.9185087111727002988094460531485d-21];  end;
if firstCall,   dawacs(40)=[+.2978962223788748988314166045791d-22];  end;
if firstCall,   dawacs(41)=[+.1972132136618471883159505468041d-21];  end;
if firstCall,   dawacs(42)=[-.5974775596362906638089584995117d-22];  end;
if firstCall,   dawacs(43)=[-.2834410031503850965443825182441d-22];  end;
if firstCall,   dawacs(44)=[+.2209560791131554514777150489012d-22];  end;
if firstCall,   dawacs(45)=[-.5439955741897144300079480307711d-25];  end;
if firstCall,   dawacs(46)=[-.5213549243294848668017136696470d-23];  end;
if firstCall,   dawacs(47)=[+.1702350556813114199065671499076d-23];  end;
if firstCall,   dawacs(48)=[+.6917400860836148343022185660197d-24];  end;
if firstCall,   dawacs(49)=[-.6540941793002752512239445125802d-24];  end;
if firstCall,   dawacs(50)=[+.6093576580439328960371824654636d-25];  end;
if firstCall,   dawacs(51)=[+.1408070432905187461501945080272d-24];  end;
if firstCall,   dawacs(52)=[-.6785886121054846331167674943755d-25];  end;
if firstCall,   dawacs(53)=[-.9799732036214295711741583102225d-26];  end;
if firstCall,   dawacs(54)=[+.2121244903099041332598960939160d-25];  end;
if firstCall,   dawacs(55)=[-.5954455022548790938238802154487d-26];  end;
if firstCall,   dawacs(56)=[-.3093088861875470177838847232049d-26];  end;
if firstCall,   dawacs(57)=[+.2854389216344524682400691986104d-26];  end;
if firstCall,   dawacs(58)=[-.3951289447379305566023477271811d-27];  end;
if firstCall,   dawacs(59)=[-.5906000648607628478116840894453d-27];  end;
if firstCall,   dawacs(60)=[+.3670236964668687003647889980609d-27];  end;
if firstCall,   dawacs(61)=[-.4839958238042276256598303038941d-29];  end;
if firstCall,   dawacs(62)=[-.9799265984210443869597404017022d-28];  end;
if firstCall,   dawacs(63)=[+.4684773732612130606158908804300d-28];  end;
if firstCall,   dawacs(64)=[+.5030877696993461051647667603155d-29];  end;
if firstCall,   dawacs(65)=[-.1547395051706028239247552068295d-28];  end;
if firstCall,   dawacs(66)=[+.6112180185086419243976005662714d-29];  end;
if firstCall,   dawacs(67)=[+.1357913399124811650343602736158d-29];  end;
if firstCall,   dawacs(68)=[-.2417687752768673088385304299044d-29];  end;
if firstCall,   dawacs(69)=[+.8369074582074298945292887587291d-30];  end;
if firstCall,   dawacs(70)=[+.2665413042788979165838319401566d-30];  end;
if firstCall,   dawacs(71)=[-.3811653692354890336935691003712d-30];  end;
if firstCall,   dawacs(72)=[+.1230054721884951464371706872585d-30];  end;
if firstCall,   dawacs(73)=[+.4622506399041493508805536929983d-31];  end;
if firstCall,   dawacs(74)=[-.6120087296881677722911435593001d-31];  end;
if firstCall,   dawacs(75)=[+.1966024640193164686956230217896d-31];  end;
if firstCall,   first=[true];  end;
firstCall=0;
%***FIRST EXECUTABLE STATEMENT  DDAWS
if( first )
[eps ]=d1mach(3);
[ntdaw ,dawcs]=initds(dawcs,21,0.1.*eps);
[ntdaw2 ,daw2cs]=initds(daw2cs,45,0.1.*eps);
[ntdawa ,dawacs]=initds(dawacs,75,0.1.*eps);
%
xsml = sqrt(1.5.*eps);
xbig = sqrt(0.5./eps);
xmax = exp(min(-log(2.0d0.*d1mach(1)),log(d1mach(2)))-0.001d0);
end;
first = false;
%
y = abs(x);
if( y<=1.0d0 )
%
ddawsresult = x;
if( y<=xsml )
csnil=dbstack(1); csnil=csnil(1).name(1)~='@';
if csnil&&~isempty(inputname(1)), assignin('caller','FUntemp',x); evalin('caller',[inputname(1),'=FUntemp;']); end
return;
end;
%
ddawsresult = x.*(.75d0+dcsevl(2.0d0.*y.*y-1.0d0,dawcs,ntdaw));
csnil=dbstack(1); csnil=csnil(1).name(1)~='@';
if csnil&&~isempty(inputname(1)), assignin('caller','FUntemp',x); evalin('caller',[inputname(1),'=FUntemp;']); end
return;
%
elseif( y<=4.0d0 ) ;
ddawsresult = x.*(.25d0+dcsevl(.125d0.*y.*y-1.0d0,daw2cs,ntdaw2));
csnil=dbstack(1); csnil=csnil(1).name(1)~='@';
if csnil&&~isempty(inputname(1)), assignin('caller','FUntemp',x); evalin('caller',[inputname(1),'=FUntemp;']); end
return;
%
elseif( y>xmax ) ;
%
xermsg('SLATEC','DDAWS','ABS(X) SO LARGE DAWS UNDERFLOWS',1,1);
ddawsresult = 0.0d0;
else;
ddawsresult = 0.5d0./x;
if( y>xbig )
csnil=dbstack(1); csnil=csnil(1).name(1)~='@';
if csnil&&~isempty(inputname(1)), assignin('caller','FUntemp',x); evalin('caller',[inputname(1),'=FUntemp;']); end
return;
end;
%
ddawsresult =(0.5d0+dcsevl(32.0d0./y.^2-1.0d0,dawacs,ntdawa))./x;
csnil=dbstack(1); csnil=csnil(1).name(1)~='@';
if csnil&&~isempty(inputname(1)), assignin('caller','FUntemp',x); evalin('caller',[inputname(1),'=FUntemp;']); end
return;
end;
%
csnil=dbstack(1); csnil=csnil(1).name(1)~='@';
if csnil&&~isempty(inputname(1)), assignin('caller','FUntemp',x); evalin('caller',[inputname(1),'=FUntemp;']); end
end
%DECK DDAWTS

Contact us