Main Page
Modules
Namespaces
Classes
Files
File List
File Members
include
armadillo_bits
glue_times_bones.hpp
Go to the documentation of this file.
1
// Copyright (C) 2008-2010 NICTA (www.nicta.com.au)
2
// Copyright (C) 2008-2010 Conrad Sanderson
3
//
4
// This file is part of the Armadillo C++ library.
5
// It is provided without any warranty of fitness
6
// for any purpose. You can redistribute this file
7
// and/or modify it under the terms of the GNU
8
// Lesser General Public License (LGPL) as published
9
// by the Free Software Foundation, either version 3
10
// of the License or (at your option) any later version.
11
// (see http://www.opensource.org/licenses for more info)
12
13
16
17
18
23
24
template
<
typename
glue_type,
typename
T1>
25
struct
depth_lhs
26
{
27
static
const
uword
num
= 0;
28
};
29
30
template
<
typename
glue_type,
typename
T1,
typename
T2>
31
struct
depth_lhs
< glue_type,
Glue
<T1,T2,glue_type> >
32
{
33
static
const
uword
num
= 1 +
depth_lhs<glue_type, T1>::num
;
34
};
35
36
37
38
template
<uword N>
39
struct
glue_times_redirect
40
{
41
template
<
typename
T1,
typename
T2>
42
inline
static
void
apply(
Mat<typename T1::elem_type>
& out,
const
Glue<T1,T2,glue_times>
& X);
43
};
44
45
46
template
<>
47
struct
glue_times_redirect
<3>
48
{
49
template
<
typename
T1,
typename
T2,
typename
T3>
50
inline
static
void
apply(
Mat<typename T1::elem_type>
& out,
const
Glue
<
Glue<T1,T2,glue_times>
,T3,
glue_times
>& X);
51
};
52
53
54
template
<>
55
struct
glue_times_redirect
<4>
56
{
57
template
<
typename
T1,
typename
T2,
typename
T3,
typename
T4>
58
inline
static
void
apply(
Mat<typename T1::elem_type>
& out,
const
Glue
<
Glue
<
Glue<T1,T2,glue_times>
, T3,
glue_times
>, T4,
glue_times
>& X);
59
};
60
61
62
64
class
glue_times
65
{
66
public
:
67
68
69
template
<
typename
T1,
typename
T2>
70
inline
static
void
apply(
Mat<typename T1::elem_type>
& out,
const
Glue<T1,T2,glue_times>
& X);
71
72
73
template
<
typename
T1>
74
inline
static
void
apply_inplace(
Mat<typename T1::elem_type>
& out,
const
T1& X);
75
76
template
<
typename
T1,
typename
T2>
77
arma_hot
inline
static
void
apply_inplace_plus(
Mat<typename T1::elem_type>
& out,
const
Glue<T1, T2, glue_times>
& X,
const
sword
sign);
78
79
template
<
typename
eT1,
typename
eT2>
80
inline
static
void
apply_mixed(
Mat
<
typename
promote_type<eT1,eT2>::result
>& out,
const
Mat<eT1>
& X,
const
Mat<eT2>
& Y);
81
82
83
template
<
typename
eT>
84
arma_inline
static
uword
mul_storage_cost(
const
Mat<eT>
& A,
const
Mat<eT>
& B,
const
bool
do_trans_A,
const
bool
do_trans_B);
85
86
template
<
typename
eT>
87
arma_hot
inline
static
void
apply(
Mat<eT>
& out,
const
Mat<eT>
& A,
const
Mat<eT>
& B,
const
eT val,
const
bool
do_trans_A,
const
bool
do_trans_B,
const
bool
do_scalar_times);
88
89
template
<
typename
eT>
90
inline
static
void
apply(
Mat<eT>
& out,
const
Mat<eT>
& A,
const
Mat<eT>
& B,
const
Mat<eT>
& C,
const
eT val,
const
bool
do_trans_A,
const
bool
do_trans_B,
const
bool
do_trans_C,
const
bool
do_scalar_times);
91
92
template
<
typename
eT>
93
inline
static
void
apply(
Mat<eT>
& out,
const
Mat<eT>
& A,
const
Mat<eT>
& B,
const
Mat<eT>
& C,
const
Mat<eT>
& D,
const
eT val,
const
bool
do_trans_A,
const
bool
do_trans_B,
const
bool
do_trans_C,
const
bool
do_trans_D,
const
bool
do_scalar_times);
94
95
};
96
97
98
99
class
glue_times_diag
100
{
101
public
:
102
103
template
<
typename
T1,
typename
T2>
104
arma_hot
inline
static
void
apply(
Mat<typename T1::elem_type>
& out,
const
Glue<T1, T2, glue_times_diag>
& X);
105
106
};
107
108
109
111
promote_type::result
is_promotable< T1, T2 >::result result
Definition:
promote_type.hpp:204
glue_times
Class which implements the immediate multiplication of two or more matrices.
Definition:
glue_times_bones.hpp:64
glue_times_redirect
Definition:
glue_times_bones.hpp:39
uword
u32 uword
Definition:
typedef.hpp:85
glue_times_diag
Definition:
glue_times_bones.hpp:99
depth_lhs::num
static const uword num
Definition:
glue_times_bones.hpp:27
Mat
Dense matrix class.
Definition:
forward_bones.hpp:19
arma_inline
#define arma_inline
Definition:
compiler_setup.hpp:19
arma_hot
#define arma_hot
Definition:
compiler_setup.hpp:15
sword
s32 sword
Definition:
typedef.hpp:86
depth_lhs
Template metaprogram depth_lhs calculates the number of Glue<Tx,Ty, glue_type> instances on the left ...
Definition:
glue_times_bones.hpp:25
Glue
Definition:
forward_bones.hpp:92
armadillo_matrix
Author(s):
autogenerated on Fri Apr 16 2021 02:31:57