VM2D  1.12
Vortex methods for 2D flows simulation
VMlib::v3D Class Reference

Класс, опеделяющий двумерный вектор More...

#include <v3D.h>

Inheritance diagram for VMlib::v3D:
Collaboration diagram for VMlib::v3D:

Public Member Functions

 v3D ()
 Пустой конструктор More...
 
 v3D (const numvector< double, 3 > &_r)
 Конструктор и приведение типа из numvector<double, 3> More...
 
 v3D (const v3D &_r)
 Конструктор копирования More...
 
 v3D (const std::initializer_list< double > &z)
 Конструктор инициализации списком More...
 
 ~v3D ()
 Деструктор More...
 
v3D rotated (const double angle, const v3D &axis) const
 Поворот вектора на произвольный угол против часовой стрелки (по умолчанию 90 градусов) More...
 
double & operator[] (size_t i)
 
const double & operator[] (size_t i) const
 
size_t size () const
 
auto operator& (const numvector< P, n > &y) const -> typename std::remove_const< decltype(this->data[0]*y[0])>::type
 Оператор "&" скалярного умножения More...
 
auto operator^ (const numvector< P, 3 > &y) const -> numvector< typename std::remove_const< decltype(this->data[1]*y[2])>::type, 3 >
 Оператор "^" векторного произведения More...
 
auto operator^ (const numvector< P, 2 > &y) const -> typename std::remove_const< decltype(this->data[0]*y[1])>::type
 Оператор "^" вычисления третьей компоненты векторного произведения More...
 
numvector< double, n > & operator*= (P c)
 Оператор "*=" домножения вектора на действительное число More...
 
numvector< double, n > & operator/= (P c)
 Оператор "/=" деления вектора на действительное число More...
 
numvector< double, n > & operator+= (const numvector< P, n > &y)
 Оператор "+=" прибавления другого вектора More...
 
numvector< double, n > & operator-= (const numvector< P, n > &y)
 Оператор "-=" вычитания другого вектора More...
 
auto operator+ (const numvector< P, n > &y) const -> numvector< typename std::remove_const< decltype(this->data[0]+y[0])>::type, n >
 Оператор "+" сложения двух векторов More...
 
const numvector< double, n > & operator+ () const
 Оператор "+" унарного плюса More...
 
auto operator- (const numvector< P, n > &y) const -> numvector< typename std::remove_const< decltype(this->data[0]-y[0])>::type, n >
 Оператор "-" вычитания двух векторов More...
 
numvector< double, n > operator- () const
 Оператор "-" унарного минуса More...
 
auto operator* (const P c) const -> numvector< typename std::remove_const< decltype(this->data[0]*c)>::type, n >
 Оператор "*" умножения вектора на число (вектор слева, число справа) More...
 
bool operator== (const numvector< P, n > &y) const
 Оператор "==" логического равенства More...
 
bool operator!= (const numvector< P, n > &y) 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...
 
length () const
 Вычисление 2-нормы (длины) вектора More...
 
auto length2 () const -> typename std::remove_const< typename std::remove_reference< decltype(this->data[0])>::type >::type
 Вычисление квадрата нормы (длины) вектора More...
 
auto unit (P newlen=1) const -> numvector< typename std::remove_const< decltype(this->data[0]*newlen)>::type, n >
 Вычисление орта вектора или вектора заданной длины, коллинеарного данному More...
 
void normalize (P newlen=1.0)
 Нормирование вектора на заданную длину More...
 
size_t member (const P &s) const
 Проверка вхождения элемента в вектор More...
 
 operator std::set< P > () const
 Приведение вектора к типу std::set. More...
 
 operator std::vector< P > () const
 Приведение вектора к типу std::vector. More...
 
numvector< double, n > rotateLeft (size_t k) const
 "Вращение" вектора на несколько позиций влево More...
 
numvector< double, 2 > kcross () const
 Геометрический поворот двумерного вектора на 90 градусов More...
 
numvector< double, n > & toZero (P val=0)
 Установка всех компонент вектора в константу (по умолчанию — нуль) More...
 
auto dist2To (const numvector< P, n > &y) const -> typename std::remove_const< decltype(this->data[0]-y[0])>::type
 Вычисление квадрата расстояния до другой точки More...
 
distTo (const numvector< P, n > &y)
 Вычисление расстояния между двумя точками More...
 

Protected Attributes

double data [n]
 

Detailed Description

Класс, опеделяющий двумерный вектор

