File: MatrixLibrary.h

package info (click to toggle)
lammps 0~20181211.gitad1b1897d%2Bdfsg1-2
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 318,860 kB
  • sloc: cpp: 729,569; python: 40,508; xml: 14,919; fortran: 12,142; ansic: 7,454; sh: 5,565; perl: 4,105; f90: 2,700; makefile: 2,117; objc: 238; lisp: 163; tcl: 61; csh: 16; awk: 14
file content (38 lines) | stat: -rw-r--r-- 748 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#ifndef MATRIXLIBRARY_H
#define MATRIXLIBRARY_H

#include "DenseMatrix.h"
#include "ParDenseMatrix.h"
#include "DenseVector.h"
#include "CloneVector.h"
#include "DiagonalMatrix.h"
#include "ParDiagonalMatrix.h"
#include "SparseMatrix.h"
#include "ParSparseMatrix.h"
#include "SparseVector.h"


namespace ATC_matrix {
template<typename T>
const SparseMatrix<T> *sparse_cast(const Matrix<T> *m) 
{
  return dynamic_cast<const SparseMatrix<T>*>(m); 
}

template<typename T>
void copy_sparse_to_matrix(const SparseMatrix<T> *s, Matrix<T> &m)
{
  m.zero();
  TRIPLET<T> triplet;
  for (INDEX i=0; i<s->size(); i++)
  {
    triplet = s->triplet(i);
    m(triplet.i, triplet.j) = triplet.v; 
  }
}

} // end namespace

using namespace ATC_matrix;

#endif