Loading...
Searching...
No Matches
eye.h
Go to the documentation of this file.
# ifndef _RHEOLEF_EYE_H
# define _RHEOLEF_EYE_H
//
// This file is part of Rheolef.
//
// Copyright (C) 2000-2009 Pierre Saramito <Pierre.Saramito@imag.fr>
//
// Rheolef is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation; either version 2 of the License, or
// (at your option) any later version.
//
// Rheolef is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Rheolef; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
//
// =========================================================================
// AUTHOR: Pierre.Saramito@imag.fr
// DATE: 28 january 1997
namespace rheolef {
} // namespace rheolef
# include "rheolef/vec.h"
# include "rheolef/solver.h"
namespace rheolef {
template<class T, class M = rheo_default_memory_model>
class solver_eye_rep: public solver_abstract_rep<T,M> {
public:
explicit solver_eye_rep (const solver_option& opt = solver_option());
solver_abstract_rep<T,M>* clone() const;
bool good() const { return true; }
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; }
};
template <class T, class M = rheo_default_memory_model>
solver_basic<T,M> eye_basic();
inline solver_basic<Float> eye() { return eye_basic<Float>(); }
template<class T, class M>
inline
solver_eye_rep<T,M>::solver_eye_rep (const solver_option& opt)
: solver_abstract_rep<T,M>(opt)
{
}
template <class T, class M>
inline
solver_abstract_rep<T,M>*
solver_eye_rep<T,M>::clone() const
{
typedef solver_eye_rep<T,M> rep;
return new_macro (rep(*this));
}
template <class T, class M>
inline
solver_basic<T,M>
eye_basic ()
{
using rep = solver_eye_rep<T,M>;
solver_basic<T,M> p;
p.solver_basic<T,M>::base::operator= (new_macro(rep()));
return p;
}
}// namespace rheolef
# endif // _RHEOLEF_EYE_H
rheolef::csr
see the csr page for the full documentation
Definition csr.h:317
rheolef::solver_abstract_rep
Definition solver.h:191
rheolef::solver_abstract_rep< T, rheo_default_memory_model >::solver_abstract_rep
solver_abstract_rep(const solver_option &opt)
Definition solver.h:195
rheolef::solver_basic
Definition solver.h:264
rheolef::solver_eye_rep
Definition eye.h:59
rheolef::solver_eye_rep::solver_eye_rep
solver_eye_rep(const solver_option &opt=solver_option())
Definition eye.h:78
rheolef::solver_eye_rep::trans_solve
vec< T, M > trans_solve(const vec< T, M > &x) const
Definition eye.h:67
rheolef::solver_eye_rep::operator*
vec< T, M > operator*(const vec< T, M > &x) const
Definition eye.h:65
rheolef::solver_eye_rep::good
bool good() const
Definition eye.h:63
rheolef::solver_eye_rep::solve
vec< T, M > solve(const vec< T, M > &x) const
Definition eye.h:66
rheolef::solver_eye_rep::update_values
void update_values(const csr< T, M > &)
Definition eye.h:64
rheolef::solver_eye_rep::clone
solver_abstract_rep< T, M > * clone() const
Definition eye.h:85
rheolef::solver_option
see the solver_option page for the full documentation
Definition solver_option.h:155
rheolef::vec
see the vec page for the full documentation
Definition vec.h:79
T
Expr1::float_type T
Definition field_expr.h:230
rheolef
This file is part of Rheolef.
Definition compiler_eigen.h:39
rheolef::eye
solver_basic< Float > eye()
see the eye page for the full documentation
Definition eye.h:74
rheolef::eye_basic
solver_basic< T, M > eye_basic()
Definition eye.h:93
p
Definition sphere.icc:25
M
Expr1::memory_type M
Definition vec_expr_v2.h:416