Наследуется от numvector<double, 3>, имеет дополнительные возможности:

  • поворота на заданный угол вокруг заданного направления;
  • генерируется MPI-описатель для возможности его пересылки как единичного объекта.
Author
Марчевский Илья Константинович 1.12
Date
14 января 2024 г.

Definition at line 55 of file v3D.h.

Constructor & Destructor Documentation

VMlib::v3D::v3D ( )
inline

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

Definition at line 65 of file v3D.h.

65 { };
v3D::v3D ( const numvector< double, 3 > &  _r)

Конструктор и приведение типа из numvector<double, 3>

Parameters
[in]_rконстантная ссылка на копируемый объект типа numvector<double, 3>

Definition at line 45 of file v3D.cpp.

46 {
47  data[0] = _r[0];
48  data[1] = _r[1];
49  data[2] = _r[2];
50 }//v3D(...)
v3D::v3D ( const v3D _r)

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

Parameters
[in]_rконстантная ссылка на копируемый вектор

Definition at line 54 of file v3D.cpp.

55 {
56  data[0] = _r[0];
57  data[1] = _r[1];
58  data[2] = _r[2];
59 }//v3D(...)
v3D::v3D ( const std::initializer_list< double > &  z)

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

Parameters
[in]zконстантная ссылка на список инициализации из чисел типа double
Warning
Длина списка инициализации не проверяется, от него берутся только 3 первых элемента

Definition at line 63 of file v3D.cpp.

64 {
65  for (size_t i = 0; i < 3; ++i)
66  data[i] = *(z.begin() + i);
67 }//v3D(...)
VMlib::v3D::~v3D ( )
inline

Деструктор

Definition at line 86 of file v3D.h.

86 { };

Here is the call graph for this function:

Member Function Documentation

auto VMlib::numvector< double , n >::dist2To ( const numvector< P, n > &  y) const-> typename std::remove_const<decltype(this->data[0] - y[0])>::type
inlineinherited

Вычисление квадрата расстояния до другой точки

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

Definition at line 538 of file numvector.h.

539  {
540  return (*this - y).length2();
541  }//dist2To(...)
R VMlib::numvector< double , n >::distTo ( const numvector< P, n > &  y)
inlineinherited

Вычисление расстояния между двумя точками

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

Definition at line 551 of file numvector.h.

552  {
553  R res = (*this - y) & (*this - y);
554  return sqrt(res);
555  }//distTo(...)
numvector<double , 2> VMlib::numvector< double , n >::kcross ( ) const
inlineinherited

Геометрический поворот двумерного вектора на 90 градусов

Исходный вектор при этом не изменяется
Эквивалентно умножению слева на орт третьей оси, т.е. \( \vec k \times \vec r \)

Template Parameters
Tтип данных
Returns
новый двумерный вектор, полученный поворотом исходного на 90 градусов

Definition at line 507 of file numvector.h.

508  {
509  numvector<T, 2> res;
510  res[0] = -this->data[1];
511  res[1] = this->data[0];
512  return res;
513  }//kcross()
Шаблонный класс, определяющий вектор фиксированной длины Фактически представляет собой массив...
Definition: numvector.h:95
P VMlib::numvector< double , n >::length ( ) const
inlineinherited

Вычисление 2-нормы (длины) вектора

Корень из скалярного квадрата вектора

Template Parameters
Pтип результата (по умолчанию double)
Returns
норма (длина) вектора

Definition at line 371 of file numvector.h.

372  {
373  P res = *this & *this;
374  return sqrt(res);
375  }//length()
auto VMlib::numvector< double , n >::length2 ( ) const-> typename std::remove_const<typename std::remove_reference<decltype(this->data[0])>::type>::type
inlineinherited

Вычисление квадрата нормы (длины) вектора

Скалярный квадрат вектора

Returns
квадрат нормы (длины) вектора того же типа, что и компоненты вектора

Definition at line 383 of file numvector.h.

384  {
385  return (*this & *this);
386  }//length2()
size_t VMlib::numvector< double , n >::member ( const P &  s) const
inlineinherited

Проверка вхождения элемента в вектор

Template Parameters
Pтип данных проверяемого элемента
Parameters
[in]sпроверяемый элемент
Returns
позиция первого вхождения элемента s; если не входит — возвращает (-1), приведенный к типу size_t

Definition at line 430 of file numvector.h.

