Skip to main content

vortex_tensor/
lib.rs

1// SPDX-License-Identifier: Apache-2.0
2// SPDX-FileCopyrightText: Copyright the Vortex contributors
3
4//! Types and functionality for working with tensors, vectors, and related mathematical constructs
5//! including unit vectors, spherical coordinates, and similarity measures such as cosine
6//! similarity.
7
8use vortex_array::dtype::session::DTypeSessionExt;
9use vortex_array::scalar_fn::session::ScalarFnSessionExt;
10use vortex_array::session::ArraySessionExt;
11use vortex_session::VortexSession;
12
13use crate::encodings::turboquant::TurboQuant;
14use crate::fixed_shape::FixedShapeTensor;
15use crate::scalar_fns::cosine_similarity::CosineSimilarity;
16use crate::scalar_fns::inner_product::InnerProduct;
17use crate::scalar_fns::l2_denorm::L2Denorm;
18use crate::scalar_fns::l2_norm::L2Norm;
19use crate::vector::Vector;
20
21pub mod matcher;
22pub mod scalar_fns;
23
24pub mod fixed_shape;
25pub mod vector;
26
27pub mod encodings;
28
29mod utils;
30
31/// Initialize the Vortex tensor library with a Vortex session.
32pub fn initialize(session: &VortexSession) {
33    session.dtypes().register(Vector);
34    session.dtypes().register(FixedShapeTensor);
35
36    session.arrays().register(TurboQuant);
37
38    session.scalar_fns().register(CosineSimilarity);
39    session.scalar_fns().register(InnerProduct);
40    session.scalar_fns().register(L2Denorm);
41    session.scalar_fns().register(L2Norm);
42}