TypeDefs

template<typename _coordinate_t, typename _val_t, size_t _D, typename _class_key_t, template<typename> typename _dataset_vec_generator, template<typename> typename _coord_vec_generator, template<typename> typename _overlays_vec_generator, template<typename> typename _desc_vec_generator, template<typename> typename _points_vec_generator, template<typename> typename _prefix_sums_vec_generator, size_t _orthotope_dims, size_t _orthotope_power, bool _explain, typename _progress_stream_t>
class TypeDefs

Definition of all compiletime parameters for Index.

The Index class takes this as a template parameter.

Todo:

-low-prio a lot of the template parameters are not actually variable most of the time

  • having them drastically increases compiletime

  • also the TypeDefs class is kind of a bad idea since it needs to be instanciated every time

  • better approach:

    • create one big class/struct with the template parameters

    • then make everything a subclass of this one

    • split the commonly used and unused parameters into tow subclasses

Template Parameters:
  • _coordinate_t – type of coordinates, expected to be an unsigned int.

  • _val_t – type of prefix sums, expected to be an unsigned int.

  • _D – number of dimensions.

  • _class_key_t – type of the dataset keys, expected to be an unsigned int.

  • _vec_generator – generator object that implements the file and vec methods. See DiskVecGenerator.

  • _orthotope_dims – number or orthotope dimensions

  • _explain – debugging parameter. Be verbose while creating and querying the index.

  • _progress_stream_t – object that catches all the print output. See StdOutProgressStream.

Public Types

using coordinate_t = _coordinate_t

individual coordinate position

using val_t = _val_t

prefix sum value

using pos_t = std::array<coordinate_t, D>

position of a point (with dependent dimensions; used internally)

using class_key_t = _class_key_t

key of a dataset

using ret_pos_t = std::array<coordinate_t, D - ORTHOTOPE_DIMS>

position of a point