Error: rangos iguales significan presupuestos iguales
«El rango 3 de CP y los rangos
(3, 3, 3)de Tucker usan el mismo almacenamiento.»
shape = (4, 4, 24)
cp = 3 * sum(shape)
tucker = 3**3 + 3 * sum(shape)
assert (cp, tucker) == (96, 123)
Tucker además almacena un núcleo: 27 valores más aquí. 96 contra 123.
Esta convención de CP absorbe los pesos de los componentes en un solo factor; cuenta 3 valores extra si los pesos se guardan aparte. Iguala los parámetros almacenados y luego reporta el error sobre los mismos datos. Si los presupuestos no pueden coincidir exactamente, declara la diferencia.