VM2D  1.12
Vortex methods for 2D flows simulation
VMlib::nummatrix< T, n, m > Class Template Reference

Шаблонный класс, определяющий матрицу фиксированного размера
Фактически представляет собой массив, для которого определено большое количество различных операций.
Для доступа к элементам матрицы используется оператор [][]
Оператор[] имитирует возврат ссылки/константной ссылки на numvector. More...

#include <nummatrix.h>

Inheritance diagram for VMlib::nummatrix< T, n, m >:
Collaboration diagram for VMlib::nummatrix< T, n, m >:

Public Member Functions

numvector< T, m > & operator[] (size_t i)
 Перегрузка оператора "[]" доступа к строке More...
 
const numvector< T, m > & operator[] (size_t i) const
 Перегрузка оператора "[]" доступа к строке More...
 
template<typename P >
nummatrix< T, n, m > & operator*= (const P c)
 Перегрузка оператора "*=" домножения матрицы на действительное число More...
 
template<typename P >
nummatrix< T, n, m > & operator/= (const P c)
 Перегрузка оператора "/=" деления матрицы на действительное число More...
 
template<typename P >
nummatrix< T, n, m > & operator+= (const nummatrix< P, n, m > &y)
 Перегрузка оператора "+=" прибавления другой матрицы More...
 
template<typename P >
nummatrix< T, n, m > & operator-= (const nummatrix< P, n, m > &y)
 Перегрузка оператора "-=" вычитания другой матрицы More...
 
template<typename P >
auto operator+ (const nummatrix< P, n, m > &y) const -> nummatrix< typename std::remove_const< decltype(this->data()[0]+y.data()[0])>::type, n, m >
 Перегрузка оператора "+" сложения двух матриц More...
 
template<typename P >
auto operator- (const nummatrix< P, n, m > &y) const -> nummatrix< typename std::remove_const< decltype(this->data()[0]-y.data()[0])>::type, n, m >
 Перегрузка оператора "-" вычитания двух матриц More...
 
template<typename P >
auto operator* (const P c) const -> nummatrix< typename std::remove_const< decltype(this->data()[0]*c)>::type, n, m >
 Перегрузка оператора "*" умножения матрицы справа на число More...
 
nummatrix< T, n, m > operator- () const
 Перегрузка оператора "-" унарного минуса More...
 
template<typename P >
bool operator== (const nummatrix< P, n, m > &y) const
 Перегрузка оператора "==" логического равенства More...
 
template<typename P >
bool operator!= (const nummatrix< P, n, m > &y) const
 Перегрузка оператора "!=" логического неравенства More...
 
std::pair< size_t, size_t > size () const
 Вычисление размерности матрицы (числа строк и столбцов в ней) More...
 
auto norm1 () const -> typename std::remove_const< typename std::remove_reference< decltype(this->data()[0])>::type >::type
 Вычисление 1-нормы матрицы More...
 
auto norminf () const -> typename std::remove_const< typename std::remove_reference< decltype(this->data()[0])>::type >::type
 Вычисление inf-нормы матрицы More...
 
nummatrix< T, n, m > & toZero (T val=0.0)
 
nummatrix< T, n, n > & toIdentity ()
 
nummatrix< T, m, n > t () const
 
nummatrix< T, n, n > sym () const
 
 nummatrix ()
 Пустой конструктор More...
 
template<typename P >
 nummatrix (const P z)
 Конструктор, инициализирующий всю матрицу одной и той же константой More...
 
template<typename P >
 nummatrix (const nummatrix< P, n, m > &mtr)
 Конструктор копирования More...
 
template<typename P >
 nummatrix (const std::vector< std::vector< P >> &vec)
 Конструктор инициализации с помощью std::vector из std::vector. More...
 
template<typename P >
 nummatrix (const numvector< numvector< P, m >, n > &mtr)
 Конструктор инициализации при помощи numvector из numvector. More...
 
 nummatrix (const std::initializer_list< numvector< T, m >> &z)
 Нешаблонный конструктор инициализации списком из numvector. More...
 
