OPALX (Object Oriented Parallel Accelerator Library for Exascal) master (dc2a29eed580)
OPALX
Loading...
Searching...
No Matches
Matrix.h File Reference
#include <Kokkos_Core.hpp>
#include <cassert>
#include <vector>
#include "Ippl.h"
Include dependency graph for Matrix.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  matrix_t< Rows, Cols >
 

Typedefs

using matrix3x3_t = matrix_t< 3, 3 >
 
using matrix6x6_t = matrix_t< 6, 6 >
 
template<unsigned Size>
using vector_t = ippl::Vector< double, Size >
 

Functions

template<int Rows, int Cols, class T >
KOKKOS_INLINE_FUNCTION T prod_vector (const matrix_t< Rows, Cols > &rotation, const T &vect)
 
template<int Rows, int Cols, class T >
KOKKOS_INLINE_FUNCTION T prod_vector_transpose (const matrix_t< Rows, Cols > &rotation, const T &vect)
 
template<int Rows, int Cols>
KOKKOS_INLINE_FUNCTION matrix_t< Cols, Rows > get_transpose (const matrix_t< Rows, Cols > &rotation)
 
template<int Rows1, int Cols1, int Rows2, int Cols2>
KOKKOS_INLINE_FUNCTION matrix_t< Rows1, Cols2 > prod (const matrix_t< Rows1, Cols1 > &a, const matrix_t< Rows2, Cols2 > &b)
 
template<int Rows, int Cols>
KOKKOS_INLINE_FUNCTION ippl::Vector< double, static_cast< unsigned >(Rows)> prod_matrix_vector (const matrix_t< Rows, Cols > &m, const ippl::Vector< double, static_cast< unsigned >(Cols)> &v)
 

Typedef Documentation

◆ matrix3x3_t

using matrix3x3_t = matrix_t<3, 3>

Definition at line 96 of file Matrix.h.

◆ matrix6x6_t

using matrix6x6_t = matrix_t<6, 6>

Definition at line 97 of file Matrix.h.

◆ vector_t

template<unsigned Size>
using vector_t = ippl::Vector<double, Size>

Definition at line 102 of file Matrix.h.

Function Documentation

◆ get_transpose()

template<int Rows, int Cols>
KOKKOS_INLINE_FUNCTION matrix_t< Cols, Rows > get_transpose ( const matrix_t< Rows, Cols > &  rotation)

Definition at line 139 of file Matrix.h.

Referenced by CoordinateSystemTrafo::invert().

◆ prod()

template<int Rows1, int Cols1, int Rows2, int Cols2>
KOKKOS_INLINE_FUNCTION matrix_t< Rows1, Cols2 > prod ( const matrix_t< Rows1, Cols1 > &  a,
const matrix_t< Rows2, Cols2 > &  b 
)

Definition at line 151 of file Matrix.h.

Referenced by mslang::AffineTransformation::mult(), and TEST_F().

◆ prod_matrix_vector()

template<int Rows, int Cols>
KOKKOS_INLINE_FUNCTION ippl::Vector< double, static_cast< unsigned >(Rows)> prod_matrix_vector ( const matrix_t< Rows, Cols > &  m,
const ippl::Vector< double, static_cast< unsigned >(Cols)> &  v 
)

Definition at line 169 of file Matrix.h.

Referenced by mslang::AffineTransformation::transformTo().

◆ prod_vector()

template<int Rows, int Cols, class T >
KOKKOS_INLINE_FUNCTION T prod_vector ( const matrix_t< Rows, Cols > &  rotation,
const T vect 
)

◆ prod_vector_transpose()

template<int Rows, int Cols, class T >
KOKKOS_INLINE_FUNCTION T prod_vector_transpose ( const matrix_t< Rows, Cols > &  rotation,
const T vect 
)