431  {
432  for (size_t i = 0; i < n; ++i)
433  if (this->data[i] == s)
434  return i;
435 
436  return static_cast<size_t>(-1);
437  }//member(...)
auto VMlib::numvector< double , n >::norm1 ( ) const-> typename std::remove_const<typename std::remove_reference<decltype(this->data[0])>::type>::type
inlineinherited

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

Сумма модулей компонент вектора

Returns
1-норма вектора

Definition at line 337 of file numvector.h.

338  {
339  typename std::remove_const<typename std::remove_reference<decltype(this->data[0])>::type>::type res = 0;
340  for (size_t i = 0; i < n; ++i)
341  res += abs(this->data[i]);
342  return res;
343  }//norm1()
void VMlib::numvector< double , n >::normalize ( newlen = 1.0)
inlineinherited

Нормирование вектора на заданную длину

Если в качестве новой длины указано отрицательное число — у вектора будет изменено направление

Template Parameters
Pтип числа, задающего длину вектора
Parameters
[in]newlenновая длина вектора (по умолчанию 1.0)
Warning
Работает корректно только для векторов с компонентами типа float и double

Definition at line 416 of file numvector.h.

417  {
418  auto ilen = static_cast<decltype(this->data[0] * newlen)>(newlen / std::max(this->length(), 1e-16));
419  *this *= ilen;
420  }//normalize(...)
P length() const
Вычисление 2-нормы (длины) вектора
Definition: numvector.h:371
auto VMlib::numvector< double , n >::norminf ( ) const-> typename std::remove_const<typename std::remove_reference<decltype(this->data[0])>::type>::type
inlineinherited

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

Наибольшая по модулю компонента вектора

Returns
inf-норма вектора

Definition at line 351 of file numvector.h.

352  {
353  typename std::remove_const<typename std::remove_reference<decltype(this->data[0])>::type>::type res = 0;
354  for (size_t i = 0; i < n; ++i)
355  {
356  if (abs(this->data[i]) > res)
357  res = abs(this->data[i]);
358  }
359  return res;
360  }//norminf()
VMlib::numvector< double , n >::operator std::set< P > ( ) const
inlineinherited

Приведение вектора к типу std::set.

Template Parameters
Pтип данных компонент множества
Returns
множество типа std::set, состоящее из тех же элементов, что исходный вектор

Definition at line 446 of file numvector.h.

447  {
448  std::set<P> newset;
449  for (size_t i = 0; i < n; ++i)
450  newset.insert(this->data[i]);
451  return newset;
452  }//toSet()
VMlib::numvector< double , n >::operator std::vector< P > ( ) const
inlineinherited

Приведение вектора к типу std::vector.

Template Parameters
Pтип данных компонент std::vector
Returns
вектор типа std::vector, состоящий из тех же элементов, что исходный вектор

Definition at line 460 of file numvector.h.

461  {
462  std::vector<P> vec;
463  vec.reserve(n);
464  for (size_t i = 0; i < n; ++i)
465  vec.push_back(this->data[i]);
466  return vec;
467  }
bool VMlib::numvector< double , n >::operator!= ( const numvector< P, n > &  y) const
inlineinherited

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

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

Definition at line 324 of file numvector.h.

325  {
326  return !(*this == y);
327  }//operator!=(...)
auto VMlib::numvector< double , n >::operator& ( const numvector< P, n > &  y) const-> typename std::remove_const<decltype(this->data[0] * y[0])>::type
inlineinherited

Оператор "&" скалярного умножения

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

Definition at line 123 of file numvector.h.

124  {
125  typename std::remove_const<decltype(this->data[0] * y[0])>::type res = 0;
126  for (size_t j = 0; j < n; ++j)
127  res += this->data[j] * y[j];
128  return res;
129  }//operator&(...)
auto VMlib::numvector< double , n >::operator* ( const P  c) const-> numvector<typename std::remove_const<decltype(this->data[0] * c)>::type, n>
inlineinherited

Оператор "*" умножения вектора на число (вектор слева, число справа)

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

Definition at line 267 of file numvector.h.

268  {
269  numvector<typename std::remove_const<decltype(this->data[0] * c)>::type, n> res;
270  for (size_t i = 0; i < n; ++i)
271  res[i] = c * this->data[i];
272  return res;
273  }//operator*(...)
Шаблонный класс, определяющий вектор фиксированной длины Фактически представляет собой массив...
Definition: numvector.h:95
numvector<double , n>& VMlib::numvector< double , n >::operator*= ( c)
inlineinherited

