Mercurial > octave-nkf
comparison liboctave/fDiagMatrix.cc @ 8380:dbe67764e628
fix & improve speed of diagonal matrix multiplication
author | Jaroslav Hajek <highegg@gmail.com> |
---|---|
date | Sun, 07 Dec 2008 10:29:34 +0100 |
parents | e3c9102431a9 |
children | 20dfb885f877 |
comparison
equal
deleted
inserted
replaced
8379:ad8ed668e0a4 | 8380:dbe67764e628 |
---|---|
332 for (octave_idx_type i = 0; i < len; i++) | 332 for (octave_idx_type i = 0; i < len; i++) |
333 { | 333 { |
334 float a_element = a.elem (i, i); | 334 float a_element = a.elem (i, i); |
335 float b_element = b.elem (i, i); | 335 float b_element = b.elem (i, i); |
336 | 336 |
337 if (a_element == 0.0 || b_element == 0.0) | 337 c.elem (i, i) = a_element * b_element; |
338 c.elem (i, i) = 0.0; | |
339 else if (a_element == 1.0) | |
340 c.elem (i, i) = b_element; | |
341 else if (b_element == 1.0) | |
342 c.elem (i, i) = a_element; | |
343 else | |
344 c.elem (i, i) = a_element * b_element; | |
345 } | 338 } |
346 | 339 |
347 return c; | 340 return c; |
348 } | 341 } |
349 | 342 |