Cálculos de estilo de norma proyectada más rápida (forma cuadrática, matriz métrica ...)

Necesito realizar muchas evaluaciones del formulario.

X(:,i)' * A * X(:,i)   i = 1...n

donde X (:, i) es un vector y A es una matriz simétrica. Ostensiblemente, puedo hacer esto en un bucle

for i=1:n
    z(i) = X(:,i)' * A * X(:,i)
end

que es lento, o vectorizarlo como

z = diag(X' * A * X)

lo que desperdicia RAM de forma inaceptable cuando X tiene muchas columnas. Actualmente estoy comprometiendo en

Y = A * X
for i=1:n
    z(i) = Y(:,i)' * X(:,i)
end

que es un poco más rápido / más ligero pero aún parece insatisfactorio.

Esperaba que pudiera haber algún lenguaje o truco de matlab / scilab para lograr este resultado de manera más eficiente.

Respuestas a la pregunta(3)

Su respuesta a la pregunta