Dear Kayhan,

You are perfectly right. This bug has been recently fixed in the svn  
repository of gmm (on gna.org/projects/getfem) and will included in  
the next version. Thank you for your bug report,

Yves.


Kayhan Batmanghelich <[email protected]> a écrit :

> Dear gemm users,
>
> I think that I found a bug in the gmm and a way to fix it. Here is  
> an example which produces the bug. I only changed one line and "I  
> think" that I fixed it. Please let me know if I should not have done  
> it or there is a better solution:
>
> #include <string>
> #include <vector>
> #include <iostream>
> #include <fstream>
> #include <exception>
> #include <math.h>
> #include <sstream>
> #include <cstdlib>
>
> #define GMM_USES_LAPACK
> #include <gmm/gmm.h>
>
> int main(int argc, char *argv[])
> {
>     std::vector<double>     X(3);
>     std::vector<double>     Y(3);
>
>
>     gmm::dense_matrix<double> M(3,3);
>     M(0,0) = M(1,1) = M(2,2) = 2.0 ;
>     M(1,2) = 1.0 ;
>
>     X[0] = 1.0 ; X[1] = 2.0 ; X[1] = 3.0 ;
>     gmm::mult(M,X,Y) ;
>     std::cout << M << " times " << X << "is equal to " << Y << std::endl ;
>
>
> }
>
>
> and here is what I got when i tried to compile it :
>
> kay...@sbia-pc30:~/Src/cpp_test/gmmBugTest1$ g++ Ex1.cpp -o Ex1  
> -I/home/kayhan/Src/gmmSource/tmpInstall/include -llapack -lblas -lg2c
> In file included from  
> /home/kayhan/Src/gmmSource/tmpInstall/include/gmm/gmm.h:47,
>                  from Ex1.cpp:11:
> /home/kayhan/Src/gmmSource/tmpInstall/include/gmm/gmm_lapack_interface.h: In  
> function ?void gmm::svd(gmm::dense_matrix<std::complex<float> >&,  
> gmm::dense_matrix<std::complex<float> >&,  
> gmm::dense_matrix<std::complex<float> >&, std::vector<float,  
> std::allocator<float> >&)?:
> /home/kayhan/Src/gmmSource/tmpInstall/include/gmm/gmm_lapack_interface.h:412: 
> error: ?cgesvd_? was not declared in this  
> scope
> /home/kayhan/Src/gmmSource/tmpInstall/include/gmm/gmm_lapack_interface.h: In  
> function ?void gmm::svd(gmm::dense_matrix<std::complex<double> >&,  
> gmm::dense_matrix<std::complex<double> >&,  
> gmm::dense_matrix<std::complex<double> >&, std::vector<double,  
> std::allocator<double> >&)?:
> /home/kayhan/Src/gmmSource/tmpInstall/include/gmm/gmm_lapack_interface.h:413: 
> error: ?zgesvd_? was not declared in this  
> scope
>
>
> To fix it, I changed the line 366 on the gmm_lapack_interface.h and  
> changed it to :
>
> void sgesvd_(...); void dgesvd_(...); void cgesvd_(...); void zgesvd_(...) ;
>
> and it fixes the problem.
>
> I am using Ubuntu8.10, 64bit system, gcc4.3.2,gmm3.1  .  Please let  
> me know if more information is required.
>
>
> Regards,
> Kayhan
>
>
>




_______________________________________________
Getfem-users mailing list
[email protected]
https://mail.gna.org/listinfo/getfem-users

Reply via email to