anchor.diff:    integer :: tooth
     !-8.091550677158776E-003
     call get_first_tooth(computed, tooth)
  -  print *, "TOOTH ", tooth 
  +  !print *, "TOOTH ", tooth 
     
     !!! ASSERT
  -  do i=1,first_det_of_teeth(tooth)-1
  -    if(not(computed(i))) stop "deter non calc"
  -  end do
  -  logical :: ok
  -  ok = .false.
  -  do i=first_det_of_teeth(tooth), first_det_of_teeth(tooth+1)-1
  -    if(not(computed(i))) ok = .true.
  -  end do
  -  if(not(ok)) stop "not OK..."
  +  !do i=1,first_det_of_teeth(tooth)
  +  !  if(not(computed(i))) stop "deter non calc"
  +  !end do
  +  !logical :: ok
  +  !ok = .false.
  +  !do i=first_det_of_teeth(tooth), first_det_of_teeth(tooth+1)
  +  !  if(not(computed(i))) ok = .true.
  +  !end do
  +  !if(not(ok)) stop "not OK..."
     !!!!!
  -
  +  double precision :: prop
     if(Nabove(tooth) >= 30) then
       E0 = sum(pt2_detail(1,:first_det_of_teeth(tooth)-1))
  +    prop = ((1d0 - dfloat(comb_teeth - tooth + 1) * comb_step) - cweight(first_det_of_teeth(tooth)-1))
  +    !print *, "preprop ", prop, weight(first_det_of_teeth(tooth))
  +    prop = prop / weight(first_det_of_teeth(tooth))
  +    !print *, "prop", prop
  +    E0 += pt2_detail(1,first_det_of_teeth(tooth)) * prop
       avg = E0 + (sumabove(tooth) / Nabove(tooth))
       eqt = sqrt(1d0 / (Nabove(tooth)-1) * abs(sum2above(tooth) / Nabove(tooth) - (sumabove(tooth)/Nabove(tooth))**2))
       time = omp_get_wtime()
  
positive.code:   
    comb_step = 1d0/dfloat(comb_teeth)
    do i=1,N_det_generators
      if(weight(i)/norm_left < comb_step/1d1) then
        first_det_of_comb = i
        exit
      end if
  
negative.code:   end do
    
    do i=comb_teeth, 1, -1
      if(first_det_of_teeth(i) < first_teeth) then
        first_teeth = i
        exit
      end if
  