00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 template<typename eT>
00023 class Row : public Mat<eT>, public BaseVec< eT, Row<eT> >
00024 {
00025 public:
00026
00027 typedef eT elem_type;
00028 typedef typename get_pod_type<elem_type>::result pod_type;
00029
00030
00031 inline Row();
00032 inline explicit Row(const u32 N);
00033 inline Row(const u32 in_rows, const u32 in_cols);
00034
00035 inline Row(const char* text);
00036 inline const Row& operator=(const char* text);
00037 inline Row(const std::string& text);
00038 inline const Row& operator=(const std::string& text);
00039
00040 inline Row(const Row& X);
00041 inline const Row& operator=(const Row& X);
00042 inline const Row& operator*=(const Row& X);
00043
00044
00045 inline Row(const Mat<eT>& X);
00046 inline const Row& operator=(const Mat<eT>& X);
00047 inline const Row& operator*=(const Mat<eT>& X);
00048
00049 inline Row( eT* aux_mem, const u32 aux_n_rows, const u32 aux_n_cols, const bool copy_aux_mem = true);
00050 inline Row(const eT* aux_mem, const u32 aux_n_rows, const u32 aux_n_cols);
00051
00052 inline Row( eT* aux_mem, const u32 aux_length, const bool copy_aux_mem = true);
00053 inline Row(const eT* aux_mem, const u32 aux_length);
00054
00055 template<typename T1, typename T2>
00056 inline explicit Row(const Base<pod_type,T1>& A, const Base<pod_type,T2>& B);
00057
00058 inline Row(const subview<eT>& X);
00059 inline const Row& operator=(const subview<eT>& X);
00060 inline const Row& operator*=(const subview<eT>& X);
00061
00062 inline Row(const subview_cube<eT>& X);
00063 inline const Row& operator=(const subview_cube<eT>& X);
00064 inline const Row& operator*=(const subview_cube<eT>& X);
00065
00066 inline explicit Row(const diagview<eT>& X);
00067 inline const Row& operator=(const diagview<eT>& X);
00068 inline const Row& operator*=(const diagview<eT>& X);
00069
00070 arma_inline eT& col(const u32 col_num);
00071 arma_inline eT col(const u32 col_num) const;
00072
00073 arma_inline subview_row<eT> cols(const u32 in_col1, const u32 in_col2);
00074 arma_inline const subview_row<eT> cols(const u32 in_col1, const u32 in_col2) const;
00075
00076 template<typename T1, typename op_type> inline Row(const Op<T1, op_type>& X);
00077 template<typename T1, typename op_type> inline const Row& operator=(const Op<T1, op_type>& X);
00078 template<typename T1, typename op_type> inline const Row& operator*=(const Op<T1, op_type>& X);
00079
00080 template<typename T1, typename eop_type> inline Row(const eOp<T1, eop_type>& X);
00081 template<typename T1, typename eop_type> inline const Row& operator=(const eOp<T1, eop_type>& X);
00082 template<typename T1, typename eop_type> inline const Row& operator*=(const eOp<T1, eop_type>& X);
00083
00084 template<typename T1, typename op_type> inline Row(const mtOp<eT, T1, op_type>& X);
00085 template<typename T1, typename op_type> inline const Row& operator=(const mtOp<eT, T1, op_type>& X);
00086 template<typename T1, typename op_type> inline const Row& operator*=(const mtOp<eT, T1, op_type>& X);
00087
00088 template<typename T1, typename T2, typename glue_type> inline Row(const Glue<T1, T2, glue_type>& X);
00089 template<typename T1, typename T2, typename glue_type> inline const Row& operator=(const Glue<T1, T2, glue_type>& X);
00090 template<typename T1, typename T2, typename glue_type> inline const Row& operator*=(const Glue<T1, T2, glue_type>& X);
00091
00092 template<typename T1, typename T2, typename eglue_type> inline Row(const eGlue<T1, T2, eglue_type>& X);
00093 template<typename T1, typename T2, typename eglue_type> inline const Row& operator=(const eGlue<T1, T2, eglue_type>& X);
00094 template<typename T1, typename T2, typename eglue_type> inline const Row& operator*=(const eGlue<T1, T2, eglue_type>& X);
00095
00096 template<typename T1, typename T2, typename glue_type> inline Row(const mtGlue<eT, T1, T2, glue_type>& X);
00097 template<typename T1, typename T2, typename glue_type> inline const Row& operator=(const mtGlue<eT, T1, T2, glue_type>& X);
00098 template<typename T1, typename T2, typename glue_type> inline const Row& operator*=(const mtGlue<eT, T1, T2, glue_type>& X);
00099
00100 inline void set_size(const u32 N);
00101 inline void set_size(const u32 n_rows, const u32 n_cols);
00102
00103 template<typename eT2>
00104 inline void copy_size(const Mat<eT2>& m);
00105
00106 inline void zeros();
00107 inline void zeros(const u32 N);
00108 inline void zeros(const u32 n_rows, const u32 n_cols);
00109
00110 inline void ones();
00111 inline void ones(const u32 N);
00112 inline void ones(const u32 n_rows, const u32 n_cols);
00113
00114
00115 inline void load(const std::string name, const file_type type = auto_detect, const bool print_status = true);
00116 inline void load( std::istream& is, const file_type type = auto_detect, const bool print_status = true);
00117
00118 inline void quiet_load(const std::string name, const file_type type = auto_detect);
00119 inline void quiet_load( std::istream& is, const file_type type = auto_detect);
00120
00121
00122 typedef eT* row_iterator;
00123 typedef const eT* const_row_iterator;
00124
00125 inline row_iterator begin_row(const u32 row_num);
00126 inline const_row_iterator begin_row(const u32 row_num) const;
00127
00128 inline row_iterator end_row (const u32 row_num);
00129 inline const_row_iterator end_row (const u32 row_num) const;
00130 };
00131
00132
00133