PIP 5.6.1
Platform-Independent Primitives
Функции | Переменные
Файл pimathbase.h

Базовые математические константы и вспомогательные алгоритмы Подробнее...

#include "piinit.h"
#include "pipair.h"
#include "pivector.h"
#include <math.h>

Функции

int sign (const float &x)
 Возвращает знак вещественного значения.
 
int sign (const double &x)
 Возвращает знак вещественного значения.
 
int sign (const ldouble &x)
 Возвращает знак вещественного значения.
 
int pow2 (const int p)
 Возвращает 2 в целой степени p.
 
float pow10 (const float &e)
 Возвращает 10 в указанной степени.
 
double pow10 (const double &e)
 Возвращает 10 в указанной степени.
 
ldouble pow10 (const ldouble &e)
 Возвращает 10 в указанной степени.
 
double sinc (const double &v)
 Возвращает нормированную функцию sinc, sin(pi*x)/(pi*x).
 
constexpr float toRad (float deg)
 Преобразует градусы в радианы.
 
constexpr double toRad (double deg)
 Преобразует градусы в радианы.
 
constexpr ldouble toRad (ldouble deg)
 Преобразует градусы в радианы.
 
constexpr float toDeg (float rad)
 Преобразует радианы в градусы.
 
constexpr double toDeg (double rad)
 Преобразует радианы в градусы.
 
constexpr ldouble toDeg (ldouble rad)
 Преобразует радианы в градусы.
 
template<typename T >
constexpr T sqr (const T &v)
 Возвращает квадрат значения.
 
template<typename T >
constexpr T toDb (T val)
 Преобразует отношение мощностей в децибелы.
 
template<typename T >
constexpr T fromDb (T val)
 Преобразует децибелы в линейное отношение мощностей.
 
double randomd ()
 Возвращает псевдослучайное значение в диапазоне [-1; 1].
 
double randomn (double dv=0., double sv=1.)
 Возвращает нормально распределенное псевдослучайное значение со средним dv и отклонением sv.
 
template<typename T >
PIVector< T > piAbs (const PIVector< T > &v)
 Возвращает вектор с абсолютными значениями каждого элемента
 
template<typename T >
void normalizeAngleDeg360 (T &a)
 Нормализует угол к диапазону [0; 360] градусов на месте.
 
template<typename T >
double normalizedAngleDeg360 (T a)
 Возвращает угол, нормализованный к диапазону [0; 360] градусов.
 
template<typename T >
void normalizeAngleDeg180 (T &a)
 Нормализует угол к диапазону [-180; 180] градусов на месте.
 
template<typename T >
double normalizedAngleDeg180 (T a)
 Возвращает угол, нормализованный к диапазону [-180; 180] градусов.
 
template<typename T >
bool OLS_Linear (const PIVector< PIPair< T, T > > &input, T *out_a, T *out_b)
 Аппроксимирует линейную модель y = a*x + b методом наименьших квадратов. Подробнее...
 
template<typename T >
bool WLS_Linear (const PIVector< PIPair< T, T > > &input, const PIVector< T > &weights, T *out_a, T *out_b)
 Аппроксимирует взвешенную линейную модель y = a*x + b. Подробнее...
 

Переменные

const double deg2rad = 1.74532925199432957692e-2
 Множитель для перевода градусов в радианы.
 
const double rad2deg = 57.2957795130823208768
 Множитель для перевода радиан в градусы.
 

Mathematical constants

Натуральный логарифм 2

#define M_LN2   0.69314718055994530942
 
#define M_LN10   2.30258509299404568402
 Натуральный логарифм 10.
 
#define M_SQRT2   1.41421356237309514547
 Квадратный корень из 2.
 
#define M_SQRT3   1.73205080756887719318
 Квадратный корень из 3.
 
#define M_1_SQRT2   0.70710678118654746172
 1 делить на квадратный корень из 2
 
#define M_1_SQRT3   0.57735026918962584208
 1 делить на квадратный корень из 3
 
#define M_PI   3.141592653589793238462643383280
 Число Пи
 
#define M_2PI   6.283185307179586476925286766559
 2 times Пи
 
#define M_PI_3   1.04719755119659774615
 Пи делить на 3.
 
#define M_2PI_3   2.0943951023931954923
 2 times Пи делить на 3
 
#define M_180_PI   57.2957795130823208768
 180 делить на Пи (коэффициент преобразования градусов в радианы)
 
#define M_PI_180   1.74532925199432957692e-2
 Пи делить на 180 (коэффициент преобразования радианов в градусы)
 
#define M_SQRT_PI   1.772453850905516027298167483341
 Квадратный корень из Пи
 
#define M_E   2.7182818284590452353602874713527
 Число Эйлера
 
#define M_LIGHT_SPEED   2.99792458e+8
 Скорость света в вакууме
 
#define M_RELATIVE_CONST   -4.442807633e-10;
 Газовая постоянная
 
#define M_GRAVITY_CONST   398600.4418e9;
 Гравитационная постоянная
 

Bessel functions

Функция Бесселя первого рода порядка 0

Функция Бесселя первого рода J0(x), решение уравнения Бесселя

См. также
piJ1(), piJn()
double piJ0 (const double &v)
 
double piJ1 (const double &v)
 Функция Бесселя первого рода порядка 1. Подробнее...
 
double piJn (int n, const double &v)
 Функция Бесселя первого рода порядка n. Подробнее...
 
double piY0 (const double &v)
 Функция Бесселя второго рода порядка 0. Подробнее...
 
double piY1 (const double &v)
 Функция Бесселя второго рода порядка 1. Подробнее...
 
double piYn (int n, const double &v)
 Функция Бесселя второго рода порядка n. Подробнее...
 

Подробное описание

Базовые математические константы и вспомогательные алгоритмы

Функции

◆ piJ1()

double piJ1 ( const double &  v)

Функция Бесселя первого рода порядка 1.

Функция Бесселя первого рода J1(x), решение уравнения Бесселя

См. также
piJ0(), piJn()

◆ piJn()

double piJn ( int  n,
const double &  v 
)

Функция Бесселя первого рода порядка n.

Функция Бесселя первого рода Jn(n, x), решение уравнения Бесселя

См. также
piJ0(), piJ1()

◆ piY0()

double piY0 ( const double &  v)

Функция Бесселя второго рода порядка 0.

Функция Бесселя второго рода Y0(x), также известная как функция Неймана

См. также
piY1(), piYn()

◆ piY1()

double piY1 ( const double &  v)

Функция Бесселя второго рода порядка 1.

Функция Бесселя второго рода Y1(x), также известная как функция Неймана

См. также
piY0(), piYn()

◆ piYn()

double piYn ( int  n,
const double &  v 
)

Функция Бесселя второго рода порядка n.

Функция Бесселя второго рода Yn(n, x), также известная как функция Неймана

См. также
piY0(), piY1()

◆ OLS_Linear()

template<typename T >
bool OLS_Linear ( const PIVector< PIPair< T, T > > &  input,
T *  out_a,
T *  out_b 
)

Аппроксимирует линейную модель y = a*x + b методом наименьших квадратов.

Возвращает false, если передано меньше двух пар значений.

◆ WLS_Linear()

template<typename T >
bool WLS_Linear ( const PIVector< PIPair< T, T > > &  input,
const PIVector< T > &  weights,
T *  out_a,
T *  out_b 
)

Аппроксимирует взвешенную линейную модель y = a*x + b.

Возвращает false, если выборка слишком мала или размер вектора весов не совпадает.