-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathbased.hpp
More file actions
27 lines (20 loc) · 1.21 KB
/
Copy pathbased.hpp
File metadata and controls
27 lines (20 loc) · 1.21 KB
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
#pragma once
#include "based.ipp"
namespace circular
{
//! Нормализация в положительную сторону. Результирующеее число будет в диапазоне [0; base)
template <typename T>
T normalize_positive(const T &a, const T &base);
//! Нормализация относительно 0. Результирующеее число будет в диапазоне [-base/2; base/2)
template <typename T>
T normalize_around_0(const T &a, const T &base);
//! Вычисляет расстояние между двумя значениями опираясь на базу. Ответ в диапазоне [0; base/2)
template <typename T>
T bi_distance(T const& a, T const& b, T const& base);
//! Вычисляет расстояние между двумя углами. Входные углы в любом диапазоне. Ответ в диапазоне [0; Pi)
template <typename T>
T angle_distance(T const& a, T const& b);
//! normalize_around_0, для углов. Входные углы в любом диапазоне. Ответ в диапазоне [-Pi; Pi)
template <typename T>
T normalize_angle(const T& a);
}