libcrn  3.9.5
A document image processing library
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Classes | Namespaces | Typedefs | Functions
CRNTrigonometry.h File Reference
#include <CRN.h>
#include <CRNException.h>
#include <cmath>
#include <vector>
+ Include dependency graph for CRNTrigonometry.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  crn::Radian
 Radian angle unit. More...
 
struct  crn::Degree
 Degree angle unit. More...
 
struct  crn::ByteAngle
 BYTE angle unit. More...
 
struct  crn::Angle< Unit >
 A convenience class for angles units. More...
 

Namespaces

 crn
 
 crn::literals
 

Typedefs

template<class ANGLE >
using crn::Unit = typename ANGLE::unit
 

Functions

template<typename Unit >
double crn::Cosine (typename Unit::type angle) noexcept
 Cosine of an angle. More...
 
template<typename Unit >
double crn::Sine (typename Unit::type angle) noexcept
 Sine of an angle. More...
 
template<typename Unit >
double crn::Tangent (typename Unit::type angle) noexcept
 Tangent of an angle. More...
 
template<>
double crn::Cosine< ByteAngle > (uint8_t angle) noexcept
 Cosine of a byte angle using a lookup table. More...
 
template<>
double crn::Sine< ByteAngle > (uint8_t angle) noexcept
 Sine of a byte angle using a lookup table. More...
 
template<>
double crn::Tangent< ByteAngle > (uint8_t angle) noexcept
 Tangent of a byte angle using a lookup table. More...
 
template<typename Unit >
Angle< Unit > crn::operator+ (const Angle< Unit > &a1, const Angle< Unit > &a2) noexcept(std::is_nothrow_constructible< typename Unit::type >::value &&std::is_nothrow_copy_assignable< typename Unit::type >::value)
 Adds two angles. More...
 
template<typename Unit >
Angle< Unit > crn::operator- (const Angle< Unit > &a1, const Angle< Unit > &a2) noexcept(std::is_nothrow_constructible< typename Unit::type >::value &&std::is_nothrow_copy_assignable< typename Unit::type >::value)
 Subtracts two angles. More...
 
template<typename Unit >
Angle< Unit > crn::operator* (double f, const Angle< Unit > &a) noexcept(std::is_nothrow_constructible< typename Unit::type >::value &&std::is_nothrow_copy_assignable< typename Unit::type >::value)
 Multiplies an scalar with an angle. More...
 
Angle< Degree > crn::literals::operator""_deg (long double val)
 
Angle< Radian > crn::literals::operator""_rad (long double val)
 
Angle< ByteAngle > crn::literals::operator""_ba (unsigned long long int val)
 
template<class A >
double crn::Cos (const A &a) noexcept
 
double crn::Cos (double a) noexcept
 
double crn::Cos (uint8_t a) noexcept
 
template<class A >
double crn::Sin (const A &a) noexcept
 
double crn::Sin (double a) noexcept
 
double crn::Sin (uint8_t a) noexcept
 
template<class A >
double crn::Tan (const A &a) noexcept
 
double crn::Tan (double a) noexcept
 
double crn::Tan (uint8_t a) noexcept
 
template<class A >
crn::Atan (double s, double c) noexcept
 
template<>
double crn::Atan< double > (double s, double c) noexcept
 
template<typename Unit >
Unit::type crn::AngularDistance (const Angle< Unit > &a1, const Angle< Unit > &a2) noexcept(std::is_nothrow_constructible< typename TypeInfo< typename Unit::type >::DiffType >::value &&std::is_nothrow_copy_assignable< typename TypeInfo< typename Unit::type >::DiffType >::value &&std::is_nothrow_constructible< typename Unit::type >::value)
 Distance between two angles. More...
 
double crn::AngularDistance (double a1, double a2) noexcept
 Distance between two angles. More...
 
template<typename ITER >
std::iterator_traits< ITER >
::value_type 
crn::AngularMean (ITER beg, ITER en)
 Mean of a set of angles. More...
 
template<typename ITER >
ITER crn::AngularMedian (ITER beg, ITER en)
 Mean of a set of angles. More...
 
template<typename ITER >
double crn::AngularVariance (ITER beg, ITER en)
 Variance of a set of angles. More...
 
template<typename ITER >
double crn::AngularVariance (ITER beg, ITER en, typename std::iterator_traits< ITER >::value_type mean)
 Variance of a set of angles. More...
 
template<typename ITER >
double crn::CircularVariance (ITER beg, ITER en)
 Circular (pseudo) variance of a set of angles. More...
 
template<typename ITER >
double crn::CircularStdDev (ITER beg, ITER en)
 Circular (pseudo) standard deviation of a set of angles. More...
 
template<typename ITER >
std::complex< double > crn::TrigonometricMoment (ITER beg, ITER en, typename std::iterator_traits< ITER >::value_type refer, size_t p)
 Trigonometric moment. More...
 
template<typename ITER >
double crn::AngularSkewness (ITER beg, ITER en)
 Skewness of a set of angles. More...
 
template<typename ITER >
double crn::AngularKurtosis (ITER beg, ITER en)
 Kurtosis of a set of angles. More...