template<typename P >
 nummatrix (const std::initializer_list< numvector< P, m >> &z)
 Шаблонный конструктор инициализации списком из numvector. More...
 
 operator std::vector< std::vector< T >> () const
 Приведение матрицы к типу std::vector из std::vector. More...
 
nummatrix< T, m, n > transpose () const
 Транспонирование More...
 
template<typename P >
auto operator& (const numvector< P, m > &x) -> numvector< typename std::remove_const< decltype(this->data()[0]*x[0])>::type, n >
 Умножение матрицы на вектор More...
 
template<typename P , size_t p>
auto operator& (const nummatrix< P, m, p > &B) const -> nummatrix< typename std::remove_const< decltype(this->data()[0]*B.data()[0])>::type, n, p >
 Умножение матрицы на матрицу More...
 

Public Attributes

elements
 STL member. More...
 

Detailed Description

template<typename T, size_t n, size_t m>
class VMlib::nummatrix< T, n, m >

Шаблонный класс, определяющий матрицу фиксированного размера
Фактически представляет собой массив, для которого определено большое количество различных операций.
Для доступа к элементам матрицы используется оператор [][]
Оператор[] имитирует возврат ссылки/константной ссылки на numvector.

Template Parameters
Tтип элементов матрицы
nчисло строк
mчисло столбцов
Author
Марчевский Илья Константинович 1.12
Date
14 января 2024 г.

Definition at line 62 of file nummatrix.h.

Constructor & Destructor Documentation

template<typename T, size_t n, size_t m>
VMlib::nummatrix< T, n, m >::nummatrix ( )
inline

Пустой конструктор

Definition at line 343 of file nummatrix.h.

343 { };

Here is the caller graph for this function:

template<typename T, size_t n, size_t m>
template<typename P >
VMlib::nummatrix< T, n, m >::nummatrix ( const P  z)
inlineexplicit

Конструктор, инициализирующий всю матрицу одной и той же константой

Template Parameters
Pтип данных инициализирующей константы
Parameters
[in]zзначение, которым инициализируются все компоненты матрицы

Definition at line 351 of file nummatrix.h.

352  {
353  for (size_t i = 0; i < n*m; ++i)
354  this->data()[i] = z;
355  }//nummatrix(...)
template<typename T, size_t n, size_t m>
template<typename P >
VMlib::nummatrix< T, n, m >::nummatrix ( const nummatrix< P, n, m > &  mtr)
inline

Конструктор копирования

Template Parameters
Pтип данных копируемой матрицы
nчисло строк
mчисло столбцов
Parameters
[in]mtrконстантная ссылка на копируемую матрицу

Definition at line 365 of file nummatrix.h.

366  {
367  for (size_t i = 0; i < n*m; ++i)
368  this->data()[i] = mtr.data()[i];
369  }//nummatrix(...)
template<typename T, size_t n, size_t m>
template<typename P >
VMlib::nummatrix< T, n, m >::nummatrix ( const std::vector< std::vector< P >> &  vec)
inline

Конструктор инициализации с помощью std::vector из std::vector.

Template Parameters
Pтип данных инициализирующего std::vector
nчисло строк
mчисло столбцов
Parameters
[in]vecконстантная ссылка на инициализирующий вектор

Definition at line 379 of file nummatrix.h.

380  {
381  if ((vec.size() != n) || (vec[0].size() != m))
382  throw;
383  for (size_t i = 0; i < n; ++i)
384  for (size_t j = 0; j < m; ++j)
385  this->data()[i*m + j] = vec[i][j];
386  }//nummatrix(...)
std::pair< size_t, size_t > size() const
Вычисление размерности матрицы (числа строк и столбцов в ней)
Definition: nummatrix.h:262

Here is the call graph for this function:

