eye(2) the identity matrix

DESCRIPTION

Following octave, the name eye_rep class is used in place of I to denote identity matrices because I is often used as a subscript or as sqrt(-1). The dimensions of eye_rep are determined by the context. This class is here usefull in the context of preconditioner interfaces: it allows calls of algorithms without any preconditioners, e.g.

    int status = pcg (a, x, b, eye_rep<Float>(), 100, 1e-7);

IMPLEMENTATION

template<class T, class M = rheo_default_memory_model>
class eye_rep : public solver_abstract_rep<T,M> {
public:
  eye_rep (const solver_option_type& opt = solver_option_type());
  void update_values (const csr<T,M>&) {}
  vec<T,M> operator*   (const vec<T,M>& x) const { return x; }
  vec<T,M> solve       (const vec<T,M>& x) const { return x; }
  vec<T,M> trans_solve (const vec<T,M>& x) const { return x; }
};