Re: [Lapackpp-devel] Matrixaddition in Lapack++
Status: Beta
Brought to you by:
cstim
|
From: Christian S. <sti...@tu...> - 2009-10-29 09:11:10
|
Zitat von Henning Lategahn <Hen...@ki...>: > Zur Zeit verewende ich die Bibliothek Lapack++, die sie geschrieben > haben. Soweit bin ich sehr zufrieden damit. Jedoch weiss ich nicht > wie ich zwei LaGenMatDouble Matricen addieren kann. Ich bin also auf > der Suche nach dem Matrixäquivalent zu Blas_Add_Mult. Wenn ich > Matrizen elementweise addiere (über verschachtelte for-schleifen) > sagt mir mein Profiler, dass ich sehr viel Zeit in operator()(int, > int) verbringe. Zwei Möglichkeiten: 1. Der operator+, also Matrix A = B + C; http://lapackpp.sourceforge.net/html/blaspp_8h.html 2. "Missbrauchen" von Blas_Mat_Mat_Mult mit einer dritten Einheitsmatrix: http://lapackpp.sourceforge.net/html/blas3pp_8h.html#044bbe029632ffac36a894b1071cb22f I=LaGenMatDouble::eye(A.size(1)); Blas_Mat_Mat_Mult(A, I, C, 1.0, 1.0); ergibt C = A + C und lustigerweise ist letzteres trotz der zusätzlichen dritten Matrix anscheinend deutlich schneller als der operator+() weiter oben. Gruß Christian |