Re: Re: Re: [eigen] dense matrix multiplication |
[ Thread Index | Date Index | More lists.tuxfamily.org/eigen Archives ]
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/ |