MCKL
Monte Carlo Kernel Library
Public Types | Public Member Functions | List of all members
mckl::PMCMCStateMatrix< Param, Layout, T, Dim > Class Template Reference

#include <mckl/algorithm/pmcmc.hpp>

Inherits mckl::StateMatrix< Layout, T, Dim >.

Public Types

using param_type = Param
 
- Public Types inherited from mckl::StateMatrix< Layout, T, Dim >
using difference_type = typename matrix_type::difference_type
 
using matrix_type = Matrix< T, Layout >
 
using pointer = typename matrix_type::pointer
 
using reference = typename matrix_type::reference
 
using size_type = typename matrix_type::size_type
 
using value_type = typename matrix_type::value_type
 
- Public Types inherited from mckl::Matrix< T, Layout >
using allocator_type = Allocator< T >
 
using col_iterator = std::conditional_t< Layout==ColMajor, pointer, StepIterator< pointer > >
 
using col_range = Range< col_iterator >
 
using const_col_iterator = std::conditional_t< Layout==ColMajor, const_pointer, StepIterator< const_pointer > >
 
using const_col_range = Range< const_col_iterator >
 
using const_iterator = const_pointer
 
using const_pointer = const value_type *
 
using const_reference = const value_type &
 
using const_reverse_col_iterator = std::reverse_iterator< const_col_iterator >
 
using const_reverse_col_range = Range< const_reverse_col_iterator >
 
using const_reverse_iterator = std::reverse_iterator< const_iterator >
 
using const_reverse_row_iterator = std::reverse_iterator< const_row_iterator >
 
using const_reverse_row_range = Range< const_reverse_row_iterator >
 
using const_row_iterator = std::conditional_t< Layout==RowMajor, const_pointer, StepIterator< const_pointer > >
 
using const_row_range = Range< const_row_iterator >
 
using difference_type = std::ptrdiff_t
 
using iterator = pointer
 
using pointer = value_type *
 
using reference = value_type &
 
using reverse_col_iterator = std::reverse_iterator< col_iterator >
 
using reverse_col_range = Range< reverse_col_iterator >
 
using reverse_iterator = std::reverse_iterator< iterator >
 
using reverse_row_iterator = std::reverse_iterator< row_iterator >
 
using reverse_row_range = Range< reverse_row_iterator >
 
using row_iterator = std::conditional_t< Layout==RowMajor, pointer, StepIterator< pointer > >
 
using row_range = Range< row_iterator >
 
using size_type = std::size_t
 
using transpose_type = Matrix< T, Layout==RowMajor ? ColMajor :RowMajor, Allocator< T > >
 
using value_type = T
 

Public Member Functions

void add_log_nc (double nc)
 
double log_nc () const
 
const param_typeparam ()
 
void reset (const param_type &p, double nc=0)
 
- Public Member Functions inherited from mckl::StateMatrix< Layout, T, Dim >
 StateMatrix (size_type N=0)
 Matrix::Matrix(N, Dim) More...
 
 StateMatrix (size_type N, size_type dim)
 Matrix::Matrix(N, dim) More...
 
size_type dim () const
 Matrix::ncol() More...
 
void duplicate (size_type src, size_type dst)
 Duplicate a sample. More...
 
void reserve (size_type N)
 Matrix::reserve(N, dim()) More...
 
void resize (size_type N)
 Matrix::resize(N, dim()) More...
 
template<typename InputIter >
void select (size_type n, InputIter index)
 Select samples in-place. More...
 
size_type size () const
 Matrix::nrow() More...
 
- Public Member Functions inherited from mckl::Matrix< T, Layout >
 Matrix () noexcept(std::is_nothrow_default_constructible< Vector< T, Allocator< T > >>::value)
 Construct an empty matrix. More...
 
 Matrix (size_type nrow, size_type ncol)
 Construct an nrow by ncol matrix. More...
 
 Matrix (const Matrix &)=default
 Copy constructor. More...
 
 Matrix (Matrix &&other) noexcept(std::is_nothrow_move_constructible< Vector< T, Allocator< T > >>::value)
 Move constructor. More...
 
reference at (size_type i, size_type j)
 Access an element in the matrix with bound checking. More...
 
