class_docstr: A filterer for negative triples based on the Bloom filter.
  
  Pure PyTorch, a proper module which can be moved to GPU, and support batch-wise computation.
  
  .. seealso ::
      * https://github.com/hiway/python-bloom-filter/ - for calculation of sizes, and rough structure of code
      * https://github.com/skeeto/hash-prospector#two-round-functions - for parts of the hash function
docstr: Iterate over indices from the probes.
  
  :param batch: shape: (batch_size, 3)
      A batch of elements.
  
  :yields: Indices of the k-th round, shape: (batch_size,).
docstr_tok: ["Iterate","over","indices","from","the","probes",".",":","param","batch",":","shape",":","(","batch_size",",","3",")","A","batch","of","elements",".",":","yields",":","Indices","of","the","k-th","round",",","shape",":","(","batch_size",",",")","."]
code: def probe(
      self,
      batch: MappedTriples,
  ) -> Iterable[torch.LongTensor]:
      """
      Iterate over indices from the probes.
  
      :param batch: shape: (batch_size, 3)
          A batch of elements.
  
      :yields: Indices of the k-th round, shape: (batch_size,).
      """
      # pre-hash
      x = (self.mersenne * batch).sum(dim=-1)
      for _ in range(self.rounds):
          # cf. https://github.com/skeeto/hash-prospector#two-round-functions
          x = x ^ (x >> 16)
          x = x * 0x7FEB352D
          x = x ^ (x >> 15)
          x = x * 0x846CA68B
          x = x ^ (x >> 16)
          yield x % self.bit_array.shape[0]
  
imports: import math
  from abc import abstractmethod
  from typing import Iterable
  import torch
  from class_resolver import ClassResolver
  from torch import nn
  from ..typing import MappedTriples
  from ..utils import triple_tensor_to_set
label_desc: Use image node_id 5 for calling the BloomFilterer obj's underlying member method code with example usage: obj.probe(batch) without return types