annotate armadillo-3.900.4/include/armadillo_bits/diskio_bones.hpp @ 84:55a047986812 tip

Update library URI so as not to be document-local
author Chris Cannam
date Wed, 22 Apr 2020 14:21:57 +0100
parents 1ec0e2823891
children
rev   line source
Chris@49 1 // Copyright (C) 2008-2012 NICTA (www.nicta.com.au)
Chris@49 2 // Copyright (C) 2008-2012 Conrad Sanderson
Chris@49 3 // Copyright (C) 2009-2010 Ian Cullinan
Chris@49 4 // Copyright (C) 2012 Ryan Curtin
Chris@49 5 // Copyright (C) 2013 Szabolcs Horvat
Chris@49 6 //
Chris@49 7 // This Source Code Form is subject to the terms of the Mozilla Public
Chris@49 8 // License, v. 2.0. If a copy of the MPL was not distributed with this
Chris@49 9 // file, You can obtain one at http://mozilla.org/MPL/2.0/.
Chris@49 10
Chris@49 11
Chris@49 12 //! \addtogroup diskio
Chris@49 13 //! @{
Chris@49 14
Chris@49 15
Chris@49 16 //! class for saving and loading matrices and fields
Chris@49 17 class diskio
Chris@49 18 {
Chris@49 19 public:
Chris@49 20
Chris@49 21 template<typename eT> inline static std::string gen_txt_header(const Mat<eT>& x);
Chris@49 22 template<typename eT> inline static std::string gen_bin_header(const Mat<eT>& x);
Chris@49 23
Chris@49 24 template<typename eT> inline static std::string gen_bin_header(const SpMat<eT>& x);
Chris@49 25
Chris@49 26 template<typename eT> inline static std::string gen_txt_header(const Cube<eT>& x);
Chris@49 27 template<typename eT> inline static std::string gen_bin_header(const Cube<eT>& x);
Chris@49 28
Chris@49 29 inline static file_type guess_file_type(std::istream& f);
Chris@49 30
Chris@49 31 inline static char conv_to_hex_char(const u8 x);
Chris@49 32 inline static void conv_to_hex(char* out, const u8 x);
Chris@49 33
Chris@49 34 inline static std::string gen_tmp_name(const std::string& x);
Chris@49 35
Chris@49 36 inline static bool safe_rename(const std::string& old_name, const std::string& new_name);
Chris@49 37
Chris@49 38 template<typename eT> inline static bool convert_naninf(eT& val, const std::string& token);
Chris@49 39 template<typename T> inline static bool convert_naninf(std::complex<T>& val, const std::string& token);
Chris@49 40
Chris@49 41 //
Chris@49 42 // matrix saving
Chris@49 43
Chris@49 44 template<typename eT> inline static bool save_raw_ascii (const Mat<eT>& x, const std::string& final_name);
Chris@49 45 template<typename eT> inline static bool save_raw_binary (const Mat<eT>& x, const std::string& final_name);
Chris@49 46 template<typename eT> inline static bool save_arma_ascii (const Mat<eT>& x, const std::string& final_name);
Chris@49 47 template<typename eT> inline static bool save_csv_ascii (const Mat<eT>& x, const std::string& final_name);
Chris@49 48 template<typename eT> inline static bool save_arma_binary(const Mat<eT>& x, const std::string& final_name);
Chris@49 49 template<typename eT> inline static bool save_pgm_binary (const Mat<eT>& x, const std::string& final_name);
Chris@49 50 template<typename T> inline static bool save_pgm_binary (const Mat< std::complex<T> >& x, const std::string& final_name);
Chris@49 51 template<typename eT> inline static bool save_hdf5_binary(const Mat<eT>& x, const std::string& final_name);
Chris@49 52
Chris@49 53 template<typename eT> inline static bool save_raw_ascii (const Mat<eT>& x, std::ostream& f);
Chris@49 54 template<typename eT> inline static bool save_raw_binary (const Mat<eT>& x, std::ostream& f);
Chris@49 55 template<typename eT> inline static bool save_arma_ascii (const Mat<eT>& x, std::ostream& f);
Chris@49 56 template<typename eT> inline static bool save_csv_ascii (const Mat<eT>& x, std::ostream& f);
Chris@49 57 template<typename eT> inline static bool save_arma_binary(const Mat<eT>& x, std::ostream& f);
Chris@49 58 template<typename eT> inline static bool save_pgm_binary (const Mat<eT>& x, std::ostream& f);
Chris@49 59 template<typename T> inline static bool save_pgm_binary (const Mat< std::complex<T> >& x, std::ostream& f);
Chris@49 60
Chris@49 61
Chris@49 62 //
Chris@49 63 // matrix loading
Chris@49 64
Chris@49 65 template<typename eT> inline static bool load_raw_ascii (Mat<eT>& x, const std::string& name, std::string& err_msg);
Chris@49 66 template<typename eT> inline static bool load_raw_binary (Mat<eT>& x, const std::string& name, std::string& err_msg);
Chris@49 67 template<typename eT> inline static bool load_arma_ascii (Mat<eT>& x, const std::string& name, std::string& err_msg);
Chris@49 68 template<typename eT> inline static bool load_csv_ascii (Mat<eT>& x, const std::string& name, std::string& err_msg);
Chris@49 69 template<typename eT> inline static bool load_arma_binary(Mat<eT>& x, const std::string& name, std::string& err_msg);
Chris@49 70 template<typename eT> inline static bool load_pgm_binary (Mat<eT>& x, const std::string& name, std::string& err_msg);
Chris@49 71 template<typename T> inline static bool load_pgm_binary (Mat< std::complex<T> >& x, const std::string& name, std::string& err_msg);
Chris@49 72 template<typename eT> inline static bool load_hdf5_binary(Mat<eT>& x, const std::string& name, std::string& err_msg);
Chris@49 73 template<typename eT> inline static bool load_auto_detect(Mat<eT>& x, const std::string& name, std::string& err_msg);
Chris@49 74
Chris@49 75 template<typename eT> inline static bool load_raw_ascii (Mat<eT>& x, std::istream& f, std::string& err_msg);
Chris@49 76 template<typename eT> inline static bool load_raw_binary (Mat<eT>& x, std::istream& f, std::string& err_msg);
Chris@49 77 template<typename eT> inline static bool load_arma_ascii (Mat<eT>& x, std::istream& f, std::string& err_msg);
Chris@49 78 template<typename eT> inline static bool load_csv_ascii (Mat<eT>& x, std::istream& f, std::string& err_msg);
Chris@49 79 template<typename eT> inline static bool load_arma_binary(Mat<eT>& x, std::istream& f, std::string& err_msg);
Chris@49 80 template<typename eT> inline static bool load_pgm_binary (Mat<eT>& x, std::istream& is, std::string& err_msg);
Chris@49 81 template<typename T> inline static bool load_pgm_binary (Mat< std::complex<T> >& x, std::istream& is, std::string& err_msg);
Chris@49 82 template<typename eT> inline static bool load_auto_detect(Mat<eT>& x, std::istream& f, std::string& err_msg);
Chris@49 83
Chris@49 84 inline static void pnm_skip_comments(std::istream& f);
Chris@49 85
Chris@49 86
Chris@49 87 //
Chris@49 88 // sparse matrix saving
Chris@49 89
Chris@49 90 template<typename eT> inline static bool save_coord_ascii(const SpMat<eT>& x, const std::string& final_name);
Chris@49 91 template<typename eT> inline static bool save_arma_binary(const SpMat<eT>& x, const std::string& final_name);
Chris@49 92
Chris@49 93 template<typename eT> inline static bool save_coord_ascii(const SpMat<eT>& x, std::ostream& f);
Chris@49 94 template<typename T> inline static bool save_coord_ascii(const SpMat< std::complex<T> >& x, std::ostream& f);
Chris@49 95 template<typename eT> inline static bool save_arma_binary(const SpMat<eT>& x, std::ostream& f);
Chris@49 96
Chris@49 97
Chris@49 98 //
Chris@49 99 // sparse matrix loading
Chris@49 100
Chris@49 101 template<typename eT> inline static bool load_coord_ascii(SpMat<eT>& x, const std::string& name, std::string& err_msg);
Chris@49 102 template<typename eT> inline static bool load_arma_binary(SpMat<eT>& x, const std::string& name, std::string& err_msg);
Chris@49 103
Chris@49 104 template<typename eT> inline static bool load_coord_ascii(SpMat<eT>& x, std::istream& f, std::string& err_msg);
Chris@49 105 template<typename T> inline static bool load_coord_ascii(SpMat< std::complex<T> >& x, std::istream& f, std::string& err_msg);
Chris@49 106 template<typename eT> inline static bool load_arma_binary(SpMat<eT>& x, std::istream& f, std::string& err_msg);
Chris@49 107
Chris@49 108
Chris@49 109
Chris@49 110 //
Chris@49 111 // cube saving
Chris@49 112
Chris@49 113 template<typename eT> inline static bool save_raw_ascii (const Cube<eT>& x, const std::string& name);
Chris@49 114 template<typename eT> inline static bool save_raw_binary (const Cube<eT>& x, const std::string& name);
Chris@49 115 template<typename eT> inline static bool save_arma_ascii (const Cube<eT>& x, const std::string& name);
Chris@49 116 template<typename eT> inline static bool save_arma_binary(const Cube<eT>& x, const std::string& name);
Chris@49 117 template<typename eT> inline static bool save_hdf5_binary(const Cube<eT>& x, const std::string& name);
Chris@49 118
Chris@49 119 template<typename eT> inline static bool save_raw_ascii (const Cube<eT>& x, std::ostream& f);
Chris@49 120 template<typename eT> inline static bool save_raw_binary (const Cube<eT>& x, std::ostream& f);
Chris@49 121 template<typename eT> inline static bool save_arma_ascii (const Cube<eT>& x, std::ostream& f);
Chris@49 122 template<typename eT> inline static bool save_arma_binary(const Cube<eT>& x, std::ostream& f);
Chris@49 123
Chris@49 124
Chris@49 125 //
Chris@49 126 // cube loading
Chris@49 127
Chris@49 128 template<typename eT> inline static bool load_raw_ascii (Cube<eT>& x, const std::string& name, std::string& err_msg);
Chris@49 129 template<typename eT> inline static bool load_raw_binary (Cube<eT>& x, const std::string& name, std::string& err_msg);
Chris@49 130 template<typename eT> inline static bool load_arma_ascii (Cube<eT>& x, const std::string& name, std::string& err_msg);
Chris@49 131 template<typename eT> inline static bool load_arma_binary(Cube<eT>& x, const std::string& name, std::string& err_msg);
Chris@49 132 template<typename eT> inline static bool load_hdf5_binary(Cube<eT>& x, const std::string& name, std::string& err_msg);
Chris@49 133 template<typename eT> inline static bool load_auto_detect(Cube<eT>& x, const std::string& name, std::string& err_msg);
Chris@49 134
Chris@49 135 template<typename eT> inline static bool load_raw_ascii (Cube<eT>& x, std::istream& f, std::string& err_msg);
Chris@49 136 template<typename eT> inline static bool load_raw_binary (Cube<eT>& x, std::istream& f, std::string& err_msg);
Chris@49 137 template<typename eT> inline static bool load_arma_ascii (Cube<eT>& x, std::istream& f, std::string& err_msg);
Chris@49 138 template<typename eT> inline static bool load_arma_binary(Cube<eT>& x, std::istream& f, std::string& err_msg);
Chris@49 139 template<typename eT> inline static bool load_auto_detect(Cube<eT>& x, std::istream& f, std::string& err_msg);
Chris@49 140
Chris@49 141
Chris@49 142 //
Chris@49 143 // field saving and loading
Chris@49 144
Chris@49 145 template<typename T1> inline static bool save_arma_binary(const field<T1>& x, const std::string& name);
Chris@49 146 template<typename T1> inline static bool save_arma_binary(const field<T1>& x, std::ostream& f);
Chris@49 147
Chris@49 148 template<typename T1> inline static bool load_arma_binary( field<T1>& x, const std::string& name, std::string& err_msg);
Chris@49 149 template<typename T1> inline static bool load_arma_binary( field<T1>& x, std::istream& f, std::string& err_msg);
Chris@49 150
Chris@49 151 template<typename T1> inline static bool load_auto_detect( field<T1>& x, const std::string& name, std::string& err_msg);
Chris@49 152 template<typename T1> inline static bool load_auto_detect( field<T1>& x, std::istream& f, std::string& err_msg);
Chris@49 153
Chris@49 154 inline static bool save_std_string(const field<std::string>& x, const std::string& name);
Chris@49 155 inline static bool save_std_string(const field<std::string>& x, std::ostream& f);
Chris@49 156
Chris@49 157 inline static bool load_std_string( field<std::string>& x, const std::string& name, std::string& err_msg);
Chris@49 158 inline static bool load_std_string( field<std::string>& x, std::istream& f, std::string& err_msg);
Chris@49 159
Chris@49 160
Chris@49 161
Chris@49 162 //
Chris@49 163 // handling of PPM images by cubes
Chris@49 164
Chris@49 165 template<typename T1> inline static bool save_ppm_binary(const Cube<T1>& x, const std::string& final_name);
Chris@49 166 template<typename T1> inline static bool save_ppm_binary(const Cube<T1>& x, std::ostream& f);
Chris@49 167
Chris@49 168 template<typename T1> inline static bool load_ppm_binary( Cube<T1>& x, const std::string& final_name, std::string& err_msg);
Chris@49 169 template<typename T1> inline static bool load_ppm_binary( Cube<T1>& x, std::istream& f, std::string& err_msg);
Chris@49 170
Chris@49 171
Chris@49 172 //
Chris@49 173 // handling of PPM images by fields
Chris@49 174
Chris@49 175 template<typename T1> inline static bool save_ppm_binary(const field<T1>& x, const std::string& final_name);
Chris@49 176 template<typename T1> inline static bool save_ppm_binary(const field<T1>& x, std::ostream& f);
Chris@49 177
Chris@49 178 template<typename T1> inline static bool load_ppm_binary( field<T1>& x, const std::string& final_name, std::string& err_msg);
Chris@49 179 template<typename T1> inline static bool load_ppm_binary( field<T1>& x, std::istream& f, std::string& err_msg);
Chris@49 180
Chris@49 181
Chris@49 182
Chris@49 183 };
Chris@49 184
Chris@49 185
Chris@49 186
Chris@49 187 //! @}