template<typename T, size_t n, size_t m>
template<typename P >
VMlib::nummatrix< T, n, m >::nummatrix ( const numvector< numvector< P, m >, n > &  mtr)
inline

Конструктор инициализации при помощи numvector из numvector.

Template Parameters
Pтип данных в инициализирующем numvector
nчисло строк
mчисло столбцов
Parameters
[in]mtrконстантная ссылка на numvector из numvector

Definition at line 396 of file nummatrix.h.

397  {
398  for (size_t i = 0; i < n; ++i)
399  for (size_t j = 0; j < m; ++j)
400  this->data()[i*m + j] = mtr[i][j];
401  }//nummatrix(...)

Here is the call graph for this function:

template<typename T, size_t n, size_t m>
VMlib::nummatrix< T, n, m >::nummatrix ( const std::initializer_list< numvector< T, m >> &  z)
inline

Нешаблонный конструктор инициализации списком из numvector.

Template Parameters
Tтип данных
Parameters
[in]zконстантная ссылка на список инициализации
Warning
Длина списка инициализации проверяется, при несовпадении бросается исключение

Definition at line 410 of file nummatrix.h.

411  {
412  if (z.size() != n)
413  throw;
414  for (size_t i = 0; i < n; ++i)
415  {
416  const numvector<T, m>& numv = *(z.begin() + i);
417  for (size_t j = 0; j < m; ++j)
418  this->data()[i*m + j] = numv[j];
419  }
420  }//nummatrix(...)
Шаблонный класс, определяющий вектор фиксированной длины Фактически представляет собой массив...
Definition: numvector.h:95
template<typename T, size_t n, size_t m>
template<typename P >
VMlib::nummatrix< T, n, m >::nummatrix ( const std::initializer_list< numvector< P, m >> &  z)
inline

Шаблонный конструктор инициализации списком из numvector.

Template Parameters
Pтип данных векторов в списке инициализации
Parameters
[in]zконстантная ссылка на список инициализации
Warning
Длина списка инициализации проверяется, при несовпадении бросается исключение

Definition at line 429 of file nummatrix.h.

430  {
431  if (z.size() != n)
432  throw;
433  for (size_t i = 0; i < n; ++i)
434  {
435  const numvector<T, m>& numv = *(z.begin() + i);
436  for (size_t j = 0; j < m; ++j)
437  this->data()[i*m + j] = numv[j];
438  }
439  }//nummatrix(...)
Шаблонный класс, определяющий вектор фиксированной длины Фактически представляет собой массив...
Definition: numvector.h:95

Member Function Documentation

template<typename T, size_t n, size_t m>
auto VMlib::nummatrix< T, n, m >::norm1 ( ) const -> typename std::remove_const<typename std::remove_reference<decltype(this->data()[0])>::type>::type
inline

Вычисление 1-нормы матрицы

Returns
1-норма матрицы

Definition at line 268 of file nummatrix.h.

269  {
270  std::vector<typename std::remove_const<typename std::remove_reference<decltype(this->data()[0])>::type>::type> ms(m, 0);
271  for (size_t i = 0; i < m; ++i)
272  for (size_t j = 0; j < n; ++j)
273  ms[i] += abs(this->data()[j*m + i]);
274  return std::max_element(ms.begin(), ms.end());
275  }
template<typename T, size_t n, size_t m>
auto VMlib::nummatrix< T, n, m >::norminf ( ) const -> typename std::remove_const<typename std::remove_reference<decltype(this->data()[0])>::type>::type
inline

Вычисление inf-нормы матрицы

Returns
inf-норма матрицы

Definition at line 280 of file nummatrix.h.

281  {
282  std::vector<typename std::remove_const<typename std::remove_reference<decltype(this->data()[0])>::type>::type> ms(n, 0);
283  for (size_t i = 0; i < n; ++i)
284  for (size_t j = 0; j < m; ++j)
285  ms[i] += abs(this->data()[i*m + j]);
286  return std::max_element(ms.begin(), ms.end());
287  }
template<typename T, size_t n, size_t m>
VMlib::nummatrix< T, n, m >::operator std::vector< std::vector< T >> ( ) const
inline

