MathLib
Loading...
Searching...
No Matches
Friends | List of all members
BasicRadian< T > Class Template Reference

#include <math/Angle.hpp>

Public Types

Types
using value_type = T
 The underlying implementation type.
 

Public Member Functions

Constructors
constexpr BasicRadian ()=default
 Defaults to 0.
 
constexpr BasicRadian (T value)
 
Element Access
T value () const
 
Invalid Value Check
constexpr bool isNaN () const
 
constexpr bool isInf () const
 

Static Public Member Functions

Constants
static constexpr BasicRadian< T > zero ()
 

Friends

constexpr bool approximately_equal_to (const BasicRadian< T > &value_to_test, const BasicRadian< T > &value_it_should_be, T tolerance=T{0.0002})
 
Comparison
constexpr auto operator<=> (const BasicRadian< T > &left, const BasicRadian< T > &right)=default
 
Trigonometric Functions
BasicRadian< T > sin (BasicRadian< T > i)
 
BasicRadian< T > cos (BasicRadian< T > i)
 
BasicRadian< T > tan (BasicRadian< T > i)
 
BasicRadian< T > asin (BasicRadian< T > i)
 
BasicRadian< T > acos (BasicRadian< T > i)
 
BasicRadian< T > atan (BasicRadian< T > i)
 
BasicRadian< T > sinh (BasicRadian< T > i)
 
BasicRadian< T > cosh (BasicRadian< T > i)
 
BasicRadian< T > tanh (BasicRadian< T > i)
 
BasicRadian< T > asinh (BasicRadian< T > i)
 
BasicRadian< T > acosh (BasicRadian< T > i)
 
BasicRadian< T > atanh (BasicRadian< T > i)
 
BasicRadian< T > atan2 (BasicRadian< T > y, BasicRadian< T > x)
 

Related Symbols

(Note that these are not member symbols.)

Type Aliases
using Radianf = BasicRadian< float >
 
using Radiand = BasicRadian< double >
 
using Radian = BasicRadian< double >
 
using Radianl = BasicRadian< long double >
 

Operators

constexpr BasicRadian< T > & operator+= (const BasicRadian &other)
 
constexpr BasicRadian< T > & operator-= (const BasicRadian &other)
 
constexpr BasicRadian< T > & operator*= (const BasicRadian &other)
 
constexpr BasicRadian< T > & operator/= (const BasicRadian &other)
 
constexpr BasicRadian< T > & operator/= (const T &other)
 
constexpr BasicRadian< T > operator+ (const BasicRadian< T > &left, const BasicRadian< T > &right)
 
constexpr BasicRadian< T > operator- (const BasicRadian< T > &left, const BasicRadian< T > &right)
 
constexpr BasicRadian< T > operator* (const BasicRadian< T > &left, const BasicRadian< T > &right)
 
constexpr BasicRadian< T > operator/ (const BasicRadian< T > &left, const BasicRadian< T > &right)
 
constexpr BasicRadian< T > operator- (const BasicRadian< T > &input)
 

Detailed Description

template<std::floating_point T>
class Math::BasicRadian< T >

Class that stores its units in radians

This class exists to try to make it more obviously known what the units are that are being constructed and passed around.

See also
Radian Literals for convenient user-defined literals.

Definition at line 28 of file Angle.hpp.

Member Typedef Documentation

◆ value_type

template<std::floating_point T>
using value_type = T

The underlying implementation type.

Definition at line 34 of file Angle.hpp.

Constructor & Destructor Documentation

◆ BasicRadian() [1/2]

template<std::floating_point T>
constexpr BasicRadian ( )
constexprdefault

Defaults to 0.

◆ BasicRadian() [2/2]

template<std::floating_point T>
constexpr BasicRadian ( T  value)
inlineconstexpr

Definition at line 41 of file Angle.hpp.

Member Function Documentation

◆ isInf()

template<std::floating_point T>
constexpr bool isInf ( ) const
inlineconstexpr

Definition at line 109 of file Angle.hpp.

◆ isNaN()

template<std::floating_point T>
constexpr bool isNaN ( ) const
inlineconstexpr

Definition at line 104 of file Angle.hpp.

◆ operator*=()

template<std::floating_point T>
constexpr BasicRadian< T > & operator*= ( const BasicRadian< T > &  other)
inlineconstexpr

Definition at line 71 of file Angle.hpp.

◆ operator+=()

template<std::floating_point T>
constexpr BasicRadian< T > & operator+= ( const BasicRadian< T > &  other)
inlineconstexpr

Definition at line 59 of file Angle.hpp.

