Продолжим. 
Рассмотрим в качестве примера использования программы решение самой простой из интересных задач: какой минимальный размер куба в 

 нужно взять, чтобы на целочисленной решётке нашлось ОМ из 8 точек.
Я буду объяснять всё на примере программы, вложенной в 
это сообщение. В программе по умолчанию рассмотрена целочисленная решётка (то бишь, при 
delta равном 1) на кубе со стороной 10 (соответствует 

).
Мы возьмём куб меньшего размера -- 

. 
delta оставляем 1 (это целочисленная решётка, других пока рассматривать не будем). Чтобы перебрать все интересующие нас варианты 8-точечных множеств в этом кубе, мы должны для любой точки, соответствующей некоторому углу 3D-куба, задать Допустимое Множество (ДМ) для перебора по этой точке от угла до середины стороны по каждой координате. Скажем проще: каждая точка должна пробегать всю целочисленную решётку в своей осьмушке 3D-куба. Четвёртую координату будем пробегать полностью -- от 0 до 7.
Значит, для всех точек нужно задать ДМ от 0 до 3 включительно по первым трём координатам и от 0 до 7 по последней. Это делается так: создаём где-то в районе 250-й строки новые 
dlist (в данном случае они есть, но если бы не было, мы бы их сделали так):
Код:
  dlist g03={0, +delta, +2*delta, +3*delta};
  dlist g30={0, -delta, -2*delta, -3*delta};
upd: Таким образом, мы задаём отклонение нашей угловой точки не более чем на 3 шага внутрь куба по каждой координате.
В блоке присвоения 
deltas (строки в районе 260--270) заменяем 
dlist на нужные (либо убеждаемся, что там стоят нужные):
Код:
  for (int i=0; i<sol_size/2; i++) {
    for (int j=0; j<D-1; j++) {
      //if (i==0 || i==1) { deltas[i][j]=g00; } 
      //else { 
      switch (grid_base[i][j]) {
        case 0:
          deltas[i][j]=g03; break;  // здесь для этой задачи должно быть g03
        case L:
          deltas[i][j]=g30; break; // здесь для этой задачи должно быть g30
        default:  
          deltas[i][j]=g11;
      }
Последнее по 
default в данной задаче не будет задействовано, его можно проигнорировать.
Для перебора по четвёртой координате создаём там же 
dlist gt (

 -- это по имени координаты):
Код:
dlist gt={0,1,2,3,4,5,6,7};
Это всё. Запускаем программу и менее чем за полминуты убеждаемся, что имеется несколько решений (там их будет 96, но большей частью это всякие симметричные варианты).
Для окончательного решения поставленной задачи нам нужно попытаться снизить 

 до 6 и убедиться, что в этом случае решений не будет. Для 

 мы оставляем те же 
dlist g30 и 
dlist g03, а из списка 
dlist gt убираем 7. Запускаем и убеждаемся, что решений нет.