Skip to content

Class translotator::DualNumber

template <typename Type>

ClassList > translotator > DualNumber

Represents a dual number. More...

  • #include <DualNumber.hpp>

Inherits the following classes: translotator::MatrixBase

Public Types inherited from translotator::MatrixBase

See translotator::MatrixBase

Type Name
typedef Type DATATYPE

Public Static Attributes

Type Name
constexpr static ObjectType OBJECT_TYPE = = ObjectType::DUAL_NUMBER

Public Static Attributes inherited from translotator::MatrixBase

See translotator::MatrixBase

Type Name
constexpr static size_t COLS = = M
constexpr static bool MATRIX_BASE = = true
constexpr static size_t ROWS = = N

Public Functions

Type Name
Type Du () const
Type & Du ()
DualNumber ()
DualNumber (const Type & r, const Type & d)
Type Re () const
Type & Re ()
void conjugate ()
return the conjugate of this dual number
DualNumber< Type > conjugated () const
DualNumber< Type > dualNumDiv (const DualNumber< Type > & other) const
multiply this dual number with another dual number
void dualNumDivEq (const DualNumber< Type > & other)
return the division of two dual numbers
DualNumber< Type > dualNumMul (const DualNumber< Type > & other) const
divide this dual number with another dual number
void dualNumMulEq (const DualNumber< Type > & other)
return the multiplication of two dual numbers
DualNumber< Type > inversed () const
normalize the real part of this dual number
Type norm () const
return the squared norm of this dual number
Type normSquared () const
conjugate this dual number
void normalize ()
return a new DualNumber with normalized real part
DualNumber< Type > normalized () const
return the norm of this dual number
DualNumber< Type > operator* (const DualNumber< Type > & other) const
return the multiplication of two dual numbers
void operator*= (const DualNumber< Type > & other)
DualNumber< Type > operator/ (const DualNumber< Type > & other) const
return the division of two dual numbers
void operator/= (const DualNumber< Type > & other)
multiply this dual number with another dual number
Type operator[] (size_t i) const
Type & operator[] (size_t i)
SquareMatrix< 2, Type > toMulMatrix () const
return a 2x2 matrix that represents the multiplication of this dual number

Public Functions inherited from translotator::MatrixBase

See translotator::MatrixBase

Type Name
MatrixBase () = default
Returns the number of columns.
MatrixBase (const MatrixBase & other) = default
MatrixBase (const Type data)
MatrixBase (const Type data)
MatrixBase (const initializer_list< N *M, Type > & list)
Initializer list constructor.
auto T () const
Transpose.
Matrix< P, Q, Type > block (size_t i, size_t j) const
Returns a block of the matrix.
Matrix< P, Q, Type > block () const
Returns a block of the matrix.
ComplexNum< Type > cast2ComplexNum () const
Casts the object to a complex number by copying.
ComplexNum< Type > & cast2ComplexNumRef ()
Casts the object to a complex number reference without copying.
DualNumber< Type > cast2DualNumber () const
Casts the object to a dual number by copying.
DualNumber< Type > & cast2DualNumberRef ()
Casts the object to a dual number reference without copying.
DualQuaternion< Type > cast2DualQuaternion () const
Casts the object to a dual quaternion by copying.
DualQuaternion< Type > & cast2DualQuaternionRef ()
Casts the object to a dual quaternion reference without copying.
Matrix< N, M, Type > cast2Matrix () const
Casts the object to a different matrix type by copying.
Matrix< N, M, Type > & cast2MatrixRef ()
Casts the object to a matrix reference without copying.
Quaternion< Type > cast2Quaternion () const
Casts the object to a quaternion by copying.
Quaternion< Type > & cast2QuaternionRef ()
Casts the object to a quaternion reference without copying.
SOGroup< N, Type > cast2SOGroup () const
Casts the object to a special orthogonal group by copying.
SOGroup< N, Type > & cast2SOGroupRef ()
Casts the object to a special orthogonal group reference without copying.
SquareMatrix< N, Type > cast2SquareMatrix () const
Casts the object to a square matrix by copying.
SquareMatrix< N, Type > & cast2SquareMatrixRef ()
Casts the object to a square matrix reference without copying.
UnitComplexNum< Type > cast2UnitComplexNum () const
Casts the object to a unit complex number by copying.
UnitComplexNum< Type > & cast2UnitComplexNumRef ()
Casts the object to a unit complex number reference without copying.
UnitDualQuaternion< Type > cast2UnitDualQuaternion () const
Casts the object to a unit dual quaternion by copying.
UnitDualQuaternion< Type > & cast2UnitDualQuaternionRef ()
Casts the object to a unit dual quaternion reference without copying.
UnitQuaternion< Type > cast2UnitQuaternion () const
Casts the object to a unit quaternion by copying.
UnitQuaternion< Type > & cast2UnitQuaternionRef ()
Casts the object to a unit quaternion reference without copying.
Vector< N, Type > cast2Vector () const
Casts the object to a vector by copying.
Vector< N, Type > & cast2VectorRef ()
Casts the object to a vector reference without copying.
NewContainer castContainer () const
Casts the matrix to a different container type by copying.
NewContainer & castContainerRef ()
Casts the object to a different container reference without copying.
NewDerived & castContainerRef ()
auto castDataType () const
Returns the Frobenius norm.
Matrix< N, 1, Type > col (size_t j) const
Returns the j-th column.
void copyTo (Type * data) const
Returns the raw data pointer.
void fill (const Type & v)
Fills the matrix with a value.
Type frobeniusNorm () const
Type frobeniusNormSquared () const
Returns the squared Frobenius norm.
Type * getData () const
const Type & operator() (size_t i, size_t j) const
Accesses the element at (i, j)
Type & operator() (size_t i, size_t j)
Accesses the element at (i, j)
auto operator* (const OtherDerived & other) const
Matrix multiplication.
Derived operator* (const Type & v) const
Matrix multiplication by scalar.
void operator*= (const OtherDerived & other)
Matrix multiplication by scalar.
Derived operator+ (const OtherDerived & other) const
Multiplication by scalar.
void operator+= (const OtherDerived & other)
Matrix division by scalar.
Derived operator- (const OtherDerived & other) const
Matrix subtraction.
Derived operator- () const
Matrix multiplication by scalar.
void operator-= (const OtherDerived & other)
Matrix subtraction by scalar.
Derived operator/ (Type v) const
Division by scalar.
void operator/= (Type v)
Division by scalar.
Derived & operator= (const Derived & other)
Copies the data to the given pointer.
void print () const
Prints the matrix.
Matrix< 1, M, Type > row (size_t i) const
Returns the i-th row.
Derived & setBlock (size_t i, size_t j, const OtherDerived & block)
Sets the element at (i, j)
Derived & setBlock (const OtherDerived & block)
Sets the i-th row.
Derived & setCol (size_t j, const OtherDerived & col)
Sets the j-th column.
Derived & setCol (const OtherDerived & col)
Sets the j-th column.
Derived & setRow (size_t i, const OtherDerived & row)
Sets the i-th row.
Derived & setRow (const OtherDerived & row)
Sets the i-th row.
void swapCols (size_t j1, size_t j2)
Swaps two columns.
void swapRows (size_t i1, size_t i2)
Swaps two rows.
Type toScalar () const
Casts the matrix to a scalar if it is a 1x1 matrix.

