MDA
Main Page
Modules
Namespaces
Classes
Files
File List
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Groups
src
lib
utils
MatrixStack.hpp
Go to the documentation of this file.
1
/*
2
* MatrixStack.hpp
3
*
4
* Created on: Sep 11, 2013
5
* Author: ckeme_01
6
*/
7
13
#ifndef MATRIXSTACK_HPP_
14
#define MATRIXSTACK_HPP_
15
16
17
18
// C header
19
#include <cstdlib>
20
21
// C++ header
22
#include <vector>
23
24
// MDAT
25
#include "Matrix.hpp"
26
27
namespace
MDAT {
28
34
template
<
int
n,
typename
DataType>
35
class
MatrixStack
36
{
37
38
private
:
39
std::vector<Matrix<DataType> > _stack;
40
41
public
:
42
46
MatrixStack
():_stack(n,
Matrix
<DataType>(1,1))
47
{}
48
54
MatrixStack
(
size_t
dim1
,
size_t
dim2
):_stack(n,
Matrix
<DataType>(dim1,dim2))
55
{}
56
61
MatrixStack
(
const
MatrixStack
&) =
default
;
62
67
MatrixStack
(
MatrixStack
&&) =
default
;
68
74
MatrixStack
&
operator=
(
const
MatrixStack
&) =
default
;
75
81
MatrixStack
&
operator=
(
MatrixStack
&&) =
default
;
82
83
84
virtual
~
MatrixStack
()
85
{}
86
87
93
Matrix<DataType>
&
operator[]
(
unsigned
int
index)
94
{
95
return
_stack[index];
96
}
97
103
const
Matrix<DataType>
&
operator[]
(
unsigned
int
index)
const
104
{
105
return
_stack[index];
106
}
107
108
113
size_t
114
dim1
()
115
{
116
return
_stack[0].dim1();
117
}
118
123
size_t
124
dim2
()
125
{
126
return
_stack[0].dim2();
127
}
128
129
135
void
136
resize
(
size_t
new_size1,
size_t
new_size2)
137
{
138
for
(
size_t
i=0; i<n; ++i)
139
_stack[i].
resize
(new_size1, new_size2);
140
}
141
147
void
148
ensure
(
size_t
new_size1,
size_t
new_size2)
149
{
150
for
(
size_t
i=0; i<n; ++i)
151
_stack[i].
ensure
(new_size1, new_size2);
152
}
153
158
void
159
fill
(
const
DataType &value)
160
{
161
for
(
size_t
i=0; i<n; ++i)
162
_stack[i].
fill
(value);
163
}
164
};
165
166
}
167
168
#endif
/* MATRIXSTACK_HPP_ */
Generated on Tue Nov 19 2013 18:24:38 for MDA by
1.8.3.1