RMVL  1.2.0
Robotic Manipulation and Vision Library
模块 | | 类型定义 | 枚举 | 函数 | 变量
数据结构与算法及实用数学库
数据结构与算法及实用数学库 的协作图:

模块

 并查集
 
 支持随机访问的堆结构
 

class  rm::EwTopsis< Tp >
 熵权法 更多...
 

类型定义

using cv::Matx11f = Matx< float, 1, 1 >
 
using cv::Matx11d = Matx< double, 1, 1 >
 
using cv::Matx51f = Matx< float, 5, 1 >
 
using cv::Matx15f = Matx< float, 1, 5 >
 

枚举

enum  rm::EulerAxis : int { rm::X = 0 , rm::Y = 1 , rm::Z = 2 }
 欧拉角转轴枚举 更多...
 
enum  rm::AngleMode : bool { rm::RAD = true , rm::DEG = false }
 角度制式 更多...
 
enum class  rm::CalPlane : uint8_t { rm::xyz = 0 , rm::xOy = 1 , rm::xOz = 2 , rm::yOz = 3 }
 计算所在平面 更多...
 

函数

cv::Point2f rm::calculateRelativeAngle (const cv::Matx33f &cameraMatrix, cv::Point2f center)
 计算相机中心与目标中心之间的相对角度 更多...
 
cv::Point2f rm::calculateRelativeCenter (const cv::Matx33f &cameraMatrix, cv::Point2f angle)
 计算目标中心在像素坐标系下的坐标 更多...
 
cv::Vec2f rm::cameraConvertToPixel (const cv::Matx33f &cameraMatrix, const cv::Matx51f &distCoeffs, const cv::Vec3f &center3d)
 计算 3D 目标点在像素坐标系下的坐标 更多...
 
cv::Point2f rm::cameraConvertToPixel (const cv::Matx33f &cameraMatrix, const cv::Matx51f &distCoeffs, const cv::Point3f &center3d)
 计算 3D 目标点在像素坐标系下的坐标 更多...
 
template<typename Tp >
cv::Matx< Tp, 3, 3 > rm::euler2Mat (Tp val, EulerAxis axis)
 欧拉角转换为旋转矩阵 更多...
 
constexpr double rm::operator""_PI (long double num)
 
constexpr double rm::operator""_PI (long long unsigned num)
 
constexpr double rm::operator""_to_rad (long double num)
 
constexpr double rm::operator""_to_rad (long long unsigned num)
 
constexpr double rm::operator""_to_deg (long double num)
 
constexpr double rm::operator""_to_deg (long long unsigned num)
 
template<typename Tp >
constexpr Tp rm::operator+ (Tp val, const cv::Matx< Tp, 1, 1 > &mat)
 
template<typename Tp >
constexpr cv::Matx< Tp, 1, 1 > rm::operator+ (const cv::Matx< Tp, 1, 1 > &mat, Tp val)
 
template<typename Tp >
constexpr Tp rm::operator- (Tp val, const cv::Matx< Tp, 1, 1 > &mat)
 
template<typename Tp >
constexpr cv::Matx< Tp, 1, 1 > rm::operator- (const cv::Matx< Tp, 1, 1 > &mat, Tp val)
 
template<typename Tp >
constexpr Tp rm::deg2rad (Tp deg)
 角度转换为弧度 更多...
 
template<typename Tp >
constexpr Tp rm::rad2deg (Tp rad)
 弧度转换为角度 更多...
 
template<typename Tp >
constexpr cv::Matx< Tp, 3, 1 > rm::point2matx (cv::Point3_< Tp > point)
 Point类型转换为Matx类型 更多...
 
template<typename Tp >
constexpr cv::Point3_< Tp > rm::matx2point (cv::Matx< Tp, 3, 1 > matx)
 Matx类型转换为Point类型 更多...
 
template<typename Tp >
constexpr cv::Vec< Tp, 3 > rm::matx2vec (cv::Matx< Tp, 3, 1 > matx)
 Matx类型转换为Vec类型 更多...
 
template<typename Tp1 , typename Tp2 >
constexpr auto rm::getDistance (const cv::Point_< Tp1 > &pt_1, const cv::Point_< Tp2 > &pt_2)
 获取距离 更多...
 
