Mercurial > octave
diff src/DLD-FUNCTIONS/chol.cc @ 14501:60e5cf354d80
Update %!tests in DLD-FUNCTIONS/ directory with Octave coding conventions.
* __contourc__.cc, __delaunayn__.cc, __dispatch__.cc, __dsearchn__.cc,
__fltk_uigetfile__.cc, __glpk__.cc, __lin_interpn__.cc, __magick_read__.cc,
__pchip_deriv__.cc, __qp__.cc, __voronoi__.cc, besselj.cc, betainc.cc,
bsxfun.cc, cellfun.cc, chol.cc, conv2.cc, convhulln.cc, dassl.cc, det.cc,
dlmread.cc, dmperm.cc, dot.cc, eig.cc, eigs.cc, fft.cc, fft2.cc, filter.cc,
find.cc, gammainc.cc, gcd.cc, givens.cc, hess.cc, hex2num.cc, inv.cc, kron.cc,
lookup.cc, lsode.cc, lu.cc, luinc.cc, matrix_type.cc, max.cc, mgorth.cc,
nproc.cc, qr.cc, quad.cc, quadcc.cc, qz.cc, rand.cc, rcond.cc, regexp.cc,
schur.cc, spparms.cc, sqrtm.cc, str2double.cc, strfind.cc, sub2ind.cc, svd.cc,
syl.cc, time.cc, tril.cc, tsearch.cc: Update %!tests in DLD-FUNCTIONS/
directory with Octave coding conventions.
author | Rik <octave@nomad.inbox5.com> |
---|---|
date | Tue, 27 Mar 2012 22:46:45 -0700 |
parents | 8de863b7126b |
children | cd375519eab0 |
line wrap: on
line diff
--- a/src/DLD-FUNCTIONS/chol.cc Mon Mar 26 17:37:56 2012 -0400 +++ b/src/DLD-FUNCTIONS/chol.cc Tue Mar 27 22:46:45 2012 -0700 @@ -371,16 +371,14 @@ } /* - -%!assert(chol ([2, 1; 1, 1]), [sqrt(2), 1/sqrt(2); 0, 1/sqrt(2)], sqrt (eps)); -%!assert(chol (single([2, 1; 1, 1])), single([sqrt(2), 1/sqrt(2); 0, 1/sqrt(2)]), sqrt (eps('single'))); +%!assert (chol ([2, 1; 1, 1]), [sqrt(2), 1/sqrt(2); 0, 1/sqrt(2)], sqrt (eps)) +%!assert (chol (single([2, 1; 1, 1])), single([sqrt(2), 1/sqrt(2); 0, 1/sqrt(2)]), sqrt (eps ("single"))) -%!error chol ([1, 2; 3, 4]); -%!error chol ([1, 2; 3, 4; 5, 6]); -%!error <Invalid call to chol> chol (); -%!error <unexpected second or third input> chol (1, 2); - - */ +%!error <matrix must be positive definite> chol ([1, 2; 3, 4]) +%!error <requires square matrix> chol ([1, 2; 3, 4; 5, 6]) +%!error chol () +%!error <unexpected second or third input> chol (1, 2) +*/ DEFUN_DLD (cholinv, args, , "-*- texinfo -*-\n\ @@ -513,20 +511,18 @@ } /* - %!shared A, Ainv %! A = [2,0.2;0.2,1]; -%! Ainv = inv(A); +%! Ainv = inv (A); %!test -%! Ainv1 = cholinv(A); -%! assert (norm(Ainv-Ainv1),0,1e-10) +%! Ainv1 = cholinv (A); +%! assert (norm (Ainv-Ainv1), 0, 1e-10); %!testif HAVE_CHOLMOD -%! Ainv2 = inv(sparse(A)); -%! assert (norm(Ainv-Ainv2),0,1e-10) +%! Ainv2 = inv (sparse (A)); +%! assert (norm (Ainv-Ainv2), 0, 1e-10); %!testif HAVE_CHOLMOD -%! Ainv3 = cholinv(sparse(A)); -%! assert (norm(Ainv-Ainv3),0,1e-10) - +%! Ainv3 = cholinv (sparse (A)); +%! assert (norm (Ainv-Ainv3), 0, 1e-10); */ DEFUN_DLD (chol2inv, args, , @@ -786,59 +782,45 @@ %! 0.83760 + 0.68977i ; %! 0.39160 + 0.90378i ]; - +%!test +%! R = chol (A); +%! R1 = cholupdate (R, u); +%! assert (norm (triu (R1)-R1, Inf), 0); +%! assert (norm (R1'*R1 - R'*R - u*u', Inf) < 1e1*eps); +%! +%! R1 = cholupdate (R1, u, "-"); +%! assert (norm (triu (R1)-R1, Inf), 0); +%! assert (norm (R1 - R, Inf) < 1e1*eps); %!test -%! R = chol(A); -%! -%! R1 = cholupdate(R,u); -%! -%! assert(norm(triu(R1)-R1,Inf) == 0) -%! assert(norm(R1'*R1 - R'*R - u*u',Inf) < 1e1*eps) -%! -%! R1 = cholupdate(R1,u,"-"); -%! -%! assert(norm(triu(R1)-R1,Inf) == 0) -%! assert(norm(R1 - R,Inf) < 1e1*eps) +%! R = chol (Ac); +%! R1 = cholupdate (R, uc); +%! assert (norm (triu (R1)-R1, Inf), 0); +%! assert (norm (R1'*R1 - R'*R - uc*uc', Inf) < 1e1*eps); %! -%!test -%! R = chol(Ac); -%! -%! R1 = cholupdate(R,uc); -%! -%! assert(norm(triu(R1)-R1,Inf) == 0) -%! assert(norm(R1'*R1 - R'*R - uc*uc',Inf) < 1e1*eps) -%! -%! R1 = cholupdate(R1,uc,"-"); -%! -%! assert(norm(triu(R1)-R1,Inf) == 0) -%! assert(norm(R1 - R,Inf) < 1e1*eps) +%! R1 = cholupdate (R1, uc, "-"); +%! assert (norm (triu (R1)-R1, Inf), 0); +%! assert (norm (R1 - R, Inf) < 1e1*eps); %!test -%! R = chol(single(A)); -%! -%! R1 = cholupdate(R,single(u)); -%! -%! assert(norm(triu(R1)-R1,Inf) == 0) -%! assert(norm(R1'*R1 - R'*R - single(u*u'),Inf) < 1e1*eps('single')) -%! -%! R1 = cholupdate(R1,single(u),"-"); -%! -%! assert(norm(triu(R1)-R1,Inf) == 0) -%! assert(norm(R1 - R,Inf) < 2e1*eps('single')) +%! R = chol (single (A)); +%! R1 = cholupdate (R, single (u)); +%! assert (norm (triu (R1)-R1, Inf), single (0)); +%! assert (norm (R1'*R1 - R'*R - single (u*u'), Inf) < 1e1*eps ("single")); %! +%! R1 = cholupdate (R1, single (u), "-"); +%! assert (norm (triu (R1)-R1, Inf), single (0)); +%! assert (norm (R1 - R, Inf) < 2e1*eps ("single")); + %!test -%! R = chol(single(Ac)); -%! -%! R1 = cholupdate(R,single(uc)); +%! R = chol (single (Ac)); +%! R1 = cholupdate (R, single (uc)); +%! assert (norm (triu (R1)-R1, Inf), single (0)); +%! assert (norm (R1'*R1 - R'*R - single (uc*uc'), Inf) < 1e1*eps ("single")); %! -%! assert(norm(triu(R1)-R1,Inf) == 0) -%! assert(norm(R1'*R1 - R'*R - single(uc*uc'),Inf) < 1e1*eps('single')) -%! -%! R1 = cholupdate(R1,single(uc),"-"); -%! -%! assert(norm(triu(R1)-R1,Inf) == 0) -%! assert(norm(R1 - R,Inf) < 2e1*eps('single')) +%! R1 = cholupdate (R1, single (uc), "-"); +%! assert (norm (triu (R1)-R1, Inf), single (0)); +%! assert (norm (R1 - R, Inf) < 2e1*eps ("single")); */ DEFUN_DLD (cholinsert, args, nargout, @@ -972,14 +954,15 @@ %! -0.13825 ; %! 0.45266 ]; %! -%! R = chol(A); +%! R = chol (A); %! -%! j = 3; p = [1:j-1, j+1:5]; -%! R1 = cholinsert(R,j,u2); A1 = R1'*R1; +%! j = 3; p = [1:j-1, j+1:5]; +%! R1 = cholinsert (R, j, u2); +%! A1 = R1'*R1; %! -%! assert(norm(triu(R1)-R1,Inf) == 0) -%! assert(norm(A1(p,p) - A,Inf) < 1e1*eps) -%! +%! assert (norm (triu (R1)-R1, Inf), 0); +%! assert (norm (A1(p,p) - A, Inf) < 1e1*eps); + %!test %! u2 = [ 0.35080 + 0.04298i; %! 0.63930 + 0.23778i; @@ -987,14 +970,14 @@ %! -0.13825 + 0.19879i; %! 0.45266 + 0.50020i]; %! -%! R = chol(Ac); +%! R = chol (Ac); %! -%! j = 3; p = [1:j-1, j+1:5]; -%! R1 = cholinsert(R,j,u2); A1 = R1'*R1; +%! j = 3; p = [1:j-1, j+1:5]; +%! R1 = cholinsert (R, j, u2); +%! A1 = R1'*R1; %! -%! assert(norm(triu(R1)-R1,Inf) == 0) -%! assert(norm(A1(p,p) - Ac,Inf) < 1e1*eps) -%! +%! assert (norm (triu (R1)-R1, Inf), 0); +%! assert (norm (A1(p,p) - Ac, Inf) < 1e1*eps); %!test %! u2 = single ([ 0.35080 ; @@ -1005,12 +988,13 @@ %! %! R = chol(single(A)); %! -%! j = 3; p = [1:j-1, j+1:5]; -%! R1 = cholinsert(R,j,u2); A1 = R1'*R1; +%! j = 3; p = [1:j-1, j+1:5]; +%! R1 = cholinsert (R, j, u2); +%! A1 = R1'*R1; %! -%! assert(norm(triu(R1)-R1,Inf) == 0) -%! assert(norm(A1(p,p) - A,Inf) < 1e1*eps('single')) -%! +%! assert (norm (triu (R1)-R1, Inf), single (0)); +%! assert (norm (A1(p,p) - A, Inf) < 1e1*eps ("single")); + %!test %! u2 = single ([ 0.35080 + 0.04298i; %! 0.63930 + 0.23778i; @@ -1018,55 +1002,55 @@ %! -0.13825 + 0.19879i; %! 0.45266 + 0.50020i]); %! -%! R = chol(single(Ac)); +%! R = chol (single (Ac)); %! -%! j = 3; p = [1:j-1, j+1:5]; -%! R1 = cholinsert(R,j,u2); A1 = R1'*R1; +%! j = 3; p = [1:j-1, j+1:5]; +%! R1 = cholinsert (R, j, u2); +%! A1 = R1'*R1; %! -%! assert(norm(triu(R1)-R1,Inf) == 0) -%! assert(norm(A1(p,p) - single(Ac),Inf) < 2e1*eps('single')) -%! +%! assert (norm (triu (R1)-R1, Inf), single (0)); +%! assert (norm (A1(p,p) - single (Ac), Inf) < 2e1*eps ("single")); %!test -%! cu = chol (triu (A), 'upper'); -%! cl = chol (tril (A), 'lower'); -%! assert (cu, cl', eps) -%! +%! cu = chol (triu (A), "upper"); +%! cl = chol (tril (A), "lower"); +%! assert (cu, cl', eps); + %!test %! cca = chol (Ac); %! -%! ccal = chol (Ac, 'lower'); -%! ccal2 = chol (tril (Ac), 'lower'); +%! ccal = chol (Ac, "lower"); +%! ccal2 = chol (tril (Ac), "lower"); %! -%! ccau = chol (Ac, 'upper'); -%! ccau2 = chol (triu (Ac), 'upper'); +%! ccau = chol (Ac, "upper"); +%! ccau2 = chol (triu (Ac), "upper"); %! -%! assert (cca'*cca, Ac, eps) -%! assert (ccau'*ccau, Ac, eps) -%! assert (ccau2'*ccau2, Ac, eps) +%! assert (cca'*cca, Ac, eps); +%! assert (ccau'*ccau, Ac, eps); +%! assert (ccau2'*ccau2, Ac, eps); %! -%! assert (cca, ccal', eps) -%! assert (cca, ccau, eps) -%! assert (cca, ccal2', eps) -%! assert (cca, ccau2, eps) -%! +%! assert (cca, ccal', eps); +%! assert (cca, ccau, eps); +%! assert (cca, ccal2', eps); +%! assert (cca, ccau2, eps); + %!test %! cca = chol (single (Ac)); %! -%! ccal = chol (single (Ac), 'lower'); -%! ccal2 = chol (tril (single (Ac)), 'lower'); +%! ccal = chol (single (Ac), "lower"); +%! ccal2 = chol (tril (single (Ac)), "lower"); %! -%! ccau = chol (single (Ac), 'upper'); -%! ccau2 = chol (triu (single (Ac)), 'upper'); +%! ccau = chol (single (Ac), "upper"); +%! ccau2 = chol (triu (single (Ac)), "upper"); %! -%! assert (cca'*cca, single (Ac), eps ('single')) -%! assert (ccau'*ccau, single (Ac), eps ('single')) -%! assert (ccau2'*ccau2, single (Ac), eps ('single')) +%! assert (cca'*cca, single (Ac), eps ("single")); +%! assert (ccau'*ccau, single (Ac), eps ("single")); +%! assert (ccau2'*ccau2, single (Ac), eps ("single")); %! -%! assert (cca, ccal', eps ('single')) -%! assert (cca, ccau, eps ('single')) -%! assert (cca, ccal2', eps ('single')) -%! assert (cca, ccau2, eps ('single')) +%! assert (cca, ccal', eps ("single")); +%! assert (cca, ccau, eps ("single")); +%! assert (cca, ccal2', eps ("single")); +%! assert (cca, ccau2, eps ("single")); %!test %! a = [12, 2, 3, 4; @@ -1083,21 +1067,20 @@ %! %! cca = chol (ca); %! -%! ccal = chol (ca, 'lower'); -%! ccal2 = chol (tril (ca), 'lower'); +%! ccal = chol (ca, "lower"); +%! ccal2 = chol (tril (ca), "lower"); %! -%! ccau = chol (ca, 'upper'); -%! ccau2 = chol (triu (ca), 'upper'); +%! ccau = chol (ca, "upper"); +%! ccau2 = chol (triu (ca), "upper"); %! -%! assert (cca'*cca, ca, 16*eps) -%! assert (ccau'*ccau, ca, 16*eps) -%! assert (ccau2'*ccau2, ca, 16*eps) +%! assert (cca'*cca, ca, 16*eps); +%! assert (ccau'*ccau, ca, 16*eps); +%! assert (ccau2'*ccau2, ca, 16*eps); %! -%! assert (cca, ccal', 16*eps) -%! assert (cca, ccau, 16*eps) -%! assert (cca, ccal2', 16*eps) -%! assert (cca, ccau2, 16*eps) - +%! assert (cca, ccal', 16*eps); +%! assert (cca, ccau, 16*eps); +%! assert (cca, ccal2', 16*eps); +%! assert (cca, ccau2, 16*eps); */ DEFUN_DLD (choldelete, args, , @@ -1199,38 +1182,38 @@ %!test %! R = chol(A); %! -%! j = 3; p = [1:j-1,j+1:4]; -%! R1 = choldelete(R,j); -%! -%! assert(norm(triu(R1)-R1,Inf) == 0) -%! assert(norm(R1'*R1 - A(p,p),Inf) < 1e1*eps) +%! j = 3; p = [1:j-1,j+1:4]; +%! R1 = choldelete (R, j); %! -%!test -%! R = chol(Ac); -%! -%! j = 3; p = [1:j-1,j+1:4]; -%! R1 = choldelete(R,j); -%! -%! assert(norm(triu(R1)-R1,Inf) == 0) -%! assert(norm(R1'*R1 - Ac(p,p),Inf) < 1e1*eps) +%! assert (norm (triu (R1)-R1, Inf), 0); +%! assert (norm (R1'*R1 - A(p,p), Inf) < 1e1*eps); %!test -%! R = chol(single(A)); +%! R = chol (Ac); +%! +%! j = 3; p = [1:j-1,j+1:4]; +%! R1 = choldelete (R, j); %! -%! j = 3; p = [1:j-1,j+1:4]; -%! R1 = choldelete(R,j); +%! assert (norm (triu (R1)-R1, Inf), 0); +%! assert (norm (R1'*R1 - Ac(p,p), Inf) < 1e1*eps); + +%!test +%! R = chol (single (A)); %! -%! assert(norm(triu(R1)-R1,Inf) == 0) -%! assert(norm(R1'*R1 - single(A(p,p)),Inf) < 1e1*eps('single')) +%! j = 3; p = [1:j-1,j+1:4]; +%! R1 = choldelete (R, j); %! +%! assert (norm (triu (R1)-R1, Inf), single (0)); +%! assert (norm (R1'*R1 - single (A(p,p)), Inf) < 1e1*eps ("single")); + %!test %! R = chol(single(Ac)); %! -%! j = 3; p = [1:j-1,j+1:4]; +%! j = 3; p = [1:j-1,j+1:4]; %! R1 = choldelete(R,j); %! -%! assert(norm(triu(R1)-R1,Inf) == 0) -%! assert(norm(R1'*R1 - single(Ac(p,p)),Inf) < 1e1*eps('single')) +%! assert (norm (triu (R1)-R1, Inf), single (0)); +%! assert (norm (R1'*R1 - single (Ac(p,p)), Inf) < 1e1*eps ("single")); */ DEFUN_DLD (cholshift, args, , @@ -1338,62 +1321,62 @@ /* %!test -%! R = chol(A); +%! R = chol (A); %! -%! i = 1; j = 3; p = [1:i-1, shift(i:j,-1), j+1:4]; -%! R1 = cholshift(R,i,j); +%! i = 1; j = 3; p = [1:i-1, shift(i:j,-1), j+1:4]; +%! R1 = cholshift (R, i, j); %! -%! assert(norm(triu(R1)-R1,Inf) == 0) -%! assert(norm(R1'*R1 - A(p,p),Inf) < 1e1*eps) +%! assert (norm (triu (R1)-R1, Inf), 0); +%! assert (norm (R1'*R1 - A(p,p), Inf) < 1e1*eps); %! -%! j = 1; i = 3; p = [1:j-1, shift(j:i,+1), i+1:4]; -%! R1 = cholshift(R,i,j); -%! -%! assert(norm(triu(R1)-R1,Inf) == 0) -%! assert(norm(R1'*R1 - A(p,p),Inf) < 1e1*eps) +%! j = 1; i = 3; p = [1:j-1, shift(j:i,+1), i+1:4]; +%! R1 = cholshift (R, i, j); %! +%! assert (norm(triu(R1)-R1, Inf), 0); +%! assert (norm(R1'*R1 - A(p,p), Inf) < 1e1*eps); + %!test -%! R = chol(Ac); +%! R = chol (Ac); %! -%! i = 1; j = 3; p = [1:i-1, shift(i:j,-1), j+1:4]; -%! R1 = cholshift(R,i,j); +%! i = 1; j = 3; p = [1:i-1, shift(i:j,-1), j+1:4]; +%! R1 = cholshift (R, i, j); %! -%! assert(norm(triu(R1)-R1,Inf) == 0) -%! assert(norm(R1'*R1 - Ac(p,p),Inf) < 1e1*eps) +%! assert (norm (triu (R1)-R1, Inf), 0); +%! assert (norm (R1'*R1 - Ac(p,p), Inf) < 1e1*eps); %! -%! j = 1; i = 3; p = [1:j-1, shift(j:i,+1), i+1:4]; -%! R1 = cholshift(R,i,j); +%! j = 1; i = 3; p = [1:j-1, shift(j:i,+1), i+1:4]; +%! R1 = cholshift (R, i, j); %! -%! assert(norm(triu(R1)-R1,Inf) == 0) -%! assert(norm(R1'*R1 - Ac(p,p),Inf) < 1e1*eps) +%! assert (norm (triu (R1)-R1, Inf), 0); +%! assert (norm (R1'*R1 - Ac(p,p), Inf) < 1e1*eps); %!test -%! R = chol(single(A)); +%! R = chol (single (A)); +%! +%! i = 1; j = 3; p = [1:i-1, shift(i:j,-1), j+1:4]; +%! R1 = cholshift (R, i, j); +%! +%! assert (norm (triu (R1)-R1, Inf), 0); +%! assert (norm (R1'*R1 - single (A(p,p)), Inf) < 1e1*eps ("single")); +%! +%! j = 1; i = 3; p = [1:j-1, shift(j:i,+1), i+1:4]; +%! R1 = cholshift (R, i, j); %! -%! i = 1; j = 3; p = [1:i-1, shift(i:j,-1), j+1:4]; -%! R1 = cholshift(R,i,j); +%! assert (norm (triu (R1)-R1, Inf), 0); +%! assert (norm (R1'*R1 - single (A(p,p)), Inf) < 1e1*eps ("single")); + +%!test +%! R = chol (single (Ac)); %! -%! assert(norm(triu(R1)-R1,Inf) == 0) -%! assert(norm(R1'*R1 - single(A(p,p)),Inf) < 1e1*eps('single')) +%! i = 1; j = 3; p = [1:i-1, shift(i:j,-1), j+1:4]; +%! R1 = cholshift (R, i, j); +%! +%! assert (norm (triu (R1)-R1, Inf), 0); +%! assert (norm (R1'*R1 - single (Ac(p,p)), Inf) < 1e1*eps ("single")); %! %! j = 1; i = 3; p = [1:j-1, shift(j:i,+1), i+1:4]; -%! R1 = cholshift(R,i,j); -%! -%! assert(norm(triu(R1)-R1,Inf) == 0) -%! assert(norm(R1'*R1 - single(A(p,p)),Inf) < 1e1*eps('single')) -%! -%!test -%! R = chol(single(Ac)); +%! R1 = cholshift (R, i, j); %! -%! i = 1; j = 3; p = [1:i-1, shift(i:j,-1), j+1:4]; -%! R1 = cholshift(R,i,j); -%! -%! assert(norm(triu(R1)-R1,Inf) == 0) -%! assert(norm(R1'*R1 - single(Ac(p,p)),Inf) < 1e1*eps('single')) -%! -%! j = 1; i = 3; p = [1:j-1, shift(j:i,+1), i+1:4]; -%! R1 = cholshift(R,i,j); -%! -%! assert(norm(triu(R1)-R1,Inf) == 0) -%! assert(norm(R1'*R1 - single(Ac(p,p)),Inf) < 1e1*eps('single')) +%! assert (norm (triu (R1)-R1, Inf), 0); +%! assert (norm (R1'*R1 - single (Ac(p,p)), Inf) < 1e1*eps ("single")); */