code: @Override
      public Value compute(Segment<PrimitiveParameter> segment,
              AlgorithmArguments args) {
          Value minThreshold = args.value("minThreshold");
          ValueComparator minComparator = args.valueComp("minThreshold");
          Value maxThreshold = args.value("maxThreshold");
          ValueComparator maxComparator = args.valueComp("maxThreshold");
          if ((minThreshold != null && minComparator != null)
                  || (maxThreshold != null && maxComparator != null)) {
              for (int i = 0, n = segment.size(); i < n; i++) {
                  TemporalParameter param = segment.get(i);
                  Value val = param.getValue();
                  if (val == null
                          || (minComparator != null && !minComparator.compare(val, minThreshold))
                          || (maxComparator != null && !maxComparator.compare(val, maxThreshold))) {
                      return null;
                  }
              }
          }
  
          return BooleanValue.TRUE;
      }
docs: Computes whether the values of a time sequence segment are above and/or
  below a specified value.
  
  @param segment
  a {@link Segment<PrimitiveParameter>} object.
  @return a {@link Value} if the values of <code>segment</code> are above
  and/or below the specified thresholds, <code>null</code>
  otherwise. If any of the values of <code>segment</code> are
  <code>null</code>, this methods also returns <code>null</code>.
  @see org.protempa.AbstractAlgorithm#compute(org.protempa.proposition.Segment)