anchor.diff:           !DIR$ FORCEINLINE
            call bielec_integrals_index(i,j,k,l,idx)
            !DIR$ FORCEINLINE
  -         call map_get(ao_integrals_map,idx,ao_integrals_cache(i,j,k,l))
  +         call map_get(ao_integrals_map,idx,integral)
  +         ii = l-ao_integrals_cache_min
  +         ii = ior( ishft(ii,6), k-ao_integrals_cache_min)
  +         ii = ior( ishft(ii,6), j-ao_integrals_cache_min)
  +         ii = ior( ishft(ii,6), i-ao_integrals_cache_min)
  +         ao_integrals_cache(ii) = integral
          enddo
        enddo
      enddo
  
positive.code:          !DIR$ FORCEINLINE
           call bielec_integrals_index(i,j,k,l,idx)
           !DIR$ FORCEINLINE
           call map_get(mo_integrals_map,idx,mo_integrals_cache(i,j,k,l))
         enddo
       enddo
     enddo
  
negative.code: 
  END_PROVIDER
  
  BEGIN_PROVIDER [ double precision, ao_integrals_cache, (0:64*64*64*64) ]
   implicit none
   BEGIN_DOC
   ! Cache of AO integrals for fast access
   END_DOC
   PROVIDE ao_bielec_integrals_in_map
   integer                        :: i,j,k,l,ii
   integer(key_kind)              :: idx
   real(integral_kind)            :: integral
   !$OMP PARALLEL DO PRIVATE (i,j,k,l,idx,ii,integral)
   do l=ao_integrals_cache_min,ao_integrals_cache_max
     do k=ao_integrals_cache_min,ao_integrals_cache_max
       do j=ao_integrals_cache_min,ao_integrals_cache_max
  