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