Package com.actelion.research.util
Class DoubleVec
- java.lang.Object
-
- com.actelion.research.util.DoubleVec
-
-
Field Summary
Fields Modifier and Type Field Description static int
COSINE
static int
EUCLIDEAN
static int
EUCLIDEAN_FAST
static int
TANIMOTO
static int
TANIMOTO_INV
-
Constructor Summary
Constructors Constructor Description DoubleVec(double[] dVec)
DoubleVec(double[] dVec, boolean bDotProd)
DoubleVec(int iSize)
DoubleVec(int[] dVec)
DoubleVec(DoubleVec dVec)
DoubleVec(DoubleVec dVec, boolean bDotProd)
DoubleVec(java.util.Vector<java.lang.Double> vec)
DoubleVec(java.util.Vector<java.lang.Double> vec, boolean bDotProd)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description DoubleVec
add(DoubleVec dvVec)
void
addNoise(double fracNoise, double min, double max)
void
addRNDvalue(double dPercentage)
Adds aor subtracts a random value to the original value.java.lang.Object
clone()
int
compareTo(DoubleVec dv)
static double
cubicDistance(DoubleVec dVec1, DoubleVec dVec2)
static DoubleVec
devide(DoubleVec dVec1, DoubleVec dVec2)
static double
distance(DoubleVec dVec1, DoubleVec dVec2, int metric)
boolean
equal(DoubleVec dv)
boolean
equals(DoubleVec dv)
static double
euclideanDistance(double[] arr1, double[] arr2)
static double
euclideanDistance(DoubleVec dVec1, DoubleVec dVec2)
Euclidean distancedouble[]
get()
double
get(int col)
static double
getCosine(DoubleVec dVec1, DoubleVec dVec2)
Vectors have to be normed!static double
getEuclideanDistanceFast(DoubleVec dVec1, DoubleVec dVec2)
Euclidean distance without sqrtstatic double
getManhattanBlockDistance(DoubleVec dVec1, DoubleVec dVec2)
double
getNorm()
static double
getTanimotoDistance(double[] d1, double[] d2)
static double
getTanimotoDistance(DoubleVec dVec1, DoubleVec dVec2)
Calculates the Inverse Tanimoto coefficientstatic double
getTanimotoDistanceDotProd(DoubleVec dVec1, DoubleVec dVec2)
static double
getTanimotoSimilarity(double[] d1, double[] d2)
static double
getTanimotoSimilarity(DoubleVec dVec1, DoubleVec dVec2)
Calculates the Tanimoto coefficient according broken link 22.01.2019 http://www.pnylab.com/pny/papers/nmet/nmet/void
initRND(double[][] dArrMaxMin)
The array contains the maximum and the minimum values for the initialisation of each field in the double vector.void
initRND(double dMin, double dMax)
static DoubleVec
minus(DoubleVec dVec1, DoubleVec dVec2)
DoubleVec
mult(double dFactor)
static double
mult(DoubleVec dVec1, DoubleVec dVec2)
static DoubleVec
multEl(DoubleVec dVec1, DoubleVec dVec2)
Elementwise multiplicationvoid
norm2One()
static double
overlapDistance(DoubleVec dVec1, DoubleVec dVec2)
static DoubleVec
plus(DoubleVec dVec1, DoubleVec dVec2)
void
reduce(java.util.Vector<java.lang.Integer> vecIndices)
void
set(double dVal)
void
set(double[] arr)
void
set(int[] arr)
void
set(int col, double val)
void
set(int start, int end, double val)
void
setRNDvalue(double dRange)
void
setRNDvalue(double dCenter, double dRange)
int
size()
DoubleVec
sub(DoubleVec dvSub)
Substractiondouble[]
toArray()
java.lang.String
toString()
java.lang.String
toString(int iNumDigits)
-
-
-
Field Detail
-
COSINE
public static final int COSINE
- See Also:
- Constant Field Values
-
EUCLIDEAN
public static final int EUCLIDEAN
- See Also:
- Constant Field Values
-
EUCLIDEAN_FAST
public static final int EUCLIDEAN_FAST
- See Also:
- Constant Field Values
-
TANIMOTO
public static final int TANIMOTO
- See Also:
- Constant Field Values
-
TANIMOTO_INV
public static final int TANIMOTO_INV
- See Also:
- Constant Field Values
-
-
Constructor Detail
-
DoubleVec
public DoubleVec(DoubleVec dVec)
-
DoubleVec
public DoubleVec(DoubleVec dVec, boolean bDotProd)
-
DoubleVec
public DoubleVec(int iSize)
-
DoubleVec
public DoubleVec(double[] dVec)
-
DoubleVec
public DoubleVec(int[] dVec)
-
DoubleVec
public DoubleVec(double[] dVec, boolean bDotProd)
-
DoubleVec
public DoubleVec(java.util.Vector<java.lang.Double> vec)
-
DoubleVec
public DoubleVec(java.util.Vector<java.lang.Double> vec, boolean bDotProd)
-
-
Method Detail
-
addRNDvalue
public void addRNDvalue(double dPercentage)
Adds aor subtracts a random value to the original value. The range is specified by the percentage.- Parameters:
dPercentage
- maximum range for the value change
-
addNoise
public void addNoise(double fracNoise, double min, double max)
-
clone
public java.lang.Object clone()
- Overrides:
clone
in classjava.lang.Object
- Returns:
- -1 if the first different value is smaller than the corresponding value in dv. 0 if bot vectors are equal. 1 if the first different value is bigger than the corresponding value in dv.
-
compareTo
public int compareTo(DoubleVec dv)
- Specified by:
compareTo
in interfacejava.lang.Comparable<DoubleVec>
-
distance
public static double distance(DoubleVec dVec1, DoubleVec dVec2, int metric) throws java.lang.Exception
- Throws:
java.lang.Exception
-
equal
public boolean equal(DoubleVec dv)
-
equals
public boolean equals(DoubleVec dv)
-
euclideanDistance
public static double euclideanDistance(DoubleVec dVec1, DoubleVec dVec2)
Euclidean distance- Parameters:
dVec1
-dVec2
-- Returns:
-
euclideanDistance
public static double euclideanDistance(double[] arr1, double[] arr2)
-
getEuclideanDistanceFast
public static double getEuclideanDistanceFast(DoubleVec dVec1, DoubleVec dVec2) throws java.lang.ArrayIndexOutOfBoundsException
Euclidean distance without sqrt- Parameters:
dVec1
-dVec2
-- Returns:
- Throws:
java.lang.ArrayIndexOutOfBoundsException
-
get
public double[] get()
-
get
public double get(int col)
-
getNorm
public double getNorm()
-
getCosine
public static double getCosine(DoubleVec dVec1, DoubleVec dVec2)
Vectors have to be normed!- Parameters:
dVec1
- normed vector1dVec2
- normed vector2- Returns:
- Cosine
-
initRND
public void initRND(double dMin, double dMax)
-
initRND
public void initRND(double[][] dArrMaxMin)
The array contains the maximum and the minimum values for the initialisation of each field in the double vector.- Parameters:
dArrMaxMin
- row 0: max val, row 1 min val
-
getManhattanBlockDistance
public static double getManhattanBlockDistance(DoubleVec dVec1, DoubleVec dVec2)
-
mult
public DoubleVec mult(double dFactor)
-
multEl
public static DoubleVec multEl(DoubleVec dVec1, DoubleVec dVec2)
Elementwise multiplication- Parameters:
dVec1
- input vectordVec2
- input vector- Returns:
- DoubleVec
-
norm2One
public void norm2One()
-
reduce
public void reduce(java.util.Vector<java.lang.Integer> vecIndices)
-
set
public void set(double dVal)
-
set
public void set(double[] arr)
-
set
public void set(int[] arr)
-
set
public void set(int col, double val)
-
set
public void set(int start, int end, double val)
-
setRNDvalue
public void setRNDvalue(double dCenter, double dRange)
-
size
public int size()
-
setRNDvalue
public void setRNDvalue(double dRange)
-
getTanimotoSimilarity
public static double getTanimotoSimilarity(DoubleVec dVec1, DoubleVec dVec2)
Calculates the Tanimoto coefficient according broken link 22.01.2019 http://www.pnylab.com/pny/papers/nmet/nmet/- Parameters:
dVec1
- vector1dVec2
- vector2- Returns:
- Tanimoto: 1.0: maximum similarity, 0: maximum dissimilarity.
-
getTanimotoSimilarity
public static double getTanimotoSimilarity(double[] d1, double[] d2)
- Parameters:
d1
-d2
-- Returns:
- 1 if totally similar, 0 if no overlap.
-
getTanimotoDistance
public static double getTanimotoDistance(DoubleVec dVec1, DoubleVec dVec2)
Calculates the Inverse Tanimoto coefficient- Parameters:
dVec1
- vector1dVec2
- vector2- Returns:
- Tanimoto: 0.0: maximum similarity, 1.0: maximum dissimilarity.
-
getTanimotoDistance
public static double getTanimotoDistance(double[] d1, double[] d2)
-
getTanimotoDistanceDotProd
public static double getTanimotoDistanceDotProd(DoubleVec dVec1, DoubleVec dVec2)
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
toString
public java.lang.String toString(int iNumDigits)
- Parameters:
iNumDigits
- number of decimal places- Returns:
- String with doubles in 0.0 notation 16.10.2003 MvK
-
toArray
public double[] toArray()
-
-