Class SimpleBigDecimalScore
- java.lang.Object
-
- org.optaplanner.core.api.score.AbstractScore<SimpleBigDecimalScore>
-
- org.optaplanner.core.api.score.buildin.simplebigdecimal.SimpleBigDecimalScore
-
- All Implemented Interfaces:
Serializable,Comparable<SimpleBigDecimalScore>,Score<SimpleBigDecimalScore>
public final class SimpleBigDecimalScore extends AbstractScore<SimpleBigDecimalScore>
- See Also:
Score, Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description static SimpleBigDecimalScoreONEstatic SimpleBigDecimalScoreZERO-
Fields inherited from class org.optaplanner.core.api.score.AbstractScore
INIT_LABEL, initScore
-
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description SimpleBigDecimalScoreadd(SimpleBigDecimalScore addend)Returns a Score whose value is (this + addend).intcompareTo(SimpleBigDecimalScore other)SimpleBigDecimalScoredivide(double divisor)Returns a Score whose value is (this / divisor).booleanequals(Object o)BigDecimalgetScore()The total of the broken negative constraints and fulfilled positive constraints.inthashCode()booleanisFeasible()APlanningSolutionis feasible if it has no broken hard constraints andScore.isSolutionInitialized()is true.SimpleBigDecimalScoremultiply(double multiplicand)Returns a Score whose value is (this * multiplicand).SimpleBigDecimalScorenegate()Returns a Score whose value is (- this).static SimpleBigDecimalScoreof(BigDecimal score)static SimpleBigDecimalScoreofUninitialized(int initScore, BigDecimal score)static SimpleBigDecimalScoreparseScore(String scoreString)SimpleBigDecimalScorepower(double exponent)Returns a Score whose value is (this ^ exponent).SimpleBigDecimalScoresubtract(SimpleBigDecimalScore subtrahend)Returns a Score whose value is (this - subtrahend).Number[]toLevelNumbers()Returns an array of numbers representing the Score.StringtoShortString()LikeObject.toString(), but trims score levels which have a zero weight.StringtoString()SimpleBigDecimalScorewithInitScore(int newInitScore)For example0hard/-8softwith-7returns-7init/0hard/-8soft.SimpleBigDecimalScorezero()Returns a Score, all levels of which are zero.-
Methods inherited from class org.optaplanner.core.api.score.AbstractScore
buildScorePattern, buildShortString, getInitPrefix, getInitScore, isSolutionInitialized, parseInitScore, parseLevelAsBigDecimal, 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
isZero, toLevelDoubles
-
-
-
-
Field Detail
-
ZERO
public static final SimpleBigDecimalScore ZERO
-
ONE
public static final SimpleBigDecimalScore ONE
-
-
Method Detail
-
parseScore
public static SimpleBigDecimalScore parseScore(String scoreString)
-
ofUninitialized
public static SimpleBigDecimalScore ofUninitialized(int initScore, BigDecimal score)
-
of
public static SimpleBigDecimalScore of(BigDecimal score)
-
getScore
public BigDecimal getScore()
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 SimpleBigDecimalScore withInitScore(int newInitScore)
Description copied from interface:ScoreFor example0hard/-8softwith-7returns-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 tonewInitScore
-
add
public SimpleBigDecimalScore add(SimpleBigDecimalScore addend)
Description copied from interface:ScoreReturns a Score whose value is (this + addend).- Parameters:
addend- value to be added to this Score- Returns:
- this + addend
-
subtract
public SimpleBigDecimalScore subtract(SimpleBigDecimalScore subtrahend)
Description copied from interface:ScoreReturns a Score whose value is (this - subtrahend).- Parameters:
subtrahend- value to be subtracted from this Score- Returns:
- this - subtrahend, rounded as necessary
-
multiply
public SimpleBigDecimalScore multiply(double multiplicand)
Description copied from interface:ScoreReturns a Score whose value is (this * multiplicand). When rounding is needed, it should be floored (as defined byMath.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 SimpleBigDecimalScore divide(double divisor)
Description copied from interface:ScoreReturns a Score whose value is (this / divisor). When rounding is needed, it should be floored (as defined byMath.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 SimpleBigDecimalScore power(double exponent)
Description copied from interface:ScoreReturns a Score whose value is (this ^ exponent). When rounding is needed, it should be floored (as defined byMath.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 SimpleBigDecimalScore negate()
Description copied from interface:ScoreReturns a Score whose value is (- this).- Returns:
- - this
-
zero
public SimpleBigDecimalScore zero()
Description copied from interface:ScoreReturns a Score, all levels of which are zero.- Returns:
- never null
-
isFeasible
public boolean isFeasible()
Description copied from interface:ScoreAPlanningSolutionis feasible if it has no broken hard constraints andScore.isSolutionInitialized()is true. Simple scores (SimpleScore,SimpleLongScore,SimpleBigDecimalScore) are always feasible, if theirScore.getInitScore()is 0.- Returns:
- true if the hard score is 0 or higher and the
Score.getInitScore()is 0.
-
toLevelNumbers
public Number[] toLevelNumbers()
Description copied from interface:ScoreReturns 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 specificScoreimplementation.For example:
-0hard/-7softreturnsnew int{-0, -7}The level numbers do not contain the
Score.getInitScore(). For example:-3init/-0hard/-7softalso returnsnew int{-0, -7}- Returns:
- never null
-
compareTo
public int compareTo(SimpleBigDecimalScore other)
-
toShortString
public String toShortString()
Description copied from interface:ScoreLikeObject.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
-
-