const_reference at (size_type i, size_type j) const
 Access an element in the matrix with bound checking. More...
 
iterator begin ()
 Iterator to the upper left corner of the matrix. More...
 
const_iterator begin () const
 Iterator to the upper left corner of the matrix. More...
 
const_iterator cbegin () const
 Iterator to the upper left corner of the matrix. More...
 
const_col_range ccol (size_type i) const
 Range of a column. More...
 
const_iterator cend () const
 Iterator to one pass the lower right corner of the matrix. More...
 
void clear ()
 Clear the matrix of all elements. More...
 
col_range col (size_type i)
 Range of a column. More...
 
const_col_range col (size_type i) const
 Range of a column. More...
 
col_iterator col_begin (size_type i)
 Iterator to the beginning of a column. More...
 
const_col_iterator col_begin (size_type j) const
 Iterator to the beginning of a column. More...
 
const_col_iterator col_cbegin (size_type j) const
 Iterator to the beginning of a column. More...
 
const_col_iterator col_cend (size_type j) const
 Iterator to one pass the end of a column. More...
 
const_reverse_col_iterator col_crbegin (size_type j) const
 Iterator to the end of a column. More...
 
const_reverse_col_iterator col_crend (size_type j) const
 Iterator to one before the beginning of a column. More...
 
pointer col_data (size_type j)
 Pointer to the beginning of a column. More...
 
const_pointer col_data (size_type j) const
 Pointer to the beginning of a column. More...
 
col_iterator col_end (size_type j)
 Iterator to one pass the end of a column. More...
 
const_col_iterator col_end (size_type j) const
 Iterator to one pass the end of a column. More...
 
reverse_col_iterator col_rbegin (size_type j)
 Iterator to the end of a column. More...
 
const_reverse_col_iterator col_rbegin (size_type j) const
 Iterator to the end of a column. More...
 
reverse_col_iterator col_rend (size_type j)
 Iterator to one before the beginning of a column. More...
 
const_reverse_col_iterator col_rend (size_type j) const
 Iterator to one before the beginning of a column. More...
 
size_type col_stride () const
 The stride size of column-wise access through col_data() More...
 
const_reverse_iterator crbegin () const
 Iterator to the lower right corner of the matrix. More...
 
const_reverse_col_range crcol (size_type i) const
 Range of a column in reverse order. More...
 
const_reverse_iterator crend () const
 Iterator one before the upper left corner of the matrix. More...
 
const_row_range crow (size_type i) const
 Range of a row. More...
 
const_reverse_row_range crrow (size_type i) const
 Range of a row in reverse order. More...
 
pointer data ()
 Pointer to the upper left corner of the matrix. More...
 
const_pointer data () const
 Pointer to the upper left corner of the matrix. More...
 
bool empty () const
 If the matrix is empty, i.e., nrow() * ncol() == 0 More...
 
iterator end ()
 Iterator to one pass the lower right corner of the matrix. More...
 
const_iterator end () const
 Iterator to one pass the lower right corner of the matrix. More...
 
allocator_type get_allocator () const
 Return the associated allocator. More...
 
size_type ldim () const
 The number of elements in the leading dimension. More...
 
size_type ncol () const
 The number of columns. More...
 
size_type nrow () const
 The number of rows. More...
 
 operator transpose_type () const
 Convert to a matrix with a different storage layout. More...
 
reference operator() (size_type i, size_type j)
 Access an element in the matrix. More...
 
const_reference operator() (size_type i, size_type j) const
 Access an element in the matrix. More...
 
Matrixoperator= (const Matrix &)=default
 Copy assignment operator. More...
 
Matrixoperator= (Matrix &&other) noexcept(noexcept(data_.swap(other.data_)))
 Move assignment operator. More...
 
void push_back_col (InputIter first)
 Insert a new coloumn at the right. More...
 
void push_back_row (InputIter first)
 Insert a new row at the bottom. More...
 
reverse_iterator rbegin ()
 Iterator to the lower right corner of the matrix. More...
 
const_reverse_iterator rbegin () const
 Iterator to the lower right corner of the matrix. More...
 
reverse_col_range rcol (size_type i)
 Range of a column in reverse order. More...
 
const_reverse_col_range rcol (size_type i) const
 Range of a column in reverse order. More...
 
