restrict fixed for MSVC, omp do/for simd for gcc non-avx, (int) casts for cean implicit_index