neoGFX
Cross-platform C++ app/game engine
neogfx::math::basic_matrix< T, Rows, Columns > Class Template Reference

#include <numerical.hpp>

Classes

struct  rebind
 

Public Types

typedef self_type abstract_type
 
typedef T value_type
 
typedef basic_vector< T, Columns, row_vectorrow_type
 
typedef basic_vector< T, Rows, column_vectorcolumn_type
 
typedef std::array< column_type, Columns > array_type
 

Public Member Functions

 basic_matrix ()
 
 basic_matrix (std::initializer_list< std::initializer_list< value_type >> aColumns)
 
 basic_matrix (const self_type &other)
 
 basic_matrix (self_type &&other)
 
template<typename T2 >
 basic_matrix (const basic_matrix< T2, Rows, Columns > &other)
 
self_typeoperator= (const self_type &other)
 
self_typeoperator= (self_type &&other)
 
template<typename T2 >
basic_matrix< T2, Rows, Columns > as () const
 
std::pair< uint32_t, uint32_t > size () const
 
const column_typeoperator[] (uint32_t aColumn) const
 
column_typeoperator[] (uint32_t aColumn)
 
const value_typedata () const
 
bool operator== (const self_type &right) const
 
bool operator!= (const self_type &right) const
 
self_typeoperator+= (const self_type &right)
 
self_typeoperator-= (const self_type &right)
 
self_typeoperator*= (const self_type &right)
 
self_type operator- () const
 
self_type round_to (value_type aEpsilon) const
 
basic_matrix< T, Columns, Rows > transposed () const
 
bool is_identity () const
 

Static Public Member Functions

template<typename SFINAE = self_type>
static const std::enable_if_t< Rows==Columns, SFINAE > & identity ()
 

Detailed Description

template<typename T, uint32_t Rows, uint32_t Columns>
class neogfx::math::basic_matrix< T, Rows, Columns >

Definition at line 613 of file numerical.hpp.

Member Typedef Documentation

◆ abstract_type

template<typename T, uint32_t Rows, uint32_t Columns>
typedef self_type neogfx::math::basic_matrix< T, Rows, Columns >::abstract_type

Definition at line 617 of file numerical.hpp.

◆ array_type

template<typename T, uint32_t Rows, uint32_t Columns>
typedef std::array<column_type, Columns> neogfx::math::basic_matrix< T, Rows, Columns >::array_type

Definition at line 622 of file numerical.hpp.

◆ column_type

template<typename T, uint32_t Rows, uint32_t Columns>
typedef basic_vector<T, Rows, column_vector> neogfx::math::basic_matrix< T, Rows, Columns >::column_type

Definition at line 621 of file numerical.hpp.

◆ row_type

template<typename T, uint32_t Rows, uint32_t Columns>
typedef basic_vector<T, Columns, row_vector> neogfx::math::basic_matrix< T, Rows, Columns >::row_type

Definition at line 620 of file numerical.hpp.

◆ value_type

template<typename T, uint32_t Rows, uint32_t Columns>
typedef T neogfx::math::basic_matrix< T, Rows, Columns >::value_type

Definition at line 619 of file numerical.hpp.

Constructor & Destructor Documentation

◆ basic_matrix() [1/5]

template<typename T, uint32_t Rows, uint32_t Columns>
neogfx::math::basic_matrix< T, Rows, Columns >::basic_matrix ( )
inline

Definition at line 627 of file numerical.hpp.

◆ basic_matrix() [2/5]

template<typename T, uint32_t Rows, uint32_t Columns>
neogfx::math::basic_matrix< T, Rows, Columns >::basic_matrix ( std::initializer_list< std::initializer_list< value_type >>  aColumns)
inline

Definition at line 628 of file numerical.hpp.

◆ basic_matrix() [3/5]

template<typename T, uint32_t Rows, uint32_t Columns>
neogfx::math::basic_matrix< T, Rows, Columns >::basic_matrix ( const self_type other)
inline

Definition at line 629 of file numerical.hpp.

◆ basic_matrix() [4/5]

template<typename T, uint32_t Rows, uint32_t Columns>
neogfx::math::basic_matrix< T, Rows, Columns >::basic_matrix ( self_type &&  other)
inline

Definition at line 630 of file numerical.hpp.

◆ basic_matrix() [5/5]

template<typename T, uint32_t Rows, uint32_t Columns>
template<typename T2 >
neogfx::math::basic_matrix< T, Rows, Columns >::basic_matrix ( const basic_matrix< T2, Rows, Columns > &  other)
inline

