No veo ningún paso del algoritmo de Strassen que requiera absolutamente la copia, por ejemplo, cualquier tipo de paso destructivo de reescritura en el lugar.
La pregunta de si es posible o deseable implementar el algoritmo puramente in situ (con variables de pila para los productos intermedios, por supuesto) depende del idioma en el que esté trabajando. Muchos lenguajes de alto nivel (por ejemplo, Matlab y Python / NumPy) ) copiará los datos (de forma predeterminada) al pasar un segmento o una submatriz a una llamada recursiva. Hay formas de garantizar que lo que se transmite es una “vista” de los mismos datos sin requerir que se haga una copia, pero a los nuevos usuarios generalmente no se les informa sobre esto, ya que pueden tener efectos inesperados.
Por otro lado, en C / C ++, las matrices son típicamente double**
desnudos double**
s; y pasar un puntero nunca copiará los datos subyacentes a menos que se lo indique explícitamente.
- Si P es una matriz en C (NxN) y P = P * y P = P ^ 2 demuestran que P> = 0 y todos los valores propios están contenidos en {0,1}?
- Cómo demostrar esta desigualdad sobre el rastro de matrices
- ¿Cuál de los siguientes no podría formarse por la intersección de un cubo y un cono?
- ¿Cómo se compara la covarianza de concatenación de dos matrices con la covarianza de matrices individuales?
- Cómo calcular el valor de ‘pi’ en mi computadora a través de un programa simple