Package io.jenetics

Class DoubleGene

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>

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 Details

    • allele

      public Double allele()
      Description copied from interface: Gene
      Return the allele of this gene.
      Specified by:
      allele in interface Gene<Double,DoubleGene>
      Returns:
      the allele of this gene.
    • min

      public Double min()
      Description copied from interface: BoundedGene
      Return the allowed min value.
      Specified by:
      min in interface BoundedGene<Double,DoubleGene>
      Returns:
      The allowed min value.
    • max

      public Double max()
      Description copied from interface: BoundedGene
      Return the allowed max value.
      Specified by:
      max in interface BoundedGene<Double,DoubleGene>
      Returns:
      The allowed max value.
    • range

      public DoubleRange range()
      Return the range of this gene.
      Returns:
      the range of this gene
      Since:
      4.4
    • byteValue

      public byte 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 interface NumericGene<Double,DoubleGene>
      Returns:
      the numeric value represented by this object after conversion to type byte.
    • shortValue

      public short 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 interface NumericGene<Double,DoubleGene>
      Returns:
      the numeric value represented by this object after conversion to type short.
    • intValue

      public int 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 interface NumericGene<Double,DoubleGene>
      Returns:
      the numeric value represented by this object after conversion to type int.
    • longValue

      public long 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 interface NumericGene<Double,DoubleGene>
      Returns:
      the numeric value represented by this object after conversion to type long.
    • floatValue

      public float 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 interface NumericGene<Double,DoubleGene>
      Returns:
      the numeric value represented by this object after conversion to type float.
    • doubleValue

      public double 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 interface NumericGene<Double,DoubleGene>
      Returns:
      the numeric value represented by this object after conversion to type double.
    • isValid

      public boolean isValid()
      Description copied from interface: Verifiable
      Check if this object is valid.
      Specified by:
      isValid in interface BoundedGene<Double,DoubleGene>
      Specified by:
      isValid in interface Verifiable
      Returns:
      true if this object is valid, false otherwise.
    • compareTo

      public int compareTo(DoubleGene other)
      Specified by:
      compareTo in interface BoundedGene<Double,DoubleGene>
      Specified by:
      compareTo in interface Comparable<DoubleGene>
    • mean

      public DoubleGene mean(DoubleGene that)
      Description copied from interface: Mean
      Return the (usually arithmetic) mean value of this and that. For NumericGenes the mean is the arithmetic mean.
      Specified by:
      mean in interface Mean<DoubleGene>
      Parameters:
      that - the second value for calculating the mean.
      Returns:
      the mean value of this and that.
    • newInstance

      public DoubleGene newInstance(double allele)
      Create a new gene from the given value and the gene context.
      Parameters:
      allele - the value of the new gene.
      Returns:
      a new gene with the given value.
      Since:
      5.0
    • newInstance

      public DoubleGene newInstance(Double allele)
      Description copied from interface: BoundedGene
      Create a new gene from the given value and the current bounds.
      Specified by:
      newInstance in interface BoundedGene<Double,DoubleGene>
      Specified by:
      newInstance in interface Gene<Double,DoubleGene>
      Parameters:
      allele - the value of the new gene.
      Returns:
      a new gene with the given value.
    • newInstance

      public DoubleGene newInstance(Number allele)
      Description copied from interface: BoundedGene
      Create a new gene from the given value and the current bounds.
      Specified by:
      newInstance in interface NumericGene<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 holds gene.getClass() == gene.newInstance().getClass(). Implementations of this method have to use the Random object which can be fetched from the RandomRegistry.
      Specified by:
      newInstance in interface Factory<DoubleGene>
      Specified by:
      newInstance in interface Gene<Double,DoubleGene>
      Returns:
      a new instance of type T
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • equals

      public boolean equals(Object obj)
      Overrides:
      equals in class Object
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • of

      public static DoubleGene of(double allele, double min, double max)
      Create a new random DoubleGene with the given value and the given range. If the value isn't within the interval [min, max), no exception is thrown. In this case the method isValid() returns false.
      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

      public static DoubleGene of(double allele, DoubleRange range)
      Create a new random DoubleGene with the given value and the given range. If the value isn't within the interval [min, max), no exception is thrown. In this case the method isValid() returns false.
      Parameters:
      allele - the value of the gene.
      range - the double range to use
      Returns:
      a new random DoubleGene
      Throws:
      NullPointerException - if the given range is null.
      Since:
      3.2
    • of

      public static DoubleGene of(double min, double max)
      Create a new random DoubleGene. It is guaranteed that the value of the DoubleGene 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 - if min is not finite, or max is not finite, or min is greater than or equal to max
    • of

      public static DoubleGene of(DoubleRange range)
      Create a new random DoubleGene. It is guaranteed that the value of the DoubleGene 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 given range is null.
      IllegalArgumentException - if min is not finite, or max is not finite, or min is greater than or equal to max
      Since:
      3.2