public final class VectorUtil extends Object
Modifier and Type | Class and Description |
---|---|
static class |
VectorUtil.SortDBIDsBySingleDimension
Compare number vectors by a single dimension.
|
static class |
VectorUtil.SortVectorsBySingleDimension
Compare number vectors by a single dimension.
|
Modifier | Constructor and Description |
---|---|
private |
VectorUtil()
Fake constructor.
|
Modifier and Type | Method and Description |
---|---|
static double |
angle(NumberVector<?> v1,
NumberVector<?> v2,
NumberVector<?> o)
Compute the angle between two vectors.
|
static double |
angle(NumberVector<?> v1,
NumberVector<?> v2,
Vector o)
Compute the angle between two vectors.
|
static double |
angleSparse(SparseNumberVector<?> v1,
SparseNumberVector<?> v2)
Compute the angle for sparse vectors.
|
static Vector |
computeMedoid(Relation<? extends NumberVector<?>> relation,
DBIDs sample)
Compute medoid for a given subset.
|
static double |
cosAngle(NumberVector<?> v1,
NumberVector<?> v2)
Compute the absolute cosine of the angle between two vectors.
|
static double[] |
fastTimes(Matrix mat,
NumberVector<?> v)
This is an ugly hack, but we don't want to have the
Matrix class
depend on NumberVector . |
static DoubleMinMax |
getRangeDouble(NumberVector<?> vec)
Return the range across all dimensions.
|
static double |
minCosAngle(SpatialComparable v1,
SpatialComparable v2)
Compute the minimum angle between two rectangles.
|
static <V extends NumberVector<?>> |
project(V v,
BitSet selectedAttributes,
NumberVector.Factory<V,?> factory)
Provides a new NumberVector as a projection on the specified attributes.
|
static <V extends NumberVector<?>> |
randomVector(NumberVector.Factory<V,?> factory,
int dim)
Produce a new vector based on random numbers in [0:1].
|
static <V extends NumberVector<?>> |
randomVector(NumberVector.Factory<V,?> factory,
int dim,
Random r)
Produce a new vector based on random numbers in [0:1].
|
static double |
scalarProduct(NumberVector<?> d1,
NumberVector<?> d2)
Provides the scalar product (inner product) of this and the given
DoubleVector.
|
private VectorUtil()
public static DoubleMinMax getRangeDouble(NumberVector<?> vec)
vec
- Vector to process.public static <V extends NumberVector<?>> V randomVector(NumberVector.Factory<V,?> factory, int dim, Random r)
V
- vector typefactory
- Vector factorydim
- desired dimensionalityr
- Random generatorpublic static <V extends NumberVector<?>> V randomVector(NumberVector.Factory<V,?> factory, int dim)
V
- vector typefactory
- Vector factorydim
- desired dimensionalitypublic static double angleSparse(SparseNumberVector<?> v1, SparseNumberVector<?> v2)
v1
- First vectorv2
- Second vectorpublic static double angle(NumberVector<?> v1, NumberVector<?> v2, Vector o)
v1
- first vectorv2
- second vectoro
- Originpublic static double angle(NumberVector<?> v1, NumberVector<?> v2, NumberVector<?> o)
v1
- first vectorv2
- second vectoro
- Originpublic static double cosAngle(NumberVector<?> v1, NumberVector<?> v2)
Math.acos(angle)
!v1
- first vectorv2
- second vectorpublic static double minCosAngle(SpatialComparable v1, SpatialComparable v2)
v1
- first rectanglev2
- second rectanglepublic static double scalarProduct(NumberVector<?> d1, NumberVector<?> d2)
d1
- the first vector to compute the scalar product ford2
- the second vector to compute the scalar product forpublic static Vector computeMedoid(Relation<? extends NumberVector<?>> relation, DBIDs sample)
relation
- Relation to processsample
- Sample setpublic static double[] fastTimes(Matrix mat, NumberVector<?> v)
Matrix
class
depend on NumberVector
. Maybe a future version will no longer need
this.mat
- Matrixv
- Vectormat * v
, as double array.public static <V extends NumberVector<?>> V project(V v, BitSet selectedAttributes, NumberVector.Factory<V,?> factory)
V
- Vector typev
- a NumberVector to projectselectedAttributes
- the attributes selected for projectionfactory
- Vector factory