optaplanner-core/src/main/java/org/optaplanner/core/api/score/buildin/bendablelong/BendableLongScoreHolder.java
public void penalize(RuleContext kcontext, long[] hardWeightsMultiplier, long[] softWeightsMultiplier) {
        long[] negatedHardWeightsMultiplier = new long[hardScores.length];
        long[] negatedSoftWeightsMultiplier = new long[softScores.length];
        for (int i = 0; i < negatedHardWeightsMultiplier.length; i++) {
            negatedHardWeightsMultiplier[i] = -hardWeightsMultiplier[i];
        }
        for (int i = 0; i < negatedSoftWeightsMultiplier.length; i++) {
            negatedSoftWeightsMultiplier[i] = -softWeightsMultiplier[i];
        }
        reward(kcontext, negatedHardWeightsMultiplier, negatedSoftWeightsMultiplier);
    }
public void penalize(RuleContext kcontext, long[] hardWeightsMultiplier, long[] softWeightsMultiplier) {
        long[] negatedHardWeightsMultiplier = new long[hardScores.length];
        long[] negatedSoftWeightsMultiplier = new long[softScores.length];
        for (int i = 0; i < negatedHardWeightsMultiplier.length; i++) {
            negatedHardWeightsMultiplier[i] = -hardWeightsMultiplier[i];
        }
        for (int i = 0; i < negatedSoftWeightsMultiplier.length; i++) {
            negatedSoftWeightsMultiplier[i] = -softWeightsMultiplier[i];
        }
        reward(kcontext, negatedHardWeightsMultiplier, negatedSoftWeightsMultiplier);
    }
Penalize a match by the {@link ConstraintWeight} negated and multiplied with the specific weightMultiplier per score level.
Slower than {@link #penalize(RuleContext, long)}.
@param kcontext never null, the magic variable in DRL
@param hardWeightsMultiplier elements at least 0
@param softWeightsMultiplier elements at least 0