java.lang.Object
io.jenetics.DoubleGene
- All Implemented Interfaces:
BoundedGene<Double,
,DoubleGene> Gene<Double,
,DoubleGene> NumericGene<Double,
,DoubleGene> Factory<DoubleGene>
,Mean<DoubleGene>
,Self<DoubleGene>
,Verifiable
,Serializable
,Comparable<DoubleGene>
public final class DoubleGene
extends Object
implements NumericGene<Double,DoubleGene>, Mean<DoubleGene>, Comparable<DoubleGene>, Serializable
Implementation of the NumericGene which holds a 64-bit floating point number.
This is a
value-based class; use of identity-sensitive operations (including
reference equality (==
), identity hash code, or synchronization) on
instances of DoubleGene
may have unpredictable results and should
be avoided.
- Since:
- 1.6
- Version:
- 6.0
- See Also:
- Implementation Note:
- This class is immutable and thread-safe.
-
Method Summary
Modifier and TypeMethodDescriptionallele()
Return the allele of this gene.byte
Returns the value of the specified gene as a byte.int
compareTo
(DoubleGene other) double
Returns the value of the specified gene as a double.boolean
float
Returns the value of the specified gene as a float.int
hashCode()
int
intValue()
Returns the value of the specified gene as an int.boolean
isValid()
Check if this object is valid.long
Returns the value of the specified gene as a long.max()
Return the allowed max value.mean
(DoubleGene that) Return the (usually arithmetic) mean value ofthis
andthat
.min()
Return the allowed min value.Return a new, random gene with the same type and with the same constraints as this gene.newInstance
(double allele) Create a new gene from the givenvalue
and the gene context.newInstance
(Double allele) Create a new gene from the givenvalue
and the current bounds.newInstance
(Number allele) Create a new gene from the givenvalue
and the current bounds.static DoubleGene
of
(double min, double max) Create a new randomDoubleGene
.static DoubleGene
of
(double allele, double min, double max) Create a new randomDoubleGene
with the given value and the given range.static DoubleGene
of
(double allele, DoubleRange range) Create a new randomDoubleGene
with the given value and the given range.static DoubleGene
of
(DoubleRange range) Create a new randomDoubleGene
.range()
Return the range ofthis
gene.short
Returns the value of the specified gene as a short.toString()
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
Methods inherited from interface io.jenetics.BoundedGene
max, min
-
Method Details
-
allele
Description copied from interface:Gene
Return the allele of this gene.- Specified by:
allele
in interfaceGene<Double,
DoubleGene> - Returns:
- the allele of this gene.
-
min
Description copied from interface:BoundedGene
Return the allowed min value.- Specified by:
min
in interfaceBoundedGene<Double,
DoubleGene> - Returns:
- The allowed min value.
-
max
Description copied from interface:BoundedGene
Return the allowed max value.- Specified by:
max
in interfaceBoundedGene<Double,
DoubleGene> - Returns:
- The allowed max value.
-
range
Return the range ofthis
gene.- Returns:
- the range of
this
gene - Since:
- 4.4
-
byteValue
Description copied from interface:NumericGene
Returns the value of the specified gene as a byte. This may involve rounding or truncation.- Specified by:
byteValue
in interfaceNumericGene<Double,
DoubleGene> - Returns:
- the numeric value represented by this object after conversion to
type
byte
.
-
shortValue
Description copied from interface:NumericGene
Returns the value of the specified gene as a short. This may involve rounding or truncation.- Specified by:
shortValue
in interfaceNumericGene<Double,
DoubleGene> - Returns:
- the numeric value represented by this object after conversion to
type
short
.
-
intValue
Description copied from interface:NumericGene
Returns the value of the specified gene as an int. This may involve rounding or truncation.- Specified by:
intValue
in interfaceNumericGene<Double,
DoubleGene> - Returns:
- the numeric value represented by this object after conversion to
type
int
.
-
longValue
Description copied from interface:NumericGene
Returns the value of the specified gene as a long. This may involve rounding or truncation.- Specified by:
longValue
in interfaceNumericGene<Double,
DoubleGene> - Returns:
- the numeric value represented by this object after conversion to
type
long
.
-
floatValue
Description copied from interface:NumericGene
Returns the value of the specified gene as a float. This may involve rounding or truncation.- Specified by:
floatValue
in interfaceNumericGene<Double,
DoubleGene> - Returns:
- the numeric value represented by this object after conversion to
type
float
.
-
doubleValue
Description copied from interface:NumericGene
Returns the value of the specified gene as a double. This may involve rounding or truncation.- Specified by:
doubleValue
in interfaceNumericGene<Double,
DoubleGene> - Returns:
- the numeric value represented by this object after conversion to
type
double
.
-
isValid
Description copied from interface:Verifiable
Check if this object is valid.- Specified by:
isValid
in interfaceBoundedGene<Double,
DoubleGene> - Specified by:
isValid
in interfaceVerifiable
- Returns:
- true if this object is valid, false otherwise.
-
compareTo
- Specified by:
compareTo
in interfaceBoundedGene<Double,
DoubleGene> - Specified by:
compareTo
in interfaceComparable<DoubleGene>
-
mean
Description copied from interface:Mean
Return the (usually arithmetic) mean value ofthis
andthat
. ForNumericGene
s the mean is the arithmetic mean.- Specified by:
mean
in interfaceMean<DoubleGene>
- Parameters:
that
- the second value for calculating the mean.- Returns:
- the mean value of
this
andthat
.
-
newInstance
Create a new gene from the givenvalue
and the gene context.- Parameters:
allele
- the value of the new gene.- Returns:
- a new gene with the given value.
- Since:
- 5.0
-
newInstance
Description copied from interface:BoundedGene
Create a new gene from the givenvalue
and the current bounds.- Specified by:
newInstance
in interfaceBoundedGene<Double,
DoubleGene> - Specified by:
newInstance
in interfaceGene<Double,
DoubleGene> - Parameters:
allele
- the value of the new gene.- Returns:
- a new gene with the given value.
-
newInstance
Description copied from interface:BoundedGene
Create a new gene from the givenvalue
and the current bounds.- Specified by:
newInstance
in interfaceNumericGene<Double,
DoubleGene> - Parameters:
allele
- the value of the new gene.- Returns:
- a new gene with the given value.
-
newInstance
Description copied from interface:Gene
Return a new, random gene with the same type and with the same constraints as this gene. For all genes returned by this method holdsgene.getClass() == gene.newInstance().getClass()
. Implementations of this method have to use theRandomGenerator
object which can be fetched from theRandomRegistry
.- Specified by:
newInstance
in interfaceFactory<DoubleGene>
- Specified by:
newInstance
in interfaceGene<Double,
DoubleGene> - Returns:
- a new instance of type T
-
hashCode
-
equals
-
toString
-
of
Create a new randomDoubleGene
with the given value and the given range. If thevalue
isn't within the interval [min, max), no exception is thrown. In this case the methodisValid()
returnsfalse
.- Parameters:
allele
- the value of the gene.min
- the minimal valid value of this gene (inclusively).max
- the maximal valid value of this gene (exclusively).- Returns:
- a new
DoubleGene
with the given parameter
-
of
Create a new randomDoubleGene
with the given value and the given range. If thevalue
isn't within the interval[min, max)
, no exception is thrown. In this case the methodisValid()
returnsfalse
.- Parameters:
allele
- the value of the generange
- the double range to use- Returns:
- a new random
DoubleGene
- Throws:
NullPointerException
- if the givenrange
isnull
- Since:
- 3.2
-
of
Create a new randomDoubleGene
. It is guaranteed that the value of theDoubleGene
lies in the interval[min, max)
.- Parameters:
min
- the minimal valid value of this gene (inclusively)max
- the maximal valid value of this gene (exclusively)- Returns:
- a new
DoubleGene
with the given parameter - Throws:
IllegalArgumentException
- ifmin
is not finite, ormax
is not finite, ormin
is greater than or equal tomax
-
of
Create a new randomDoubleGene
. It is guaranteed that the value of theDoubleGene
lies in the interval[min, max)
.- Parameters:
range
- the double range to use- Returns:
- a new
DoubleGene
with the given parameter - Throws:
NullPointerException
- if the givenrange
isnull
IllegalArgumentException
- ifmin
is not finite, ormax
is not finite, ormin
is greater than or equal tomax
- Since:
- 3.2
-