Приведение матрицы к типу std::vector из std::vector.

Returns
вектор типа std::vector, состоящий из std::vector, являющихся строками матрицы

Definition at line 446 of file nummatrix.h.

447  {
448  std::vector<std::vector<T>> vec;
449  vec.reserve(n);
450  for (size_t i = 0; i < n; ++i)
451  {
452  vec[i].reserve(m);
453  for (size_t j = 0; j < m; ++j)
454  vec[i].push_back(this->data()[i*m + j]);
455  }
456  return vec;
457  }
template<typename T, size_t n, size_t m>
template<typename P >
bool VMlib::nummatrix< T, n, m >::operator!= ( const nummatrix< P, n, m > &  y) const
inline

Перегрузка оператора "!=" логического неравенства

Template Parameters
Tтип данных
Pтип данных матрицы, с которой производится сравнение
nчисло строк
mчисло столбцов
Parameters
[in]yконстантная ссылка на сравниваемую матрицу
Returns
true, если матрицы различаются, false в противном случае

Definition at line 253 of file nummatrix.h.

254  {
255  return !(*this == y);
256  }//operator!=
template<typename T, size_t n, size_t m>
template<typename P >
auto VMlib::nummatrix< T, n, m >::operator& ( const numvector< P, m > &  x) -> numvector<typename std::remove_const<decltype(this->data()[0] * x[0])>::type, n>
inline

Умножение матрицы на вектор

Template Parameters
Pтип данных вектора
nчисло строк матрицы
mчисло столбцов матрицы и длина вектора
Parameters
[in]xконстантная ссылка на вектор
Returns
вектор — результат умножения матрицы на вектор

Definition at line 479 of file nummatrix.h.

481  {
482  numvector<typename std::remove_const<decltype(this->data()[0] * x[0])>::type, n> res;
483 
484  for (size_t i = 0; i < n; ++i)
485  res[i] = (*this)[i] & x;
486 
487  return res;
488  }//operator&
Шаблонный класс, определяющий вектор фиксированной длины Фактически представляет собой массив...
Definition: numvector.h:95
template<typename T, size_t n, size_t m>
template<typename P , size_t p>
auto VMlib::nummatrix< T, n, m >::operator& ( const nummatrix< P, m, p > &  B) const -> nummatrix<typename std::remove_const<decltype(this->data()[0] * B.data()[0])>::type, n, p>
inline

Умножение матрицы на матрицу

Template Parameters
Pтип данных матрицы - второго множителя
mчисло строк матрицы - второго множителя
pчисло столбцов матрицы - второго множителя
Parameters
[in]Bконстантная ссылка на матрицу
Returns
вектор — результат умножения матрицы на вектор
Todo:
напрашивается сразу инициализация нулем, а не последующее зануление всей матрицы

Definition at line 498 of file nummatrix.h.

500  {
502  nummatrix<typename std::remove_const<decltype(this->data()[0] * B.data()[0])>::type, n, p> res;
503 
504  for (size_t i = 0; i < n; ++i)
505  for (size_t j = 0; j < p; ++j)
506  res[i][j] = 0;
507 
508  for (size_t i = 0; i < n; ++i)
509  for (size_t j = 0; j < p; ++j)
510  for (size_t k = 0; k < m; ++k)
511  res[i][j] += (*this)[i][k] * B[k][j];
512  return res;
513  }//operator&
Шаблонный класс, определяющий матрицу фиксированного размера Фактически представляет собой массив...
Definition: nummatrix.h:62
template<typename T, size_t n, size_t m>
template<typename P >
auto VMlib::nummatrix< T, n, m >::operator* ( const P  c) const -> nummatrix<typename std::remove_const<decltype(this->data()[0] * c)>::type, n, m>
inline

