mirror of
https://github.com/aportelli/LatAnalyze.git
synced 2024-11-10 08:55:37 +00:00
commit
e31b8f0dcb
@ -63,7 +63,7 @@ void Hdf5File::save(const DMat &m, const string &name)
|
|||||||
|
|
||||||
DataSpace dataSpace(2, dim), attrSpace(1, &attrDim);
|
DataSpace dataSpace(2, dim), attrSpace(1, &attrDim);
|
||||||
|
|
||||||
group = h5File_->createGroup(name.c_str());
|
group = h5File_->createGroup(name.c_str() + nameOffset(name));
|
||||||
attr = group.createAttribute("type", PredType::NATIVE_SHORT, attrSpace);
|
attr = group.createAttribute("type", PredType::NATIVE_SHORT, attrSpace);
|
||||||
attr.write(PredType::NATIVE_SHORT, &dMatType);
|
attr.write(PredType::NATIVE_SHORT, &dMatType);
|
||||||
dataset = group.createDataSet("data", PredType::NATIVE_DOUBLE, dataSpace);
|
dataset = group.createDataSet("data", PredType::NATIVE_DOUBLE, dataSpace);
|
||||||
@ -82,7 +82,7 @@ void Hdf5File::save(const DMatSample &sample, const string &name)
|
|||||||
const long int nSample = sample.size();
|
const long int nSample = sample.size();
|
||||||
string datasetName;
|
string datasetName;
|
||||||
|
|
||||||
group = h5File_->createGroup(name.c_str());
|
group = h5File_->createGroup(name.c_str() + nameOffset(name));
|
||||||
attr = group.createAttribute("type", PredType::NATIVE_SHORT, attrSpace);
|
attr = group.createAttribute("type", PredType::NATIVE_SHORT, attrSpace);
|
||||||
attr.write(PredType::NATIVE_SHORT, &dMatSampleType);
|
attr.write(PredType::NATIVE_SHORT, &dMatSampleType);
|
||||||
attr = group.createAttribute("nSample", PredType::NATIVE_LONG, attrSpace);
|
attr = group.createAttribute("nSample", PredType::NATIVE_LONG, attrSpace);
|
||||||
@ -105,7 +105,7 @@ void Hdf5File::save(const RandGenState &state, const string &name)
|
|||||||
hsize_t attrDim = 1;
|
hsize_t attrDim = 1;
|
||||||
DataSpace dataSpace(1, &dim), attrSpace(1, &attrDim);
|
DataSpace dataSpace(1, &dim), attrSpace(1, &attrDim);
|
||||||
|
|
||||||
group = h5File_->createGroup(name.c_str());
|
group = h5File_->createGroup(name.c_str() + nameOffset(name));
|
||||||
attr = group.createAttribute("type", PredType::NATIVE_SHORT, attrSpace);
|
attr = group.createAttribute("type", PredType::NATIVE_SHORT, attrSpace);
|
||||||
attr.write(PredType::NATIVE_SHORT, &rgStateType);
|
attr.write(PredType::NATIVE_SHORT, &rgStateType);
|
||||||
dataset = group.createDataSet("data", PredType::NATIVE_DOUBLE, dataSpace);
|
dataset = group.createDataSet("data", PredType::NATIVE_DOUBLE, dataSpace);
|
||||||
@ -185,6 +185,7 @@ string Hdf5File::getFirstGroupName(void)
|
|||||||
};
|
};
|
||||||
|
|
||||||
char groupName[maxGroupNameSize];
|
char groupName[maxGroupNameSize];
|
||||||
|
groupName[0] = 0; // Need to make sure it's null-terminated
|
||||||
|
|
||||||
h5File_->iterateElems("/", nullptr, firstGroupName, groupName);
|
h5File_->iterateElems("/", nullptr, firstGroupName, groupName);
|
||||||
res = groupName;
|
res = groupName;
|
||||||
@ -313,3 +314,18 @@ string Hdf5File::load(const string &name)
|
|||||||
return "";
|
return "";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
size_t Hdf5File::nameOffset(const string& name)
|
||||||
|
{
|
||||||
|
size_t ret = 0;
|
||||||
|
string badChars = "/";
|
||||||
|
|
||||||
|
for (auto c : badChars) {
|
||||||
|
size_t pos = name.rfind(c);
|
||||||
|
if (pos != string::npos and pos > ret) {
|
||||||
|
ret = pos;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
@ -62,6 +62,8 @@ private:
|
|||||||
void load(DMat &m, const H5NS::DataSet &d);
|
void load(DMat &m, const H5NS::DataSet &d);
|
||||||
void load(DMatSample &s, const H5NS::DataSet &d);
|
void load(DMatSample &s, const H5NS::DataSet &d);
|
||||||
void load(RandGenState &state, const H5NS::DataSet &d);
|
void load(RandGenState &state, const H5NS::DataSet &d);
|
||||||
|
|
||||||
|
static size_t nameOffset(const std::string& name);
|
||||||
private:
|
private:
|
||||||
// file name
|
// file name
|
||||||
std::unique_ptr<H5NS::H5File> h5File_{nullptr};
|
std::unique_ptr<H5NS::H5File> h5File_{nullptr};
|
||||||
|
Loading…
Reference in New Issue
Block a user