template<typename Tp1 , typename Tp2 >
constexpr auto rm::getDistance (const cv::Vec< Tp1, 2 > &vec_1, const cv::Vec< Tp2, 2 > &vec_2)
 获取距离 更多...
 
template<typename Tp1 , typename Tp2 >
constexpr auto rm::getDistance (const cv::Point3_< Tp1 > &pt_1, const cv::Point3_< Tp2 > &pt_2, CalPlane calplane=CalPlane::xyz)
 获取距离 更多...
 
template<typename Tp1 , typename Tp2 >
constexpr auto rm::getDistance (const cv::Vec< Tp1, 3 > &vec_1, const cv::Vec< Tp2, 3 > &vec_2, CalPlane calplane=CalPlane::xyz)
 获取距离 更多...
 
template<typename Tp1 , typename Tp2 >
constexpr auto rm::getDistance (const cv::Vec< Tp1, 4 > &line, const cv::Point_< Tp2 > &pt, bool direc=true)
 点到直线距离 更多...
 
template<typename Tp1 , typename Tp2 >
constexpr auto rm::getHAngle (const cv::Point_< Tp1 > &start, const cv::Point_< Tp2 > &end, AngleMode mode=RAD)
 获取与水平方向的夹角,以平面直角坐标系 x 轴为分界线, 逆时针为正方向,范围: (-180°, 180°],默认返回弧度制 更多...
 
template<typename Tp1 , typename Tp2 >
constexpr auto rm::getVAngle (const cv::Point_< Tp1 > &start, const cv::Point_< Tp2 > &end, AngleMode mode=RAD)
 获取与垂直方向的夹角,以平面直角坐标系 y 轴为分界线, 顺时针为正方向,范围: (-180°, 180°],默认返回弧度制 更多...
 
template<typename Tp >
constexpr Tp rm::getDeltaAngle (Tp angle_1, Tp angle_2)
 求两个角之间的夹角 更多...
 
template<typename Tp >
constexpr Tp rm::sec (Tp x)
 正割 \(\sec(x)\) 更多...
 
template<typename Tp >
constexpr Tp rm::csc (Tp x)
 余割 \(\csc(x)\) 更多...
 
template<typename Tp >
constexpr Tp rm::cot (Tp x)
 余切 \(\cot(x)\) 更多...
 
template<typename Tp >
constexpr Tp rm::sgn (Tp x)
 符号函数 更多...
 
template<typename Tp >
constexpr Tp rm::sigmoid (Tp x, Tp k=1, Tp Kp=1, Tp mu=0)
 计算 sigmoid(x) 在某一点的函数值 更多...
 
template<typename Tp >
constexpr Tp rm::cross2D (const cv::Vec< Tp, 2 > &a, const cv::Vec< Tp, 2 > &b)
 平面向量外积 更多...
 
template<typename Tp >
constexpr Tp rm::cross2D (const cv::Point_< Tp > &a, const cv::Point_< Tp > &b)
 平面向量外积 更多...
 
template<typename ForwardIterator >
ForwardIterator::value_type rm::calculateModeNum (ForwardIterator first, ForwardIterator last)
 在指定范围内寻找众数,时间复杂度 O(N) 更多...
 

变量

constexpr double rm::PI = std::numbers::pi
 圆周率: \(\pi\) 更多...
 
constexpr double rm::e = std::numbers::e
 自然对数底数: \(e\) 更多...
 
constexpr double rm::SQRT_2 = std::numbers::sqrt2
 根号 2: \(\sqrt2\) 更多...
 
constexpr double rm::PI_2 = PI / 2.
 PI / 2: \(\frac\pi2\) 更多...
 
constexpr double rm::PI_4 = PI / 4.
 PI / 4: \(\frac\pi4\) 更多...
 
constexpr double rm::g = 9.788
 重力加速度: \(g\) 更多...
 

详细描述

类型定义说明

◆ Matx11d

using cv::Matx11d = typedef Matx<double, 1, 1>

◆ Matx11f

using cv::Matx11f = typedef Matx<float, 1, 1>

◆ Matx15f

using cv::Matx15f = typedef Matx<float, 1, 5>

◆ Matx51f

using cv::Matx51f = typedef Matx<float, 5, 1>

枚举类型说明

◆ AngleMode

enum rm::AngleMode : bool

#include <rmvl/rmath/uty_math.hpp>

角度制式

枚举值
RAD 

弧度制

DEG 

