public abstract class ObjectFloatVector extends LocalAbstractObject implements ObjectVector<java.lang.Float>, BinarySerializable
ObjectFloatVectorL1
or ObjectFloatVectorL2
.LocalAbstractObject.DataEqualObject, LocalAbstractObject.TextStreamFactory<T extends LocalAbstractObject>, LocalAbstractObject.TrivialDistanceFunction
Modifier and Type | Field and Description |
---|---|
protected float[] |
data
Data array
|
counterDistanceComputations, counterLowerBoundDistanceComputations, counterPrecomputedDistanceSavings, counterUpperBoundDistanceComputations, MAX_DISTANCE, MIN_DISTANCE, suppData, trivialDistanceFunction, UNKNOWN_DISTANCE
Modifier | Constructor and Description |
---|---|
protected |
ObjectFloatVector(BinaryInput input,
BinarySerializator serializator)
Creates a new instance of ObjectFloatVector loaded from binary input buffer.
|
|
ObjectFloatVector(java.io.BufferedReader stream)
Creates a new instance of ObjectFloatVector from text stream.
|
|
ObjectFloatVector(float[] data)
Creates a new instance of ObjectFloatVector.
|
|
ObjectFloatVector(int dimension,
float min,
float max)
Creates a new instance of ObjectFloatVector with randomly generated content data.
|
|
ObjectFloatVector(java.lang.String locatorURI,
float[] data)
Creates a new instance of ObjectFloatVector.
|
Modifier and Type | Method and Description |
---|---|
int |
binarySerialize(BinaryOutput output,
BinarySerializator serializator)
Binary-serialize this object into the
output . |
LocalAbstractObject |
cloneRandomlyModify(java.lang.Object... args)
Creates and returns a randomly modified copy of this vector.
|
static float[] |
convertFloatVector(java.lang.String[] numbers,
int offset,
int length)
Converts the given array of float strings to a vector of floats.
|
boolean |
dataEquals(java.lang.Object obj)
Indicates whether some other object has the same data as this one.
|
int |
dataHashCode()
Returns a hash code value for the data of this object.
|
int |
getBinarySize(BinarySerializator serializator)
Returns the exact size of the binary-serialized version of this object in bytes.
|
int |
getDimensionality()
Returns the number of dimensions of this vector.
|
static float[][] |
getMinMaxForEveryCoord(AbstractObjectIterator<? extends ObjectFloatVector> iterator)
Computes minimum and maximum values over every coordinate of vectors in the collection's
iterator.
|
static float[] |
getMinMaxOverCoords(AbstractObjectIterator<? extends ObjectFloatVector> iterator)
Computes minimum and maximum values over all coordinates of vectors in the collection's
iterator.
|
protected float[] |
getMinMaxOverCoords(float[] currRange)
Computes minimum and maximum values over all coordinates of the current vector.
|
int |
getSize()
Returns the size of this object in bytes.
|
float[] |
getVectorData()
Returns the vector of float values, which represents the contents of this object.
|
int |
getVectorDataDimension()
Number of dimensions of the vector data.
|
java.lang.Float |
getVectorDataItem(int index)
Access to a single datum of vector data at the given zero-based index.
|
float |
getVectorDataItemFloat(int index) |
static float[] |
parseFloatVector(java.lang.String line)
Parses a vector of floats from the given line of text.
|
static float[] |
randomData(int dimension,
float min,
float max)
Generate an array of random floats using normal distribution of numbers
from interval [min;max).
|
java.lang.String |
toString()
Converts the object to a string representation.
|
float[] |
translateToUnitCube(float[] bounds)
Translates the current vector into a unit hypercube.
|
float[] |
translateToUnitCube(float[][] bounds)
Translates the current vector into a unit hypercube.
|
protected void |
writeData(java.io.OutputStream stream)
Store this object's data to a text stream.
|
static void |
writeFloatVector(float[] data,
java.io.OutputStream stream,
char separator,
char finalSeparator)
Writes the given vector of floats to the given output stream as text.
|
clearSurplusData, clone, clone, create, create, createMetaDistancesHolder, excludeUsingPrecompDist, getDistance, getDistance, getDistance, getDistanceFilter, getDistanceFilter, getDistanceFilter, getDistanceFilter, getDistanceImpl, getDistanceLowerBound, getDistanceLowerBoundImpl, getDistanceStorePrecomputed, getDistanceStorePrecomputed, getDistanceStorePrecomputed, getDistanceUpperBound, getDistanceUpperBoundImpl, getFieldsForNames, getMaxDistance, getNormDistance, getPrecomputedDistance, getPrecomputedDistance, getRandomChar, getRandomNormal, chainDestroy, chainFilter, includeUsingPrecompDist, isDistanceCompatible, parseObjectComment, peekNextChar, readAttributesFromStream, readObjectComments, readObjectCommentsWithoutData, unchainFilter, write, write, writeAttributesToStream, writeObjectComment
clone, getLocatorURI, getNoDataObject, getObjectKey, getObjectKey, getObjectLocatorURI, setObjectKey
public ObjectFloatVector(float[] data)
data
- the data content of the new objectpublic ObjectFloatVector(java.lang.String locatorURI, float[] data)
locatorURI
- the locator URI for the new objectdata
- the data content of the new objectpublic ObjectFloatVector(int dimension, float min, float max)
dimension
- number of dimensions to generatemin
- lower bound of the random generated values (inclusive)max
- upper bound of the random generated values (exclusive)public ObjectFloatVector(java.io.BufferedReader stream) throws java.io.EOFException, java.io.IOException, java.lang.NumberFormatException
stream
- the stream from which to read lines of textjava.io.EOFException
- if the end-of-file of the given stream is reachedjava.io.IOException
- if there was an I/O error during reading from the streamjava.lang.NumberFormatException
- if a line read from the stream does not consist of comma-separated or space-separated numbersprotected ObjectFloatVector(BinaryInput input, BinarySerializator serializator) throws java.io.IOException
input
- the buffer to read the ObjectFloatVector fromserializator
- the serializator used to write objectsjava.io.IOException
- if there was an I/O error reading from the bufferpublic static float[] parseFloatVector(java.lang.String line) throws java.lang.NumberFormatException, java.io.EOFException
line
- the text from which to parse vectorjava.lang.NumberFormatException
- if the given line
does not have comma-separated or space-separated floatsjava.io.EOFException
- if a null line
is givenpublic static float[] convertFloatVector(java.lang.String[] numbers, int offset, int length) throws java.lang.NumberFormatException, java.lang.IndexOutOfBoundsException
numbers
- the array of float strings to convertoffset
- the starting index in the numbers array
length
- the number of numbers
to convert starting from offset
java.lang.NumberFormatException
- if the given numbers
contained a value that cannot be converted to floatjava.lang.IndexOutOfBoundsException
- if the given offset or length is not valid for the numbers
arraypublic static void writeFloatVector(float[] data, java.io.OutputStream stream, char separator, char finalSeparator) throws java.io.IOException
data
- the vector of floats to outputstream
- the output stream to write the text toseparator
- the char written between the vector numbersfinalSeparator
- the char written at the end of the vectorjava.io.IOException
- if there was an I/O error while writing to the streamprotected void writeData(java.io.OutputStream stream) throws java.io.IOException
LocalAbstractObject
writeData
in class LocalAbstractObject
stream
- the stream to store this object tojava.io.IOException
- if there was an error while writing to streampublic static float[] randomData(int dimension, float min, float max)
dimension
- number of dimensions to generatemin
- lower bound of the random generated values (inclusive)max
- upper bound of the random generated values (exclusive)public boolean dataEquals(java.lang.Object obj)
LocalAbstractObject
dataEquals
in class LocalAbstractObject
obj
- the reference object with which to compare.true
if this object is the same as the obj
argument; false
otherwise.public int dataHashCode()
LocalAbstractObject
dataHashCode
in class LocalAbstractObject
public java.lang.Float getVectorDataItem(int index)
ObjectVector
getVectorDataItem
in interface ObjectVector<java.lang.Float>
index
- zero-base index of the datum to returnpublic int getVectorDataDimension()
ObjectVector
getVectorDataDimension
in interface ObjectVector<java.lang.Float>
public float getVectorDataItemFloat(int index)
public float[] getVectorData()
public int getSize()
LocalAbstractObject
getSize
in class LocalAbstractObject
public int getDimensionality()
public float[] translateToUnitCube(float[][] bounds)
bounds
- A 2-dimensional array of minimum and maximum values per coordinate. For details refer to getMinMaxForEveryCoord().public float[] translateToUnitCube(float[] bounds)
bounds
- Array consisting of two values for minimum and maximum value of all coordinates, respectively.protected float[] getMinMaxOverCoords(float[] currRange)
currRange
- An optional parameter containing current minimum and maximum values. If null is passed
a new range with minimum and maximum is created, otherwise the passed array is updated.public static float[] getMinMaxOverCoords(AbstractObjectIterator<? extends ObjectFloatVector> iterator)
iterator
- Iterator of a collection containing vectors to process.public static float[][] getMinMaxForEveryCoord(AbstractObjectIterator<? extends ObjectFloatVector> iterator)
iterator
- Iterator of a collection containing vectors to process.public LocalAbstractObject cloneRandomlyModify(java.lang.Object... args) throws java.lang.CloneNotSupportedException
cloneRandomlyModify
in class LocalAbstractObject
args
- expected size of the array is 2: minVector vector with minimal values in all positions
maxVector vector with maximal values in all positionsjava.lang.CloneNotSupportedException
- if the object's class does not support cloning or there was an errorpublic java.lang.String toString()
super.toString()
is appended.toString
in class AbstractObject
public int binarySerialize(BinaryOutput output, BinarySerializator serializator) throws java.io.IOException
LocalAbstractObject
output
.binarySerialize
in interface BinarySerializable
binarySerialize
in class LocalAbstractObject
output
- the output that this object is binary-serialized intoserializator
- the serializator used to write objectsjava.io.IOException
- if there was an I/O error during serializationpublic int getBinarySize(BinarySerializator serializator)
LocalAbstractObject
getBinarySize
in interface BinarySerializable
getBinarySize
in class LocalAbstractObject
serializator
- the serializator used to write objects