Code covered by the BSD License  

Highlights from
slatec

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

[lun,kprint,ipass]=dnsqqk(lun,kprint,ipass);
function [lun,kprint,ipass]=dnsqqk(lun,kprint,ipass);
persistent fnorm fnorms fvec icnt info infos iopt itest_v lwa n nprint tol wa x ; 

if isempty(fnorm), fnorm=0; end;
if isempty(fnorms), fnorms=0; end;
if isempty(tol), tol=0; end;
if isempty(icnt), icnt=0; end;
if isempty(info), info=0; end;
if isempty(infos), infos=0; end;
if isempty(iopt), iopt=0; end;
if isempty(lwa), lwa=0; end;
if isempty(n), n=0; end;
if isempty(nprint), nprint=0; end;
if isempty(fvec), fvec=zeros(1,2); end;
if isempty(wa), wa=zeros(1,19); end;
if isempty(x), x=zeros(1,2); end;
if isempty(itest_v), itest_v=zeros(1,3); end;
infos = 1;
fnorms = 0.0d0;
n = 2;
lwa = 19;
nprint = -1;
tol = sqrt(d1mach(4));
if( kprint>=2 )
writef(lun,['1', '\n ' ,'  DNSQE QUICK CHECK', '\n '  ' \n']);
end;
%format ('1'/'  DNSQE QUICK CHECK'];
iopt = 1;
x(1) = -1.2d0;
x(2) = 1.0d0;
[dumvar1,dumvar2,iopt,n,x,fvec,tol,nprint,info,wa,lwa]=dnsqe(@dqfcn2,@dqjac2,iopt,n,x,fvec,tol,nprint,info,wa,lwa);
icnt = 1;
[fnorm ,n,fvec]=denorm(n,fvec);
itest_v(icnt) = 0;
if((info==infos) &&(fnorm-fnorms<=tol) )
itest_v(icnt) = 1;
end;
if( kprint~=0 )
if((kprint>=2 && itest_v(icnt)~=1) || kprint>=3 )
writef(lun,[' EXPECTED VALUE OF INFO AND RESIDUAL NORM','%5i','%20.5f', '\n ' ,' RETURNED VALUE OF INFO AND RESIDUAL NORM','%5i','%20.5f', '\n '  ' \n'], infos , fnorms , info , fnorm);
end;
if((kprint>=2) ||(kprint==1 && itest_v(icnt)~=1) )
[lun,icnt,itest_v(icnt)]=pass(lun,icnt,itest_v(icnt));
end;
end;
iopt = 2;
x(1) = -1.2d0;
x(2) = 1.0d0;
[dumvar1,dumvar2,iopt,n,x,fvec,tol,nprint,info,wa,lwa]=dnsqe(@dqfcn2,@dqjac2,iopt,n,x,fvec,tol,nprint,info,wa,lwa);
icnt = 2;
[fnorm ,n,fvec]=denorm(n,fvec);
itest_v(icnt) = 0;
if((info==infos) &&(fnorm-fnorms<=tol) )
itest_v(icnt) = 1;
end;
if( kprint~=0 )
if( kprint>=3 ||(kprint>=2 && itest_v(icnt)~=1) )
writef(lun,[' EXPECTED VALUE OF INFO AND RESIDUAL NORM','%5i','%20.5f', '\n ' ,' RETURNED VALUE OF INFO AND RESIDUAL NORM','%5i','%20.5f', '\n '  ' \n'], infos , fnorms , info , fnorm);
end;
if( kprint>=2 ||(kprint==1 && itest_v(icnt)~=1) )
[lun,icnt,itest_v(icnt)]=pass(lun,icnt,itest_v(icnt));
end;
end;
lwa = 15;
iopt = 1;
x(1) = -1.2d0;
x(2) = 1.0d0;
[dumvar1,dumvar2,iopt,n,x,fvec,tol,nprint,info,wa,lwa]=dnsqe(@dqfcn2,@dqjac2,iopt,n,x,fvec,tol,nprint,info,wa,lwa);
icnt = 3;
itest_v(icnt) = 0;
if( info==0 )
itest_v(icnt) = 1;
end;
if( kprint>=2 ||(kprint==1 && itest_v(icnt)~=1) )
[lun,icnt,itest_v(icnt)]=pass(lun,icnt,itest_v(icnt));
end;
ipass = fix(itest_v(1).*itest_v(2).*itest_v(3));
if( kprint>=1 && ipass~=1 )
writef(lun,[ '\n ' ,' WARNING -- DNSQE/DNSQ FAILED SOME TESTS****','*' ' \n']);
end;
%format [' WARNING -- DNSQE/DNSQ FAILED SOME TESTS****','*');
if( kprint>=2 && ipass==1 )
writef(lun,[ '\n ' ,' ----------DNSQE/DNSQ PASSED ALL TESTS----------' ' \n']);
end;
%format [' ----------DNSQE/DNSQ PASSED ALL TESTS----------');
return;
%format (' EXPECTED VALUE OF INFO AND RESIDUAL NORM',i5,d20.5/' RETURNED VALUE OF INFO AND RESIDUAL NORM',i5,d20.5];
end %subroutine dnsqqk

Contact us