Re: [eigen] mixed-precision Cholesky?

[ Thread Index | Date Index | More lists.tuxfamily.org/eigen Archives ]




On Thu, Jun 10, 2010 at 1:37 AM, Manoj Rajagopalan <rmanoj@xxxxxxxxx> wrote:
Hi,

  I have situation where, due to memory pressure, I need to store a symmetric
matrix as real-values but it must solve a complex RHS for a complex solution
vector. Currently I am storing the matrix as complex-type so that llt() and
ldlt() can be called without compilation errors but is the above situation
realizable in Eigen?

 When invoking
real_matrix.selfadjointView<Lower>().ldlt().solveInPlace(complex_vector)

 I get a gcc 4.2.4 error saying:

no matching function for call
to ‘ei_cache_friendly_product_colmajor_times_vector(Eigen::DenseIndex&,
double*, Eigen::DenseIndex,
Eigen::VectorBlock<Eigen::Matrix<std::complex<double>, 33331, 1, 0, 33331,
1>, 33331>, std::complex<double>*, std::complex<double>)’


no matching function for call
to ‘ei_cache_friendly_product_rowmajor_times_vector(double*,
Eigen::DenseIndex, std::complex<double>*, Eigen::DenseIndex&,
Eigen::VectorBlock<Eigen::Matrix<std::complex<double>, 33331, 1, 0, 33331,
1>, 33331>&, std::complex<double>)’



  Would it make sense to introduce a cast<> on LLT and LDLT so that such a
mixed-precision operation becomes possible?

The idea is rather to allow mixing types where it makes sense, as for products, triangular solves and the like, but I don't know when this will be available.

gael
 

thanks,
Manoj





Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/