87 typedef QSharedPointer<IOUtils>
SPtr;
106 static qint32 fread3(QDataStream &p_qStream);
118 static qint32 fread3(std::iostream& stream);
131 static Eigen::VectorXi fread3_many(QDataStream &p_qStream, qint32 count);
144 static Eigen::VectorXi fread3_many(std::iostream &stream, qint32 count);
154 static qint16 swap_short (qint16 source);
164 static qint32 swap_int (qint32 source);
172 static void swap_intp (qint32 *source);
182 static qint64 swap_long (qint64 source);
190 static void swap_longp (qint64 *source);
200 static float swap_float (
float source);
208 static void swap_floatp (
float *source);
216 static void swap_doublep(
double *source);
226 static bool write_eigen_matrix(
const Eigen::Matrix<T, Eigen::Dynamic, Eigen::Dynamic>& in,
const QString& sPath,
const QString& sDescription = QString());
228 static bool write_eigen_matrix(
const Eigen::Matrix<T, 1, Eigen::Dynamic>& in,
const QString& sPath,
const QString& sDescription = QString());
230 static bool write_eigen_matrix(
const Eigen::Matrix<T, Eigen::Dynamic, 1>& in,
const QString& sPath,
const QString& sDescription = QString());
240 static bool write_eigen_matrix(
const Eigen::Matrix<T, Eigen::Dynamic, Eigen::Dynamic>& in,
const std::string& sPath,
const std::string& sDescription = std::string());
242 static bool write_eigen_matrix(
const Eigen::Matrix<T, 1, Eigen::Dynamic>& in,
const std::string& sPath,
const std::string& sDescription = std::string());
244 static bool write_eigen_matrix(
const Eigen::Matrix<T, Eigen::Dynamic, 1>& in,
const std::string& sPath,
const std::string& sDescription = std::string());
254 static bool read_eigen_matrix(Eigen::Matrix<T, Eigen::Dynamic, Eigen::Dynamic>& out,
const QString& path);
256 static bool read_eigen_matrix(Eigen::Matrix<T, 1, Eigen::Dynamic>& out,
const QString& path);
258 static bool read_eigen_matrix(Eigen::Matrix<T, Eigen::Dynamic, 1>& out,
const QString& path);
268 static bool read_eigen_matrix(Eigen::Matrix<T, Eigen::Dynamic, Eigen::Dynamic>& out,
const std::string& path);
270 static bool read_eigen_matrix(Eigen::Matrix<T, 1, Eigen::Dynamic>& out,
const std::string& path);
272 static bool read_eigen_matrix(Eigen::Matrix<T, Eigen::Dynamic, 1>& out,
const std::string& path);
282 static QStringList get_new_chnames_conventions(
const QStringList& chNames);
292 static std::vector<std::string> get_new_chnames_conventions(
const std::vector<std::string>& chNames);
302 static QStringList get_old_chnames_conventions(
const QStringList& chNames);
312 static std::vector<std::string> get_old_chnames_conventions(
const std::vector<std::string>& chNames);
324 static bool check_matching_chnames_conventions(
const QStringList& chNamesA,
const QStringList& chNamesB,
bool bCheckForNewNamingConvention =
false);
336 static bool check_matching_chnames_conventions(
const std::vector<std::string>& chNamesA,
const std::vector<std::string>& chNamesB,
bool bCheckForNewNamingConvention =
false);
475 if(file.open(QIODevice::ReadOnly | QIODevice::Text)) {
477 QTextStream in(&file);
478 QList<Eigen::VectorXd> help;
482 QString line = in.readLine();
483 if(!line.contains(
"#")) {
484 QStringList fields = line.split(QRegularExpression(
"\\s+"));
487 if(fields.at(fields.size()-1) ==
"")
490 Eigen::VectorXd x (fields.size());
492 for (
int j = 0; j<fields.size(); j++) {
493 x(j) = fields.at(j).toDouble();
500 int rows = help.size();
501 int cols = rows <= 0 ? 0 : help.at(0).rows();
503 out.resize(rows, cols);
505 for (
int i=0; i < help.length(); i++) {
506 out.row(i) = help[i].transpose();
509 qWarning()<<
"IOUtils::read_eigen_matrix - Could not read Eigen element from file! Path does not exist!";
553 std::ifstream inputFile(path);
555 if(inputFile.is_open()) {
557 std::vector<Eigen::VectorXd> help;
561 while(std::getline(inputFile, line)){
562 if(line.find(
'#') == std::string::npos){
563 std::vector<double> elements;
564 std::stringstream stream{line};
568 while(stream >> element){
569 elements.push_back(std::stod(element));
573 Eigen::VectorXd x (elements.size());
575 for(
size_t i = 0; i < elements.size(); ++i){
576 x(i) = elements.at(i);
579 help.push_back(std::move(x));
583 int rows = help.size();
584 int cols = rows <= 0 ? 0 : help.at(0).rows();
586 out.resize(rows, cols);
588 for (
size_t i = 0; i < help.size(); i++) {
589 out.row(i) = help[i].transpose();
592 qWarning()<<
"IOUtils::read_eigen_matrix - Could not read Eigen element from file! Path does not exist!";