Перегрузка оператора "*" умножения матрицы справа на число

Template Parameters
Pтип данных
Parameters
[in]cчисло-множитель
Returns
результат умножения вектора на число, приведенный к соответствующему типу

Definition at line 201 of file nummatrix.h.

202  {
203  nummatrix<typename std::remove_const<decltype(this->data()[0] * c)>::type, n, m> res;
204  for (size_t i = 0; i < n*m; ++i)
205  res.data()[i] = c * this->data()[i];
206  return res;
207  }//operator*
Шаблонный класс, определяющий матрицу фиксированного размера Фактически представляет собой массив...
Definition: nummatrix.h:62
template<typename T, size_t n, size_t m>
template<typename P >
nummatrix<T, n, m>& VMlib::nummatrix< T, n, m >::operator*= ( const P  c)
inline

Перегрузка оператора "*=" домножения матрицы на действительное число

Template Parameters
Tтип данных
Pтип множителя
nчисло строк
mчисло столбцов
Parameters
[in]cчисловой множитель типа, приводимого к типу компонент матрицы
Returns
ссылка на саму себя после домножения на число

Definition at line 100 of file nummatrix.h.

101  {
102  for (size_t i = 0; i < n*m; ++i)
103  this->data()[i] *= c;
104  return *this;
105  }//operator*=
template<typename T, size_t n, size_t m>
template<typename P >
auto VMlib::nummatrix< T, n, m >::operator+ ( const nummatrix< P, n, m > &  y) const -> nummatrix<typename std::remove_const<decltype(this->data()[0] + y.data()[0])>::type, n, m>
inline

Перегрузка оператора "+" сложения двух матриц

Template Parameters
Tтип данных
Pтип данных матрицы - второго слагаемого
nчисло строк
mчисло столбцов
Parameters
[in]yконстантная ссылка на прибавляемую матрицу
Returns
результат сложения двух матриц, приведенный к нужному типу

Definition at line 168 of file nummatrix.h.

169  {
170  nummatrix<typename std::remove_const<decltype(this->data()[0] + y.data()[0])>::type, n, m> res;
171  for (size_t i = 0; i < n*m; ++i)
172  res.data()[i] = this->data()[i] + y.data()[i];
173  return res;
174  }//operator+
Шаблонный класс, определяющий матрицу фиксированного размера Фактически представляет собой массив...
Definition: nummatrix.h:62
template<typename T, size_t n, size_t m>
template<typename P >
nummatrix<T, n, m>& VMlib::nummatrix< T, n, m >::operator+= ( const nummatrix< P, n, m > &  y)
inline

Перегрузка оператора "+=" прибавления другой матрицы

Template Parameters
Tтип данных
Pтип данных прибавляемой матрицы
nчисло строк
mчисло столбцов
Parameters
[in]yконстантная ссылка на прибавляемую матрицу
Returns
ссылка на саму себя после сложения с другой матрицей

Definition at line 134 of file nummatrix.h.

135  {
136  for (size_t i = 0; i < n*m; ++i)
137  this->data()[i] += y.data()[i];
138  return *this;
139  }//operator+=
template<typename T, size_t n, size_t m>
template<typename P >
auto VMlib::nummatrix< T, n, m >::operator- ( const nummatrix< P, n, m > &  y) const -> nummatrix<typename std::remove_const<decltype(this->data()[0] - y.data()[0])>::type, n, m>
inline

Перегрузка оператора "-" вычитания двух матриц

Template Parameters
Tтип данных
Pтип данных матрицы - вычитаемого
nчисло строк
mчисло столбцов
Parameters
[in]yконстантная ссылка на вычитаемую матрицу
Returns
результат вычитания двух матриц, приведенный к нужному типу

Definition at line 186 of file nummatrix.h.