角度制

◆ CalPlane

enum rm::CalPlane : uint8_t
strong

#include <rmvl/rmath/uty_math.hpp>

计算所在平面

枚举值
xyz 

三维空间

xOy 

xOy平面

xOz 

xOz平面

yOz 

yOz平面

◆ EulerAxis

enum rm::EulerAxis : int

#include <rmvl/rmath/transform.h>

欧拉角转轴枚举

枚举值

X 轴

Y 轴

Z 轴

函数说明

◆ calculateModeNum()

template<typename ForwardIterator >
ForwardIterator::value_type rm::calculateModeNum ( ForwardIterator  first,
ForwardIterator  last 
)

#include <rmvl/rmath/uty_math.hpp>

在指定范围内寻找众数,时间复杂度 O(N)

模板参数
ForwardIterator前向迭代器
参数
[in]first起始迭代器
[in]last终止迭代器
返回
众数

◆ calculateRelativeAngle()

cv::Point2f rm::calculateRelativeAngle ( const cv::Matx33f &  cameraMatrix,
cv::Point2f  center 
)

#include <rmvl/rmath/transform.h>

计算相机中心与目标中心之间的相对角度

注解
公式推导参考函数 calculateRelativeCenter() ,现直接给出结果

\[\begin{bmatrix} \tan{yaw}\\\tan{pitch}\\1\end{bmatrix}=\begin{bmatrix}f_x&0&u_0\\0&f_y&v_0\\0&0&1 \end{bmatrix}^{-1}\begin{bmatrix}u\\v\\1\end{bmatrix}\]

参数
[in]cameraMatrix相机内参矩阵
[in]center像素坐标系下的目标中心
返回
相对角度,目标在图像右方,point.x 为正,目标在图像下方,point.y 为正

◆ calculateRelativeCenter()

cv::Point2f rm::calculateRelativeCenter ( const cv::Matx33f &  cameraMatrix,
cv::Point2f  angle 
)

#include <rmvl/rmath/transform.h>

计算目标中心在像素坐标系下的坐标

注解
由针孔相机模型中的相似三角形关系推出下列公式,其中 \((u, v)\) 为像素坐标系下的坐标, \((X, Y, Z)\) 为相机坐标系下的坐标

\[u=f_x\frac XZ+u_0=f_x\tan{yaw}+u_0\]

\[v=f_y \frac YZ+v_0=f_y\tan{pitch}+v_0\]

写成矩阵相乘的方式:

\[\begin{bmatrix}u\\v\\1 \end{bmatrix}=\frac1Z\begin{bmatrix}f_x&0&u_0\\0&f_y&v_0\\0&0&1\end{bmatrix} \begin{bmatrix}X\\Y\\Z\end{bmatrix}=\begin{bmatrix}f_x&0&u_0\\0&f_y&v_0\\0&0&1 \end{bmatrix}\begin{bmatrix}\tan{yaw}\\\tan{pitch}\\1\end{bmatrix}\]

参数
[in]cameraMatrix相机内参矩阵
[in]angle目标中心与相机中心的相对角度
返回
目标中心在像素坐标系下的坐标

◆ cameraConvertToPixel() [1/2]

cv::Point2f rm::cameraConvertToPixel ( const cv::Matx33f &  cameraMatrix,
const cv::Matx51f distCoeffs,
const cv::Point3f &  center3d 
)
inline

#include <rmvl/rmath/transform.h>

计算 3D 目标点在像素坐标系下的坐标

参数
[in]cameraMatrix相机内参矩阵
[in]distCoeffs相机畸变参数
[in]center3d目标点在相机坐标系下的坐标
返回
目标点在像素坐标系下的坐标
函数调用图:

◆ cameraConvertToPixel() [2/2]

cv::Vec2f rm::cameraConvertToPixel ( const cv::Matx33f &  cameraMatrix,
const cv::Matx51f distCoeffs,
const cv::Vec3f &  center3d 
)

#include <rmvl/rmath/transform.h>

计算 3D 目标点在像素坐标系下的坐标

参数
[in]cameraMatrix相机内参矩阵
[in]distCoeffs相机畸变参数
[in]center3d目标点在相机坐标系下的坐标
返回
目标点在像素坐标系下的坐标

◆ cot()

template<typename Tp >
constexpr Tp rm::cot ( Tp  x)
inlineconstexpr

