unwrap.hpp
Go to the documentation of this file.
1 // Copyright (C) 2008-2011 NICTA (www.nicta.com.au)
2 // Copyright (C) 2008-2011 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 
19 template<typename T1>
20 class unwrap
21  {
22  public:
23 
24  typedef typename T1::elem_type eT;
25 
26  inline unwrap(const T1& A) // TODO: change this to Base ?
27  : M(A)
28  {
30  }
31 
32  const Mat<eT> M;
33  };
34 
35 
36 
37 template<typename eT>
38 class unwrap< Mat<eT> >
39  {
40  public:
41 
42  inline unwrap(const Mat<eT>& A)
43  : M(A)
44  {
46  }
47 
48  const Mat<eT>& M;
49  };
50 
51 
52 
53 template<typename eT>
54 class unwrap< Row<eT> >
55  {
56  public:
57 
58  inline unwrap(const Row<eT>& A)
59  : M(A)
60  {
62  }
63 
64  const Row<eT>& M;
65  };
66 
67 
68 
69 template<typename eT>
70 class unwrap< Col<eT> >
71  {
72  public:
73 
74  inline unwrap(const Col<eT>& A)
75  : M(A)
76  {
78  }
79 
80  const Col<eT>& M;
81  };
82 
83 
84 
85 template<typename out_eT, typename T1, typename T2, typename glue_type>
86 class unwrap< mtGlue<out_eT, T1, T2, glue_type> >
87  {
88  public:
89 
91  : M(A)
92  {
94  }
95 
96  const Mat<out_eT> M;
97  };
98 
99 
100 template<typename out_eT, typename T1, typename op_type>
101 class unwrap< mtOp<out_eT, T1, op_type> >
102  {
103  public:
104 
106  : M(A)
107  {
109  }
110 
111  const Mat<out_eT> M;
112  };
113 
114 
115 
116 //
117 //
118 //
119 
120 
121 template<typename T1>
123  {
124  public:
125 
126  typedef typename T1::elem_type eT;
127 
128  inline
129  unwrap_check(const T1& A, const Mat<eT>& B)
130  : M(A)
131  {
133  arma_ignore(B);
134  }
135 
136  inline
138  {
140  }
141 
142  const Mat<eT> M;
143  };
144 
145 
146 
147 template<typename eT>
148 class unwrap_check< Mat<eT> >
149  {
150  public:
151 
152  inline
153  unwrap_check(const Mat<eT>& A, const Mat<eT>& B)
154  : M_local( (&A == &B) ? new Mat<eT>(A) : 0 )
155  , M ( (&A == &B) ? (*M_local) : A )
156  {
158  }
159 
160 
161  inline
163  {
165 
166  if(M_local)
167  {
168  delete M_local;
169  }
170  }
171 
172 
173  // the order below is important
174  const Mat<eT>* M_local;
175  const Mat<eT>& M;
176  };
177 
178 
179 
180 template<typename eT>
181 class unwrap_check< Row<eT> >
182  {
183  public:
184 
185  inline
186  unwrap_check(const Row<eT>& A, const Mat<eT>& B)
187  : M_local( (&A == reinterpret_cast<const Row<eT>*>(&B)) ? new Row<eT>(A) : 0 )
188  , M ( (&A == reinterpret_cast<const Row<eT>*>(&B)) ? (*M_local) : A )
189  {
191  }
192 
193 
194  inline
196  {
198 
199  if(M_local)
200  {
201  delete M_local;
202  }
203  }
204 
205 
206  // the order below is important
207  const Row<eT>* M_local;
208  const Row<eT>& M;
209  };
210 
211 
212 
213 template<typename eT>
214 class unwrap_check< Col<eT> >
215  {
216  public:
217 
218  inline
219  unwrap_check(const Col<eT>& A, const Mat<eT>& B)
220  : M_local( (&A == reinterpret_cast<const Col<eT>*>(&B)) ? new Col<eT>(A) : 0 )
221  , M ( (&A == reinterpret_cast<const Col<eT>*>(&B)) ? (*M_local) : A )
222  {
224  }
225 
226 
227  inline
229  {
231 
232  if(M_local)
233  {
234  delete M_local;
235  }
236  }
237 
238 
239  // the order below is important
240  const Col<eT>* M_local;
241  const Col<eT>& M;
242 
243  };
244 
245 
246 
247 //
248 //
249 //
250 
251 
252 
253 template<typename T1>
255  {
256  public:
257 
258  typedef typename T1::elem_type eT1;
259 
260  template<typename eT2>
261  inline
262  unwrap_check_mixed(const T1& A, const Mat<eT2>& B)
263  : M(A)
264  {
266  arma_ignore(B);
267  }
268 
269  inline
271  {
273  }
274 
275  const Mat<eT1> M;
276  };
277 
278 
279 
280 template<typename eT1>
282  {
283  public:
284 
285  template<typename eT2>
286  inline
288  : M_local( (void_ptr(&A) == void_ptr(&B)) ? new Mat<eT1>(A) : 0 )
289  , M ( (void_ptr(&A) == void_ptr(&B)) ? (*M_local) : A )
290  {
292  }
293 
294 
295  inline
297  {
299 
300  if(M_local)
301  {
302  delete M_local;
303  }
304  }
305 
306 
307  // the order below is important
309  const Mat<eT1>& M;
310  };
311 
312 
313 
314 template<typename eT1>
316  {
317  public:
318 
319  template<typename eT2>
320  inline
322  : M_local( (void_ptr(&A) == void_ptr(&B)) ? new Row<eT1>(A) : 0 )
323  , M ( (void_ptr(&A) == void_ptr(&B)) ? (*M_local) : A )
324  {
326  }
327 
328 
329  inline
331  {
333 
334  if(M_local)
335  {
336  delete M_local;
337  }
338  }
339 
340 
341  // the order below is important
343  const Row<eT1>& M;
344  };
345 
346 
347 
348 template<typename eT1>
350  {
351  public:
352 
353  template<typename eT2>
354  inline
356  : M_local( (void_ptr(&A) == void_ptr(&B)) ? new Col<eT1>(A) : 0 )
357  , M ( (void_ptr(&A) == void_ptr(&B)) ? (*M_local) : A )
358  {
360  }
361 
362 
363  inline
365  {
367 
368  if(M_local)
369  {
370  delete M_local;
371  }
372  }
373 
374 
375  // the order below is important
377  const Col<eT1>& M;
378  };
379 
380 
381 
382 //
383 
384 
385 
386 template<typename T1>
388  {
389  public:
390 
391  typedef typename T1::elem_type eT;
392 
393  inline partial_unwrap(const T1& A) // TODO: change this to Base ?
394  : M(A)
395  {
397  }
398 
399 
400  inline
402  {
404  }
405 
406 
407  inline eT get_val() const { return eT(1); }
408 
409 
410  static const bool do_trans = false;
411  static const bool do_times = false;
412 
413  const Mat<eT> M;
414  };
415 
416 
417 
418 template<typename eT>
420  {
421  public:
422 
423  inline
425  : M(A)
426  {
428  }
429 
430 
431  inline
433  {
435  }
436 
437 
438  inline eT get_val() const { return eT(1); }
439 
440 
441  static const bool do_trans = false;
442  static const bool do_times = false;
443 
444  const Mat<eT>& M;
445  };
446 
447 
448 
449 template<typename eT>
451  {
452  public:
453 
454  inline
456  : M(A)
457  {
459  }
460 
461 
462  inline
464  {
466  }
467 
468 
469  inline eT get_val() const { return eT(1); }
470 
471 
472  static const bool do_trans = false;
473  static const bool do_times = false;
474 
475  const Mat<eT>& M;
476  };
477 
478 
479 
480 template<typename eT>
482  {
483  public:
484 
485  inline
487  : M(A)
488  {
490  }
491 
492 
493  inline
495  {
497  }
498 
499 
500  inline eT get_val() const { return eT(1); }
501 
502 
503  static const bool do_trans = false;
504  static const bool do_times = false;
505 
506  const Mat<eT>& M;
507  };
508 
509 
510 
511 template<typename T1>
513  {
514  public:
515 
516  typedef typename T1::elem_type eT;
517 
518  inline
520  : M(A.m)
521  {
523  }
524 
525  inline
527  {
529  }
530 
531 
532  inline eT get_val() const { return eT(1); }
533 
534 
535  static const bool do_trans = true;
536  static const bool do_times = false;
537 
538  const Mat<eT> M;
539  };
540 
541 
542 
543 template<typename eT>
545  {
546  public:
547 
548  inline
550  : M(A.m)
551  {
553  }
554 
555 
556  inline
558  {
560  }
561 
562 
563  inline eT get_val() const { return eT(1); }
564 
565 
566  static const bool do_trans = true;
567  static const bool do_times = false;
568 
569  const Mat<eT>& M;
570  };
571 
572 
573 
574 template<typename eT>
576  {
577  public:
578 
579  inline
581  : M(A.m)
582  {
584  }
585 
586  inline
588  {
590  }
591 
592 
593  inline eT get_val() const { return eT(1); }
594 
595 
596  static const bool do_trans = true;
597  static const bool do_times = false;
598 
599  const Mat<eT>& M;
600  };
601 
602 
603 
604 template<typename eT>
606  {
607  public:
608 
609  inline
611  : M(A.m)
612  {
614  }
615 
616  inline
618  {
620  }
621 
622 
623  inline eT get_val() const { return eT(1); }
624 
625 
626  static const bool do_trans = true;
627  static const bool do_times = false;
628 
629  const Mat<eT>& M;
630  };
631 
632 
633 
634 template<typename T1>
636  {
637  public:
638 
639  typedef typename T1::elem_type eT;
640 
641  inline
643  : val(A.aux)
644  , M (A.m)
645  {
647  }
648 
649  inline
651  {
653  }
654 
655 
656  inline eT get_val() const { return val; }
657 
658 
659  static const bool do_trans = true;
660  static const bool do_times = true;
661 
662  const eT val;
663  const Mat<eT> M;
664  };
665 
666 
667 
668 template<typename eT>
670  {
671  public:
672 
673  inline
675  : val(A.aux)
676  , M (A.m)
677  {
679  }
680 
681  inline
683  {
685  }
686 
687 
688  inline eT get_val() const { return val; }
689 
690 
691  static const bool do_trans = true;
692  static const bool do_times = true;
693 
694  const eT val;
695  const Mat<eT>& M;
696  };
697 
698 
699 
700 template<typename eT>
702  {
703  public:
704 
705  inline
707  : val(A.aux)
708  , M (A.m)
709  {
711  }
712 
713  inline
715  {
717  }
718 
719 
720  inline eT get_val() const { return val; }
721 
722 
723  static const bool do_trans = true;
724  static const bool do_times = true;
725 
726  const eT val;
727  const Mat<eT>& M;
728  };
729 
730 
731 
732 template<typename eT>
734  {
735  public:
736 
737  inline
739  : val(A.aux)
740  , M (A.m)
741  {
743  }
744 
745  inline
747  {
749  }
750 
751 
752  inline eT get_val() const { return val; }
753 
754 
755  static const bool do_trans = true;
756  static const bool do_times = true;
757 
758  const eT val;
759  const Mat<eT>& M;
760  };
761 
762 
763 
764 template<typename T1>
766  {
767  public:
768 
769  typedef typename T1::elem_type eT;
770 
771  inline
773  : val(A.aux)
774  , M (A.P.Q)
775  {
777  }
778 
779  inline
781  {
783  }
784 
785 
786  inline eT get_val() const { return val; }
787 
788 
789  static const bool do_trans = false;
790  static const bool do_times = true;
791 
792  const eT val;
793  const Mat<eT> M;
794  };
795 
796 
797 
798 template<typename eT>
800  {
801  public:
802 
803  inline
805  : val(A.aux)
806  , M (A.P.Q)
807  {
809  }
810 
811  inline
813  {
815  }
816 
817 
818  inline eT get_val() const { return val; }
819 
820 
821  static const bool do_trans = false;
822  static const bool do_times = true;
823 
824  const eT val;
825  const Mat<eT>& M;
826  };
827 
828 
829 
830 template<typename eT>
832  {
833  public:
834 
835  inline
837  : val(A.aux)
838  , M (A.P.Q)
839  {
841  }
842 
843  inline
845  {
847  }
848 
849 
850  inline eT get_val() const { return val; }
851 
852 
853  static const bool do_trans = false;
854  static const bool do_times = true;
855 
856  const eT val;
857  const Mat<eT>& M;
858  };
859 
860 
861 
862 template<typename eT>
864  {
865  public:
866 
867  inline
869  : val(A.aux)
870  , M (A.P.Q)
871  {
873  }
874 
875  inline
877  {
879  }
880 
881 
882  inline eT get_val() const { return val; }
883 
884 
885  static const bool do_trans = false;
886  static const bool do_times = true;
887 
888  const eT val;
889  const Mat<eT>& M;
890  };
891 
892 
893 
894 //
895 
896 
897 
898 template<typename T1>
900  {
901  public:
902 
903  typedef typename T1::elem_type eT;
904 
905  inline partial_unwrap_check(const T1& A, const Mat<eT>& B)
906  : M(A)
907  {
909  arma_ignore(B);
910  }
911 
912 
913  inline
915  {
917  }
918 
919 
920  inline eT get_val() const { return eT(1); }
921 
922 
923  static const bool do_trans = false;
924  static const bool do_times = false;
925 
926  const Mat<eT> M;
927  };
928 
929 
930 
931 template<typename eT>
933  {
934  public:
935 
936  inline
938  : M_local ( (&A == &B) ? new Mat<eT>(A) : 0 )
939  , M ( (&A == &B) ? (*M_local) : A )
940  {
942  }
943 
944 
945  inline
947  {
949 
950  if(M_local)
951  {
952  delete M_local;
953  }
954  }
955 
956 
957  inline eT get_val() const { return eT(1); }
958 
959 
960  static const bool do_trans = false;
961  static const bool do_times = false;
962 
963  // the order below is important
964  const Mat<eT>* M_local;
965  const Mat<eT>& M;
966  };
967 
968 
969 
970 template<typename eT>
972  {
973  public:
974 
975  inline
977  : M_local ( (&A == &B) ? new Mat<eT>(A) : 0 )
978  , M ( (&A == &B) ? (*M_local) : A )
979  {
981  }
982 
983 
984  inline
986  {
988 
989  if(M_local)
990  {
991  delete M_local;
992  }
993  }
994 
995 
996  inline eT get_val() const { return eT(1); }
997 
998 
999  static const bool do_trans = false;
1000  static const bool do_times = false;
1001 
1002  // the order below is important
1004  const Mat<eT>& M;
1005  };
1006 
1007 
1008 
1009 template<typename eT>
1011  {
1012  public:
1013 
1014  inline
1016  : M_local ( (&A == &B) ? new Mat<eT>(A) : 0 )
1017  , M ( (&A == &B) ? (*M_local) : A )
1018  {
1020  }
1021 
1022 
1023  inline
1025  {
1027 
1028  if(M_local)
1029  {
1030  delete M_local;
1031  }
1032  }
1033 
1034 
1035  inline eT get_val() const { return eT(1); }
1036 
1037 
1038  static const bool do_trans = false;
1039  static const bool do_times = false;
1040 
1041  // the order below is important
1043  const Mat<eT>& M;
1044  };
1045 
1046 
1047 
1048 template<typename T1>
1050  {
1051  public:
1052 
1053  typedef typename T1::elem_type eT;
1054 
1055  inline
1057  : M(A.m)
1058  {
1060  arma_ignore(B);
1061  }
1062 
1063  inline
1065  {
1067  }
1068 
1069 
1070  inline eT get_val() const { return eT(1); }
1071 
1072 
1073  static const bool do_trans = true;
1074  static const bool do_times = false;
1075 
1076  const Mat<eT> M;
1077  };
1078 
1079 
1080 
1081 template<typename eT>
1083  {
1084  public:
1085 
1086  inline
1088  : M_local ( (&A.m == &B) ? new Mat<eT>(A.m) : 0 )
1089  , M ( (&A.m == &B) ? (*M_local) : A.m )
1090  {
1092  }
1093 
1094  inline
1096  {
1098 
1099  if(M_local)
1100  {
1101  delete M_local;
1102  }
1103  }
1104 
1105 
1106  inline eT get_val() const { return eT(1); }
1107 
1108 
1109  static const bool do_trans = true;
1110  static const bool do_times = false;
1111 
1112  // the order below is important
1114  const Mat<eT>& M;
1115  };
1116 
1117 
1118 
1119 template<typename eT>
1121  {
1122  public:
1123 
1124  inline
1126  : M_local ( (&A.m == &B) ? new Mat<eT>(A.m) : 0 )
1127  , M ( (&A.m == &B) ? (*M_local) : A.m )
1128  {
1130  }
1131 
1132  inline
1134  {
1136 
1137  if(M_local)
1138  {
1139  delete M_local;
1140  }
1141  }
1142 
1143 
1144  inline eT get_val() const { return eT(1); }
1145 
1146 
1147  static const bool do_trans = true;
1148  static const bool do_times = false;
1149 
1150  // the order below is important
1152  const Mat<eT>& M;
1153  };
1154 
1155 
1156 
1157 template<typename eT>
1159  {
1160  public:
1161 
1162  inline
1164  : M_local ( (&A.m == &B) ? new Mat<eT>(A.m) : 0 )
1165  , M ( (&A.m == &B) ? (*M_local) : A.m )
1166  {
1168  }
1169 
1170  inline
1172  {
1174 
1175  if(M_local)
1176  {
1177  delete M_local;
1178  }
1179  }
1180 
1181 
1182  inline eT get_val() const { return eT(1); }
1183 
1184 
1185  static const bool do_trans = true;
1186  static const bool do_times = false;
1187 
1188  // the order below is important
1190  const Mat<eT>& M;
1191  };
1192 
1193 
1194 
1195 template<typename T1>
1197  {
1198  public:
1199 
1200  typedef typename T1::elem_type eT;
1201 
1202  inline
1204  : val(A.aux)
1205  , M (A.m)
1206  {
1208  }
1209 
1210  inline
1212  {
1214  }
1215 
1216 
1217  inline eT get_val() const { return val; }
1218 
1219 
1220  static const bool do_trans = true;
1221  static const bool do_times = true;
1222 
1223  const eT val;
1224  const Mat<eT> M;
1225  };
1226 
1227 
1228 
1229 template<typename eT>
1231  {
1232  public:
1233 
1234  inline
1236  : val (A.aux)
1237  , M_local ( (&A.m == &B) ? new Mat<eT>(A.m) : 0 )
1238  , M ( (&A.m == &B) ? (*M_local) : A.m )
1239  {
1241  }
1242 
1243  inline
1245  {
1247 
1248  if(M_local)
1249  {
1250  delete M_local;
1251  }
1252  }
1253 
1254 
1255  inline eT get_val() const { return val; }
1256 
1257 
1258  static const bool do_trans = true;
1259  static const bool do_times = true;
1260 
1261  // the order below is important
1262  const eT val;
1264  const Mat<eT>& M;
1265  };
1266 
1267 
1268 
1269 template<typename eT>
1271  {
1272  public:
1273 
1274  inline
1276  : val (A.aux)
1277  , M_local ( (&A.m == &B) ? new Mat<eT>(A.m) : 0 )
1278  , M ( (&A.m == &B) ? (*M_local) : A.m )
1279  {
1281  }
1282 
1283  inline
1285  {
1287 
1288  if(M_local)
1289  {
1290  delete M_local;
1291  }
1292  }
1293 
1294 
1295  inline eT get_val() const { return val; }
1296 
1297 
1298  static const bool do_trans = true;
1299  static const bool do_times = true;
1300 
1301  // the order below is important
1302  const eT val;
1304  const Mat<eT>& M;
1305  };
1306 
1307 
1308 
1309 template<typename eT>
1311  {
1312  public:
1313 
1314  inline
1316  : val (A.aux)
1317  , M_local ( (&A.m == &B) ? new Mat<eT>(A.m) : 0 )
1318  , M ( (&A.m == &B) ? (*M_local) : A.m )
1319  {
1321  }
1322 
1323  inline
1325  {
1327 
1328  if(M_local)
1329  {
1330  delete M_local;
1331  }
1332  }
1333 
1334 
1335  inline eT get_val() const { return val; }
1336 
1337 
1338  static const bool do_trans = true;
1339  static const bool do_times = true;
1340 
1341  // the order below is important
1342  const eT val;
1344  const Mat<eT>& M;
1345  };
1346 
1347 
1348 
1349 template<typename T1>
1351  {
1352  public:
1353 
1354  typedef typename T1::elem_type eT;
1355 
1356  inline
1358  : val(A.aux)
1359  , M (A.P.Q)
1360  {
1362  arma_ignore(B);
1363  }
1364 
1365  inline
1367  {
1369  }
1370 
1371 
1372  inline eT get_val() const { return val; }
1373 
1374 
1375  static const bool do_trans = false;
1376  static const bool do_times = true;
1377 
1378  const eT val;
1379  const Mat<eT> M;
1380  };
1381 
1382 
1383 
1384 template<typename eT>
1386  {
1387  public:
1388 
1389  inline
1391  : val(A.aux)
1392  , M (A.P.Q)
1393  {
1395  arma_ignore(B);
1396  }
1397 
1398  inline
1400  {
1402  }
1403 
1404 
1405  inline eT get_val() const { return val; }
1406 
1407 
1408  static const bool do_trans = false;
1409  static const bool do_times = true;
1410 
1411  const eT val;
1412  const Mat<eT>& M;
1413  };
1414 
1415 
1416 
1417 template<typename eT>
1419  {
1420  public:
1421 
1422  inline
1424  : val(A.aux)
1425  , M (A.P.Q)
1426  {
1428  arma_ignore(B);
1429  }
1430 
1431  inline
1433  {
1435  }
1436 
1437 
1438  inline eT get_val() const { return val; }
1439 
1440 
1441  static const bool do_trans = false;
1442  static const bool do_times = true;
1443 
1444  const eT val;
1445  const Mat<eT>& M;
1446  };
1447 
1448 
1449 
1450 template<typename eT>
1452  {
1453  public:
1454 
1455  inline
1457  : val(A.aux)
1458  , M (A.P.Q)
1459  {
1461  arma_ignore(B);
1462  }
1463 
1464  inline
1466  {
1468  }
1469 
1470 
1471  inline eT get_val() const { return val; }
1472 
1473 
1474  static const bool do_trans = false;
1475  static const bool do_times = true;
1476 
1477  const eT val;
1478  const Mat<eT>& M;
1479  };
1480 
1481 
1482 
const Mat< eT > & M
Definition: unwrap.hpp:475
const Mat< eT > * M_local
Definition: unwrap.hpp:174
const Mat< eT1 > M
Definition: unwrap.hpp:275
partial_unwrap(const Op< Col< eT >, op_htrans > &A)
Definition: unwrap.hpp:610
partial_unwrap_check(const Op< T1, op_htrans2 > &A, const Mat< eT > &B)
Definition: unwrap.hpp:1203
partial_unwrap(const Row< eT > &A)
Definition: unwrap.hpp:455
T1::elem_type eT
Definition: unwrap.hpp:126
partial_unwrap_check(const eOp< Mat< eT >, eop_scalar_times > &A, const Mat< eT > &B)
Definition: unwrap.hpp:1390
void * void_ptr
Definition: typedef.hpp:165
T1::elem_type eT
Definition: unwrap.hpp:391
unwrap_check(const T1 &A, const Mat< eT > &B)
Definition: unwrap.hpp:129
T1::elem_type eT1
Definition: unwrap.hpp:258
partial_unwrap(const Mat< eT > &A)
Definition: unwrap.hpp:424
unwrap_check(const Col< eT > &A, const Mat< eT > &B)
Definition: unwrap.hpp:219
unwrap_check_mixed(const T1 &A, const Mat< eT2 > &B)
Definition: unwrap.hpp:262
partial_unwrap_check(const Col< eT > &A, const Mat< eT > &B)
Definition: unwrap.hpp:1015
const Row< eT > & M
Definition: unwrap.hpp:208
const Mat< eT1 > * M_local
Definition: unwrap.hpp:308
unwrap_check_mixed(const Row< eT1 > &A, const Mat< eT2 > &B)
Definition: unwrap.hpp:321
partial_unwrap_check(const Op< Mat< eT >, op_htrans > &A, const Mat< eT > &B)
Definition: unwrap.hpp:1087
partial_unwrap_check(const Op< Col< eT >, op_htrans > &A, const Mat< eT > &B)
Definition: unwrap.hpp:1163
partial_unwrap(const Op< Row< eT >, op_htrans2 > &A)
Definition: unwrap.hpp:706
eT get_val() const
Definition: unwrap.hpp:407
const Col< eT1 > * M_local
Definition: unwrap.hpp:376
unwrap_check(const Row< eT > &A, const Mat< eT > &B)
Definition: unwrap.hpp:186
partial_unwrap_check(const eOp< T1, eop_scalar_times > &A, const Mat< eT > &B)
Definition: unwrap.hpp:1357
const Mat< eT > & M
Definition: unwrap.hpp:175
unwrap(const Row< eT > &A)
Definition: unwrap.hpp:58
partial_unwrap(const Op< T1, op_htrans > &A)
Definition: unwrap.hpp:519
partial_unwrap_check(const Mat< eT > &A, const Mat< eT > &B)
Definition: unwrap.hpp:937
partial_unwrap(const eOp< Mat< eT >, eop_scalar_times > &A)
Definition: unwrap.hpp:804
const Col< eT > & M
Definition: unwrap.hpp:241
const Mat< eT > M
Definition: unwrap.hpp:926
partial_unwrap_check(const eOp< Row< eT >, eop_scalar_times > &A, const Mat< eT > &B)
Definition: unwrap.hpp:1423
partial_unwrap_check(const Op< Mat< eT >, op_htrans2 > &A, const Mat< eT > &B)
Definition: unwrap.hpp:1235
unwrap(const T1 &A)
Definition: unwrap.hpp:26
Class for column vectors (matrices with only one column)
Definition: Col_bones.hpp:20
partial_unwrap(const Op< Mat< eT >, op_htrans > &A)
Definition: unwrap.hpp:549
unwrap(const mtGlue< out_eT, T1, T2, glue_type > &A)
Definition: unwrap.hpp:90
T1::elem_type eT
Definition: unwrap.hpp:903
partial_unwrap_check(const Op< Row< eT >, op_htrans2 > &A, const Mat< eT > &B)
Definition: unwrap.hpp:1275
const Mat< eT > M
Definition: unwrap.hpp:32
partial_unwrap(const Op< Row< eT >, op_htrans > &A)
Definition: unwrap.hpp:580
partial_unwrap_check(const T1 &A, const Mat< eT > &B)
Definition: unwrap.hpp:905
#define arma_ignore(variable)
eT get_val() const
Definition: unwrap.hpp:920
partial_unwrap_check(const Op< Mat< eT >, op_htrans2 > &A, const Mat< eT > &B)
Definition: unwrap.hpp:1315
unwrap_check_mixed(const Col< eT1 > &A, const Mat< eT2 > &B)
Definition: unwrap.hpp:355
unwrap(const Col< eT > &A)
Definition: unwrap.hpp:74
const Mat< eT > & M
Definition: unwrap.hpp:48
partial_unwrap(const Op< T1, op_htrans2 > &A)
Definition: unwrap.hpp:642
unwrap(const mtOp< out_eT, T1, op_type > &A)
Definition: unwrap.hpp:105
partial_unwrap(const Op< Col< eT >, op_htrans2 > &A)
Definition: unwrap.hpp:738
Class for row vectors (matrices with only one row)
partial_unwrap_check(const Op< Row< eT >, op_htrans > &A, const Mat< eT > &B)
Definition: unwrap.hpp:1125
&#39;hermitian transpose&#39; operation
#define arma_extra_debug_sigprint
Definition: debug.hpp:1116
partial_unwrap(const eOp< Col< eT >, eop_scalar_times > &A)
Definition: unwrap.hpp:868
partial_unwrap(const T1 &A)
Definition: unwrap.hpp:393
const Mat< eT > M
Definition: unwrap.hpp:413
const Col< eT > * M_local
Definition: unwrap.hpp:240
partial_unwrap(const eOp< T1, eop_scalar_times > &A)
Definition: unwrap.hpp:772
T1::elem_type eT
Definition: unwrap.hpp:24
partial_unwrap(const eOp< Row< eT >, eop_scalar_times > &A)
Definition: unwrap.hpp:836
const Row< eT > & M
Definition: unwrap.hpp:64
const Col< eT > & M
Definition: unwrap.hpp:80
const Row< eT > * M_local
Definition: unwrap.hpp:207
unwrap_check_mixed(const Mat< eT1 > &A, const Mat< eT2 > &B)
Definition: unwrap.hpp:287
partial_unwrap(const Col< eT > &A)
Definition: unwrap.hpp:486
Dense matrix class.
unwrap(const Mat< eT > &A)
Definition: unwrap.hpp:42
partial_unwrap(const Op< Mat< eT >, op_htrans2 > &A)
Definition: unwrap.hpp:674
unwrap_check(const Mat< eT > &A, const Mat< eT > &B)
Definition: unwrap.hpp:153
partial_unwrap_check(const Row< eT > &A, const Mat< eT > &B)
Definition: unwrap.hpp:976
const Mat< eT > M
Definition: unwrap.hpp:142
const Mat< eT > & M
Definition: unwrap.hpp:444
partial_unwrap_check(const eOp< Col< eT >, eop_scalar_times > &A, const Mat< eT > &B)
Definition: unwrap.hpp:1456
const Row< eT1 > * M_local
Definition: unwrap.hpp:342
partial_unwrap_check(const Op< T1, op_htrans > &A, const Mat< eT > &B)
Definition: unwrap.hpp:1056
const Mat< eT > & M
Definition: unwrap.hpp:506


armadillo_matrix
Author(s):
autogenerated on Fri Apr 16 2021 02:31:59