187  {
188  nummatrix<typename std::remove_const<decltype(this->data()[0] - y.data()[0])>::type, n, m> res;
189  for (size_t i = 0; i < n*m; ++i)
190  res.data()[i] = this->data()[i] - y.data()[i];
191  return res;
192  }//operator-
Шаблонный класс, определяющий матрицу фиксированного размера Фактически представляет собой массив...
Definition: nummatrix.h:62
template<typename T, size_t n, size_t m>
nummatrix<T, n, m> VMlib::nummatrix< T, n, m >::operator- ( ) const
inline

Перегрузка оператора "-" унарного минуса

Template Parameters
Tтип данных
nчисло строк
mчисло столбцов
Returns
противоположная матрица

Definition at line 217 of file nummatrix.h.

218  {
219  nummatrix<T, n, m> res;
220  for (size_t i = 0; i < n*m; ++i)
221  res.data()[i] = -this->data()[i];
222  return res;
223  }//operator-
Шаблонный класс, определяющий матрицу фиксированного размера Фактически представляет собой массив...
Definition: nummatrix.h:62
template<typename T, size_t n, size_t m>
template<typename P >
nummatrix<T, n, m>& VMlib::nummatrix< T, n, m >::operator-= ( const nummatrix< P, n, m > &  y)
inline

Перегрузка оператора "-=" вычитания другой матрицы

Template Parameters
Tтип данных
Pтип данных вычитаемой матрицы
nчисло строк
mчисло столбцов
Parameters
[in]yконстантная ссылка на вычитаемую матрицу
Returns
ссылка на саму себя после вычитания другой матрицы

Definition at line 151 of file nummatrix.h.

152  {
153  for (size_t i = 0; i < n*m; ++i)
154  this->data()[i] -= y.data()[i];
155  return *this;
156  }//operator-=
template<typename T, size_t n, size_t m>
template<typename P >
nummatrix<T, n, m>& VMlib::nummatrix< T, n, m >::operator/= ( const P  c)
inline

Перегрузка оператора "/=" деления матрицы на действительное число

Template Parameters
Tтип данных
Pтип множителя
nчисло строк
mчисло столбцов
Parameters
[in]cчисловой делитель типа, приводимого к типу компонент матрицы
Returns
ссылка на саму себя после деления на число

Definition at line 117 of file nummatrix.h.

118  {
119  for (size_t i = 0; i < n*m; ++i)
120  this->data()[i] /= c;
121  return *this;
122  }//operator/=
template<typename T, size_t n, size_t m>
template<typename P >
bool VMlib::nummatrix< T, n, m >::operator== ( const nummatrix< P, n, m > &  y) const
inline

Перегрузка оператора "==" логического равенства

Template Parameters
Tтип данных
Pтип данных матрицы, с которой производится сравнение
nчисло строк
mчисло столбцов
Parameters
[in]yконстантная ссылка на сравниваемую матрицу
Returns
true, если матрицы одинаковые, false в противном случае

Definition at line 235 of file nummatrix.h.

236  {
237  for (size_t i = 0; i < n*m; ++i)
238  if (this->data()[i] != y.data()[i])
239  return false;
240  return true;
241  }//operator==
template<typename T, size_t n, size_t m>
numvector<T, m>& VMlib::nummatrix< T, n, m >::operator[] ( size_t  i)
inline

Перегрузка оператора "[]" доступа к строке

Template Parameters
Tтип данных
Parameters
[in]iномер строки, к которой происходит обращение
Returns
Ссылка на numvector, соответствующий i-й строке матрицы

Definition at line 74 of file nummatrix.h.

75  {
76  return *(reinterpret_cast<numvector<T, m>*>(this->data() + (i*m)));
77  }
Шаблонный класс, определяющий вектор фиксированной длины Фактически представляет собой массив...
Definition: numvector.h:95
template<typename T, size_t n, size_t m>
const numvector<T, m>& VMlib::nummatrix< T, n, m >::operator[] ( size_t  i) const
inline

Перегрузка оператора "[]" доступа к строке

