Upstream
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 25/100
Línea de trabajo
Empieza comprobando los elementos no marcados de LinearAlgebra y SparseArrays y las pull requests upstream de Julia referenciadas. Compáralos con las soluciones alternativas de src/dispatch.jl y src/MutableArithmetics.jl. Se considera terminado cuando se hayan abordado las suposiciones upstream restantes y las soluciones alternativas correspondientes puedan simplificarse o eliminarse.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Some implementations in Base/LinearAlgebra/SparseArrays have the following assumption:
zero(T) isa Tone(T) isa T-(::T) isa T+(::T, ::T) isa T*(::T, ::T) isa Tx * y = y * x- Implements
== *(x::T, y::S) = *(promote(x, y)...)
However, these assumptions are violated for the following types where MP stands for MultivariatePolynomials and MOI stand for MathOptInterface.
| Type | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
|---|---|---|---|---|---|---|---|---|
Bool |
x | x | ||||||
JuMP.VariableRef |
x | x | x | x | x | x | ||
MOI.VariableRef |
x | x | x | x | x | x | ||
MOI.ScalarAffineExpression |
x | x | x | |||||
MP.AbstractVariable |
x | x | x | x | x | |||
MP.AbstractMonomial |
x | x | x | x | ||||
MP.AbstractTerm |
x | |||||||
AbstractArray |
x | |||||||
Non-commutative MP.AbstractVariable |
x | x | x | x | x | x |
The current approach is to create an AbstractMutable type and redefine methods for the methods defined in Base for these types.
The long term solution would be to fix the issue upstream. In the short term, as Julia v1.5 might be an LTS, that would allow the package to be simplified once we drop Julia v1.0 for all the fixes that are merged before Julia v1.5.
The following are the issues in LinearAlgebra.
-
Matrix(::Tridiagonal),Matrix(::SymTridiagonal),Matrix(::LowerTriangular),Matrix(::UpperTriangular),Matrix(::UnitLowerTriangular),Matrix(::UnitUpperTriangular)assumes 1: https://github.com/JuliaLang/julia/pull/36256
Current workaround:
https://github.com/JuliaOpt/MutableArithmetics.jl/blob/407a8fdfb5ef1810f3785a88e490291d37b9fb03/src/dispatch.jl#L231-L241 -
LinearAlgebra._iszeroassumes 7: https://github.com/JuliaLang/julia/pull/36194
Current workaround:
https://github.com/JuliaOpt/MutableArithmetics.jl/blob/407a8fdfb5ef1810f3785a88e490291d37b9fb03/src/dispatch.jl#L267-L272 -
convert(::Type{<:UniformScaling}, ::UniformScaling)is not defined: https://github.com/JuliaLang/julia/pull/36193
Current workaround:
https://github.com/JuliaOpt/MutableArithmetics.jl/blob/407a8fdfb5ef1810f3785a88e490291d37b9fb03/src/MutableArithmetics.jl#L60-L64 -
LinearAlgebra.diagm_containerassumes 1. : https://github.com/JuliaLang/julia/pull/35743
Current workaround:
https://github.com/JuliaOpt/MutableArithmetics.jl/blob/407a8fdfb5ef1810f3785a88e490291d37b9fb03/src/dispatch.jl#L27-L31 -
-(::LinearAlgebra.Symmetric)assumes 3. : https://github.com/JuliaLang/julia/pull/32375/
Current workaround:
https://github.com/JuliaOpt/MutableArithmetics.jl/blob/407a8fdfb5ef1810f3785a88e490291d37b9fb03/src/dispatch.jl#L204-L212 -
LinearAlgebra.luassumes 4. and 5. : https://github.com/JuliaLang/julia/pull/26344 -
*(::AbstractArray, ::AbstractArray)assumes 4. : https://github.com/JuliaLang/julia/pull/18218/
The following are the issues in SparseArrays.
-
*(::AbstractSparseArray, ::AbstractSparseArray)assumes 8.
Beginning of current workaround (many more follows):
https://github.com/JuliaOpt/MutableArithmetics.jl/blob/407a8fdfb5ef1810f3785a88e490291d37b9fb03/src/dispatch.jl#L105-L116
- Lenguaje dominante
- TeX
- Estrellas
- 55
- Forks
- 15
- Merge medio
- 17 h 21 min
- PR fusionados (30 d)
- 8
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
- 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 jump-dev/MutableArithmetics.jl
-
Dificultad 3/5 1-2 días Aptitud para principiantes 48/100
jump-dev/MutableArithmetics.jl#353 · 4 comentarios ·
-
Documentation needs to be addedAbierto
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
jump-dev/MutableArithmetics.jl#293 · 8 comentarios ·
-
Dificultad 4/5 3-5 días Aptitud para principiantes 25/100
-
Dificultad 3/5 1-2 días Aptitud para principiantes 45/100
-
Dificultad 4/5 3-5 días Aptitud para principiantes 42/100
jump-dev/MutableArithmetics.jl#253 · 7 comentarios ·
Todos los issues de jump-dev/MutableArithmetics.jl
Issues similares
-
[2.x] extension-manager: update checks fail for composer repositories with credentials in the URLAbiertotype/bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
Los mantenedores suelen responder en 1 día
-
namespace operations
Dificultad 1/5 Menos de una hora Aptitud para principiantes 72/100
EclipseFdn/open-vsx.org#14623 ·
Los mantenedores suelen responder en 1 día
-
Update to mocha 12.xAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 67/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 66/100
Los mantenedores suelen responder en 1 día
-
A-Unicode C-bug P-low
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
rust-lang/rustfmt#7210 · 1 comentario ·
Los mantenedores suelen responder en 1 día