Package io.jenetics

Class LongGene

java.lang.Object
io.jenetics.LongGene
All Implemented Interfaces:
BoundedGene<Long,LongGene>, Gene<Long,LongGene>, NumericGene<Long,LongGene>, Factory<LongGene>, Mean<LongGene>, Self<LongGene>, Verifiable, Serializable, Comparable<LongGene>

public final class LongGene extends Object implements NumericGene<Long,LongGene>, Mean<LongGene>, Comparable<LongGene>, Serializable
NumericGene implementation which holds a 64-bit integer number.

This is a value-based class; use of identity-sensitive operations (including reference equality (==), identity hash code, or synchronization) on instances of LongGene may have unpredictable results and should be avoided.

Since:
1.6
Version:
6.1
See Also:
Implementation Note:
This class is immutable and thread-safe.
  • Method Details

    • allele

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

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

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

      public LongRange 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<Long,LongGene>
      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<Long,LongGene>
      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<Long,LongGene>
      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<Long,LongGene>
      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<Long,LongGene>
      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<Long,LongGene>
      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<Long,LongGene>
      Specified by:
      isValid in interface Verifiable
      Returns:
      true if this object is valid, false otherwise.
    • compareTo

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

      public LongGene mean(LongGene 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<LongGene>
      Parameters:
      that - the second value for calculating the mean.
      Returns:
      the mean value of this and that.
    • newInstance

      public LongGene newInstance(long 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 LongGene newInstance(Long allele)
      Description copied from interface: BoundedGene
      Create a new gene from the given value and the current bounds.
      Specified by:
      newInstance in interface BoundedGene<Long,LongGene>
      Specified by:
      newInstance in interface Gene<Long,LongGene>
      Parameters:
      allele - the value of the new gene.
      Returns:
      a new gene with the given value.
    • newInstance

      public LongGene 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<Long,LongGene>
      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 RandomGenerator object which can be fetched from the RandomRegistry.
      Specified by:
      newInstance in interface Factory<LongGene>
      Specified by:
      newInstance in interface Gene<Long,LongGene>
      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 LongGene of(long allele, long min, long max)
      Create a new random LongGene 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 LongGene with the given parameters.
    • of

      public static LongGene of(long allele, LongRange range)
      Create a new random LongGene 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 long range to use
      Returns:
      a new random LongGene
      Throws:
      NullPointerException - if the given range is null.
      Since:
      3.2
    • of

      public static LongGene of(long min, long max)
      Create a new random LongGene. It is guaranteed that the value of the LongGene 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 LongGene with the given parameters.
      Throws:
      IllegalArgumentException - if max is greater than or equal to min
    • of

      public static LongGene of(LongRange range)
      Create a new random LongGene. It is guaranteed that the value of the LongGene lies in the interval [min, max).
      Parameters:
      range - the long range to use
      Returns:
      a new random LongGene
      Throws:
      NullPointerException - if the given range is null
      IllegalArgumentException - if max is greater than or equal to min
      Since:
      3.2