code: protected int compatibilityGraphCEdgeZero() throws IOException {
  
          int compGraphNodesCZeroListSize = compGraphNodesCZero.size();
          cEdges = new ArrayList<Integer>(); //Initialize the cEdges List
          dEdges = new ArrayList<Integer>(); //Initialize the dEdges List
  
          for (int a = 0; a < compGraphNodesCZeroListSize; a += 4) {
              int indexA = compGraphNodesCZero.get(a);
              int indexAPlus1 = compGraphNodesCZero.get(a + 1);
              for (int b = a + 4; b < compGraphNodesCZeroListSize; b += 4) {
                  int indexB = compGraphNodesCZero.get(b);
                  int indexBPlus1 = compGraphNodesCZero.get(b + 1);
  
                  // if element atomCont !=jIndex and atoms on the adjacent sides of the bonds are not equal
                  if ((a != b) && (indexA != indexB) && (indexAPlus1 != indexBPlus1)) {
  
                      IBond reactantBond = null;
                      IBond productBond = null;
  
                      reactantBond = source.getBond(source.getAtom(indexA), source.getAtom(indexB));
                      productBond = target.getBond(target.getAtom(indexAPlus1), target.getAtom(indexBPlus1));
  
                      if (reactantBond != null && productBond != null) {
                          addCZeroEdges(reactantBond, productBond, a, b);
                      }
  
                  }
              }
          }
  
          //Size of C and D edges of the compatibility graph
          cEdgesSize = cEdges.size();
          dEdgesSize = dEdges.size();
          return 0;
      }
docs: compatibilityGraphCEdgeZero is used to
  build up of the edges of the
  compatibility graph BIS
  @return
  @throws IOException