Public Static Functions

Type Name
DualNumber< Type > sqrt (const DualNumber< Type > & dn)
divide this dual number with another dual number

Public Static Functions inherited from translotator::MatrixBase

See translotator::MatrixBase

Type Name
Derived NaN ()
Returns a matrix filled with NaN.
constexpr static size_t colSize ()
Returns the number of rows.
Derived eye ()
Returns an identity matrix.
Derived ones ()
Returns a matrix filled with ones.
constexpr static size_t rowSize ()
Derived zeros ()
Returns a matrix filled with zeros.

Protected Attributes inherited from translotator::MatrixBase

See translotator::MatrixBase

Type Name
Type data_

Detailed Description

DualNumber

Template parameters:

  • Type floating point type

A dual number is a pair of real numbers, where one is the real part and the other is the dual part. The dual part is a number that squares to zero, i.e., e^2 = 0. It is used to represent infinitesimal quantities.

Note:

Data structure : [real, dual], (2 x 1)

Public Static Attributes Documentation

variable OBJECT_TYPE

constexpr static ObjectType translotator::DualNumber< Type >::OBJECT_TYPE;

Public Functions Documentation

function Du [1/2]

inline Type translotator::DualNumber::Du () const

function Du [2/2]

inline Type & translotator::DualNumber::Du () 

function DualNumber [1/2]

inline translotator::DualNumber::DualNumber () 

function DualNumber [2/2]

inline translotator::DualNumber::DualNumber (
    const Type & r,
    const Type & d
) 

function Re [1/2]

inline Type translotator::DualNumber::Re () const

accessors


function Re [2/2]

inline Type & translotator::DualNumber::Re () 

function conjugate

inline void translotator::DualNumber::conjugate () 

function conjugated

inline DualNumber < Type > translotator::DualNumber::conjugated () const

utils


function dualNumDiv

inline DualNumber < Type > translotator::DualNumber::dualNumDiv (
    const DualNumber < Type > & other
) const

function dualNumDivEq

inline void translotator::DualNumber::dualNumDivEq (
    const DualNumber < Type > & other
) 

function dualNumMul

inline DualNumber < Type > translotator::DualNumber::dualNumMul (
    const DualNumber < Type > & other
) const

function dualNumMulEq

inline void translotator::DualNumber::dualNumMulEq (
    const DualNumber < Type > & other
) 

function inversed

inline DualNumber < Type > translotator::DualNumber::inversed () const

function norm

inline Type translotator::DualNumber::norm () const

function normSquared

inline Type translotator::DualNumber::normSquared () const

function normalize

inline void translotator::DualNumber::normalize () 

function normalized

inline DualNumber < Type > translotator::DualNumber::normalized () const

function operator*

inline DualNumber < Type > translotator::DualNumber::operator* (
    const DualNumber < Type > & other
) const

function operator*=

inline void translotator::DualNumber::operator*= (
    const DualNumber < Type > & other
) 

function operator/

inline DualNumber < Type > translotator::DualNumber::operator/ (
    const DualNumber < Type > & other
) const

function operator/=

inline void translotator::DualNumber::operator/= (
    const DualNumber < Type > & other
) 

function operator[]

inline Type translotator::DualNumber::operator[] (
    size_t i
) const

function operator[]

inline Type & translotator::DualNumber::operator[] (
    size_t i
) 

function toMulMatrix

return a 2x2 matrix that represents the multiplication of this dual number

inline SquareMatrix < 2, Type > translotator::DualNumber::toMulMatrix () const

casts


Public Static Functions Documentation

function sqrt

divide this dual number with another dual number

static inline DualNumber < Type > translotator::DualNumber::sqrt (
    const DualNumber < Type > & dn
) 

static functions return the square root of a dual number. Re > 0 is required



The documentation for this class was generated from the following file include/translotator/objects/DualNumber.hpp