Skip to content

Commit

Permalink
Set dynamic vs 11 array
Browse files Browse the repository at this point in the history
  • Loading branch information
skulumani committed Mar 8, 2020
1 parent a6db885 commit d819eea
Show file tree
Hide file tree
Showing 3 changed files with 35 additions and 1 deletion.
7 changes: 7 additions & 0 deletions src/hdf5_dataset.cpp
Expand Up @@ -170,6 +170,8 @@ template int HDF5::DataSet::write<Eigen::VectorXi>(const Eigen::EigenBase<Eigen:
/* template int HDF5::DataSet::write<Eigen::Matrix<int, 1, -1> >(const Eigen::EigenBase<Eigen::Matrix<int, 1, -1> > &mat); */

template int HDF5::DataSet::write<Eigen::Matrix<double, 3, 1> >(const Eigen::EigenBase<Eigen::Matrix<double, 3, 1> > &mat);

template int HDF5::DataSet::write<Eigen::Matrix<float, -1, 11> >(const Eigen::EigenBase<Eigen::Matrix<float, -1, 11> > &mat);
/* template int HDF5::DataSet::write<Eigen::Matrix<double, 3, 3> >(const Eigen::EigenBase<Eigen::Matrix<double, 3, 3> > &mat); */
/* template int HDF5::DataSet::write<Eigen::Matrix<double, 4, 1> >(const Eigen::EigenBase<Eigen::Matrix<double, 4, 1> > &mat); */
// DataSet::read template specialization
Expand All @@ -191,6 +193,8 @@ template int HDF5::DataSet::read<Eigen::Matrix<int, 1, -1> >(const Eigen::DenseB
template int HDF5::DataSet::read<Eigen::Matrix<double, 3, 1> >(const Eigen::DenseBase<Eigen::Matrix<double, 3, 1> > &mat);
template int HDF5::DataSet::read<Eigen::Matrix<double, 3, 3> >(const Eigen::DenseBase<Eigen::Matrix<double, 3, 3> > &mat);
template int HDF5::DataSet::read<Eigen::Matrix<double, 4, 1> >(const Eigen::DenseBase<Eigen::Matrix<double, 4, 1> > &mat);

template int HDF5::DataSet::read<Eigen::Matrix<float, -1, 11> >(const Eigen::DenseBase<Eigen::Matrix<float, -1, 11> > &mat);
// DataSet::DataSet for Files
template HDF5::DataSet::DataSet(const HDF5::File *file, const std::string &name, const Eigen::EigenBase<Eigen::VectorXd>& mat);
template HDF5::DataSet::DataSet(const HDF5::File *file, const std::string &name, const Eigen::EigenBase<Eigen::VectorXi>& mat);
Expand Down Expand Up @@ -219,6 +223,7 @@ template HDF5::DataSet::DataSet(const HDF5::File *file, const std::string &name,
template HDF5::DataSet::DataSet(const HDF5::File *file, const std::string &name, const Eigen::EigenBase<Eigen::Matrix<double, 3, 3> > &mat);
template HDF5::DataSet::DataSet(const HDF5::File *file, const std::string &name, const Eigen::EigenBase<Eigen::Matrix<double, 4, 1> > &mat);

template HDF5::DataSet::DataSet(const HDF5::File *file, const std::string &name, const Eigen::EigenBase<Eigen::Matrix<float, -1, 11> > &mat);
// DataSet::DataSet for Groups
template HDF5::DataSet::DataSet(const HDF5::Group *group, const std::string &name, const Eigen::EigenBase<Eigen::VectorXd>& mat);
template HDF5::DataSet::DataSet(const HDF5::Group *group, const std::string &name, const Eigen::EigenBase<Eigen::VectorXi>& mat);
Expand All @@ -238,3 +243,5 @@ template HDF5::DataSet::DataSet(const HDF5::Group *group, const std::string &nam
template HDF5::DataSet::DataSet(const HDF5::Group *group, const std::string &name, const Eigen::EigenBase<Eigen::Matrix<double, 3, 1> > &mat);
template HDF5::DataSet::DataSet(const HDF5::Group *group, const std::string &name, const Eigen::EigenBase<Eigen::Matrix<double, 3, 3> > &mat);
template HDF5::DataSet::DataSet(const HDF5::Group *group, const std::string &name, const Eigen::EigenBase<Eigen::Matrix<double, 4, 1> > &mat);

template HDF5::DataSet::DataSet(const HDF5::Group *group, const std::string &name, const Eigen::EigenBase<Eigen::Matrix<float, -1, 11> > &mat);
27 changes: 27 additions & 0 deletions src/hdf5_eigen.cpp
Expand Up @@ -305,6 +305,8 @@ template H5::DataSpace internal::create_dataspace<Eigen::Matrix<int, -1 , 3> >(c
template H5::DataSpace internal::create_dataspace<Eigen::Matrix<double, 18, 1> >(const Eigen::EigenBase<Eigen::Matrix<double, 18, 1> >&);
template H5::DataSpace internal::create_dataspace<Eigen::Matrix<int, 18, 1> >(const Eigen::EigenBase<Eigen::Matrix<int, 18, 1> >&);

template H5::DataSpace internal::create_dataspace<Eigen::Matrix<float, -1, 11> >(const Eigen::EigenBase<Eigen::Matrix<float, -1, 11> >&);

template bool internal::write_rowmat<Eigen::VectorXd> (const Eigen::EigenBase<Eigen::VectorXd>& mat,
const H5::DataType * const datatype,
H5::DataSet* dataset,
Expand All @@ -323,6 +325,11 @@ template bool internal::write_rowmat<Eigen::Matrix<int, -1, 3> > (const Eigen::E
H5::DataSet* dataset,
const H5::DataSpace* dspace);

template bool internal::write_rowmat<Eigen::Matrix<float, -1, 11> > (const Eigen::EigenBase<Eigen::Matrix<float, -1, 11> >& mat,
const H5::DataType * const datatype,
H5::DataSet* dataset,
const H5::DataSpace* dspace);

template bool internal::write_colmat<Eigen::VectorXd> (const Eigen::EigenBase<Eigen::VectorXd>& mat,
const H5::DataType * const datatype,
H5::DataSet* dataset,
Expand All @@ -341,6 +348,11 @@ template bool internal::write_colmat<Eigen::Matrix<int, -1, 3> > (const Eigen::E
H5::DataSet* dataset,
const H5::DataSpace* dspace);

template bool internal::write_colmat<Eigen::Matrix<float, -1, 11> > (const Eigen::EigenBase<Eigen::Matrix<float, -1, 11> >& mat,
const H5::DataType * const datatype,
H5::DataSet* dataset,
const H5::DataSpace* dspace);

template bool internal::read_colmat<Eigen::VectorXd> (const Eigen::DenseBase<Eigen::VectorXd> &mat,
const H5::DataType * const datatype,
const H5::Attribute &dataset);
Expand All @@ -365,10 +377,15 @@ template bool internal::read_colmat<Eigen::VectorXi> (const Eigen::DenseBase<Eig
template bool internal::read_colmat<Eigen::Matrix<double, -1, 3> > (const Eigen::DenseBase<Eigen::Matrix<double, -1, 3> > &mat,
const H5::DataType * const datatype,
const H5::DataSet &dataset);

template bool internal::read_colmat<Eigen::Matrix<int, -1, 3> > (const Eigen::DenseBase<Eigen::Matrix<int, -1, 3> > &mat,
const H5::DataType * const datatype,
const H5::DataSet &dataset);

template bool internal::read_colmat<Eigen::Matrix<float, -1, 11> > (const Eigen::DenseBase<Eigen::Matrix<float, -1, 11> > &mat,
const H5::DataType * const datatype,
const H5::DataSet &dataset);

// internal::write_rowmat
/* template bool internal::write_rowmat<Eigen::VectorXd>(const Eigen::EigenBase<Eigen::VectorXd> &, H5::DataType const*, H5::DataSet*, H5::DataSpace const*); */
/* template bool internal::write_rowmat<Eigen::VectorXi>(const Eigen::EigenBase<Eigen::VectorXi> &, H5::DataType const*, H5::DataSet*, H5::DataSpace const*); */
Expand All @@ -389,6 +406,8 @@ template bool internal::write_rowmat<Eigen::Matrix<double, 3, 1> >(const Eigen::
template bool internal::write_rowmat<Eigen::Matrix<double, 3, 3> >(const Eigen::EigenBase<Eigen::Matrix<double, 3, 3> > &, H5::DataType const*, H5::DataSet*, H5::DataSpace const*);
template bool internal::write_rowmat<Eigen::Matrix<double, 4, 1> >(const Eigen::EigenBase<Eigen::Matrix<double, 4, 1> > &, H5::DataType const*, H5::DataSet*, H5::DataSpace const*);

/* template bool internal::write_rowmat<Eigen::Matrix<float, -1, 11> >(const Eigen::EigenBase<Eigen::Matrix<float, -1, 11> > &, H5::DataType const*, H5::DataSet*, H5::DataSpace const*); */

// internal::write_colmat
/* template bool internal::write_colmat<Eigen::VectorXd>(const Eigen::EigenBase<Eigen::VectorXd> &, H5::DataType const*, H5::DataSet*, H5::DataSpace const*); */
/* template bool internal::write_colmat<Eigen::VectorXi>(const Eigen::EigenBase<Eigen::VectorXi> &, H5::DataType const*, H5::DataSet*, H5::DataSpace const*); */
Expand All @@ -410,6 +429,8 @@ template bool internal::write_colmat<Eigen::Matrix<int, 3, 1> >(const Eigen::Eig

template bool internal::write_colmat<Eigen::Matrix<double, 3, 3> >(const Eigen::EigenBase<Eigen::Matrix<double, 3, 3> > &, H5::DataType const*, H5::DataSet*, H5::DataSpace const*);
template bool internal::write_colmat<Eigen::Matrix<double, 4, 1> >(const Eigen::EigenBase<Eigen::Matrix<double, 4, 1> > &, H5::DataType const*, H5::DataSet*, H5::DataSpace const*);

/* template bool internal::write_colmat<Eigen::Matrix<float, -1, 11> >(const Eigen::EigenBase<Eigen::Matrix<float, -1, 11> > &, H5::DataType const*, H5::DataSet*, H5::DataSpace const*); */
// internal::create_dataspace
/* template H5::DataSpace internal::create_dataspace<Eigen::VectorXd>(const Eigen::EigenBase<Eigen::VectorXd> &); */
/* template H5::DataSpace internal::create_dataspace<Eigen::VectorXi>(const Eigen::EigenBase<Eigen::VectorXi> &); */
Expand All @@ -432,6 +453,7 @@ template H5::DataSpace internal::create_dataspace<Eigen::Matrix<int, 3, 1> >(con
template H5::DataSpace internal::create_dataspace<Eigen::Matrix<double, 3, 3> >(const Eigen::EigenBase<Eigen::Matrix<double, 3, 3> > &);
template H5::DataSpace internal::create_dataspace<Eigen::Matrix<double, 4, 1> >(const Eigen::EigenBase<Eigen::Matrix<double, 4, 1> > &);

/* template H5::DataSpace internal::create_dataspace<Eigen::Matrix<float, -1, 11> >(const Eigen::EigenBase<Eigen::Matrix<float, -1, 11> > &); */
// Big load template specificaitons
template void internal::_load<Eigen::VectorXd>(H5::DataSet const& dataset, Eigen::DenseBase<Eigen::VectorXd> const& mat);
template void internal::_load<Eigen::VectorXi>(H5::DataSet const& dataset, Eigen::DenseBase<Eigen::VectorXi> const& mat);
Expand Down Expand Up @@ -463,6 +485,9 @@ template void internal::_load<Eigen::Matrix<int, 3, 1>, H5::DataSet>(H5::DataSet
template void internal::_load<Eigen::Matrix<double, 3, 3>, H5::DataSet>(H5::DataSet const& dataset, Eigen::DenseBase<Eigen::Matrix<double, 3, 3> > const& mat);
template void internal::_load<Eigen::Matrix<double, 4, 1>, H5::DataSet>(H5::DataSet const& dataset, Eigen::DenseBase<Eigen::Matrix<double, 4, 1> > const& mat);

template void internal::_load<Eigen::Matrix<float, -1, 11>, H5::DataSet>(H5::DataSet const& dataset, Eigen::DenseBase<Eigen::Matrix<float, -1, 11> > const& mat);

// Load group
template void load<Eigen::VectorXd>(const H5::H5Location &h5group, const std::string &name, const Eigen::DenseBase<Eigen::VectorXd> & mat);
template void load<Eigen::VectorXi>(const H5::H5Location &h5group, const std::string &name, const Eigen::DenseBase<Eigen::VectorXi> & mat);

Expand Down Expand Up @@ -495,3 +520,5 @@ template void load<Eigen::Matrix<int, 3, 3> >(const H5::H5Location &h5group, con

template void load<Eigen::Matrix<double, 4, 1> >(const H5::H5Location &h5group, const std::string &name, const Eigen::DenseBase<Eigen::Matrix<double, 4, 1> > & mat);

template void load<Eigen::Matrix<float, -1, 11> >(const H5::H5Location &h5group, const std::string &name, const Eigen::DenseBase<Eigen::Matrix<float, -1, 11> > & mat);

2 changes: 1 addition & 1 deletion tests/test_eigen_sizes.cpp
Expand Up @@ -273,7 +273,7 @@ TEST(TestFDCLUAVDataSet, Eigen4by1) {
TEST(TestFileSizes, EigenFloatDynamicby11) {

HDF5::File hf_file("/tmp/test.hdf5", HDF5::File::Truncate);
Eigen::Matrix<float, -1, 11> mat, mat_read
Eigen::Matrix<float, -1, 11> mat, mat_read;
mat = Eigen::MatrixXf::Random(100, 11);
hf_file.write("matrix", mat);
hf_file.read("matrix", mat_read);
Expand Down

0 comments on commit d819eea

Please sign in to comment.