public class SubspaceLPNormDistanceFunction extends AbstractDimensionsSelectingDoubleDistanceFunction<NumberVector<?,?>> implements SpatialPrimitiveDoubleDistanceFunction<NumberVector<?,?>>, DoubleNorm<NumberVector<?,?>>
Modifier and Type | Class and Description |
---|---|
static class |
SubspaceLPNormDistanceFunction.Parameterizer
Parameterization class.
|
Modifier and Type | Field and Description |
---|---|
private double |
p
Value of p
|
dimensions, DIMS_ID
Constructor and Description |
---|
SubspaceLPNormDistanceFunction(double p,
BitSet dimensions)
Constructor.
|
Modifier and Type | Method and Description |
---|---|
double |
doubleDistance(NumberVector<?,?> v1,
NumberVector<?,?> v2)
Provides the Euclidean distance between two given feature vectors in the
selected dimensions.
|
double |
doubleMinDist(SpatialComparable mbr1,
SpatialComparable mbr2)
Computes the distance between the two given MBRs according to this
distance function.
|
protected double |
doubleMinDistObject(SpatialComparable mbr,
NumberVector<?,?> v) |
double |
doubleNorm(NumberVector<?,?> obj)
Compute the norm of object obj as double value.
|
VectorFieldTypeInformation<? super NumberVector<?,?>> |
getInputTypeRestriction()
Get the input data type of the function.
|
double |
getP()
Get the value of p.
|
<T extends NumberVector<?,?>> |
instantiate(Relation<T> database)
Instantiate with a database to get the actual distance query.
|
boolean |
isMetric()
Is this distance function metric (in particular, does it satisfy the
triangle equation?)
|
DoubleDistance |
minDist(SpatialComparable mbr1,
SpatialComparable mbr2)
Computes the distance between the two given MBRs according to this distance
function.
|
DoubleDistance |
norm(NumberVector<?,?> obj)
Compute the norm of object obj.
|
distance, equals, getDistanceFactory, getSelectedDimensions, setSelectedDimensions
isSymmetric
clone, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
distance
public SubspaceLPNormDistanceFunction(double p, BitSet dimensions)
dimensions
- Selected dimensionsp
- p valuepublic double getP()
public double doubleDistance(NumberVector<?,?> v1, NumberVector<?,?> v2)
doubleDistance
in interface PrimitiveDoubleDistanceFunction<NumberVector<?,?>>
v1
- first feature vectorv2
- second feature vectorprotected double doubleMinDistObject(SpatialComparable mbr, NumberVector<?,?> v)
public double doubleMinDist(SpatialComparable mbr1, SpatialComparable mbr2)
SpatialPrimitiveDoubleDistanceFunction
doubleMinDist
in interface SpatialPrimitiveDoubleDistanceFunction<NumberVector<?,?>>
mbr1
- the first MBR objectmbr2
- the second MBR objectpublic DoubleDistance minDist(SpatialComparable mbr1, SpatialComparable mbr2)
SpatialPrimitiveDistanceFunction
minDist
in interface SpatialPrimitiveDistanceFunction<NumberVector<?,?>,DoubleDistance>
mbr1
- the first MBR objectmbr2
- the second MBR objectpublic DoubleDistance norm(NumberVector<?,?> obj)
Norm
norm
in interface Norm<NumberVector<?,?>,DoubleDistance>
obj
- Objectpublic double doubleNorm(NumberVector<?,?> obj)
DoubleNorm
doubleNorm
in interface DoubleNorm<NumberVector<?,?>>
obj
- Objectpublic <T extends NumberVector<?,?>> SpatialPrimitiveDistanceQuery<T,DoubleDistance> instantiate(Relation<T> database)
AbstractPrimitiveDistanceFunction
instantiate
in interface DistanceFunction<NumberVector<?,?>,DoubleDistance>
instantiate
in interface SpatialPrimitiveDistanceFunction<NumberVector<?,?>,DoubleDistance>
instantiate
in class AbstractPrimitiveDistanceFunction<NumberVector<?,?>,DoubleDistance>
database
- Representationpublic VectorFieldTypeInformation<? super NumberVector<?,?>> getInputTypeRestriction()
DistanceFunction
getInputTypeRestriction
in interface DistanceFunction<NumberVector<?,?>,DoubleDistance>
getInputTypeRestriction
in interface PrimitiveDistanceFunction<NumberVector<?,?>,DoubleDistance>
public boolean isMetric()
DistanceFunction
isMetric
in interface DistanceFunction<NumberVector<?,?>,DoubleDistance>
isMetric
in class AbstractPrimitiveDistanceFunction<NumberVector<?,?>,DoubleDistance>
true
when metric.