File index_vector.hpp

class IIndexVector
#include <index_vector.hpp>

Defines an interface for all classes that provide random access to indices.

Subclassed by CompleteIndexVector, IPrediction, PartialIndexVector

Public Functions

inline virtual ~IIndexVector()
virtual uint32 getNumElements() const = 0

Returns the number of indices.

Returns:

The number of indices

virtual bool isPartial() const = 0

Returns whether the indices are partial, i.e., some indices in the range [0, getNumElements()) are missing, or not.

Returns:

True, if the indices are partial, false otherwise

virtual uint32 getIndex(uint32 pos) const = 0

Returns the index at a specific position.

Parameters:

pos – The position of the index. Must be in [0, getNumElements())

Returns:

The index at the given position

virtual std::unique_ptr<IRuleRefinement> createRuleRefinement(IFeatureSubspace &featureSubspace, uint32 featureIndex) const = 0

Creates and return a new instance of type IRuleRefinement that allows to search for the best refinement of an existing rule that predicts only for the labels whose indices are stored in this vector.

Parameters:
  • featureSubspace – A reference to an object of type IFeatureSubspace that should be to search for the refinement

  • featureIndex – The index of the feature that should be considered when searching for the refinement

Returns:

An unique pointer to an object of type IRuleRefinement that has been created