neoGFX
Cross-platform C++ app/game engine
Loading...
Searching...
No Matches
neolib::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, Columnsarray_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_type & operator= (const self_type &other)
 
self_type & operator= (self_type &&other)
 
template<typename T2 >
basic_matrix< T2, Rows, Columnsas () const
 
std::pair< uint32_t, uint32_tsize () 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_type & operator+= (const self_type &right)
 
self_type & operator-= (const self_type &right)
 
self_type & operator*= (const self_type &right)
 
self_type operator- () const
 
self_type round_to (value_type aEpsilon) const
 
basic_matrix< T, Columns, Rowstransposed () const
 
bool is_identity () const
 
const std::optional< bool > & maybe_identity () const
 

Static Public Member Functions

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

Friends

void swap (self_type &a, self_type &b)
 

Detailed Description

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

Definition at line 902 of file numerical.hpp.

Member Typedef Documentation

◆ abstract_type

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

Definition at line 906 of file numerical.hpp.

◆ array_type

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

Definition at line 911 of file numerical.hpp.

◆ column_type

Definition at line 910 of file numerical.hpp.

◆ row_type

Definition at line 909 of file numerical.hpp.

◆ value_type

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

Definition at line 908 of file numerical.hpp.

Constructor & Destructor Documentation

◆ basic_matrix() [1/5]

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

Definition at line 916 of file numerical.hpp.

◆ basic_matrix() [2/5]

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

Definition at line 917 of file numerical.hpp.

◆ basic_matrix() [3/5]

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

Definition at line 918 of file numerical.hpp.

◆ basic_matrix() [4/5]

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

Definition at line 919 of file numerical.hpp.

◆ basic_matrix() [5/5]

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

Definition at line 921 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 > neolib::math::basic_matrix< T, Rows, Columns >::as ( ) const
inline

Definition at line 932 of file numerical.hpp.

◆ data()

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

Definition at line 940 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 > & neolib::math::basic_matrix< T, Rows, Columns >::identity ( )
inlinestatic

Definition at line 984 of file numerical.hpp.

◆ is_identity()

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

Definition at line 997 of file numerical.hpp.

◆ maybe_identity()

template<typename T , uint32_t Rows, uint32_t Columns>
const std::optional< bool > & neolib::math::basic_matrix< T, Rows, Columns >::maybe_identity ( ) const
inline

Definition at line 1004 of file numerical.hpp.

◆ operator!=()

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

Definition at line 943 of file numerical.hpp.

◆ operator*=()

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

Definition at line 946 of file numerical.hpp.

◆ operator+=()

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

Definition at line 944 of file numerical.hpp.

◆ operator-()

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

Definition at line 956 of file numerical.hpp.

◆ operator-=()

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

Definition at line 945 of file numerical.hpp.

◆ operator=() [1/2]

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

Definition at line 928 of file numerical.hpp.

◆ operator=() [2/2]

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

Definition at line 929 of file numerical.hpp.

◆ operator==()

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

Definition at line 942 of file numerical.hpp.

◆ operator[]() [1/2]

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

Definition at line 939 of file numerical.hpp.

◆ operator[]() [2/2]

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

Definition at line 938 of file numerical.hpp.

◆ round_to()

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

Definition at line 964 of file numerical.hpp.

◆ size()

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

Definition at line 937 of file numerical.hpp.

◆ transposed()

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

Definition at line 975 of file numerical.hpp.

Friends And Related Symbol Documentation

◆ swap

template<typename T , uint32_t Rows, uint32_t Columns>
void swap ( self_type &  a,
self_type &  b 
)
friend

Definition at line 1009 of file numerical.hpp.


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