Boost logo

Ublas :

Subject: [ublas] adl problem with tr1
From: Neal Becker (ndbecker2_at_[hidden])
Date: 2008-12-12 11:13:40


I just tried building some of my code, with -std=gnu++0x. There are added overloads, specifically:

  template<typename _Tp>
    inline std::complex<typename __gnu_cxx::__promote<_Tp>::__type>
    conj(_Tp __x)
    { return __x; }

For some reason, this is found when I did:

   compute1 (ublas::matrix_row<ublas::matrix<complex_t> > (coef_sets, set), lvalue_cast (boost::make_iterator_range (o, o + std::min (chunk_size, out_remain))));

where:
template<typename coef_t, typename out_t>
void fft_corr3::compute1 (coef_t const& coef, out_t & out) {
  times (boost::make_iterator_range (xformbuf.get(), xformbuf.get()+fftsize), conj (coef), lvalue_cast (boost::make_iterator_range (inbuf.get(), inbuf.get()+fftsize)));

...
I thought that conj(coef) should be ublas::conj since coef_t is ublas::matrix_row<ublas::matrix<complex_t>>.

Specifying ublas::conj fixes it, but I don't understand it.