public final class SimpleLongScore extends AbstractScore<SimpleLongScore>
Score
is based on 1 level of long constraints.
This class is immutable.
Score
,
Serialized FormModifier and Type | Field and Description |
---|---|
static SimpleLongScore |
ONE |
static SimpleLongScore |
ZERO |
INIT_LABEL, initScore
Modifier and Type | Method and Description |
---|---|
SimpleLongScore |
add(SimpleLongScore addend)
Returns a Score whose value is (this + addend).
|
int |
compareTo(SimpleLongScore other) |
SimpleLongScore |
divide(double divisor)
Returns a Score whose value is (this / divisor).
|
boolean |
equals(Object o) |
long |
getScore()
The total of the broken negative constraints and fulfilled positive constraints.
|
int |
hashCode() |
boolean |
isCompatibleArithmeticArgument(Score otherScore) |
SimpleLongScore |
multiply(double multiplicand)
Returns a Score whose value is (this * multiplicand).
|
SimpleLongScore |
negate()
Returns a Score whose value is (- this).
|
static SimpleLongScore |
of(long score) |
static SimpleLongScore |
ofUninitialized(int initScore,
long score) |
static SimpleLongScore |
parseScore(String scoreString) |
SimpleLongScore |
power(double exponent)
Returns a Score whose value is (this ^ exponent).
|
SimpleLongScore |
subtract(SimpleLongScore subtrahend)
Returns a Score whose value is (this - subtrahend).
|
SimpleLongScore |
toInitializedScore()
For example
-7init/0hard/-8soft returns 0hard/-8soft . |
Number[] |
toLevelNumbers()
Returns an array of numbers representing the Score.
|
String |
toShortString()
Like
Object.toString() , but trims score levels which have a zero weight. |
String |
toString() |
static SimpleLongScore |
valueOf(long score)
Deprecated.
in favor of
of(long) |
static SimpleLongScore |
valueOfUninitialized(int initScore,
long score)
Deprecated.
in favor of
ofUninitialized(int, long) |
SimpleLongScore |
withInitScore(int newInitScore)
For example
0hard/-8soft with -7 returns -7init/0hard/-8soft . |
assertNoInitScore, buildScorePattern, buildShortString, getInitPrefix, getInitScore, isSolutionInitialized, parseInitScore, parseLevelAsBigDecimal, parseLevelAsDouble, parseLevelAsInt, parseLevelAsLong, parseScoreTokens
public static final SimpleLongScore ZERO
public static final SimpleLongScore ONE
public static SimpleLongScore parseScore(String scoreString)
public static SimpleLongScore ofUninitialized(int initScore, long score)
@Deprecated public static SimpleLongScore valueOfUninitialized(int initScore, long score)
ofUninitialized(int, long)
public static SimpleLongScore of(long score)
@Deprecated public static SimpleLongScore valueOf(long score)
of(long)
public long getScore()
public SimpleLongScore toInitializedScore()
Score
-7init/0hard/-8soft
returns 0hard/-8soft
.Score.getInitScore()
is 0
.public SimpleLongScore withInitScore(int newInitScore)
Score
0hard/-8soft
with -7
returns -7init/0hard/-8soft
.newInitScore
- always negative (except in statistical calculations), 0 if all planning variables are initializedScore.getInitScore()
is set to newInitScore
public SimpleLongScore add(SimpleLongScore addend)
Score
addend
- value to be added to this Scorepublic SimpleLongScore subtract(SimpleLongScore subtrahend)
Score
subtrahend
- value to be subtracted from this Scorepublic SimpleLongScore multiply(double multiplicand)
Score
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.
multiplicand
- value to be multiplied by this Score.public SimpleLongScore divide(double divisor)
Score
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.
divisor
- value by which this Score is to be dividedpublic SimpleLongScore power(double exponent)
Score
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.
exponent
- value by which this Score is to be poweredpublic SimpleLongScore negate()
Score
public Number[] toLevelNumbers()
Score
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}
ScoreDefinition.fromLevelNumbers(int, Number[])
public int compareTo(SimpleLongScore other)
public String toShortString()
Score
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.
public boolean isCompatibleArithmeticArgument(Score otherScore)
otherScore
- never nullScore.add(Score)
, Score.subtract(Score)
and Comparable.compareTo(Object)
.Copyright © 2006–2020 JBoss by Red Hat. All rights reserved.