code: boolean maybeDecomposable(double from, double to) {
          init();
          final int[][][] ERTs = this.ERTs;
          final int[] minmax = new int[2];
          //normal version seems to be faster, because it returns after first hit
          integerBound(from, to, minmax);
          final int a = weights.get(0).getIntegerMass();
          for (int i = minmax[0]; i <= minmax[1]; ++i) {
              final int r = i % a;
              if (i >= ERTs[0][r][weights.size() - 1]) return true;
          }
          return false;
      }
docs: Check if a mass is decomposable. This is done in constant time (especially: it is very very very fast!).
  But it doesn't check if there is a valid decomposition. Therefore, even if the method returns true,
  all decompositions may be invalid for the given validator or given bounds.
  #decompose(mass) uses this function before starting the decomposition, therefore this method should only
  be used if you don't want to start the decomposition algorithm.
  
  @return true if the mass is decomposable, ignoring bounds or any additional filtering rule