Great to hear. Thanks for the update. On Fri, Jul 9, 2021 at 11:40 PM 张瑞 <[email protected]> wrote:
> thanks for your help. I fixed the problem! > > best regards! > > > > -----原始邮件----- > *发件人:*"Rasmus Munk Larsen" <[email protected]> > *发送时间:*2021-07-10 00:47:00 (星期六) > *收件人:* [email protected] > *抄送:* > *主题:* 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 张瑞 <[email protected]> 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" <[email protected]> >> *发送时间:*2021-07-09 04:57:30 (星期五) >> *收件人:* [email protected] >> *抄送:* >> *主题:* 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 张瑞 <[email protected]> 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! >>> >>>