Definition at line 632 of file numerical.hpp.

Member Function Documentation

◆ as()

template<typename T, uint32_t Rows, uint32_t Columns>
template<typename T2 >
basic_matrix<T2, Rows, Columns> neogfx::math::basic_matrix< T, Rows, Columns >::as ( ) const
inline

Definition at line 642 of file numerical.hpp.

◆ data()

template<typename T, uint32_t Rows, uint32_t Columns>
const value_type* neogfx::math::basic_matrix< T, Rows, Columns >::data ( ) const
inline

Definition at line 650 of file numerical.hpp.

◆ identity()

template<typename T, uint32_t Rows, uint32_t Columns>
template<typename SFINAE = self_type>
static const std::enable_if_t<Rows == Columns, SFINAE>& neogfx::math::basic_matrix< T, Rows, Columns >::identity ( )
inlinestatic

Definition at line 694 of file numerical.hpp.

◆ is_identity()

template<typename T, uint32_t Rows, uint32_t Columns>
bool neogfx::math::basic_matrix< T, Rows, Columns >::is_identity ( ) const
inline

Definition at line 706 of file numerical.hpp.

◆ operator!=()

template<typename T, uint32_t Rows, uint32_t Columns>
bool neogfx::math::basic_matrix< T, Rows, Columns >::operator!= ( const self_type right) const
inline

Definition at line 653 of file numerical.hpp.

◆ operator*=()

template<typename T, uint32_t Rows, uint32_t Columns>
self_type& neogfx::math::basic_matrix< T, Rows, Columns >::operator*= ( const self_type right)
inline

Definition at line 656 of file numerical.hpp.

◆ operator+=()

template<typename T, uint32_t Rows, uint32_t Columns>
self_type& neogfx::math::basic_matrix< T, Rows, Columns >::operator+= ( const self_type right)
inline

Definition at line 654 of file numerical.hpp.

◆ operator-()

template<typename T, uint32_t Rows, uint32_t Columns>
self_type neogfx::math::basic_matrix< T, Rows, Columns >::operator- ( ) const
inline

Definition at line 666 of file numerical.hpp.

◆ operator-=()

template<typename T, uint32_t Rows, uint32_t Columns>
self_type& neogfx::math::basic_matrix< T, Rows, Columns >::operator-= ( const self_type right)
inline

Definition at line 655 of file numerical.hpp.

◆ operator=() [1/2]

template<typename T, uint32_t Rows, uint32_t Columns>
self_type& neogfx::math::basic_matrix< T, Rows, Columns >::operator= ( const self_type other)
inline

Definition at line 638 of file numerical.hpp.

◆ operator=() [2/2]

template<typename T, uint32_t Rows, uint32_t Columns>
self_type& neogfx::math::basic_matrix< T, Rows, Columns >::operator= ( self_type &&  other)
inline

Definition at line 639 of file numerical.hpp.

◆ operator==()

template<typename T, uint32_t Rows, uint32_t Columns>
bool neogfx::math::basic_matrix< T, Rows, Columns >::operator== ( const self_type right) const
inline

Definition at line 652 of file numerical.hpp.

◆ operator[]() [1/2]

template<typename T, uint32_t Rows, uint32_t Columns>
const column_type& neogfx::math::basic_matrix< T, Rows, Columns >::operator[] ( uint32_t  aColumn) const
inline

Definition at line 648 of file numerical.hpp.

◆ operator[]() [2/2]

template<typename T, uint32_t Rows, uint32_t Columns>
column_type& neogfx::math::basic_matrix< T, Rows, Columns >::operator[] ( uint32_t  aColumn)
inline

Definition at line 649 of file numerical.hpp.

◆ round_to()

template<typename T, uint32_t Rows, uint32_t Columns>
self_type neogfx::math::basic_matrix< T, Rows, Columns >::round_to ( value_type  aEpsilon) const
inline

Definition at line 674 of file numerical.hpp.

◆ size()

template<typename T, uint32_t Rows, uint32_t Columns>
std::pair<uint32_t, uint32_t> neogfx::math::basic_matrix< T, Rows, Columns >::size ( ) const
inline

Definition at line 647 of file numerical.hpp.

◆ transposed()

template<typename T, uint32_t Rows, uint32_t Columns>
basic_matrix<T, Columns, Rows> neogfx::math::basic_matrix< T, Rows, Columns >::transposed ( ) const
inline

Definition at line 685 of file numerical.hpp.


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