wrong eigh eigenvectors for complex valued matrix
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 42/100
Línea de trabajo
Start by reproducing the provided complex-valued matrix example and trace the implementation behind eigh with UPLO::Lower. Compare the eigenvector result for the matrix and its Hermitian conjugate, then add a regression test based on the shown assertions; done means the original matrix's eigenvectors satisfy the eigenvalue equation.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
The resulting eigenvectors for eigh of complex valued matrix is wrong.
If eigh is called with the hermitian conjugate of the matrix,
the resulting eigenvectors are the eigenvectors of the original matrix.
let values = vec![
c64::new(1.0, 0.0), c64::new(0.0, -2.0),
c64::new(0.0, 2.0), c64::new(5.0, 0.0),
];
let matrix = Array2::<c64>::from_shape_vec([2; 2], values).unwrap();
// assertion passed
let (eigvalues, eigvecs) = matrix.t().mapv(|v| v.conj()).eigh(UPLO::Lower).unwrap();
for i in 0 .. 2 {
let dot = matrix.dot(&eigvecs.column(i));
let mul = &eigvecs.column(i).mapv(|c| c*eigvalues[i]);
assert_close_l2!(&dot, &mul, 1.0e-10);
}
// assertion failed.
let (eigvalues, eigvecs) = matrix.eigh(UPLO::Lower).unwrap();
for i in 0 .. 2 {
let dot = matrix.dot(&eigvecs.column(i));
let mul = &eigvecs.column(i).mapv(|c| c*eigvalues[i]);
assert_close_l2!(&dot, &mul, 1.0e-10);
}
- Lenguaje dominante
- Rust
- Estrellas
- 452
- Forks
- 95
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Guía de contribución
No hay ninguna guía de contribución indexada para este repositorio
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de rust-ndarray/ndarray-linalg
-
Thin SVD Abierto
Dificultad 5/5 Más de una semana Aptitud para principiantes 38/100
rust-ndarray/ndarray-linalg#414 ·
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 30/100
rust-ndarray/ndarray-linalg#413 · 1 comentario ·
-
Cyclically Tridiagonal Matrices? Abierto
Dificultad 5/5 Más de una semana Aptitud para principiantes 25/100
rust-ndarray/ndarray-linalg#404 ·
-
SIGSEGV on qr decomposition Abierto
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
rust-ndarray/ndarray-linalg#402 · 1 comentario ·
-
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
rust-ndarray/ndarray-linalg#401 · 2 reacciones ·
Todos los issues de rust-ndarray/ndarray-linalg
Issues similares
-
bug github_actions
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
registrystack/registry-stack#1393 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
longbridge/gpui-kit#3223 ·
-
bug engine
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
rocky-data/rocky#2181 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
oasisprotocol/oasis-sdk#2523 ·
-
[indexer] [QA] Add a focused test for the new NonRetryableError / assertSocketAlive() behavior. Abiertobot:ai-assisted component:indexer QA-roadmap status:untriaged
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
midnightntwrk/midnight-indexer#1557 ·