11#ifndef __stir_numerics_MatrixFunction_H__
12#define __stir_numerics_MatrixFunction_H__
43inline elemT
inner_product(
const Array<1, elemT>& v1,
const Array<1, elemT>& v2);
49inline double angle(
const Array<1, elemT>& v1,
const Array<1, elemT>& v2);
63inline Array<1, elemT>
matrix_multiply(
const Array<2, elemT>& m,
const Array<1, elemT>& vec);
69template <
int dimension,
class elemT>
114template <
int dimension,
class elemT>
defines the stir::Array class for multi-dimensional (numeric) arrays
This file declares class stir::BasicCoordinate and some functions acting on stir::BasicCoordinate obj...
Implementation of functions for matrices.
This class defines multi-dimensional (numeric) arrays.
Definition Array.h:78
class BasicCoordinate<int num_dimensions, typename coordT> defines num_dimensions -dimensional coordi...
Definition BasicCoordinate.h:57
coordT inner_product(const BasicCoordinate< num_dimensions, coordT > &p1, const BasicCoordinate< num_dimensions, coordT > &p2)
compute sum_i p1[i] * p2[i]
Definition BasicCoordinate.inl:408
double angle(const BasicCoordinate< num_dimensions, coordT > &p1, const BasicCoordinate< num_dimensions, coordT > &p2)
compute angle between 2 directions
Definition BasicCoordinate.inl:440
Array< 2, elemT > diagonal_matrix(const unsigned dimension, const elemT value)
construct a diagonal matrix with all elements on the diagonal equal
Definition MatrixFunction.inl:182
Array< 2, elemT > matrix_transpose(const Array< 2, elemT > &m)
matrix transposition
Definition MatrixFunction.inl:160
Array< 1, elemT > matrix_multiply(const Array< 2, elemT > &m, const Array< 1, elemT > &vec)
matrix with vector multiplication
Definition MatrixFunction.inl:106