21 #ifndef SELDON_FILE_MATRIX_SYMSPARSE_INLINE_CXX
23 #include "Matrix_SymSparse.hxx"
38 template <
class T,
class Prop,
class Storage,
class Allocator>
55 template <
class T,
class Prop,
class Storage,
class Allocator>
77 template <
class T,
class Prop,
class Storage,
class Allocator>
96 template <
class T,
class Prop,
class Storage,
class Allocator>
113 template <
class T,
class Prop,
class Storage,
class Allocator>
125 template <
class T,
class Prop,
class Storage,
class Allocator>
137 template <
class T,
class Prop,
class Storage,
class Allocator>
152 template <
class T,
class Prop,
class Storage,
class Allocator>
163 template <
class T,
class Prop,
class Storage,
class Allocator>
166 return (this->m_ + 1);
180 template <
class T,
class Prop,
class Storage,
class Allocator>
198 template <
class T,
class Prop,
class Storage,
class Allocator>
199 inline const typename Matrix_SymSparse<T, Prop, Storage, Allocator>::value_type&
214 template <
class T,
class Prop,
class Storage,
class Allocator>
224 template <
class T,
class Prop,
class Storage,
class Allocator>
229 throw Undefined(
"AddInteractionRow",
"Not implemented");
239 template <
class T,
class Prop,
class Storage,
class Allocator>
253 template <
class T,
class Prop,
class Storage,
class Allocator>
267 template <
class T,
class Prop,
class Storage,
class Allocator>
278 #ifdef SELDON_WITH_VIRTUAL
279 template <
class T,
class Prop,
class Storage,
class Allocator>
282 const typename ClassComplexType<T>::Treal& omega,
283 int nb_iter,
int stage_ssor)
const
286 x, r, omega, nb_iter, stage_ssor);
289 template <
class T,
class Prop,
class Storage,
class Allocator>
290 inline void Matrix_SymSparse<T, Prop, Storage, Allocator>
291 ::ApplySor(
const SeldonTranspose& trans, Vector<Tcplx>& x,
const Vector<Tcplx>& r,
292 const typename ClassComplexType<T>::Treal& omega,
293 int nb_iter,
int stage_ssor)
const
296 static_cast<const Matrix<T, Prop, Storage, Allocator>&
>(*
this),
297 x, r, omega, nb_iter, stage_ssor);
300 template <
class T,
class Prop,
class Storage,
class Allocator>
301 inline void Matrix_SymSparse<T, Prop, Storage, Allocator>
302 ::MltAddVector(
const Treal& alpha,
const Vector<Treal>& x,
303 const Treal& beta, Vector<Treal>& y)
const
306 static_cast<const Matrix<T, Prop, Storage, Allocator>&
>(*
this),
310 template <
class T,
class Prop,
class Storage,
class Allocator>
311 inline void Matrix_SymSparse<T, Prop, Storage, Allocator>
312 ::MltAddVector(
const Tcplx& alpha,
const Vector<Tcplx>& x,
313 const Tcplx& beta, Vector<Tcplx>& y)
const
316 static_cast<const Matrix<T, Prop, Storage, Allocator>&
>(*
this),
320 template <
class T,
class Prop,
class Storage,
class Allocator>
321 inline void Matrix_SymSparse<T, Prop, Storage, Allocator>
322 ::MltAddVector(
const Treal& alpha,
const SeldonTranspose& trans,
323 const Vector<Treal>& x,
324 const Treal& beta, Vector<Treal>& y)
const
327 static_cast<const Matrix<T, Prop, Storage, Allocator>&
>(*
this),
331 template <
class T,
class Prop,
class Storage,
class Allocator>
332 inline void Matrix_SymSparse<T, Prop, Storage, Allocator>
333 ::MltAddVector(
const Tcplx& alpha,
const SeldonTranspose& trans,
334 const Vector<Tcplx>& x,
335 const Tcplx& beta, Vector<Tcplx>& y)
const
338 static_cast<const Matrix<T, Prop, Storage, Allocator>&
>(*
this),
342 template <
class T,
class Prop,
class Storage,
class Allocator>
343 inline void Matrix_SymSparse<T, Prop, Storage, Allocator>
344 ::MltVector(
const Vector<Treal>& x, Vector<Treal>& y)
const
346 Mlt(
static_cast<const Matrix<T, Prop, Storage, Allocator>&
>(*
this), x, y);
349 template <
class T,
class Prop,
class Storage,
class Allocator>
350 inline void Matrix_SymSparse<T, Prop, Storage, Allocator>
351 ::MltVector(
const Vector<Tcplx>& x, Vector<Tcplx>& y)
const
353 Mlt(
static_cast<const Matrix<T, Prop, Storage, Allocator>&
>(*
this), x, y);
356 template <
class T,
class Prop,
class Storage,
class Allocator>
357 inline void Matrix_SymSparse<T, Prop, Storage, Allocator>
358 ::MltVector(
const SeldonTranspose& trans,
359 const Vector<Treal>& x, Vector<Treal>& y)
const
362 static_cast<const Matrix<T, Prop, Storage, Allocator>&
>(*
this), x, y);
365 template <
class T,
class Prop,
class Storage,
class Allocator>
366 inline void Matrix_SymSparse<T, Prop, Storage, Allocator>
367 ::MltVector(
const SeldonTranspose& trans,
368 const Vector<Tcplx>& x, Vector<Tcplx>& y)
const
371 static_cast<const Matrix<T, Prop, Storage, Allocator>&
>(*
this), x, y);
374 template <
class T,
class Prop,
class Storage,
class Allocator>
375 inline bool Matrix_SymSparse<T, Prop, Storage, Allocator>
376 ::IsSymmetric()
const
396 template <
class T,
class Prop,
class Allocator>
408 template <
class T,
class Prop,
class Allocator>
423 template <
class T,
class Prop,
class Allocator>
443 template <
class T,
class Prop,
class Allocator>
444 template <
class Storage0,
class Allocator0,
445 class Storage1,
class Allocator1,
446 class Storage2,
class Allocator2>
472 template <
class T,
class Prop,
class Allocator>
484 template <
class T,
class Prop,
class Allocator>
499 template <
class T,
class Prop,
class Allocator>
519 template <
class T,
class Prop,
class Allocator>
520 template <
class Storage0,
class Allocator0,
521 class Storage1,
class Allocator1,
522 class Storage2,
class Allocator2>
535 #define SELDON_FILE_MATRIX_SYMSPARSE_INLINE_CXX