#include <rmvl/rmath/uty_math.hpp>

余切 \(\cot(x)\)

模板参数
Tp变量类型
参数
[in]x自变量
返回
cot(x)

◆ cross2D() [1/2]

template<typename Tp >
constexpr Tp rm::cross2D ( const cv::Point_< Tp > &  a,
const cv::Point_< Tp > &  b 
)
constexpr

#include <rmvl/rmath/uty_math.hpp>

平面向量外积

模板参数
TpPoint_数据类型
参数
[in]a向量 A
[in]b向量 B
返回
外积,若 retval = 0,则共线

◆ cross2D() [2/2]

template<typename Tp >
constexpr Tp rm::cross2D ( const cv::Vec< Tp, 2 > &  a,
const cv::Vec< Tp, 2 > &  b 
)
constexpr

#include <rmvl/rmath/uty_math.hpp>

平面向量外积

模板参数
Tp向量数据类型
参数
[in]a向量 A
[in]b向量 B
返回
外积,若 retval = 0,则共线

◆ csc()

template<typename Tp >
constexpr Tp rm::csc ( Tp  x)
inlineconstexpr

#include <rmvl/rmath/uty_math.hpp>

余割 \(\csc(x)\)

模板参数
Tp变量类型
参数
[in]x自变量
返回
csc(x)

◆ deg2rad()

template<typename Tp >
constexpr Tp rm::deg2rad ( Tp  deg)
constexpr

#include <rmvl/rmath/uty_math.hpp>

角度转换为弧度

模板参数
Tp变量类型
参数
[in]deg角度
返回
弧度

◆ euler2Mat()

template<typename Tp >
cv::Matx<Tp, 3, 3> rm::euler2Mat ( Tp  val,
EulerAxis  axis 
)
inline

#include <rmvl/rmath/transform.h>

欧拉角转换为旋转矩阵

模板参数
Tp数据类型
参数
[in]val角度数值(弧度制)
[in]axis转轴
返回
Matx 格式的旋转矩阵

◆ getDeltaAngle()

template<typename Tp >
constexpr Tp rm::getDeltaAngle ( Tp  angle_1,
Tp  angle_2 
)
constexpr

#include <rmvl/rmath/uty_math.hpp>

求两个角之间的夹角

模板参数
Tp角度的数据类型
参数
[in]angle_1第 1 个角度
[in]angle_2第 2 个角度
返回
夹角,角度的范围是 (-180°, 180°]

◆ getDistance() [1/5]

template<typename Tp1 , typename Tp2 >
constexpr auto rm::getDistance ( const cv::Point3_< Tp1 > &  pt_1,
const cv::Point3_< Tp2 > &  pt_2,
CalPlane  calplane = CalPlane::xyz 
)
constexpr

#include <rmvl/rmath/uty_math.hpp>

获取距离

模板参数
Tp1空间点 1 的数据类型
Tp2空间点 2 的数据类型
参数
[in]pt_1起始点
[in]pt_2终止点
[in]calplane要计算的距离所在的平面
返回
空间欧式距离

◆ getDistance() [2/5]

template<typename Tp1 , typename Tp2 >
constexpr auto rm::getDistance ( const cv::Point_< Tp1 > &  pt_1,
const cv::Point_< Tp2 > &  pt_2 
)
constexpr

#include <rmvl/rmath/uty_math.hpp>

获取距离

模板参数
Tp1平面点 1 的数据类型
Tp2平面点 2 的数据类型
参数
[in]pt_1起始点
[in]pt_2终止点
返回
平面欧式距离

◆ getDistance() [3/5]

template<typename Tp1 , typename Tp2 >
constexpr auto rm::getDistance ( const cv::Vec< Tp1, 2 > &  vec_1,
const cv::Vec< Tp2, 2 > &  vec_2 
)
constexpr

#include <rmvl/rmath/uty_math.hpp>

获取距离

模板参数
Tp1平面向量 1 的数据类型
Tp2平面向量 2 的数据类型
参数
[in]vec_1起始向量
[in]vec_2终止向量
返回
平面欧式距离

◆ getDistance() [4/5]

template<typename Tp1 , typename Tp2 >
constexpr auto rm::getDistance ( const cv::Vec< Tp1, 3 > &  vec_1,
const cv::Vec< Tp2, 3 > &  vec_2,
CalPlane  calplane = CalPlane::xyz 
)
constexpr