Оператор "*=" домножения вектора на действительное число

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

Definition at line 172 of file numvector.h.

173  {
174  for (size_t i = 0; i < n; ++i)
175  this->data[i] *= c;
176  return *this;
177  }//operator*=(...)
auto VMlib::numvector< double , n >::operator+ ( const numvector< P, n > &  y) const-> numvector<typename std::remove_const<decltype(this->data[0] + y[0])>::type, n>
inlineinherited

Оператор "+" сложения двух векторов

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

Definition at line 235 of file numvector.h.

236  {
237  numvector<typename std::remove_const<decltype(this->data[0] + y[0])>::type, n> res;
238  for (size_t i = 0; i < n; ++i)
239  res[i] = this->data[i] + y[i];
240  return res;
241  }//operator+(...)
Шаблонный класс, определяющий вектор фиксированной длины Фактически представляет собой массив...
Definition: numvector.h:95
const numvector<double , n>& VMlib::numvector< double , n >::operator+ ( ) const
inlineinherited

Оператор "+" унарного плюса

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

Definition at line 295 of file numvector.h.

296  {
297  return *this;
298  }//operator+()
numvector<double , n>& VMlib::numvector< double , n >::operator+= ( const numvector< P, n > &  y)
inlineinherited

Оператор "+=" прибавления другого вектора

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

Definition at line 204 of file numvector.h.

205  {
206  for (size_t i = 0; i < n; ++i)
207  this->data[i] += y[i];
208  return *this;
209  }//operator+=(...)
auto VMlib::numvector< double , n >::operator- ( const numvector< P, n > &  y) const-> numvector<typename std::remove_const<decltype(this->data[0] - y[0])>::type, n>
inlineinherited

Оператор "-" вычитания двух векторов

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

Definition at line 251 of file numvector.h.

252  {
253  numvector<typename std::remove_const<decltype(this->data[0] - y[0])>::type, n> res;
254  for (size_t i = 0; i < n; ++i)
255  res[i] = this->data[i] - y[i];
256  return res;
257  }//operator-(...)
Шаблонный класс, определяющий вектор фиксированной длины Фактически представляет собой массив...
Definition: numvector.h:95
numvector<double , n> VMlib::numvector< double , n >::operator- ( ) const
inlineinherited

Оператор "-" унарного минуса

Template Parameters
Tтип данных компонент вектора
nдлина вектора
Returns
противоположный вектор

Definition at line 281 of file numvector.h.

282  {
283  numvector<T, n> res;
284  for (size_t i = 0; i < n; ++i)
285  res[i] = -this->data[i];
286  return res;
287  }//operator-()
Шаблонный класс, определяющий вектор фиксированной длины Фактически представляет собой массив...
Definition: numvector.h:95
numvector<double , n>& VMlib::numvector< double , n >::operator-= ( const numvector< P, n > &  y)
inlineinherited

Оператор "-=" вычитания другого вектора

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

Definition at line 220 of file numvector.h.

221  {
222  for (size_t i = 0; i < n; ++i)
223  this->data[i] -= y[i];
224  return *this;
225  }//operator-=(...)
numvector<double , n>& VMlib::numvector< double , n >::operator/= ( c)
inlineinherited

Оператор "/=" деления вектора на действительное число

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

Definition at line 188 of file numvector.h.

189  {
190  for (size_t i = 0; i < n; ++i)
191  this->data[i] /= c;
192  return *this;
193  }//operator/=(...)
bool VMlib::numvector< double , n >::operator== ( const numvector< P, n > &  y) const
inlineinherited

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

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

Definition at line 308 of file numvector.h.

309  {
310  for (size_t i = 0; i < n; ++i)
311  if (this->data[i] != y[i])
312  return false;
313  return true;
314  }//operator==(...)
double & VMlib::numvector< double , n >::operator[] ( size_t  i)
inlineinherited

Definition at line 101 of file numvector.h.

102  {
103  return this->data[i];
104  }
const double & VMlib::numvector< double , n >::operator[] ( size_t  i) const
inlineinherited

Definition at line 106 of file numvector.h.

107  {
108  return this->data[i];
109  }
auto VMlib::numvector< double , n >::operator^ ( const numvector< P, 3 > &  y) const-> numvector<typename std::remove_const<decltype(this->data[1] * y[2])>::type, 3>
inlineinherited

Оператор "^" векторного произведения

Определен только для трехмерных векторов

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

Definition at line 140 of file numvector.h.

