@@ -99,6 +99,7 @@ class Mat : public Base< eT, Mat<eT> >
9999 inline Mat& operator *=(const eT val);
100100 inline Mat& operator /=(const eT val);
101101
102+ inline Mat (const Mat& m, const arma_vec_indicator&, const uhword in_vec_state);
102103 inline Mat (const Mat& m);
103104 inline Mat& operator = (const Mat& m);
104105 inline Mat& operator +=(const Mat& m);
@@ -107,6 +108,7 @@ class Mat : public Base< eT, Mat<eT> >
107108 inline Mat& operator %=(const Mat& m);
108109 inline Mat& operator /=(const Mat& m);
109110
111+ template <typename T1> inline Mat (const BaseCube<eT,T1>& X, const arma_vec_indicator&, const uhword in_vec_state);
110112 template <typename T1> inline Mat (const BaseCube<eT,T1>& X);
111113 template <typename T1> inline Mat& operator = (const BaseCube<eT,T1>& X);
112114 template <typename T1> inline Mat& operator +=(const BaseCube<eT,T1>& X);
@@ -115,11 +117,12 @@ class Mat : public Base< eT, Mat<eT> >
115117 template <typename T1> inline Mat& operator %=(const BaseCube<eT,T1>& X);
116118 template <typename T1> inline Mat& operator /=(const BaseCube<eT,T1>& X);
117119
118- template <typename T1, typename T2>
119- inline explicit Mat (const Base<pod_type,T1>& A, const Base<pod_type,T2>& B);
120+ template <typename T1, typename T2> inline explicit Mat ( const Base<pod_type,T1>& A, const Base<pod_type,T2>& B, const arma_vec_indicator&, const uhword in_vec_state);
121+ template < typename T1, typename T2> inline explicit Mat (const Base<pod_type,T1>& A, const Base<pod_type,T2>& B);
120122
121123 inline explicit Mat (const subview<eT>& X, const bool use_colmem); // only to be used by the quasi_unwrap class
122124
125+ inline Mat (const subview<eT>& X, const arma_vec_indicator&, const uhword in_vec_state);
123126 inline Mat (const subview<eT>& X);
124127 inline Mat& operator = (const subview<eT>& X);
125128 inline Mat& operator +=(const subview<eT>& X);
@@ -135,6 +138,7 @@ class Mat : public Base< eT, Mat<eT> >
135138 template <bool do_conj>
136139 inline Mat (const xtrans_mat<eT,do_conj>& X); // xtrans_mat can only be generated by the Proxy class
137140
141+ inline Mat (const subview_cube<eT>& X, const arma_vec_indicator&, const uhword in_vec_state);
138142 inline Mat (const subview_cube<eT>& X);
139143 inline Mat& operator = (const subview_cube<eT>& X);
140144 inline Mat& operator +=(const subview_cube<eT>& X);
@@ -143,6 +147,7 @@ class Mat : public Base< eT, Mat<eT> >
143147 inline Mat& operator %=(const subview_cube<eT>& X);
144148 inline Mat& operator /=(const subview_cube<eT>& X);
145149
150+ inline Mat (const diagview<eT>& X, const arma_vec_indicator&, const uhword in_vec_state);
146151 inline Mat (const diagview<eT>& X);
147152 inline Mat& operator = (const diagview<eT>& X);
148153 inline Mat& operator +=(const diagview<eT>& X);
@@ -151,6 +156,7 @@ class Mat : public Base< eT, Mat<eT> >
151156 inline Mat& operator %=(const diagview<eT>& X);
152157 inline Mat& operator /=(const diagview<eT>& X);
153158
159+ template <typename T1> inline Mat (const subview_elem1<eT,T1>& X, const arma_vec_indicator&, const uhword in_vec_state);
154160 template <typename T1> inline Mat (const subview_elem1<eT,T1>& X);
155161 template <typename T1> inline Mat& operator = (const subview_elem1<eT,T1>& X);
156162 template <typename T1> inline Mat& operator +=(const subview_elem1<eT,T1>& X);
@@ -159,6 +165,7 @@ class Mat : public Base< eT, Mat<eT> >
159165 template <typename T1> inline Mat& operator %=(const subview_elem1<eT,T1>& X);
160166 template <typename T1> inline Mat& operator /=(const subview_elem1<eT,T1>& X);
161167
168+ template <typename T1, typename T2> inline Mat (const subview_elem2<eT,T1,T2>& X, const arma_vec_indicator&, const uhword in_vec_state);
162169 template <typename T1, typename T2> inline Mat (const subview_elem2<eT,T1,T2>& X);
163170 template <typename T1, typename T2> inline Mat& operator = (const subview_elem2<eT,T1,T2>& X);
164171 template <typename T1, typename T2> inline Mat& operator +=(const subview_elem2<eT,T1,T2>& X);
@@ -168,6 +175,7 @@ class Mat : public Base< eT, Mat<eT> >
168175 template <typename T1, typename T2> inline Mat& operator /=(const subview_elem2<eT,T1,T2>& X);
169176
170177 // Operators on sparse matrices (and subviews)
178+ template <typename T1> inline explicit Mat (const SpBase<eT, T1>& m, const arma_vec_indicator&, const uhword in_vec_state);
171179 template <typename T1> inline explicit Mat (const SpBase<eT, T1>& m);
172180 template <typename T1> inline Mat& operator = (const SpBase<eT, T1>& m);
173181 template <typename T1> inline Mat& operator +=(const SpBase<eT, T1>& m);
@@ -176,11 +184,13 @@ class Mat : public Base< eT, Mat<eT> >
176184 template <typename T1> inline Mat& operator %=(const SpBase<eT, T1>& m);
177185 template <typename T1> inline Mat& operator /=(const SpBase<eT, T1>& m);
178186
187+ inline explicit Mat (const SpSubview<eT>& X, const arma_vec_indicator&, const uhword in_vec_state);
179188 inline explicit Mat (const SpSubview<eT>& X);
180189 inline Mat& operator = (const SpSubview<eT>& X);
181190 inline Mat& operator +=(const SpSubview<eT>& X);
182191 inline Mat& operator -=(const SpSubview<eT>& X);
183192
193+ inline explicit Mat (const spdiagview<eT>& X, const arma_vec_indicator&, const uhword in_vec_state);
184194 inline explicit Mat (const spdiagview<eT>& X);
185195 inline Mat& operator = (const spdiagview<eT>& X);
186196 inline Mat& operator +=(const spdiagview<eT>& X);
@@ -320,6 +330,7 @@ class Mat : public Base< eT, Mat<eT> >
320330 template <typename T1> inline void insert_cols (const uword col_num, const Base<eT,T1>& X);
321331
322332
333+ template <typename T1, typename gen_type> inline Mat (const Gen<T1, gen_type>& X, const arma_vec_indicator&, const uhword in_vec_state);
323334 template <typename T1, typename gen_type> inline Mat (const Gen<T1, gen_type>& X);
324335 template <typename T1, typename gen_type> inline Mat& operator = (const Gen<T1, gen_type>& X);
325336 template <typename T1, typename gen_type> inline Mat& operator +=(const Gen<T1, gen_type>& X);
@@ -328,6 +339,7 @@ class Mat : public Base< eT, Mat<eT> >
328339 template <typename T1, typename gen_type> inline Mat& operator %=(const Gen<T1, gen_type>& X);
329340 template <typename T1, typename gen_type> inline Mat& operator /=(const Gen<T1, gen_type>& X);
330341
342+ template <typename T1, typename op_type> inline Mat (const Op<T1, op_type>& X, const arma_vec_indicator&, const uhword in_vec_state);
331343 template <typename T1, typename op_type> inline Mat (const Op<T1, op_type>& X);
332344 template <typename T1, typename op_type> inline Mat& operator = (const Op<T1, op_type>& X);
333345 template <typename T1, typename op_type> inline Mat& operator +=(const Op<T1, op_type>& X);
@@ -336,6 +348,7 @@ class Mat : public Base< eT, Mat<eT> >
336348 template <typename T1, typename op_type> inline Mat& operator %=(const Op<T1, op_type>& X);
337349 template <typename T1, typename op_type> inline Mat& operator /=(const Op<T1, op_type>& X);
338350
351+ template <typename T1, typename eop_type> inline Mat (const eOp<T1, eop_type>& X, const arma_vec_indicator&, const uhword in_vec_state);
339352 template <typename T1, typename eop_type> inline Mat (const eOp<T1, eop_type>& X);
340353 template <typename T1, typename eop_type> inline Mat& operator = (const eOp<T1, eop_type>& X);
341354 template <typename T1, typename eop_type> inline Mat& operator +=(const eOp<T1, eop_type>& X);
@@ -344,6 +357,7 @@ class Mat : public Base< eT, Mat<eT> >
344357 template <typename T1, typename eop_type> inline Mat& operator %=(const eOp<T1, eop_type>& X);
345358 template <typename T1, typename eop_type> inline Mat& operator /=(const eOp<T1, eop_type>& X);
346359
360+ template <typename T1, typename op_type> inline Mat (const mtOp<eT, T1, op_type>& X, const arma_vec_indicator&, const uhword in_vec_state);
347361 template <typename T1, typename op_type> inline Mat (const mtOp<eT, T1, op_type>& X);
348362 template <typename T1, typename op_type> inline Mat& operator = (const mtOp<eT, T1, op_type>& X);
349363 template <typename T1, typename op_type> inline Mat& operator +=(const mtOp<eT, T1, op_type>& X);
@@ -352,6 +366,7 @@ class Mat : public Base< eT, Mat<eT> >
352366 template <typename T1, typename op_type> inline Mat& operator %=(const mtOp<eT, T1, op_type>& X);
353367 template <typename T1, typename op_type> inline Mat& operator /=(const mtOp<eT, T1, op_type>& X);
354368
369+ template <typename T1, typename op_type> inline Mat (const CubeToMatOp<T1, op_type>& X, const arma_vec_indicator&, const uhword in_vec_state);
355370 template <typename T1, typename op_type> inline Mat (const CubeToMatOp<T1, op_type>& X);
356371 template <typename T1, typename op_type> inline Mat& operator = (const CubeToMatOp<T1, op_type>& X);
357372 template <typename T1, typename op_type> inline Mat& operator +=(const CubeToMatOp<T1, op_type>& X);
@@ -360,6 +375,7 @@ class Mat : public Base< eT, Mat<eT> >
360375 template <typename T1, typename op_type> inline Mat& operator %=(const CubeToMatOp<T1, op_type>& X);
361376 template <typename T1, typename op_type> inline Mat& operator /=(const CubeToMatOp<T1, op_type>& X);
362377
378+ template <typename T1, typename op_type> inline Mat (const SpToDOp<T1, op_type>& X, const arma_vec_indicator&, const uhword in_vec_state);
363379 template <typename T1, typename op_type> inline Mat (const SpToDOp<T1, op_type>& X);
364380 template <typename T1, typename op_type> inline Mat& operator = (const SpToDOp<T1, op_type>& X);
365381 template <typename T1, typename op_type> inline Mat& operator +=(const SpToDOp<T1, op_type>& X);
@@ -368,6 +384,7 @@ class Mat : public Base< eT, Mat<eT> >
368384 template <typename T1, typename op_type> inline Mat& operator %=(const SpToDOp<T1, op_type>& X);
369385 template <typename T1, typename op_type> inline Mat& operator /=(const SpToDOp<T1, op_type>& X);
370386
387+ template <typename T1, typename op_type> inline explicit Mat (const mtSpReduceOp<eT, T1, op_type>& X, const arma_vec_indicator&, const uhword in_vec_state);
371388 template <typename T1, typename op_type> inline explicit Mat (const mtSpReduceOp<eT, T1, op_type>& X);
372389 template <typename T1, typename op_type> inline Mat& operator = (const mtSpReduceOp<eT, T1, op_type>& X);
373390 template <typename T1, typename op_type> inline Mat& operator +=(const mtSpReduceOp<eT, T1, op_type>& X);
@@ -376,6 +393,7 @@ class Mat : public Base< eT, Mat<eT> >
376393 template <typename T1, typename op_type> inline Mat& operator %=(const mtSpReduceOp<eT, T1, op_type>& X);
377394 template <typename T1, typename op_type> inline Mat& operator /=(const mtSpReduceOp<eT, T1, op_type>& X);
378395
396+ template <typename T1, typename T2, typename glue_type> inline Mat (const Glue<T1, T2, glue_type>& X, const arma_vec_indicator&, const uhword in_vec_state);
379397 template <typename T1, typename T2, typename glue_type> inline Mat (const Glue<T1, T2, glue_type>& X);
380398 template <typename T1, typename T2, typename glue_type> inline Mat& operator = (const Glue<T1, T2, glue_type>& X);
381399 template <typename T1, typename T2, typename glue_type> inline Mat& operator +=(const Glue<T1, T2, glue_type>& X);
@@ -387,6 +405,7 @@ class Mat : public Base< eT, Mat<eT> >
387405 template <typename T1, typename T2> inline Mat& operator +=(const Glue<T1, T2, glue_times>& X);
388406 template <typename T1, typename T2> inline Mat& operator -=(const Glue<T1, T2, glue_times>& X);
389407
408+ template <typename T1, typename T2, typename eglue_type> inline Mat (const eGlue<T1, T2, eglue_type>& X, const arma_vec_indicator&, const uhword in_vec_state);
390409 template <typename T1, typename T2, typename eglue_type> inline Mat (const eGlue<T1, T2, eglue_type>& X);
391410 template <typename T1, typename T2, typename eglue_type> inline Mat& operator = (const eGlue<T1, T2, eglue_type>& X);
392411 template <typename T1, typename T2, typename eglue_type> inline Mat& operator +=(const eGlue<T1, T2, eglue_type>& X);
@@ -395,6 +414,7 @@ class Mat : public Base< eT, Mat<eT> >
395414 template <typename T1, typename T2, typename eglue_type> inline Mat& operator %=(const eGlue<T1, T2, eglue_type>& X);
396415 template <typename T1, typename T2, typename eglue_type> inline Mat& operator /=(const eGlue<T1, T2, eglue_type>& X);
397416
417+ template <typename T1, typename T2, typename glue_type> inline Mat (const mtGlue<eT, T1, T2, glue_type>& X, const arma_vec_indicator&, const uhword in_vec_state);
398418 template <typename T1, typename T2, typename glue_type> inline Mat (const mtGlue<eT, T1, T2, glue_type>& X);
399419 template <typename T1, typename T2, typename glue_type> inline Mat& operator = (const mtGlue<eT, T1, T2, glue_type>& X);
400420 template <typename T1, typename T2, typename glue_type> inline Mat& operator +=(const mtGlue<eT, T1, T2, glue_type>& X);
@@ -403,6 +423,7 @@ class Mat : public Base< eT, Mat<eT> >
403423 template <typename T1, typename T2, typename glue_type> inline Mat& operator %=(const mtGlue<eT, T1, T2, glue_type>& X);
404424 template <typename T1, typename T2, typename glue_type> inline Mat& operator /=(const mtGlue<eT, T1, T2, glue_type>& X);
405425
426+ template <typename T1, typename T2, typename glue_type> inline Mat (const SpToDGlue<T1, T2, glue_type>& X, const arma_vec_indicator&, const uhword in_vec_state);
406427 template <typename T1, typename T2, typename glue_type> inline Mat (const SpToDGlue<T1, T2, glue_type>& X);
407428 template <typename T1, typename T2, typename glue_type> inline Mat& operator = (const SpToDGlue<T1, T2, glue_type>& X);
408429 template <typename T1, typename T2, typename glue_type> inline Mat& operator +=(const SpToDGlue<T1, T2, glue_type>& X);
@@ -958,4 +979,8 @@ class Mat_aux
958979
959980
960981
982+ template <typename eT> class Mat_noalias : public Mat <eT> {};
983+
984+
985+
961986// ! @}
0 commit comments