@@ -760,36 +760,42 @@ class index_dense_gt {
760760 add_result_t add (vector_key_t key, b1x8_t const * vector, std::size_t thread = any_thread(), bool force_vector_copy = true) { return add_ (key, vector, thread, force_vector_copy, casts_.from .b1x8 ); }
761761 add_result_t add (vector_key_t key, i8_t const * vector, std::size_t thread = any_thread(), bool force_vector_copy = true) { return add_ (key, vector, thread, force_vector_copy, casts_.from .i8 ); }
762762 add_result_t add (vector_key_t key, f16_t const * vector, std::size_t thread = any_thread(), bool force_vector_copy = true) { return add_ (key, vector, thread, force_vector_copy, casts_.from .f16 ); }
763+ add_result_t add (vector_key_t key, bf16_t const * vector, std::size_t thread = any_thread(), bool force_vector_copy = true) { return add_ (key, vector, thread, force_vector_copy, casts_.from .bf16 ); }
763764 add_result_t add (vector_key_t key, f32_t const * vector, std::size_t thread = any_thread(), bool force_vector_copy = true) { return add_ (key, vector, thread, force_vector_copy, casts_.from .f32 ); }
764765 add_result_t add (vector_key_t key, f64_t const * vector, std::size_t thread = any_thread(), bool force_vector_copy = true) { return add_ (key, vector, thread, force_vector_copy, casts_.from .f64 ); }
765766
766767 search_result_t search (b1x8_t const * vector, std::size_t wanted, std::size_t thread = any_thread(), bool exact = false) const { return search_ (vector, wanted, dummy_predicate_t {}, thread, exact, casts_.from .b1x8 ); }
767768 search_result_t search (i8_t const * vector, std::size_t wanted, std::size_t thread = any_thread(), bool exact = false) const { return search_ (vector, wanted, dummy_predicate_t {}, thread, exact, casts_.from .i8 ); }
768769 search_result_t search (f16_t const * vector, std::size_t wanted, std::size_t thread = any_thread(), bool exact = false) const { return search_ (vector, wanted, dummy_predicate_t {}, thread, exact, casts_.from .f16 ); }
770+ search_result_t search (bf16_t const * vector, std::size_t wanted, std::size_t thread = any_thread(), bool exact = false) const { return search_ (vector, wanted, dummy_predicate_t {}, thread, exact, casts_.from .bf16 ); }
769771 search_result_t search (f32_t const * vector, std::size_t wanted, std::size_t thread = any_thread(), bool exact = false) const { return search_ (vector, wanted, dummy_predicate_t {}, thread, exact, casts_.from .f32 ); }
770772 search_result_t search (f64_t const * vector, std::size_t wanted, std::size_t thread = any_thread(), bool exact = false) const { return search_ (vector, wanted, dummy_predicate_t {}, thread, exact, casts_.from .f64 ); }
771773
772774 template <typename predicate_at> search_result_t filtered_search (b1x8_t const * vector, std::size_t wanted, predicate_at&& predicate, std::size_t thread = any_thread(), bool exact = false) const { return search_ (vector, wanted, std::forward<predicate_at>(predicate), thread, exact, casts_.from .b1x8 ); }
773775 template <typename predicate_at> search_result_t filtered_search (i8_t const * vector, std::size_t wanted, predicate_at&& predicate, std::size_t thread = any_thread(), bool exact = false) const { return search_ (vector, wanted, std::forward<predicate_at>(predicate), thread, exact, casts_.from .i8 ); }
774776 template <typename predicate_at> search_result_t filtered_search (f16_t const * vector, std::size_t wanted, predicate_at&& predicate, std::size_t thread = any_thread(), bool exact = false) const { return search_ (vector, wanted, std::forward<predicate_at>(predicate), thread, exact, casts_.from .f16 ); }
777+ template <typename predicate_at> search_result_t filtered_search (bf16_t const * vector, std::size_t wanted, predicate_at&& predicate, std::size_t thread = any_thread(), bool exact = false) const { return search_ (vector, wanted, std::forward<predicate_at>(predicate), thread, exact, casts_.from .bf16 ); }
775778 template <typename predicate_at> search_result_t filtered_search (f32_t const * vector, std::size_t wanted, predicate_at&& predicate, std::size_t thread = any_thread(), bool exact = false) const { return search_ (vector, wanted, std::forward<predicate_at>(predicate), thread, exact, casts_.from .f32 ); }
776779 template <typename predicate_at> search_result_t filtered_search (f64_t const * vector, std::size_t wanted, predicate_at&& predicate, std::size_t thread = any_thread(), bool exact = false) const { return search_ (vector, wanted, std::forward<predicate_at>(predicate), thread, exact, casts_.from .f64 ); }
777780
778781 std::size_t get (vector_key_t key, b1x8_t * vector, std::size_t vectors_count = 1 ) const { return get_ (key, vector, vectors_count, casts_.to .b1x8 ); }
779782 std::size_t get (vector_key_t key, i8_t * vector, std::size_t vectors_count = 1 ) const { return get_ (key, vector, vectors_count, casts_.to .i8 ); }
780783 std::size_t get (vector_key_t key, f16_t * vector, std::size_t vectors_count = 1 ) const { return get_ (key, vector, vectors_count, casts_.to .f16 ); }
784+ std::size_t get (vector_key_t key, bf16_t * vector, std::size_t vectors_count = 1 ) const { return get_ (key, vector, vectors_count, casts_.to .bf16 ); }
781785 std::size_t get (vector_key_t key, f32_t * vector, std::size_t vectors_count = 1 ) const { return get_ (key, vector, vectors_count, casts_.to .f32 ); }
782786 std::size_t get (vector_key_t key, f64_t * vector, std::size_t vectors_count = 1 ) const { return get_ (key, vector, vectors_count, casts_.to .f64 ); }
783787
784788 cluster_result_t cluster (b1x8_t const * vector, std::size_t level, std::size_t thread = any_thread()) const { return cluster_ (vector, level, thread, casts_.from .b1x8 ); }
785789 cluster_result_t cluster (i8_t const * vector, std::size_t level, std::size_t thread = any_thread()) const { return cluster_ (vector, level, thread, casts_.from .i8 ); }
786790 cluster_result_t cluster (f16_t const * vector, std::size_t level, std::size_t thread = any_thread()) const { return cluster_ (vector, level, thread, casts_.from .f16 ); }
791+ cluster_result_t cluster (bf16_t const * vector, std::size_t level, std::size_t thread = any_thread()) const { return cluster_ (vector, level, thread, casts_.from .bf16 ); }
787792 cluster_result_t cluster (f32_t const * vector, std::size_t level, std::size_t thread = any_thread()) const { return cluster_ (vector, level, thread, casts_.from .f32 ); }
788793 cluster_result_t cluster (f64_t const * vector, std::size_t level, std::size_t thread = any_thread()) const { return cluster_ (vector, level, thread, casts_.from .f64 ); }
789794
790795 aggregated_distances_t distance_between (vector_key_t key, b1x8_t const * vector, std::size_t thread = any_thread()) const { return distance_between_ (key, vector, thread, casts_.to .b1x8 ); }
791796 aggregated_distances_t distance_between (vector_key_t key, i8_t const * vector, std::size_t thread = any_thread()) const { return distance_between_ (key, vector, thread, casts_.to .i8 ); }
792797 aggregated_distances_t distance_between (vector_key_t key, f16_t const * vector, std::size_t thread = any_thread()) const { return distance_between_ (key, vector, thread, casts_.to .f16 ); }
798+ aggregated_distances_t distance_between (vector_key_t key, bf16_t const * vector, std::size_t thread = any_thread()) const { return distance_between_ (key, vector, thread, casts_.to .bf16 ); }
793799 aggregated_distances_t distance_between (vector_key_t key, f32_t const * vector, std::size_t thread = any_thread()) const { return distance_between_ (key, vector, thread, casts_.to .f32 ); }
794800 aggregated_distances_t distance_between (vector_key_t key, f64_t const * vector, std::size_t thread = any_thread()) const { return distance_between_ (key, vector, thread, casts_.to .f64 ); }
795801 // clang-format on
0 commit comments