Mercurial > octave-nkf
comparison scripts/linear-algebra/logm.m @ 20266:83792dd9bcc1
Use in-place operators in m-files where possible.
* scripts/audio/@audioplayer/set.m, scripts/audio/@audiorecorder/set.m,
scripts/audio/mu2lin.m, scripts/elfun/cosd.m, scripts/general/del2.m,
scripts/general/profexplore.m, scripts/general/quadl.m, scripts/general/rat.m,
scripts/general/rotdim.m, scripts/help/get_first_help_sentence.m,
scripts/help/private/__strip_html_tags__.m, scripts/image/cubehelix.m,
scripts/io/textread.m, scripts/linear-algebra/duplication_matrix.m,
scripts/linear-algebra/housh.m, scripts/linear-algebra/krylov.m,
scripts/linear-algebra/logm.m, scripts/linear-algebra/normest.m,
scripts/linear-algebra/onenormest.m, scripts/optimization/fminsearch.m,
scripts/optimization/lsqnonneg.m, scripts/optimization/qp.m,
scripts/plot/appearance/annotation.m, scripts/plot/appearance/axis.m,
scripts/plot/appearance/legend.m, scripts/plot/appearance/specular.m,
scripts/plot/draw/colorbar.m, scripts/plot/draw/hist.m,
scripts/plot/draw/plotmatrix.m, scripts/plot/draw/private/__stem__.m,
scripts/plot/util/__actual_axis_position__.m,
scripts/plot/util/__gnuplot_drawnow__.m, scripts/plot/util/findobj.m,
scripts/plot/util/print.m, scripts/plot/util/private/__go_draw_axes__.m,
scripts/plot/util/private/__print_parse_opts__.m, scripts/plot/util/rotate.m,
scripts/polynomial/pchip.m, scripts/polynomial/polyaffine.m,
scripts/polynomial/polyder.m, scripts/polynomial/private/__splinefit__.m,
scripts/polynomial/residue.m, scripts/signal/arch_fit.m,
scripts/signal/arch_rnd.m, scripts/signal/bartlett.m,
scripts/signal/blackman.m, scripts/signal/freqz.m, scripts/signal/hamming.m,
scripts/signal/hanning.m, scripts/signal/spectral_adf.m,
scripts/signal/spectral_xdf.m, scripts/signal/stft.m,
scripts/sparse/bicgstab.m, scripts/sparse/cgs.m,
scripts/sparse/private/__sprand_impl__.m, scripts/sparse/qmr.m,
scripts/sparse/sprandsym.m, scripts/sparse/svds.m, scripts/specfun/legendre.m,
scripts/special-matrix/gallery.m, scripts/statistics/base/gls.m,
scripts/statistics/models/logistic_regression.m,
scripts/statistics/tests/kruskal_wallis_test.m,
scripts/statistics/tests/manova.m, scripts/statistics/tests/wilcoxon_test.m,
scripts/time/datevec.m:
Use in-place operators in m-files where possible.
author | Rik <rik@octave.org> |
---|---|
date | Tue, 26 May 2015 21:07:42 -0700 |
parents | 03b9d17a2d95 |
children |
comparison
equal
deleted
inserted
replaced
20265:e914b5399c67 | 20266:83792dd9bcc1 |
---|---|
84 p = 0; | 84 p = 0; |
85 m = 7; | 85 m = 7; |
86 while (k < opt_iters) | 86 while (k < opt_iters) |
87 tau = norm (s - eye (size (s)),1); | 87 tau = norm (s - eye (size (s)),1); |
88 if (tau <= theta (7)) | 88 if (tau <= theta (7)) |
89 p = p + 1; | 89 p += 1; |
90 j(1) = find (tau <= theta, 1); | 90 j(1) = find (tau <= theta, 1); |
91 j(2) = find (tau / 2 <= theta, 1); | 91 j(2) = find (tau / 2 <= theta, 1); |
92 if (j(1) - j(2) <= 1 || p == 2) | 92 if (j(1) - j(2) <= 1 || p == 2) |
93 m = j(1); | 93 m = j(1); |
94 break | 94 break |
95 endif | 95 endif |
96 endif | 96 endif |
97 k = k + 1; | 97 k += 1; |
98 s = sqrtm (s); | 98 s = sqrtm (s); |
99 endwhile | 99 endwhile |
100 | 100 |
101 if (k >= opt_iters) | 101 if (k >= opt_iters) |
102 warning ("logm: maximum number of square roots exceeded; results may still be accurate"); | 102 warning ("logm: maximum number of square roots exceeded; results may still be accurate"); |
103 endif | 103 endif |
104 | 104 |
105 s = s - eye (size (s)); | 105 s -= eye (size (s)); |
106 | 106 |
107 if (m > 1) | 107 if (m > 1) |
108 s = logm_pade_pf (s, m); | 108 s = logm_pade_pf (s, m); |
109 endif | 109 endif |
110 | 110 |
134 | 134 |
135 function s = logm_pade_pf (A, m) | 135 function s = logm_pade_pf (A, m) |
136 [nodes, wts] = gauss_legendre (m); | 136 [nodes, wts] = gauss_legendre (m); |
137 ## Convert from [-1,1] to [0,1]. | 137 ## Convert from [-1,1] to [0,1]. |
138 nodes = (nodes+1)/2; | 138 nodes = (nodes+1)/2; |
139 wts = wts/2; | 139 wts /= 2; |
140 | 140 |
141 n = length (A); | 141 n = length (A); |
142 s = zeros (n); | 142 s = zeros (n); |
143 for j = 1:m | 143 for j = 1:m |
144 s += wts(j)*(A/(eye (n) + nodes(j)*A)); | 144 s += wts(j)*(A/(eye (n) + nodes(j)*A)); |