#include <VectorTransform.h>
Public Member Functions | |
RemapDimensionsTransform (int d_in, int d_out, const int *map) | |
RemapDimensionsTransform (int d_in, int d_out, bool uniform=true) | |
void | apply_noalloc (idx_t n, const float *x, float *xt) const override |
same as apply, but result is pre-allocated | |
void | reverse_transform (idx_t n, const float *xt, float *x) const override |
reverse transform correct only when the mapping is a permuation | |
![]() | |
VectorTransform (int d_in=0, int d_out=0) | |
! output dimension | |
virtual void | train (idx_t n, const float *x) |
float * | apply (idx_t n, const float *x) const |
Public Attributes | |
std::vector< int > | map |
![]() | |
int | d_in |
int | d_out |
! input dimension | |
bool | is_trained |
Additional Inherited Members | |
![]() | |
typedef Index::idx_t | idx_t |
remap dimensions for intput vectors, possibly inserting 0s strictly speaking this is also a linear transform but we don't want to compute it with matrix multiplies
Definition at line 203 of file VectorTransform.h.
RemapDimensionsTransform::RemapDimensionsTransform | ( | int | d_in, |
int | d_out, | ||
bool | uniform = true |
||
) |
remap input to output, skipping or inserting dimensions as needed if uniform: distribute dimensions uniformly otherwise just take the d_out first ones.
Definition at line 920 of file VectorTransform.cpp.
std::vector<int> faiss::RemapDimensionsTransform::map |
map from output dimension to input, size d_out -1 -> set output to 0
Definition at line 207 of file VectorTransform.h.