reverse_iterator rend ()
 Iterator one before the upper left corner of the matrix. More...
 
const_reverse_iterator rend () const
 Iterator one before the upper left corner of the matrix. More...
 
void reserve (size_type n, size_type m)
 Reserve storage space for the matrix. More...
 
void resize (size_type nrow, size_type ncol)
 Resize the matrix. More...
 
row_range row (size_type i)
 Range of a row. More...
 
const_row_range row (size_type i) const
 Range of a row. More...
 
row_iterator row_begin (size_type i)
 Iterator to the beginning of a row. More...
 
const_row_iterator row_begin (size_type i) const
 Iterator to the beginning of a row. More...
 
const_row_iterator row_cbegin (size_type i) const
 Iterator to the beginning of a row. More...
 
const_row_iterator row_cend (size_type i) const
 Iterator to one pass the end of a row. More...
 
const_reverse_row_iterator row_crbegin (size_type i) const
 Iterator to the end of a row. More...
 
const_reverse_row_iterator row_crend (size_type i) const
 Iterator to one before the beginning of a row. More...
 
pointer row_data (size_type i)
 Pointer to the first element of a row. More...
 
const_pointer row_data (size_type i) const
 Pointer to the first element of a row. More...
 
row_iterator row_end (size_type i)
 Iterator to one pass the end of a row. More...
 
const_row_iterator row_end (size_type i) const
 Iterator to one pass the end of a row. More...
 
reverse_row_iterator row_rbegin (size_type i)
 Iterator to the end of a row. More...
 
const_reverse_row_iterator row_rbegin (size_type i) const
 Iterator to the end of a row. More...
 
reverse_row_iterator row_rend (size_type i)
 Iterator to one before the beginning of a row. More...
 
const_reverse_row_iterator row_rend (size_type i) const
 Iterator to one before the beginning of a row. More...
 
size_type row_stride () const
 The stride of row-wise access through row_data() More...
 
reverse_row_range rrow (size_type i)
 Range of a row in reverse order. More...
 
const_reverse_row_range rrow (size_type i) const
 Range of a row in reverse order. More...
 
void shrink_to_fit ()
 Release memory no longer needed. More...
 
size_type size () const
 The total number of elements. More...
 
void swap (Matrix &other) noexcept(noexcept(data_.swap(other.data_)))
 Swap two matrices. More...
 

Additional Inherited Members

- Static Public Member Functions inherited from mckl::Matrix< T, Layout >
static constexpr MatrixLayout layout ()
 The layout of the matrix. More...
 

Detailed Description

template<typename Param, MatrixLayout Layout, typename T, std::size_t Dim = 0>
class mckl::PMCMCStateMatrix< Param, Layout, T, Dim >

Definition at line 46 of file pmcmc.hpp.

Member Typedef Documentation

◆ param_type

template<typename Param , MatrixLayout Layout, typename T , std::size_t Dim = 0>
using mckl::PMCMCStateMatrix< Param, Layout, T, Dim >::param_type = Param

Definition at line 49 of file pmcmc.hpp.

Member Function Documentation

◆ add_log_nc()

template<typename Param , MatrixLayout Layout, typename T , std::size_t Dim = 0>
void mckl::PMCMCStateMatrix< Param, Layout, T, Dim >::add_log_nc ( double  nc)
inline

Definition at line 55 of file pmcmc.hpp.

◆ log_nc()

template<typename Param , MatrixLayout Layout, typename T , std::size_t Dim = 0>
double mckl::PMCMCStateMatrix< Param, Layout, T, Dim >::log_nc ( ) const
inline

Definition at line 53 of file pmcmc.hpp.

◆ param()

template<typename Param , MatrixLayout Layout, typename T , std::size_t Dim = 0>
const param_type& mckl::PMCMCStateMatrix< Param, Layout, T, Dim >::param ( )
inline

Definition at line 57 of file pmcmc.hpp.

◆ reset()

template<typename Param , MatrixLayout Layout, typename T , std::size_t Dim = 0>
void mckl::PMCMCStateMatrix< Param, Layout, T, Dim >::reset ( const param_type p,
double  nc = 0 
)
inline

Definition at line 59 of file pmcmc.hpp.