◆ operator-=()

template<std::floating_point T>
constexpr BasicRadian< T > & operator-= ( const BasicRadian< T > &  other)
inlineconstexpr

Definition at line 65 of file Angle.hpp.

◆ operator/=() [1/2]

template<std::floating_point T>
constexpr BasicRadian< T > & operator/= ( const BasicRadian< T > &  other)
inlineconstexpr

Definition at line 77 of file Angle.hpp.

◆ operator/=() [2/2]

template<std::floating_point T>
constexpr BasicRadian< T > & operator/= ( const T &  other)
inlineconstexpr

Definition at line 83 of file Angle.hpp.

◆ value()

template<std::floating_point T>
T value ( ) const
inline

Definition at line 53 of file Angle.hpp.

◆ zero()

template<std::floating_point T>
static constexpr BasicRadian< T > zero ( )
inlinestaticconstexpr

Definition at line 47 of file Angle.hpp.

Friends And Related Symbol Documentation

◆ acos

template<std::floating_point T>
BasicRadian< T > acos ( BasicRadian< T >  i)
friend

Definition at line 199 of file Angle.hpp.

◆ acosh

template<std::floating_point T>
BasicRadian< T > acosh ( BasicRadian< T >  i)
friend

Definition at line 229 of file Angle.hpp.

◆ asin

template<std::floating_point T>
BasicRadian< T > asin ( BasicRadian< T >  i)
friend

Definition at line 194 of file Angle.hpp.

◆ asinh

template<std::floating_point T>
BasicRadian< T > asinh ( BasicRadian< T >  i)
friend

Definition at line 224 of file Angle.hpp.

◆ atan

template<std::floating_point T>
BasicRadian< T > atan ( BasicRadian< T >  i)
friend

Definition at line 204 of file Angle.hpp.

◆ atan2

template<std::floating_point T>
BasicRadian< T > atan2 ( BasicRadian< T >  y,
BasicRadian< T >  x 
)
friend

Definition at line 239 of file Angle.hpp.

◆ atanh

template<std::floating_point T>
BasicRadian< T > atanh ( BasicRadian< T >  i)
friend

Definition at line 234 of file Angle.hpp.

◆ cos

template<std::floating_point T>
BasicRadian< T > cos ( BasicRadian< T >  i)
friend

Definition at line 184 of file Angle.hpp.

◆ cosh

template<std::floating_point T>
BasicRadian< T > cosh ( BasicRadian< T >  i)
friend

Definition at line 214 of file Angle.hpp.

◆ operator*

template<std::floating_point T>
constexpr BasicRadian< T > operator* ( const BasicRadian< T > &  left,
const BasicRadian< T > &  right 
)
friend

Definition at line 158 of file Angle.hpp.

◆ operator+

template<std::floating_point T>
constexpr BasicRadian< T > operator+ ( const BasicRadian< T > &  left,
const BasicRadian< T > &  right 
)
friend

Definition at line 148 of file Angle.hpp.

◆ operator- [1/2]

template<std::floating_point T>
constexpr BasicRadian< T > operator- ( const BasicRadian< T > &  input)
friend

Definition at line 168 of file Angle.hpp.

◆ operator- [2/2]

template<std::floating_point T>
constexpr BasicRadian< T > operator- ( const BasicRadian< T > &  left,
const BasicRadian< T > &  right 
)
friend

Definition at line 153 of file Angle.hpp.

◆ operator/

template<std::floating_point T>
constexpr BasicRadian< T > operator/ ( const BasicRadian< T > &  left,
const BasicRadian< T > &  right 
)
friend

Definition at line 163 of file Angle.hpp.

◆ operator<=>

template<std::floating_point T>
constexpr auto operator<=> ( const BasicRadian< T > &  left,
const BasicRadian< T > &  right 
)
friend

Define the spaceship operator

Note
We define ONLY the <=> in order to get all six of the relational operators (C++20).

◆ sin

template<std::floating_point T>
BasicRadian< T > sin ( BasicRadian< T >  i)
friend

Definition at line 179 of file Angle.hpp.

◆ sinh

template<std::floating_point T>
BasicRadian< T > sinh ( BasicRadian< T >  i)
friend

Definition at line 209 of file Angle.hpp.

◆ tan

template<std::floating_point T>
BasicRadian< T > tan ( BasicRadian< T >  i)
friend

Definition at line 189 of file Angle.hpp.

◆ tanh

template<std::floating_point T>
BasicRadian< T > tanh ( BasicRadian< T >  i)
friend

Definition at line 219 of file Angle.hpp.


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