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