@@ -392,7 +392,8 @@ class bloom_filter_ref {
392392 * construction of a bloom filter on some set \f$X\f$, and let \f$A\f$ and \f$B\f$ be two sets,
393393 * then it holds that \f$f(A \cup B) = f(A) \cup f(B)\f$.
394394 *
395- * @param other Other filter with matching type to this.
395+ * @param other Other filter with matching type to this. The policy object must be equal to that
396+ * of this filter, otherwise behavior is undefined.
396397 * @param stream CUDA stream used for device memory operations and kernel launches.
397398 *
398399 * @throws cuco::logic_error If the other filter does not have the same number of blocks as this.
@@ -409,7 +410,8 @@ class bloom_filter_ref {
409410 * construction of a bloom filter on some set \f$X\f$, and let \f$A\f$ and \f$B\f$ be two sets,
410411 * then it holds that \f$f(A \cup B) = f(A) \cup f(B)\f$
411412 *
412- * @param other Other filter with matching type to this.
413+ * @param other Other filter with matching type to this. The policy object must be equal to that
414+ * of this filter, otherwise behavior is undefined.
413415 * @param stream CUDA stream used for device memory operations and kernel launches.
414416 *
415417 * @throws cuco::logic_error If the other filter does not have the same number of blocks as this.
@@ -429,9 +431,11 @@ class bloom_filter_ref {
429431 * does not distribute over filter construction and therefore only approximates the bloom filter
430432 * of the intersection of the input sets. In other words, let \f$f : X \to B\f$ denote the
431433 * construction of a bloom filter on some set \f$X\f$, and let \f$A\f$ and \f$B\f$ be two sets,
432- * then \f$f(A \cap B) \ne f(A) \cap f(B)\f$.
434+ * then \f$f(A \cap B) \ne f(A) \cap f(B)\f$. Despite this, it is guaranteed that for all \f$x \in
435+ * (A \cap B)\f$, it holds \f$x \in f(A) \cap f(B)\f$.
433436 *
434- * @param other Other filter with matching type to this.
437+ * @param other Other filter with matching type to this. The policy object must be equal to that
438+ * of this filter, otherwise behavior is undefined.
435439 * @param stream CUDA stream used for device memory operations and kernel launches.
436440 *
437441 * @throws cuco::logic_error If the other filter does not have the same number of blocks as this.
@@ -449,9 +453,11 @@ class bloom_filter_ref {
449453 * operation does not distribute over filter construction and therefore only approximates the
450454 * bloom filter of the intersection of the input sets. In other words, let \f$f : X \to B\f$
451455 * denote the construction of a bloom filter on some set \f$X\f$, and let \f$A\f$ and \f$B\f$ be
452- * two sets, then \f$f(A \cap B) \ne f(A) \cap f(B)\f$.
456+ * two sets, then \f$f(A \cap B) \ne f(A) \cap f(B)\f$. Despite this, it is guaranteed that for
457+ * all \f$x \in (A \cap B)\f$, it holds \f$x \in f(A) \cap f(B)\f$.
453458 *
454- * @param other Other filter with matching type to this.
459+ * @param other Other filter with matching type to this. The policy object must be equal to that
460+ * of this filter, otherwise behavior is undefined.
455461 * @param stream CUDA stream used for device memory operations and kernel launches.
456462 *
457463 * @throws cuco::logic_error If the other filter does not have the same number of blocks as this.
0 commit comments