Package org.optaplanner.core.api.score.buildin.simpledouble

## Class SimpleDoubleScore

- java.lang.Object
- - org.optaplanner.core.api.score.AbstractScore<SimpleDoubleScore>
  - - org.optaplanner.core.api.score.buildin.simpledouble.SimpleDoubleScore

- All Implemented Interfaces:
    `Serializable`, `Comparable<SimpleDoubleScore>`, `Score<SimpleDoubleScore>`

      @Deprecated
      public final class SimpleDoubleScore
      extends AbstractScore<SimpleDoubleScore>

  Deprecated.
  Double-based scores are deprecated as floating point numbers are not associative (A + B + C == C + B + A) and therefore they are not compatible with incremental score calculation. Use `SimpleBigDecimalScore` or a scaled `SimpleLongScore` instead.
  This `Score` is based on 1 level of double constraints.

  WARNING: NOT RECOMMENDED TO USE DUE TO ROUNDING ERRORS THAT CAUSE SCORE CORRUPTION. For example, this prints false: `System.out.println((0.01 + 0.05) == (0.01 + 0.02 + 0.03));` Use `SimpleBigDecimalScore` instead.

  This class is immutable.

  See Also:
    `Score`, Serialized Form

- - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `static SimpleDoubleScore` | `ONE` | Deprecated.
    `static SimpleDoubleScore` | `ZERO` | Deprecated.

    - ### Fields inherited from class org.optaplanner.core.api.score.AbstractScore

      `INIT_LABEL, initScore`

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `SimpleDoubleScore` | `add​(SimpleDoubleScore addend)` | Deprecated. Returns a Score whose value is (this + addend).
    `int` | `compareTo​(SimpleDoubleScore other)` | Deprecated.
    `SimpleDoubleScore` | `divide​(double divisor)` | Deprecated. Returns a Score whose value is (this / divisor).
    `boolean` | `equals​(Object o)` | Deprecated.
    `double` | `getScore()` | Deprecated. The total of the broken negative constraints and fulfilled positive constraints.
    `int` | `hashCode()` | Deprecated.
    `boolean` | `isCompatibleArithmeticArgument​(Score otherScore)` | Deprecated.
    `boolean` | `isFeasible()` | Deprecated. A `PlanningSolution` is feasible if it has no broken hard constraints and `Score.isSolutionInitialized()` is true.
    `SimpleDoubleScore` | `multiply​(double multiplicand)` | Deprecated. Returns a Score whose value is (this * multiplicand).
    `SimpleDoubleScore` | `negate()` | Deprecated. Returns a Score whose value is (- this).
    `static SimpleDoubleScore` | `of​(double score)` | Deprecated.
    `static SimpleDoubleScore` | `ofUninitialized​(int initScore, double score)` | Deprecated.
    `static SimpleDoubleScore` | `parseScore​(String scoreString)` | Deprecated.
    `SimpleDoubleScore` | `power​(double exponent)` | Deprecated. Returns a Score whose value is (this ^ exponent).
    `SimpleDoubleScore` | `subtract​(SimpleDoubleScore subtrahend)` | Deprecated. Returns a Score whose value is (this - subtrahend).
    `Number[]` | `toLevelNumbers()` | Deprecated. Returns an array of numbers representing the Score.
    `String` | `toShortString()` | Deprecated. Like `Object.toString()`, but trims score levels which have a zero weight.
    `String` | `toString()` | Deprecated.
    `static SimpleDoubleScore` | `valueOf​(double score)` | Deprecated. in favor of `of(double)`
    `static SimpleDoubleScore` | `valueOfUninitialized​(int initScore, double score)` | Deprecated. in favor of `ofUninitialized(int, double)`
    `SimpleDoubleScore` | `withInitScore​(int newInitScore)` | Deprecated. For example `0hard/-8soft` with `-7` returns `-7init/0hard/-8soft`.

    - ### Methods inherited from class org.optaplanner.core.api.score.AbstractScore

      `assertNoInitScore, buildScorePattern, buildShortString, getInitPrefix, getInitScore, isSolutionInitialized, parseInitScore, parseLevelAsBigDecimal, parseLevelAsDouble, parseLevelAsInt, parseLevelAsLong, parseScoreTokens`

    - ### Methods inherited from class java.lang.Object

      `clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

    - ### Methods inherited from interface org.optaplanner.core.api.score.Score

      `toInitializedScore`

- - ### Field Detail

    - #### ZERO

          public static final SimpleDoubleScore ZERO

      Deprecated.

    - #### ONE

          public static final SimpleDoubleScore ONE

      Deprecated.

  - ### Method Detail

    - #### parseScore

          public static SimpleDoubleScore parseScore​(String scoreString)

      Deprecated.

    - #### ofUninitialized

          public static SimpleDoubleScore ofUninitialized​(int initScore,
                                                          double score)

      Deprecated.

    - #### valueOfUninitialized

          @Deprecated
          public static SimpleDoubleScore valueOfUninitialized​(int initScore,
                                                               double score)

      Deprecated.
      in favor of `ofUninitialized(int, double)`

    - #### of

          public static SimpleDoubleScore of​(double score)

      Deprecated.

    - #### valueOf

          @Deprecated
          public static SimpleDoubleScore valueOf​(double score)

      Deprecated.
      in favor of `of(double)`

    - #### getScore

          public double getScore()

      Deprecated.
      The total of the broken negative constraints and fulfilled positive constraints. Their weight is included in the total. The score is usually a negative number because most use cases only have negative constraints.
      Returns:
        higher is better, usually negative, 0 if no constraints are broken/fulfilled

    - #### withInitScore

          public SimpleDoubleScore withInitScore​(int newInitScore)

      Deprecated.
      Description copied from interface: `Score`
      For example `0hard/-8soft` with `-7` returns `-7init/0hard/-8soft`.
      Parameters:
        `newInitScore` - always negative (except in statistical calculations), 0 if all planning variables are initialized
      Returns:
        equals score except that `Score.getInitScore()` is set to `newInitScore`

    - #### add

          public SimpleDoubleScore add​(SimpleDoubleScore addend)

      Deprecated.
      Description copied from interface: `Score`
      Returns a Score whose value is (this + addend).
      Parameters:
        `addend` - value to be added to this Score
      Returns:
        this + addend

    - #### subtract

          public SimpleDoubleScore subtract​(SimpleDoubleScore subtrahend)

      Deprecated.
      Description copied from interface: `Score`
      Returns a Score whose value is (this - subtrahend).
      Parameters:
        `subtrahend` - value to be subtracted from this Score
      Returns:
        this - subtrahend, rounded as necessary

    - #### multiply

          public SimpleDoubleScore multiply​(double multiplicand)

      Deprecated.
      Description copied from interface: `Score`
      Returns a Score whose value is (this * multiplicand). When rounding is needed, it should be floored (as defined by `Math.floor(double)`).

      If the implementation has a scale/precision, then the unspecified scale/precision of the double multiplicand should have no impact on the returned scale/precision.

      Parameters:
        `multiplicand` - value to be multiplied by this Score.
      Returns:
        this * multiplicand

    - #### divide

          public SimpleDoubleScore divide​(double divisor)

      Deprecated.
      Description copied from interface: `Score`
      Returns a Score whose value is (this / divisor). When rounding is needed, it should be floored (as defined by `Math.floor(double)`).

      If the implementation has a scale/precision, then the unspecified scale/precision of the double divisor should have no impact on the returned scale/precision.

      Parameters:
        `divisor` - value by which this Score is to be divided
      Returns:
        this / divisor

    - #### power

          public SimpleDoubleScore power​(double exponent)

      Deprecated.
      Description copied from interface: `Score`
      Returns a Score whose value is (this ^ exponent). When rounding is needed, it should be floored (as defined by `Math.floor(double)`).

      If the implementation has a scale/precision, then the unspecified scale/precision of the double exponent should have no impact on the returned scale/precision.

      Parameters:
        `exponent` - value by which this Score is to be powered
      Returns:
        this ^ exponent

    - #### negate

          public SimpleDoubleScore negate()

      Deprecated.
      Description copied from interface: `Score`
      Returns a Score whose value is (- this).
      Returns:
        - this

    - #### isFeasible

          public boolean isFeasible()

      Deprecated.
      Description copied from interface: `Score`
      A `PlanningSolution` is feasible if it has no broken hard constraints and `Score.isSolutionInitialized()` is true. Simple scores (`SimpleScore`, `SimpleLongScore`, `SimpleBigDecimalScore`) are always feasible, if their `Score.getInitScore()` is 0.
      Returns:
        true if the hard score is 0 or higher and the `Score.getInitScore()` is 0.

    - #### toLevelNumbers

          public Number[] toLevelNumbers()

      Deprecated.
      Description copied from interface: `Score`
      Returns an array of numbers representing the Score. Each number represents 1 score level. A greater score level uses a lower array index than a lesser score level.

      When rounding is needed, each rounding should be floored (as defined by `Math.floor(double)`). The length of the returned array must be stable for a specific `Score` implementation.

      For example: `-0hard/-7soft` returns `new int{-0, -7}`

      The level numbers do not contain the `Score.getInitScore()`. For example: `-3init/-0hard/-7soft` also returns `new int{-0, -7}`

      Returns:
        never null
      See Also:
        `ScoreDefinition.fromLevelNumbers(int, Number[])`

    - #### equals

          public boolean equals​(Object o)

      Deprecated.
      Overrides:
        `equals` in class `Object`

    - #### hashCode

          public int hashCode()

      Deprecated.
      Overrides:
        `hashCode` in class `Object`

    - #### compareTo

          public int compareTo​(SimpleDoubleScore other)

      Deprecated.

    - #### toShortString

          public String toShortString()

      Deprecated.
      Description copied from interface: `Score`
      Like `Object.toString()`, but trims score levels which have a zero weight. For example 0hard/-258soft returns -258soft.

      Do not use this format to persist information as text, use `Object.toString()` instead, so it can be parsed reliably.

      Returns:
        never null

    - #### toString

          public String toString()

      Deprecated.
      Overrides:
        `toString` in class `Object`

    - #### isCompatibleArithmeticArgument

          public boolean isCompatibleArithmeticArgument​(Score otherScore)

      Deprecated.
      Parameters:
        `otherScore` - never null
      Returns:
        true if the otherScore is accepted as a parameter of `Score.add(Score)`, `Score.subtract(Score)` and `Comparable.compareTo(Object)`.