#ifndef FAISS_VECTOR_TRANSFORM_C_H
#define FAISS_VECTOR_TRANSFORM_C_H
#include "faiss_c.h"
#ifdef __cplusplus
extern "C" {
#endif
FAISS_DECLARE_CLASS(VectorTransform)
FAISS_DECLARE_DESTRUCTOR(VectorTransform)
FAISS_DECLARE_GETTER(VectorTransform, int, is_trained)
FAISS_DECLARE_GETTER(VectorTransform, int, d_in)
FAISS_DECLARE_GETTER(VectorTransform, int, d_out)
int faiss_VectorTransform_train(
FaissVectorTransform* vt,
idx_t n,
const float* x);
float* faiss_VectorTransform_apply(
const FaissVectorTransform* vt,
idx_t n,
const float* x);
void faiss_VectorTransform_apply_noalloc(
const FaissVectorTransform* vt,
idx_t n,
const float* x,
float* xt);
void faiss_VectorTransform_reverse_transform(
const FaissVectorTransform* vt,
idx_t n,
const float* xt,
float* x);
FAISS_DECLARE_CLASS_INHERITED(LinearTransform, VectorTransform)
FAISS_DECLARE_DESTRUCTOR(LinearTransform)
void faiss_LinearTransform_transform_transpose(
const FaissLinearTransform* vt,
idx_t n,
const float* y,
float* x);
void faiss_LinearTransform_set_is_orthonormal(FaissLinearTransform* vt);
FAISS_DECLARE_GETTER(LinearTransform, int, have_bias)
FAISS_DECLARE_GETTER(LinearTransform, int, is_orthonormal)
FAISS_DECLARE_CLASS_INHERITED(RandomRotationMatrix, VectorTransform)
FAISS_DECLARE_DESTRUCTOR(RandomRotationMatrix)
int faiss_RandomRotationMatrix_new_with(
FaissRandomRotationMatrix** p_vt,
int d_in,
int d_out);
FAISS_DECLARE_CLASS_INHERITED(PCAMatrix, VectorTransform)
FAISS_DECLARE_DESTRUCTOR(PCAMatrix)
int faiss_PCAMatrix_new_with(
FaissPCAMatrix** p_vt,
int d_in,
int d_out,
float eigen_power,
int random_rotation);
FAISS_DECLARE_GETTER(PCAMatrix, float, eigen_power)
FAISS_DECLARE_GETTER(PCAMatrix, int, random_rotation)
FAISS_DECLARE_CLASS_INHERITED(ITQMatrix, VectorTransform)
FAISS_DECLARE_DESTRUCTOR(ITQMatrix)
int faiss_ITQMatrix_new_with(FaissITQMatrix** p_vt, int d);
FAISS_DECLARE_CLASS_INHERITED(ITQTransform, VectorTransform)
FAISS_DECLARE_DESTRUCTOR(ITQTransform)
int faiss_ITQTransform_new_with(
FaissITQTransform** p_vt,
int d_in,
int d_out,
int do_pca);
FAISS_DECLARE_GETTER(ITQTransform, int, do_pca)
FAISS_DECLARE_CLASS_INHERITED(OPQMatrix, VectorTransform)
FAISS_DECLARE_DESTRUCTOR(OPQMatrix)
int faiss_OPQMatrix_new_with(FaissOPQMatrix** p_vt, int d, int M, int d2);
FAISS_DECLARE_GETTER_SETTER(OPQMatrix, int, verbose)
FAISS_DECLARE_GETTER_SETTER(OPQMatrix, int, niter)
FAISS_DECLARE_GETTER_SETTER(OPQMatrix, int, niter_pq)
FAISS_DECLARE_CLASS_INHERITED(RemapDimensionsTransform, VectorTransform)
FAISS_DECLARE_DESTRUCTOR(RemapDimensionsTransform)
int faiss_RemapDimensionsTransform_new_with(
FaissRemapDimensionsTransform** p_vt,
int d_in,
int d_out,
int uniform);
FAISS_DECLARE_CLASS_INHERITED(NormalizationTransform, VectorTransform)
FAISS_DECLARE_DESTRUCTOR(NormalizationTransform)
int faiss_NormalizationTransform_new_with(
FaissNormalizationTransform** p_vt,
int d,
float norm);
FAISS_DECLARE_GETTER(NormalizationTransform, float, norm)
FAISS_DECLARE_CLASS_INHERITED(CenteringTransform, VectorTransform)
FAISS_DECLARE_DESTRUCTOR(CenteringTransform)
int faiss_CenteringTransform_new_with(FaissCenteringTransform** p_vt, int d);
#ifdef __cplusplus
}
#endif
#endif