Package com.actelion.research.util
Class DoubleVec
- java.lang.Object
-
- com.actelion.research.util.DoubleVec
-
-
Field Summary
Fields Modifier and Type Field Description static intCOSINEstatic intEUCLIDEANstatic intEUCLIDEAN_FASTstatic intTANIMOTOstatic intTANIMOTO_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 DoubleVecadd(DoubleVec dvVec)voidaddNoise(double fracNoise, double min, double max)voidaddRNDvalue(double dPercentage)Adds aor subtracts a random value to the original value.java.lang.Objectclone()intcompareTo(DoubleVec dv)static doublecubicDistance(DoubleVec dVec1, DoubleVec dVec2)static DoubleVecdevide(DoubleVec dVec1, DoubleVec dVec2)static doubledistance(DoubleVec dVec1, DoubleVec dVec2, int metric)booleanequal(DoubleVec dv)booleanequals(DoubleVec dv)static doubleeuclideanDistance(double[] arr1, double[] arr2)static doubleeuclideanDistance(DoubleVec dVec1, DoubleVec dVec2)Euclidean distancedouble[]get()doubleget(int col)static doublegetCosine(DoubleVec dVec1, DoubleVec dVec2)Vectors have to be normed!static doublegetEuclideanDistanceFast(DoubleVec dVec1, DoubleVec dVec2)Euclidean distance without sqrtstatic doublegetManhattanBlockDistance(DoubleVec dVec1, DoubleVec dVec2)doublegetNorm()static doublegetTanimotoDistance(double[] d1, double[] d2)static doublegetTanimotoDistance(DoubleVec dVec1, DoubleVec dVec2)Calculates the Inverse Tanimoto coefficientstatic doublegetTanimotoDistanceDotProd(DoubleVec dVec1, DoubleVec dVec2)static doublegetTanimotoSimilarity(double[] d1, double[] d2)static doublegetTanimotoSimilarity(DoubleVec dVec1, DoubleVec dVec2)Calculates the Tanimoto coefficient according broken link 22.01.2019 http://www.pnylab.com/pny/papers/nmet/nmet/voidinitRND(double[][] dArrMaxMin)The array contains the maximum and the minimum values for the initialisation of each field in the double vector.voidinitRND(double dMin, double dMax)static DoubleVecminus(DoubleVec dVec1, DoubleVec dVec2)DoubleVecmult(double dFactor)static doublemult(DoubleVec dVec1, DoubleVec dVec2)static DoubleVecmultEl(DoubleVec dVec1, DoubleVec dVec2)Elementwise multiplicationvoidnorm2One()static doubleoverlapDistance(DoubleVec dVec1, DoubleVec dVec2)static DoubleVecplus(DoubleVec dVec1, DoubleVec dVec2)voidreduce(java.util.Vector<java.lang.Integer> vecIndices)voidset(double dVal)voidset(double[] arr)voidset(int[] arr)voidset(int col, double val)voidset(int start, int end, double val)voidsetRNDvalue(double dRange)voidsetRNDvalue(double dCenter, double dRange)intsize()DoubleVecsub(DoubleVec dvSub)Substractiondouble[]toArray()java.lang.StringtoString()java.lang.StringtoString(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:
clonein 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:
compareToin 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)
-
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:
toStringin 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()
-
-