Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

cholesky decomposition

Abierto
#414 1 comentario 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
4/5
Tiempo estimado
3-5 días
Aptitud para principiantes
35/100
Tipo de issue
Error
Claridad
Bastante claro
Estado de actividad
Estancado
Stack tecnológico
julia

Línea de trabajo

Comienza con la rrule para cholesky donde A <: LinearAlgebra.HermOrSym en src/rulesets/LinearAlgebra/factorization.jl alrededor de la línea 452 y luego reproduce los ejemplos de Zygote.jacobian del issue. Compara la ruta Hermitian con las rutas Matrix y cholesky simple, incluido el issue vinculado de ChainRulesCore mul!. La tarea está terminada cuando el Jacobian de Hermitian cholesky ya no produce ceros.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

I'm getting incorrect results when working with the rrule for cholesky where A <: LinearAlgebra.HermOrSym

Passing the input matrix through Matrix fixes the issue. The mul! fix relates to this issue.

using Zygote, ChainRules,LinearAlgebra
# Example matrix
A = [2. -1. 0.0; -1. 2. -1.; 0. -1. 2. ]

import LinearAlgebra.mul!
LinearAlgebra.mul!(C, ::ChainRulesCore.ZeroTangent, ::Any, ::Any, b) = C *=b

# produces zeros
Zygote.jacobian(a -> cholesky(Hermitian(a)).L , A)[1]

# both of the following produce expected result
Zygote.jacobian(a -> cholesky(Matrix(Hermitian(a))).L , A)[1]
Zygote.jacobian(a -> cholesky(a).L , A)[1]
Lenguaje dominante
Julia
Estrellas
475
Forks
98
Métricas de merge de PR
Sin PR fusionados en 30 d

Preparar el entorno

Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de JuliaDiff/ChainRules.jl

Todos los issues de JuliaDiff/ChainRules.jl

Issues similares

Más issues de Julia

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.