Re: Re: Re: [eigen] dense matrix multiplication

[ Thread Index | Date Index | More lists.tuxfamily.org/eigen Archives ]


Great to hear. Thanks for the update.

On Fri, Jul 9, 2021 at 11:40 PM 张瑞 <rzhang@xxxxxxxxxxx> wrote:

thanks for your help. I fixed the problem!

best regards!




-----原始邮件-----
发件人:"Rasmus Munk Larsen" <rmlarsen@xxxxxxxxxx>
发送时间:2021-07-10 00:47:00 (星期六)
收件人: eigen@xxxxxxxxxxxxxxxxxxx
抄送:
主题: Re: Re: [eigen] dense matrix multiplication

Sorry, I had a typo. I meant UNsetting the macros for enabling external BLAS libraries. :-)

On Fri, Jul 9, 2021 at 1:20 AM 张瑞 <rzhang@xxxxxxxxxxx> wrote:

dear Rasmus,

thanks for your reply, I tried to add the code  #define EIGEN_USE_BLAS, but it still doesn't work.

and I found actually multiplication was done, it failed to assignment to the x matrix


if the code is like this , it can be compiled successfully:

Matrix<double,8, 8>  b;

Matrix<double, 8, 1>  l;
Matrix<double, 8, 1>  x;
b.Zero();
l.Zero();
b*l;



-----原始邮件-----
发件人:"Rasmus Munk Larsen" <rmlarsen@xxxxxxxxxx>
发送时间:2021-07-09 04:57:30 (星期五)
收件人: eigen@xxxxxxxxxxxxxxxxxxx
抄送:
主题: Re: [eigen] dense matrix multiplication

It looks like your build of Eigen is set up to call the function gemv_ an external BLAS library for large matrices, possibly by setting the macro EIGEN_USE_BLAS. See the documentation here: https://eigen.tuxfamily.org/dox/TopicUsingBlasLapack.html


On Thu, Jul 8, 2021 at 2:57 AM 张瑞 <rzhang@xxxxxxxxxxx> wrote:

dear all,


I'm a new user of Eigen, I want to get the multiplication of two matrix, and met a confusing problem, and the code is as bellows(for simplicity, all values are set to 0):


Matrix<double,8, 8>  b;
Matrix<double, 8, 1>  l;
Matrix<double, 8, 1>  x;
b.Zero();
l.Zero();
x = b*l;


Compiled under the windows platform and vs2019 environment, there is a fatal error LNK1120:

" Unresolved external symbol _dgemv,funticon "public: static void __cdecl Eigen::internal::general_matrix_vector_product_gemv<int,double,1,0,double,0>::run(int,int,double const *,int,double const *,int,double *,int,double)" (?run@?$general_matrix_vector_product_gemv@HN$00$0A@N$0A@@internal@Eigen@@SAXHHPBNH0HPANHN@Z) "


But if I Reduce the matrix dimension, it works, like:

Matrix<double,4, 4>  b;
Matrix<double, 4 1>  l;
Matrix<double, 4, 1>  x;
b.Zero();
l.Zero();
x = b*l;

very grateful for your help, thank you!



Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/