public void setFramePartialTruth(
      TruthValue truthvalue, double posscore, double negscore, boolean ignorepolarityP) {
    {
      PartialMatchFrame self = this;

      {
        boolean flippolarityP = self.controlFrame.reversePolarityP && (!ignorepolarityP);

        if ((posscore == Stella.NULL_FLOAT) && (truthvalue != null)) {
          posscore = truthvalue.positiveScore;
        }
        if ((negscore == Stella.NULL_FLOAT) && (truthvalue != null)) {
          negscore = TruthValue.invertTruthValue(truthvalue).positiveScore;
        }
        if (flippolarityP) {
          {
            double aux = posscore;

            posscore = 0 - posscore;
            negscore = aux;
          }
        }
        self.positiveScore = posscore;
        self.negativeScore = negscore;
        KeyValueList.setDynamicSlotValue(
            ((QueryIterator) (Logic.$QUERYITERATOR$.get())).dynamicSlots,
            Logic.SYM_LOGIC_LATEST_POSITIVE_SCORE,
            FloatWrapper.wrapFloat(posscore),
            Stella.NULL_FLOAT_WRAPPER);
      }
    }
  }