1#![doc = include_str!("../README.md")]
2#![cfg_attr(docsrs, feature(doc_cfg))]
3#![deny(rust_2018_idioms, single_use_lifetimes, missing_docs)]
4
5pub mod calibration;
6pub mod embedding;
7pub mod error;
8#[cfg(feature = "inference")]
9#[cfg_attr(docsrs, doc(cfg(feature = "inference")))]
10pub mod image_enc;
11pub mod image_view;
12pub mod options;
13pub mod preproc;
14#[cfg(feature = "inference")]
15#[cfg_attr(docsrs, doc(cfg(feature = "inference")))]
16pub(crate) mod session;
17#[cfg(feature = "inference")]
18#[cfg_attr(docsrs, doc(cfg(feature = "inference")))]
19pub mod siglip2;
20pub(crate) mod simd;
21#[cfg(feature = "inference")]
22#[cfg_attr(docsrs, doc(cfg(feature = "inference")))]
23pub mod text_enc;
24
25pub use calibration::Calibration;
26pub use embedding::{Embedding, LabeledScore, LabeledScoreOwned};
27pub use error::{Error, Result};
28#[cfg(feature = "inference")]
29#[cfg_attr(docsrs, doc(cfg(feature = "inference")))]
30pub use image_enc::ImageEncoder;
31pub use image_view::ImageView;
32#[cfg(feature = "inference")]
33#[cfg_attr(docsrs, doc(cfg(feature = "inference")))]
34pub use options::GraphOptimizationLevel;
35pub use options::{BatchOptions, Options, ThreadOptions};
36pub use preproc::{PreprocessedBatch, Preprocessor};
37#[cfg(feature = "inference")]
38#[cfg_attr(docsrs, doc(cfg(feature = "inference")))]
39pub use siglip2::Siglip2;
40#[cfg(feature = "inference")]
41#[cfg_attr(docsrs, doc(cfg(feature = "inference")))]
42pub use text_enc::TextEncoder;
43
44#[cfg(feature = "bundled")]
51pub const BUNDLED_TOKENIZER: &[u8] = include_bytes!("../models/tokenizer.json");
52
53#[doc(hidden)]
60pub mod __bench_internal {
61 pub fn dot_768_scalar(a: &[f32], b: &[f32]) -> f32 {
62 crate::simd::scalar::dot_768(a, b)
63 }
64
65 pub fn dot_768_dispatch(a: &[f32], b: &[f32]) -> f32 {
66 crate::simd::dot_768(a, b)
67 }
68
69 pub fn normalize_patchify_row_scalar(src: &[u8], dst: &mut [f32]) {
70 crate::simd::scalar::normalize_patchify_row(src, dst);
71 }
72
73 pub fn normalize_patchify_row_dispatch(src: &[u8], dst: &mut [f32]) {
74 crate::simd::normalize_patchify_row(src, dst);
75 }
76
77 pub fn scale_768_inplace_scalar(v: &mut [f32], factor: f32) {
78 crate::simd::scalar::scale_768_inplace(v, factor);
79 }
80
81 pub fn scale_768_inplace_dispatch(v: &mut [f32], factor: f32) {
82 crate::simd::scale_768_inplace(v, factor);
83 }
84}