#include <rmvl/rmath/uty_math.hpp>

获取距离

模板参数
Tp1空间向量 1 的数据类型
Tp2空间向量 2 的数据类型
参数
[in]vec_1起始向量
[in]vec_2终止向量
[in]calplane要计算的距离所在的平面
返回
空间欧式距离
函数调用图:

◆ getDistance() [5/5]

template<typename Tp1 , typename Tp2 >
constexpr auto rm::getDistance ( const cv::Vec< Tp1, 4 > &  line,
const cv::Point_< Tp2 > &  pt,
bool  direc = true 
)
constexpr

#include <rmvl/rmath/uty_math.hpp>

点到直线距离

注解
点 \(P=(x_0,y_0)\) 到直线 \(l:Ax+By+C=0\) 距离公式为

\[D(P,l)=\frac{Ax_0+By_0+C}{\sqrt{A^2+B^2}}\]

模板参数
Tp1直线方程数据类型
Tp2平面点的数据类型
参数
[in]linecv::Vec4_ 表示的直线方程 (vx, vy, x0, y0)
[in]pt平面点
[in]direc是否区分距离的方向
注解
  • 计算结果有正负,即区分点在直线分布的方向,通过修改传入参数 direc = false 来设置计算结果不区分正负(统一返回 \(|D(P,l)|\))
  • line 需要传入元素为 \((v_x, v_y, x_0, y_0)\) 的用 cv::Vec4_ 表示的向量,指代下列直线方程(与 cv::fitLine 传入的 cv::Vec4_ 参数一致)

    \[l:y-y_0=\frac{v_y}{v_x}(x-x_0)\]

返回
平面欧式距离

◆ getHAngle()

template<typename Tp1 , typename Tp2 >
constexpr auto rm::getHAngle ( const cv::Point_< Tp1 > &  start,
const cv::Point_< Tp2 > &  end,
AngleMode  mode = RAD 
)
constexpr

#include <rmvl/rmath/uty_math.hpp>

获取与水平方向的夹角,以平面直角坐标系 x 轴为分界线, 逆时针为正方向,范围: (-180°, 180°],默认返回弧度制

模板参数
Tp1平面点 1 的数据类型
Tp2平面点 2 的数据类型
参数
[in]start像素坐标系下的起点
[in]end像素坐标系下的终点
[in]mode返回角度模式,默认弧度制
返回
返回角度
函数调用图:

◆ getVAngle()

template<typename Tp1 , typename Tp2 >
constexpr auto rm::getVAngle ( const cv::Point_< Tp1 > &  start,
const cv::Point_< Tp2 > &  end,
AngleMode  mode = RAD 
)
constexpr

#include <rmvl/rmath/uty_math.hpp>

获取与垂直方向的夹角,以平面直角坐标系 y 轴为分界线, 顺时针为正方向,范围: (-180°, 180°],默认返回弧度制

模板参数
Tp1平面点 1 的数据类型
Tp2平面点 2 的数据类型
参数
[in]start起点
[in]end终点
[in]mode返回角度模式,默认弧度制
返回
返回角度
函数调用图:

◆ matx2point()

template<typename Tp >
constexpr cv::Point3_<Tp> rm::matx2point ( cv::Matx< Tp, 3, 1 >  matx)
constexpr

#include <rmvl/rmath/uty_math.hpp>

Matx类型转换为Point类型

模板参数
Tp数据类型
参数
[in]matxMatx类型变量
返回
Point类型变量

◆ matx2vec()

template<typename Tp >
constexpr cv::Vec<Tp, 3> rm::matx2vec ( cv::Matx< Tp, 3, 1 >  matx)
constexpr

#include <rmvl/rmath/uty_math.hpp>

Matx类型转换为Vec类型

模板参数
Tp数据类型
参数
[in]matxMatx类型变量
返回
Vec类型变量

◆ operator""_PI() [1/2]

constexpr double rm::operator""_PI ( long double  num)
constexpr

◆ operator""_PI() [2/2]

constexpr double rm::operator""_PI ( long long unsigned  num)
constexpr

◆ operator""_to_deg() [1/2]

constexpr double rm::operator""_to_deg ( long double  num)
constexpr

◆ operator""_to_deg() [2/2]

constexpr double rm::operator""_to_deg ( long long unsigned  num)
constexpr