141  {
142  numvector<typename std::remove_const<decltype(this->data[1] * y[2])>::type, 3> vec;
143  vec[0] = this->data[1] * y[2] - this->data[2] * y[1];
144  vec[1] = this->data[2] * y[0] - this->data[0] * y[2];
145  vec[2] = this->data[0] * y[1] - this->data[1] * y[0];
146  return vec;
147  }//operator^(...)
Шаблонный класс, определяющий вектор фиксированной длины Фактически представляет собой массив...
Definition: numvector.h:95
auto VMlib::numvector< double , n >::operator^ ( const numvector< P, 2 > &  y) const-> typename std::remove_const<decltype(this->data[0] * y[1])>::type
inlineinherited

Оператор "^" вычисления третьей компоненты векторного произведения

Определен только для двумерных векторов

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

Definition at line 158 of file numvector.h.

159  {
160  return (this->data[0] * y[1] - this->data[1] * y[0]);
161  }//operator^(...)
v3D v3D::rotated ( const double  angle,
const v3D axis 
) const

Поворот вектора на произвольный угол против часовой стрелки (по умолчанию 90 градусов)

Parameters
[in]angleугол поворота в радианах
[in]axisконстантная ссылка на v3D, задающий ось поворота
Returns
новый вектор, полученный поворотом старого
Todo:
Реализовать!
Warning
Пока возвращает себя!

Definition at line 71 of file v3D.cpp.

72 {
75 
76  v3D res = *this;
77  //double cosa = cos(angle);
78  //double sina = sin(angle);
79  //
80  //res[0] = r[0] * cosa - r[1] * sina;
81  //res[1] = r[0] * sina + r[1] * cosa;
82  return res;
83 }//rotated(...)
Класс, опеделяющий двумерный вектор
Definition: v3D.h:55

Here is the caller graph for this function:

numvector<double , n> VMlib::numvector< double , n >::rotateLeft ( size_t  k) const
inlineinherited

"Вращение" вектора на несколько позиций влево

Исходный вектор при этом не изменяется

Template Parameters
Tтип данных компонент вектора
nдлина вектора
Parameters
[in]kколичество позиций, на которые производится "вращение"
Returns
вектор, полученный "вращением" исходного на k позиций влево

Definition at line 478 of file numvector.h.

479  {
480  if (k > n)
481  throw;
482 
483  if (k == n)
484  return *this;
485 
486  numvector<T, n> res;
487 
488  //for (size_t i = 0; i < n; ++i)
489  // res[i] = r[(i + k) % n];
490 
491  for (size_t i = 0; i < n - k; ++i)
492  res[i] = this->data[i + k];
493  for (size_t i = n - k; i < n; ++i)
494  res[i] = this->data[i + k - n];
495  return res;
496  }//rotateLeft(...)
Шаблонный класс, определяющий вектор фиксированной длины Фактически представляет собой массив...
Definition: numvector.h:95
size_t VMlib::numvector< double , n >::size ( ) const
inlineinherited

Definition at line 111 of file numvector.h.

112  {
113  return n;
114  }
numvector<double , n>& VMlib::numvector< double , n >::toZero ( val = 0)
inlineinherited

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

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

Definition at line 524 of file numvector.h.

525  {
526  for (size_t i = 0; i < n; ++i)
527  this->data[i] = val;
528  return *this;
529  }
auto VMlib::numvector< double , n >::unit ( newlen = 1) const-> numvector<typename std::remove_const<decltype(this->data[0] * newlen)>::type, n>
inlineinherited

Вычисление орта вектора или вектора заданной длины, коллинеарного данному

Если в качестве новой длины указано отрицательное число — вектор будет противоположно направленным

Template Parameters
Pтип числа, задающего длину вектора
Parameters
[in]newlenдлина получаемого вектора (по умолчанию 1.0)
Returns
вектор, коллинеарный исходному, заданной длины (по умолчанию 1.0)
Warning
для получения float-орта от вектора с компонентами типа float или целыми нужно явно указать параметр 1.0f

Definition at line 399 of file numvector.h.

400  {
401  auto ilen = static_cast<decltype(this->data[0] * newlen)>(newlen / std::max(this->length(), 1e-16));
402  return (*this * ilen);
403  }//unit(...)
P length() const
Вычисление 2-нормы (длины) вектора
Definition: numvector.h:371

Member Data Documentation

double VMlib::numvector< double , n >::data[n]
protectedinherited

Definition at line 98 of file numvector.h.


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