From: Riccardo Lattanzi <lattanzi@MIT.EDU>  20050413 21:03:16

Good news! I was able to build vnl.lib. However, I used some tricks. I first compiled the files by themselves and to quickly get rid of the errors I commented out 4 functions on vnl_matrix.txx that were causing errors (those are functions I don't need directly for my purposes but some other routines may invoke them, so I'll need to check). Another thing I did was avoiding to use vcl_sqrt, so my vnl_mpcomplex_traits (same thing on vnl_mpreal_traits)is: #include "vnl_mpcomplex_traits.h" #include <mp/mpcomplex.h> #include <mp/mpreal.h> #include <vcl_cmath.h> const mp_complex vnl_numeric_traits<mp_complex>::zero = mp_complex(0.0,0.0); const mp_complex vnl_numeric_traits<mp_complex>::one = mp_complex(1.0,1.0); const mp_complex vnl_numeric_traits<mp_complex>::maxval = mp_complex(1E+308,1E+308); mp_real vnl_math_squared_magnitude(mp_complex const& x) { return x.real*x.real+x.imag*x.imag; } mp_real vnl_math_abs(mp_complex const& x) { //return mp_real(vcl_sqrt(double(x.real*x.real+x.imag*x.imag))); mp_real fake(1.0); return fake; } vcl_ostream& operator<<(vcl_ostream& os, mp_complex x) { return os << x.real << '+' << x.imag << 'j'; } You said you will write a vnl_math_sqrt: would it be an inline function with all the specialization that would go in vnl_math.h ?. I guess at that point I would need to download a more recent version of Vxl form CVS. I'll try to use the library and also to fix the errors given by the 4 member functions of vnl_matrix. Hopes that everything will work. Thanks. Riccardo 