Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

Coloring for symmetric banded matrices

Aperta
#302 0 commenti 0 reazioni 1 assegnatario Vedi su GitHub

@amontoison ci sta già lavorando.

Dal 30/1/2026.

Valutazione

Questa issue non è ancora stata valutata.

Descrizione

feature

The code is quite short but it took me a long a time to understand how we can do the decompression directly from the peridic coloring.
We only need to solve bidiagonal systems for the decompression of each 2-colored tree.
It also allows to not require a buffer like in the acyclic coloring.

using BandedMatrices

T = Float64
n = 10
kd = 3
k = 2 * kd + 1

A = brand(T,n,n,kd,kd)
A = A + A'

color = Int[mod(j,kd+1)+1 for j=1:n]

B = zeros(T, n, kd+1)
for j = 1:n
    cj = color[j]
    B[:,cj] .+= A[:,j]
end

C = copy(A)
fill!(C, 0)

for i = 1:n
    ci = color[i]
    C[i,i] = B[i, ci]
end

for j = 1:kd
    for i = j+1:kd+1
        posi = i
        posj = j
        c = color[posi]
        C[posi,posj] = B[posj,c]
        C[posj,posi] = C[posi,posj]
        flag = true
        while flag
            if posi > posj
                posi, posj = posj, posi
            end
            if posi + kd + 1 <= n
                c = color[posi + kd + 1]
                C[posi+kd+1,posj] = B[posj,c] - C[posj,posi]
                C[posj,posi+kd+1] = C[posi+kd+1,posj]
                posi = posi + kd + 1
            else
                flag = false
            end
        end
    end
end
Lingua principale
Julia
Stelle
46
Fork
14
Merge medio
6h 30m
PR unite (30g)
2

Preparare l'ambiente

Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di JuliaDiff/SparseMatrixColorings.jl

Tutte le issue di JuliaDiff/SparseMatrixColorings.jl

Issue simili

Altre issue su Julia

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.