Cálculo ultrarrápido del día de la semana: 3 instrucciones y sin penalización
A faster way to calculate the day of the week
Un nuevo artículo de Ben Joffe presenta algoritmos para convertir un día rata (día contado) al día de la semana, superando a las soluciones existentes. El método más rápido, para x86, usa solo una multiplicación, una suma y un desplazamiento, y funciona en todo el rango de 32 bits con signo. También se muestra que el formato ISO (1-7) se puede calcular con las mismas instrucciones, solo cambiando constantes. Las técnicas se generalizan a otros divisores como 24 y 60, útiles para el cronometraje. El artículo incluye benchmarks y código en C++.
Un resultado sorprendente: el día de la semana se puede calcular en formato ISO ([1‥7] en lugar de [0‥6]), con exactamente las mismas instrucciones, solo con constantes ajustadas (y sin penalización de velocidad).