Lic. Carlos Enrique Loria Beeche
En este artículo no quisiera limitarme a anunciar el resultado. Quisiera entenderlo, reconstruirlo y, sobre todo, permitir que el lector compruebe personalmente que la matriz de Hadamard de orden 668 realmente existe.
Soy Licenciado en Ciencias de la Computación, formado en la Escuela de Matemática, y este problema no me resulta completamente ajeno.
Quiero agradecer especialmente a mis exprofesores y amigos Eduardo Piza y Adolfo Di Mare, quienes hace muchos años compartieron conmigo información, conversaciones y curiosidad matemática alrededor de las matrices de Hadamard y, particularmente, de aquel intrigante orden todavía abierto: 668.
Regresar ahora al problema, tantos años después, y poder reconstruir una solución explícita es también una forma de agradecerles aquella semilla.
```1. Felicitaciones: Hadamard 668 finalmente fue construido
El 12 de agosto de 2026 se anunció una construcción de una matriz de Hadamard de orden 668, dentro de un resultado todavía mayor que proporcionó matrices para doce órdenes admisibles menores de 2000 que permanecían abiertos.
El trabajo fue acreditado a Levent Alpöge, Philippe Voinov y Saul Reynolds-Haertle, con participación reportada de Claude. Epoch AI, que había incluido precisamente la construcción de una matriz de orden 668 como uno de sus problemas abiertos de FrontierMath, marcó posteriormente el problema como resuelto.
La participación concreta de la inteligencia artificial en las ideas, la búsqueda y los cálculos no ha sido explicada públicamente con suficiente detalle como para separar con precisión qué aportó cada participante. Por eso conviene felicitar al equipo por el resultado sin inventar una historia sobre el proceso de descubrimiento que todavía no conocemos.
2. ¿Por qué 668 era tan importante?
En 2011, Eduardo Piza publicó en la Revista de Matemática: Teoría y Aplicaciones el trabajo “Búsqueda de matrices de Hadamard a través de secuencias de Turyn”.
Aquel artículo revisaba numerosos métodos de construcción de matrices de Hadamard: Kronecker, Sylvester, Paley, Williamson, Goethals–Seidel, Cooper–Wallis, Baumert–Hall, Ehlich y conjuntos diferencia suplementarios. También estudiaba métodos computacionales de búsqueda mediante recocido simulado.
Y señalaba una frontera que durante muchos años permaneció abierta:
668 era el menor orden admisible para el cual no se conocía una matriz de Hadamard.
Quince años después podemos regresar a aquella afirmación y escribir otra:
Existe una matriz de Hadamard de orden 668.
Eso no resuelve la conjetura general de Hadamard, pero sí cierra un caso que durante décadas ocupó una posición especialmente visible: era el menor orden admisible que seguía sin construcción conocida.
3. Antes de continuar: refresque solamente lo que necesite
Para comprender la construcción de la matriz de Hadamard de orden 668 utilizaremos algunas ideas básicas de álgebra lineal y combinatoria.
Si estos conceptos ya le resultan familiares, puede continuar directamente con la construcción. Si desea refrescar alguno, abra solamente el apartado correspondiente.
¿Qué es una matriz de Hadamard?
Una matriz de Hadamard de orden n es una matriz cuadrada cuyas entradas son exclusivamente +1 y −1, y cuyas filas son mutuamente ortogonales.
HT representa la matriz transpuesta e In la matriz identidad de orden n.
¿Qué significa que dos filas sean ortogonales?
Tomemos dos filas formadas únicamente por +1 y −1. Multiplicamos sus elementos posición por posición y sumamos todos los resultados.
Cuando los signos coinciden, el producto aporta +1. Cuando son diferentes, aporta −1.
Dos filas son ortogonales cuando esas contribuciones se cancelan exactamente y el producto escalar resulta igual a cero.
En una matriz de Hadamard de orden 668, dos filas diferentes deben coincidir en exactamente 334 posiciones y diferir en otras 334 posiciones.
¿Por qué aparece H Hᵀ = n Iₙ?
Cuando multiplicamos una matriz H por su transpuesta, cada elemento del resultado corresponde al producto escalar entre dos filas de H.
Si una fila se compara consigo misma, cada entrada aporta 1, porque:
Por tanto, para una matriz de orden n:
Si se comparan dos filas diferentes, necesitamos:
Por eso el producto completo debe tener n en la diagonal y cero en todas las demás posiciones:
¿Por qué 668 es un orden posible?
Salvo los casos especiales de órdenes 1 y 2, una condición necesaria para que exista una matriz de Hadamard es que su orden sea divisible entre cuatro.
Por tanto, 668 cumple esa condición.
El problema histórico no era demostrar que 668 era un orden admisible, sino conseguir construir efectivamente una matriz de ese tamaño que satisficiera todas las condiciones de ortogonalidad.
¿Por qué verificar es mucho más fácil que descubrir?
Si alguien nos entrega una matriz candidata, verificarla es un problema perfectamente definido.
Podemos comprobar que todas sus entradas sean +1 o −1 y calcular:
Si el resultado es:
la matriz es Hadamard.
Descubrirla es otra cosa. Hay que encontrar cómo organizar cientos de miles de signos para que todas esas condiciones se cumplan simultáneamente.
4. ¿Qué tamaño tiene realmente el problema?
Una matriz de Hadamard de orden 668 contiene:
Cada una de ellas debe ser exclusivamente +1 o −1.
Además, tenemos que comparar entre sí todas las parejas diferentes de filas. Su cantidad es:
Para cada una de esas 222.778 parejas, el producto escalar debe ser exactamente cero.
Si intentáramos construir la matriz escogiendo independientemente cada uno de sus 446.224 signos, tendríamos un espacio bruto de búsqueda de:
posibilidades.
Una búsqueda directa de esta naturaleza es inconcebible. La solución matemática consiste precisamente en no buscar la matriz entrada por entrada.
En lugar de buscar 446.224 signos independientes, se busca una estructura combinatoria mucho más pequeña, con suficientes simetrías para que la enorme matriz quede determinada.
Y aquí aparece una primera sorpresa: la construcción de Hadamard 668 comienza trabajando con 166.
5. ¿Por qué aparece el número 166?
La construcción no comienza intentando organizar directamente las 446.224 entradas de la matriz final.
El punto de partida es observar que:
y que:
La construcción que utilizaremos forma primero un gran núcleo compuesto por cuatro bloques de tamaño 166 y luego agrega un borde de cuatro filas y cuatro columnas.
y finalmente:
La matriz de orden 668 no se construye como un objeto completamente desordenado de 668 × 668 posiciones.
Se construye primero un núcleo altamente simétrico de orden 664, generado a partir de objetos mucho más pequeños, y luego se completa mediante un borde especialmente diseñado.
6. Trabajamos en un reloj de 166 posiciones
Ahora aparece un objeto matemático llamado grupo cíclico de orden 166.
Podemos imaginarlo como un reloj con 166 posiciones numeradas:
Cuando llegamos a 165 y avanzamos una posición, regresamos a cero.
Por ejemplo:
y también:
Esta aritmética circular resulta particularmente útil porque permitirá desplazar secuencias sin abandonar nunca las 166 posiciones.
7. La semilla: cuatro conjuntos especiales
Dentro de ℤ166 se seleccionan cuatro subconjuntos:
con tamaños:
Pero su importancia no está simplemente en tener 82 u 83 elementos.
Lo verdaderamente extraordinario es la manera en que se distribuyen las diferencias entre sus elementos.
Ver los cuatro conjuntos utilizados en la reconstrucción
No es necesario memorizar estos números para comprender la construcción. Los mostramos porque son datos concretos: a partir de ellos puede reproducirse la matriz.
X1 = [
3,5,7,9,11,12,14,15,19,22,23,24,25,28,29,31,32,33,34,36,
37,38,39,40,44,45,46,49,51,52,53,61,63,64,66,68,70,71,74,76,
77,79,80,82,83,84,85,87,89,91,93,96,99,100,101,103,104,109,
110,113,118,124,125,127,128,129,132,134,135,136,146,147,149,
151,153,154,157,159,160,162,163,165
]
X2 = [
0,1,2,3,7,11,14,16,21,24,26,27,29,30,32,33,34,35,36,37,
40,41,43,46,48,50,51,52,54,55,57,59,61,63,64,67,68,69,75,76,
77,78,79,87,88,89,91,92,93,95,96,98,100,101,103,105,106,108,
111,114,121,123,126,129,131,133,134,135,137,138,140,142,144,
146,147,150,151,152,158,159,160,161,162
]
X3 = [
0,1,2,3,5,7,10,11,12,14,17,18,19,20,22,23,24,30,31,33,
34,35,37,38,41,49,51,52,54,55,56,58,59,60,61,64,68,69,70,71,
74,75,76,80,81,82,87,89,91,92,96,98,99,104,108,109,110,111,
112,115,119,123,132,134,135,137,138,139,141,142,143,144,147,
151,152,153,154,157,158,159,163,164,165
]
X4 = [
3,4,5,7,9,10,13,14,15,16,18,19,21,25,27,28,31,32,33,34,
35,36,40,41,48,50,51,54,55,57,60,61,62,64,65,68,69,70,72,73,
74,77,78,80,82,83,84,85,89,91,94,95,100,103,105,106,107,109,
112,113,120,121,122,131,133,134,137,138,140,144,145,147,148,
151,152,153,155,156,157,160,161,163,165
]
8. Lo importante no son solamente los elementos: son sus diferencias
Tomemos uno de esos conjuntos. Si contiene dos números x e y, podemos estudiar la diferencia:
La construcción exige una propiedad combinatoria muy fuerte.
Para cada desplazamiento no nulo:
se cuenta, dentro de los cuatro conjuntos, cuántos elementos permanecen dentro del mismo conjunto después de desplazarlos t posiciones.
El total debe ser siempre exactamente:
Es decir:
para todo t diferente de cero.
Estos cuatro conjuntos forman lo que se denomina una familia suplementaria de diferencias cíclicas, con parámetros:
Una primera comprobación de esos parámetros
Los tamaños de los conjuntos y el número 164 no pueden ser arbitrarios. Deben satisfacer una contabilidad global.
El número de diferencias ordenadas que producen los cuatro conjuntos es:
es decir:
Por otra parte, existen 165 diferencias no nulas posibles y cada una debe aparecer en total 164 veces:
Esta igualdad no demuestra por sí sola que los cuatro conjuntos tengan la distribución correcta, pero sí muestra que sus parámetros poseen exactamente la cantidad total de diferencias necesaria.
9. De conjuntos de números a secuencias de +1 y −1
Ahora convertimos cada conjunto en una secuencia de 166 signos.
Para cada posición j hacemos:
si j no pertenece a Xi, escribimos +1.
De esta manera obtenemos cuatro secuencias:
cada una con 166 entradas.
El conjunto nos dice solamente en qué posiciones colocamos −1. Todas las demás posiciones contienen +1.
Por tanto, cuatro conjuntos relativamente pequeños ya contienen suficiente información para generar cuatro secuencias completas.
10. Aparece la autocorrelación
Tomemos una de las secuencias y compáremosla con ella misma desplazada circularmente una cierta cantidad de posiciones.
Multiplicamos los signos posición por posición y sumamos los resultados.
Eso recibe el nombre de autocorrelación periódica.
Para una secuencia asociada a un conjunto de tamaño k, su autocorrelación para un desplazamiento t puede escribirse como:
donde N(t) cuenta las coincidencias del conjunto consigo mismo después del desplazamiento.
Si sumamos las autocorrelaciones de nuestras cuatro secuencias para un desplazamiento distinto de cero, obtenemos:
es decir:
Para cualquier desplazamiento no nulo, las cuatro autocorrelaciones suman exactamente:
Cuando el desplazamiento es cero, cada secuencia se compara consigo misma. Como tiene 166 entradas, obtenemos:
Esta diferencia entre:
−4 cuando t ≠ 0
es exactamente la estructura algebraica que necesitaremos.
11. De las secuencias a cuatro matrices circulantes
Cada una de las cuatro secuencias se utiliza ahora como primera fila de una matriz de 166 × 166.
La segunda fila es la misma secuencia desplazada circularmente una posición. La tercera se desplaza dos posiciones, y así sucesivamente.
Una matriz construida de esta forma se llama matriz circulante.
Obtenemos cuatro matrices:
Y toda la información sobre las autocorrelaciones se transforma ahora en una identidad matricial:
Aquí:
- I166 es la matriz identidad de orden 166;
- J166 es la matriz de 166 × 166 formada completamente por unos.
Observe qué sucede.
En la diagonal tenemos:
Fuera de la diagonal tenemos:
Hemos conseguido que una enorme cantidad de productos escalares adopten solamente dos valores perfectamente controlados: 664 en la diagonal y −4 fuera de ella.
El problema inicial de cientos de miles de signos se ha convertido en una estructura algebraica extremadamente ordenada.
12. Goethals–Seidel: ensamblar las cuatro piezas
Ahora utilizamos una construcción clásica conocida como arreglo de Goethals–Seidel.
Sea R la matriz de permutación que invierte el orden de las 166 posiciones.
Con A, B, C y D se forma el siguiente gran bloque:
[ A BR CR DR ]
[ −BR A DTR −CTR ]
[ −CR −DTR A BTR ]
[ −DR CTR −BTR A ]
Cada uno de esos bloques mide 166 × 166.
Como existen cuatro bloques por fila y cuatro por columna:
Las transpuestas, los signos negativos y la matriz R están colocados cuidadosamente para que, al multiplicar G por su transpuesta, muchos términos cruzados se cancelen.
Ésa es la función del arreglo de Goethals–Seidel: transformar las propiedades de cuatro secuencias pequeñas en las propiedades de una matriz muchísimo mayor.
13. Tenemos 664. ¿Cómo llegamos a 668?
Aquí entra la palabra inglesa bordered: se agrega un borde.
La construcción incorpora cuatro filas y cuatro columnas adicionales. Para hacerlo utiliza tres pequeñas matrices de 4 × 4, que podemos llamar K, T y S.
Ver las pequeñas matrices K, T y S
K = [
[-1, 1, 1, -1],
[ 1, -1, 1, -1],
[ 1, 1, -1, -1],
[-1, -1, -1, -1]
]
T = [
[-1, -1, -1, 1],
[-1, -1, 1, -1],
[-1, 1, -1, -1],
[ 1, -1, -1, -1]
]
S = [
[ 1, 1, 1, -1],
[-1, -1, 1, -1],
[-1, 1, -1, -1],
[ 1, -1, -1, -1]
]
Utilizando esas matrices y un vector de 166 unos, la matriz completa se organiza conceptualmente así:
[ borde lateral | G ]
El bloque G aporta 664 filas y columnas. El borde aporta las cuatro restantes.
Y ese borde no se agrega únicamente para cambiar el tamaño. Está diseñado para cancelar precisamente el residuo de −4 que apareció en la construcción anterior.
14. Y entonces ocurre lo que buscábamos
Cuando se realiza la multiplicación completa de la matriz por su transpuesta, las identidades de los bloques y del borde hacen que todos los términos fuera de la diagonal desaparezcan.
El resultado es:
Eso significa que:
- cada fila contiene únicamente +1 y −1;
- el producto escalar de una fila consigo misma es 668;
- el producto escalar de dos filas diferentes es cero.
Y ésa es exactamente la definición de una matriz de Hadamard.
Partimos de cuatro conjuntos dentro de un pequeño reloj de 166 posiciones.
Esos conjuntos determinaron cuatro secuencias. Las secuencias determinaron cuatro matrices circulantes. Las circulantes alimentaron un arreglo de Goethals–Seidel. El arreglo produjo un núcleo de orden 664. Finalmente, un borde de cuatro posiciones produjo la matriz de orden 668.
En forma resumida:
15. Pero atención: todavía queda una pregunta enorme
Una vez que conocemos los cuatro conjuntos X1, X2, X3 y X4, la construcción que acabamos de estudiar es esencialmente determinista.
Podemos convertir los conjuntos en secuencias, producir las circulantes, formar el arreglo y obtener H.
Pero todavía queda la pregunta que probablemente contiene buena parte de la dificultad original:
Esa pregunta no es equivalente a la construcción. Con los datos publicados podemos reproducir la solución y verificarla; el proceso completo mediante el cual se descubrió esa semilla combinatoria requiere distinguir cuidadosamente entre búsqueda, ideas matemáticas, cálculo computacional y la participación de cada integrante del equipo.
No necesitamos conocer el proceso de descubrimiento para comprobar el resultado.
Tenemos suficientes datos para reconstruir las 446.224 entradas de la matriz y aplicar directamente la definición:
Eso será precisamente lo que haremos en la siguiente parte.
16. Ya tenemos la matriz: ahora comprobémosla nosotros mismos
Hasta este punto hemos estudiado la estructura matemática utilizada para construir una matriz de Hadamard de orden 668.
Pero existe una ventaja extraordinaria cuando un resultado matemático puede expresarse mediante datos concretos: podemos reproducirlo y verificarlo.
A partir de los datos de la construcción reconstruimos una matriz completa con:
Cada una de esas entradas es exclusivamente +1 o −1.
Para facilitar una comprobación independiente, guardamos las 668 filas de la matriz en un archivo CSV.
Puede descargarlo, abrirlo o utilizarlo desde Python, C#, R, Julia, MATLAB o cualquier otra herramienta capaz de leer un archivo de texto separado por comas.
17. La comprobación es sorprendentemente sencilla
Recordemos la definición.
Para demostrar que la matriz es Hadamard necesitamos comprobar solamente dos cosas:
- que todas sus entradas sean +1 o −1;
- que el producto de la matriz por su transpuesta sea la identidad multiplicada por 668.
Conceptualmente podemos expresarlo con un programa muy parecido al que utilizamos para estudiar matrices pequeñas:
n = len(H)
assert all(len(fila) == n for fila in H)
assert all(
valor in (-1, 1)
for fila in H
for valor in fila
)
for i in range(n):
for j in range(n):
producto = sum(
H[i][k] * H[j][k]
for k in range(n)
)
esperado = n if i == j else 0
assert producto == esperado
print("H es una matriz de Hadamard de orden", n)
Ese pequeño programa contiene toda la definición matemática.
Para una matriz de orden 4 hacemos exactamente la misma comprobación que para una matriz de orden 668.
La diferencia es únicamente la cantidad de operaciones que debe realizar la computadora.
¿Por qué utilizaremos NumPy?
El programa anterior es excelente para comprender qué estamos verificando, pero no es la forma más eficiente de trabajar con una matriz de este tamaño.
Los tres ciclos conceptuales
i, j y k
representarían aproximadamente:
multiplicaciones elementales.
Por eso utilizaremos NumPy, que efectúa exactamente la misma operación matricial de manera mucho más eficiente:
producto = H @ H.T
Matemáticamente no hemos cambiado absolutamente nada. Seguimos calculando:
18. ¿Qué resultado debemos obtener?
Si la matriz realmente es Hadamard, el producto debe tener esta estructura:
668 0 0 0 ... 0
0 668 0 0 ... 0
0 0 668 0 ... 0
0 0 0 668 ... 0
. . . . . .
. . . . . .
0 0 0 0 ... 668
Es decir:
- todos los elementos de la diagonal deben ser 668;
- todos los elementos fuera de la diagonal deben ser 0.
Por eso nuestro programa mostrará tres datos especialmente fáciles de interpretar:
Valor mínimo de la diagonal: 668
Valor máximo de la diagonal: 668
Máximo valor absoluto fuera de la diagonal: 0
La matriz satisface exactamente H HT = 668 I668.
19. Una segunda comprobación: la huella digital
Podemos realizar todavía otra prueba.
Además de preguntarnos si la matriz es Hadamard, podemos preguntar:
¿La matriz que reconstruimos coincide exactamente con el objeto identificado por los datos publicados?
Para eso podemos calcular una huella criptográfica SHA-256.
Utilizamos la convención:
y recorremos la matriz fila por fila.
La huella que estamos utilizando como referencia es:
19f435b31eb6561dd97356b761e9b0f174824e42c215c33fbafc20f9b1b20744
Nuestra reconstrucción produce exactamente esa misma secuencia.
El SHA-256 identifica el objeto.
La igualdad H HT = 668 I668 comprueba su propiedad matemática.
Una huella correcta no sustituye la comprobación de Hadamard. Por eso realizaremos ambas.
20. Ejecútelo usted mismo
Esta es probablemente mi parte favorita del artículo.
Hay un viejo dicho que siempre me ha gustado: “Si le digo que la yegua es negra, es porque tengo los pelos en la mano.”
Y creo que viene perfectamente al caso.
No quisiera pedirle que crea que esta matriz funciona simplemente porque aquí lo afirmamos. Quiero, en sentido figurado, ponerle los pelos en la mano: aquí está la matriz, aquí está el código y aquí está la posibilidad de ejecutar personalmente la comprobación.
Puede ejecutarla usted mismo.
El siguiente programa utiliza Pyodide, una versión de Python capaz de ejecutarse directamente dentro del navegador.
Al pulsar Ejecutar Python:
- se descargará el archivo
hadamard_668.csv; - se construirán sus 668 filas;
- se comprobará que todas las entradas sean +1 o −1;
- se calculará H HT;
- se verificará que sea exactamente 668 I668;
- y finalmente se calculará también la huella SHA-256.
Los cálculos se realizan en su propio navegador.
Puede leer el programa antes de ejecutarlo.
Python está listo para ejecutarse.
21. ¿Qué debería aparecer?
Si todo es correcto, la consola mostrará aproximadamente:
Descargando la matriz...
Leyendo el archivo CSV...
Dimensiones: 668 x 668
Todas las entradas son +1 o -1.
Calculando H H^T...
Valor mínimo de la diagonal: 668
Valor máximo de la diagonal: 668
Máximo valor absoluto fuera de la diagonal: 0
COMPROBACIÓN MATEMÁTICA CORRECTA
H es una matriz de Hadamard de orden 668
Se verificó exactamente que H H^T = 668 I_668
SHA-256 calculado:
19f435b31eb6561dd97356b761e9b0f174824e42c215c33fbafc20f9b1b20744
SHA-256 de referencia:
19f435b31eb6561dd97356b761e9b0f174824e42c215c33fbafc20f9b1b20744
La huella digital coincide exactamente.
22. ¿Qué acabamos de demostrar?
No hemos realizado una comprobación aproximada.
No hemos preguntado si los productos escalares son “casi cero”.
Hemos trabajado con números enteros y comprobado exactamente que:
El número:
es particularmente importante.
No es 0,000001. No es una aproximación numérica.
Es cero exacto.
Las 668 filas son mutuamente ortogonales.
H es una matriz de Hadamard de orden 668.
23. ¿Se resolvió entonces la conjetura de Hadamard?
No.
La conjetura de Hadamard afirma que para cada entero positivo m debería existir una matriz de Hadamard de orden:
Construir una matriz de orden 668 demuestra la existencia para ese orden.
El anuncio de agosto resolvió además varios otros órdenes que permanecían abiertos.
Pero demostrar una colección de casos, por impresionante que sea, no equivale a demostrar la conjetura para todos los múltiplos de cuatro.
Hadamard 668 dejó de ser un caso abierto. La conjetura de Hadamard, sin embargo, continúa siendo una pregunta matemática abierta.
24. Una felicitación y una invitación
Quiero felicitar a Levent Alpöge, Philippe Voinov y Saul Reynolds-Haertle, y reconocer la participación reportada de Claude, por un resultado que merece algo más que aparecer fugazmente en una noticia.
Merece ser estudiado.
Merece que intentemos comprender la estructura matemática que hay detrás.
Y, cuando los datos están disponibles, merece también que intentemos reproducirlo.
Quiero reiterar mi agradecimiento a mis exprofesores y amigos Eduardo Piza y Adolfo Di Mare, quienes hace muchos años compartieron conmigo información y discusiones alrededor de las matrices de Hadamard y del entonces misterioso 668.
Hay algo especialmente satisfactorio en regresar tantos años después y poder observar que aquella pregunta tiene ahora una construcción concreta que podemos estudiar y comprobar.
En matemáticas, un resultado no se vuelve verdadero porque lo afirme una persona prestigiosa.
Tampoco porque lo produzca una inteligencia artificial.
Ni porque un programa muestre la palabra “correcto”.
Lo valioso es que podamos examinar los datos, entender los argumentos y reproducir la comprobación.
No se limite a leer que la matriz de Hadamard de orden 668 existe.
Descargue la matriz.
Lea el programa.
Pulse el botón.
Y compruebe usted mismo que:
25. Fuentes y lecturas recomendadas
Eduardo Piza.
“Búsqueda de matrices de Hadamard a través de secuencias de Turyn”.
Revista de Matemática: Teoría y Aplicaciones, 2011.
Consultar en SciELO
Epoch AI — FrontierMath.
Hadamard Matrix of Order 668.
Consultar el problema
VibeMathed.
Reproducción y verificación de Hadamard 668.
Consultar la reproducción
Two H-inequivalent Hadamard matrices of order 668.
Nota técnica con una construcción explícita de orden 668.
Consultar la nota técnica
Boletin.info.
“¿Qué es una matriz de Hadamard?”.
Una introducción más pausada a ortogonalidad, productos escalares,
matrices de Hadamard y verificación mediante Python.
Consultar la introducción