Template Parameters
Tтип данных
Parameters
[in]iномер строки, к которой происходит обращение
Returns
Константная сылка на numvector, соответствующий i-й строке матрицы

Definition at line 84 of file nummatrix.h.

85  {
86  return *(reinterpret_cast<const numvector<T, m>*>(this->data() + (i*m)));
87  }
Шаблонный класс, определяющий вектор фиксированной длины Фактически представляет собой массив...
Definition: numvector.h:95
template<typename T, size_t n, size_t m>
std::pair<size_t, size_t> VMlib::nummatrix< T, n, m >::size ( ) const
inline

Вычисление размерности матрицы (числа строк и столбцов в ней)

Returns
размерность матрицы (в виде пары чисел - число строк, число столбцов)

Definition at line 262 of file nummatrix.h.

262 { return{ n, m }; }

Here is the caller graph for this function:

template<typename T, size_t n, size_t m>
nummatrix<T, n, n> VMlib::nummatrix< T, n, m >::sym ( ) const
inline

Симметрирование матрицы

Template Parameters
Tтип данных
nчисло строк и столбцов
Returns
симметричную часть матрицы

Definition at line 337 of file nummatrix.h.

338  {
339  return (*this + this->t())*0.5;
340  }
nummatrix< T, m, n > t() const
Definition: nummatrix.h:324

Here is the call graph for this function:

template<typename T, size_t n, size_t m>
nummatrix<T, m, n> VMlib::nummatrix< T, n, m >::t ( ) const
inline

Транспонирование матрицы

Template Parameters
Tтип данных
nчисло строк
mчисло столбцов
Returns
транспонированную матрицу

Definition at line 324 of file nummatrix.h.

325  {
326  nummatrix<T, m, n> res;
327  for (size_t i = 0; i < n; ++i)
328  for (size_t j = 0; j < m; ++j)
329  res[j][i] = (*this)[i][j];
330  }
Шаблонный класс, определяющий матрицу фиксированного размера Фактически представляет собой массив...
Definition: nummatrix.h:62

Here is the caller graph for this function:

template<typename T, size_t n, size_t m>
nummatrix<T, n, n>& VMlib::nummatrix< T, n, m >::toIdentity ( )
inline

Установка матрицы в единичную

Template Parameters
Tтип данных
nчисло строк и столбцов
Returns
ссылка на саму матрицу

Definition at line 310 of file nummatrix.h.

311  {
312  for (size_t i = 0; i < n; ++i)
313  for (size_t j = 0; j < m; ++j)
314  this->data()[i*m + j] = (i == j) ? 1 : 0;
315  return *this;
316  }
template<typename T, size_t n, size_t m>
nummatrix<T, n, m>& VMlib::nummatrix< T, n, m >::toZero ( val = 0.0)
inline

Установка всех компонент матрицы в константу (по умолчанию — нуль)

Template Parameters
Tтип данных
nчисло строк
mчисло столбцов
Parameters
[in]valконстанта, значению которой приравниваются все компоненты матрицы (по умолчанию 0.0)
Returns
ссылка на саму матрицу

Definition at line 297 of file nummatrix.h.

298  {
299  for (size_t i = 0; i < n*m; ++i)
300  this->data()[i] = val;
301  return *this;
302  }
template<typename T, size_t n, size_t m>
nummatrix<T, m, n> VMlib::nummatrix< T, n, m >::transpose ( ) const
inline

Транспонирование

Definition at line 461 of file nummatrix.h.

462  {
463  nummatrix<T, m, n> res;
464  for (size_t i = 0; i < n; ++i)
465  for (size_t j = 0; j < m; ++j)
466  res[j][i] = this->data()[i*m + j];
467  return res;
468  }//Transpose(...)
Шаблонный класс, определяющий матрицу фиксированного размера Фактически представляет собой массив...
Definition: nummatrix.h:62

Member Data Documentation

T std::array< T >::elements
inherited

STL member.


The documentation for this class was generated from the following file: