FWHT

template<typename RegType, std::size_t RangeSize, std::size_t ReplicationCount>
class FWHT

good reference for operator declarations: https://stackoverflow.com/questions/4421706/what-are-the-basic-rules-and-idioms-for-operator-overloading Fast Walsh-Hadamard Transform Functor Class

Public Functions

template<typename ...Args>
inline FWHT(const std::uint64_t seed, const std::uint64_t domain_size = 1024, const Args&&... args)

Quick Initialize members.

Note

[BWP] Do we actually need to pass n?

Template Parameters:

Args – type(s) of additional hash parameters.

Parameters:
  • seed – the random seed.

  • args – any additional paramters required by the hash functions.

template<typename ContainerType, typename ...ItemArgs>
inline constexpr void operator()(ContainerType &registers, const ItemArgs&... item_args) const

Update a vector of registers with an observation.

Template Parameters:
  • ContainerType – The type of the underlying sketch data structure.

  • ItemArgs... – types of parameters of the stream object to be inserted. Will be used to construct an krowkee::stream::Element object.

Parameters:
  • registers[out] the vector of registers.

  • x[in] the object to be inserted.

  • multiplicity[in] a multiple to modulate insertion.