public double computeDynamicCutoff() {
    { NnPartialMatch self = this;

      if (((NnPartialMatch)(self.parent)) != null) {
        { Keyword testValue000 = self.kind;

          if (testValue000 == Logic.KWD_ATOMIC_GOAL) {
            return (((NnPartialMatch)(self.parent)).dynamicCutoff);
          }
          else if ((testValue000 == Logic.KWD_AND) ||
              (testValue000 == Logic.KWD_OR)) {
            { NnPartialMatch parent = ((NnPartialMatch)(self.parent));
              PropositionNeuralNetwork net = ((PropositionNeuralNetwork)(KeyValueList.dynamicSlotValue(self.controlFrame.proposition.dynamicSlots, Logic.SYM_LOGIC_NEURAL_NETWORK, null)));
              double active = -1.0;

              if (parent.dynamicCutoff > 0.1) {
                { FloatWrapper input = null;
                  Vector vector000 = net.input;
                  int index000 = 0;
                  int length000 = vector000.length();

                  for (;index000 < length000; index000 = index000 + 1) {
                    input = ((FloatWrapper)((vector000.theArray)[index000]));
                    active = active + input.wrapperValue;
                  }
                }
                return (active);
              }
            }
          }
          else {
          }
        }
      }
      return (0.0);
    }
  }