Class for storing data required for delayed binary operations, such as the operands (e.g. two matrices) and the binary operator (e.g. addition). The operands are stored as references (which can be optimised away), while the operator is "stored" through the template definition (glue_type). The operands can be 'Mat', 'Row', 'Col', 'Op', and 'Glue'. Note that as 'Glue' can be one of the operands, more than two matrices can be stored. More...
#include <Glue_proto.hpp>
Public Types | |
typedef T1::elem_type | elem_type |
typedef get_pod_type < elem_type >::pod_type | pod_type |
Public Member Functions | |
arma_inline | Glue (const T1 &in_A, const T2 &in_B) |
arma_inline | Glue (const T1 &in_A, const T2 &in_B, const u32 in_aux_u32) |
arma_inline | ~Glue () |
Public Attributes | |
const T1 & | A |
first operand | |
const T2 & | B |
second operand | |
const u32 | aux_u32 |
storage of auxiliary data, u32 format |
Class for storing data required for delayed binary operations, such as the operands (e.g. two matrices) and the binary operator (e.g. addition). The operands are stored as references (which can be optimised away), while the operator is "stored" through the template definition (glue_type). The operands can be 'Mat', 'Row', 'Col', 'Op', and 'Glue'. Note that as 'Glue' can be one of the operands, more than two matrices can be stored.
For example, we could have: Glue< Glue<Mat, Mat, glue_times>, Mat, glue_plus>
Another example is: Glue< Op<Mat, op_trans>, Op<Mat, op_inv>, glue_times >
More complicated example: Glue< Op< Glue<Mat, Mat, glue_plus>, op_trans>, Op<Mat, op_inv>, glue_times >
Definition at line 36 of file Glue_proto.hpp.
typedef T1::elem_type Glue< T1, T2, glue_type >::elem_type |
Definition at line 40 of file Glue_proto.hpp.
typedef get_pod_type<elem_type>::pod_type Glue< T1, T2, glue_type >::pod_type |
Definition at line 41 of file Glue_proto.hpp.
first operand
Definition at line 47 of file Glue_proto.hpp.
Referenced by accu(), glue_times_vec::apply(), glue_times::apply(), glue_schur::apply(), glue_plus::apply(), glue_minus::apply(), glue_kron::apply(), glue_div::apply(), glue_cov::apply(), glue_cor::apply(), glue_plus::apply_inplace(), det(), mat_ptrs_outcheck< glue_type, Glue< T1, T2, glue_type > >::get_ptrs(), mat_ptrs< glue_type, Glue< T1, T2, glue_type > >::get_ptrs(), norm(), operator*(), and trace().
second operand
Definition at line 48 of file Glue_proto.hpp.
Referenced by accu(), glue_times_vec::apply(), glue_times::apply(), glue_schur::apply(), glue_plus::apply(), glue_minus::apply(), glue_kron::apply(), glue_div::apply(), glue_cov::apply(), glue_cor::apply(), glue_plus::apply_inplace(), det(), mat_ptrs_outcheck< glue_type, Glue< T1, T2, glue_type > >::get_ptrs(), mat_ptrs< glue_type, Glue< T1, T2, glue_type > >::get_ptrs(), norm(), operator*(), and trace().
storage of auxiliary data, u32 format
Definition at line 49 of file Glue_proto.hpp.
Referenced by glue_cov::apply(), and glue_cor::apply().