code: private boolean isEssential(final Cycle candidate, final Collection<Cycle> relevant) {
  
          // construct an alternative basis with all equal weight relevant cycles
          final List<Cycle> alternate = new ArrayList<Cycle>(relevant.size() + basis.size());
  
          final int weight = candidate.length();
          for (final Cycle cycle : basis.members()) {
              if (cycle.length() < weight) alternate.add(cycle);
          }
          for (final Cycle cycle : relevant) {
              if (!cycle.equals(candidate)) alternate.add(cycle);
          }
  
          // if the alternate basis is smaller, the candidate is essential
          return BitMatrix.from(alternate).eliminate() < basis.size();
      }
docs: Determines whether the <i>cycle</i> is essential.
  
  @param candidate a cycle which is a member of the MCB
  @param relevant  relevant cycles of the same length as <i>cycle</i>
  @return whether the candidate is essential