◆ operator""_to_rad() [1/2]

constexpr double rm::operator""_to_rad ( long double  num)
constexpr

◆ operator""_to_rad() [2/2]

constexpr double rm::operator""_to_rad ( long long unsigned  num)
constexpr

◆ operator+() [1/2]

template<typename Tp >
constexpr cv::Matx<Tp, 1, 1> rm::operator+ ( const cv::Matx< Tp, 1, 1 > &  mat,
Tp  val 
)
constexpr

◆ operator+() [2/2]

template<typename Tp >
constexpr Tp rm::operator+ ( Tp  val,
const cv::Matx< Tp, 1, 1 > &  mat 
)
constexpr

◆ operator-() [1/2]

template<typename Tp >
constexpr cv::Matx<Tp, 1, 1> rm::operator- ( const cv::Matx< Tp, 1, 1 > &  mat,
Tp  val 
)
constexpr

◆ operator-() [2/2]

template<typename Tp >
constexpr Tp rm::operator- ( Tp  val,
const cv::Matx< Tp, 1, 1 > &  mat 
)
constexpr

◆ point2matx()

template<typename Tp >
constexpr cv::Matx<Tp, 3, 1> rm::point2matx ( cv::Point3_< Tp >  point)
constexpr

#include <rmvl/rmath/uty_math.hpp>

Point类型转换为Matx类型

模板参数
Tp数据类型
参数
[in]pointPoint类型变量
返回
Matx类型变量

◆ rad2deg()

template<typename Tp >
constexpr Tp rm::rad2deg ( Tp  rad)
constexpr

#include <rmvl/rmath/uty_math.hpp>

弧度转换为角度

模板参数
Tp变量类型
参数
[in]rad弧度
返回
角度

◆ sec()

template<typename Tp >
constexpr Tp rm::sec ( Tp  x)
inlineconstexpr

#include <rmvl/rmath/uty_math.hpp>

正割 \(\sec(x)\)

模板参数
Tp变量类型
参数
[in]x自变量
返回
sec(x)

◆ sgn()

template<typename Tp >
constexpr Tp rm::sgn ( Tp  x)
inlineconstexpr

#include <rmvl/rmath/uty_math.hpp>

符号函数

模板参数
Tp变量类型
参数
[in]x自变量
返回

\[\text{sgn}(x)=\left\{\begin{matrix} 1&&x>0\\0&&x=0\\-1&&x<0 \end{matrix}\right.\]

◆ sigmoid()

template<typename Tp >
constexpr Tp rm::sigmoid ( Tp  x,
Tp  k = 1,
Tp  Kp = 1,
Tp  mu = 0 
)
constexpr

#include <rmvl/rmath/uty_math.hpp>

计算 sigmoid(x) 在某一点的函数值

注解
sigmoid 函数表达式为:

\[y=f_{sig}(x)=\frac{K_p}{1+e^{-kx+\mu}}\]

模板参数
Tp变量类型
参数
[in]x自变量 \(x\)
[in]k缩放系数 \(k\)
[in]Kp开环增益系数 \(K_p\)
[in]mu偏移系数 \(\mu\)
返回
函数值 \(f_{sig}(x)\)

变量说明

◆ e

constexpr double rm::e = std::numbers::e
constexpr

#include <rmvl/rmath/uty_math.hpp>

自然对数底数: \(e\)

示例
samples/camera/mv/sample_mv_auto_calib.cpp.

◆ g

constexpr double rm::g = 9.788
constexpr

#include <rmvl/rmath/uty_math.hpp>

重力加速度: \(g\)

◆ PI

constexpr double rm::PI = std::numbers::pi
constexpr

#include <rmvl/rmath/uty_math.hpp>

圆周率: \(\pi\)

◆ PI_2

constexpr double rm::PI_2 = PI / 2.
constexpr

#include <rmvl/rmath/uty_math.hpp>

PI / 2: \(\frac\pi2\)

◆ PI_4

constexpr double rm::PI_4 = PI / 4.
constexpr

#include <rmvl/rmath/uty_math.hpp>

PI / 4: \(\frac\pi4\)

◆ SQRT_2

constexpr double rm::SQRT_2 = std::numbers::sqrt2
constexpr

#include <rmvl/rmath/uty_math.hpp>

根号 2: \(\sqrt2\)