|
Deterministic Gaussian Sampling
|
implements a vectorized version of calculating squared euclidean distances store in a vector More...
#include <squared_euclidean_distance_utils.h>
Public Member Functions | |
| SquaredEuclideanDistance_LL_vectorized_optimized (size_t L, size_t N) | |
| double | getDistance (size_t xi, size_t xj) const override |
| void | calculateDistance (const gsl_matrix *x, const gsl_matrix *y) override |
| calculate all squared euclidean distance between vectors contained as columns in x and y | |
Public Member Functions inherited from SquaredEuclideanDistanceUtilsLL | |
| SquaredEuclideanDistanceUtilsLL (size_t L, size_t N) | |
Public Member Functions inherited from SquaredEuclideanDistanceUtils | |
| SquaredEuclideanDistanceUtils (size_t L, size_t M, size_t N) | |
| size_t | getL () const |
| size_t | getM () const |
| size_t | getN () const |
Additional Inherited Members | |
Static Protected Member Functions inherited from SquaredEuclideanDistanceUtils | |
| static gsl_matrix | convToMatrix (const gsl_vector *v, size_t N) noexcept |
| convert an gsl_vector to a N column gsl_matrix | |
Protected Attributes inherited from SquaredEuclideanDistanceUtils | |
| size_t | L |
| size_t | M |
| size_t | N |
implements a vectorized version of calculating squared euclidean distances store in a vector
uses symmetrie: ||xi - xj||² = ||xj - xi||² and ||xi - xj||² = ||xi||² + ||xj||² - 2 * xiᵀ * xj
with cblas functions
only needs to calculate (L² - L) / 2 elements
|
inlineoverridevirtual |
calculate all squared euclidean distance between vectors contained as columns in x and y
| x | LxN Matrix with L vectors of size N |
| y | MxN Matrix with M vectors of size M |
Implements SquaredEuclideanDistanceUtils.
|
inlineoverridevirtual |
Implements SquaredEuclideanDistanceUtils.