ALPS Home Libraries License Support People ALPS Web Site

PrevUpHomeNext

Class template jcd_left_preconditioner

ietl::jcd_left_preconditioner

Synopsis

// In header: <alps/src/ietl/jacobi.h>

template<typename MATRIX, typename VS> 
class jcd_left_preconditioner {
public:
  // types
  typedef vectorspace_traits< VS >::vector_type              vector_type;   
  typedef vectorspace_traits< VS >::scalar_type              scalar_type;   
  typedef ietl::number_traits< scalar_type >::magnitude_type magnitude_type;

  // construct/copy/destruct
  jcd_left_preconditioner(const MATRIX &, const VS &, const int &);

  // public member functions
  void operator()(const vector_type &, const magnitude_type &, 
                  const vector_type &, vector_type &, const magnitude_type &);

  // private member functions
  void sysv(const char &, fortran_int_t, fortran_int_t, double, fortran_int_t, 
            fortran_int_t, double, fortran_int_t, double, fortran_int_t, 
            fortran_int_t &);
  void sysv(const char &, fortran_int_t, fortran_int_t, 
            std::complex< double >, fortran_int_t, fortran_int_t, 
            std::complex< double >, fortran_int_t, std::complex< double >, 
            fortran_int_t, fortran_int_t &);
};

Description

jcd_left_preconditioner public construct/copy/destruct

  1. jcd_left_preconditioner(const MATRIX & matrix, const VS & vec, 
                            const int & max_iter);

jcd_left_preconditioner public member functions

  1. void operator()(const vector_type & u, const magnitude_type & theta, 
                    const vector_type & r, vector_type & t, 
                    const magnitude_type & rel_tol);

jcd_left_preconditioner private member functions

  1. void sysv(const char & uplo, fortran_int_t n, fortran_int_t nrhs, double a, 
              fortran_int_t lda, fortran_int_t ipiv, double b, fortran_int_t ldb, 
              double work, fortran_int_t lwork, fortran_int_t & info);
  2. void sysv(const char & uplo, fortran_int_t n, fortran_int_t nrhs, 
              std::complex< double > a, fortran_int_t lda, fortran_int_t ipiv, 
              std::complex< double > b, fortran_int_t ldb, 
              std::complex< double > work, fortran_int_t lwork, 
              fortran_int_t & info);
Copyright © 2011 Matthias Troyer, Bela Bauer, Robin Jäger

PrevUpHomeNext