Algoritma SPIKE berkaitan dengan sistem linear AX = F , di mana A adalah sebuah banded matriks bandwidth jauh lebih sedikit daripada , dan F adalah matriks yang mengandung sisi kanan. Ini dibagi menjadi tahap preprocessing dan tahap postprocessing.
Pada tahap preprocessing, sistem linear AX = F dipartisi menjadi bentuk tridiagonal blok
Asumsikan, untuk saat ini, bahwa blok diagonal Aj (j = 1,...,p dengan p ≥ 2) adalah nonsingular. Tentukan matriks blok diagonal
D = diag(A1,...,Ap),
maka D juga nonsingular. Kiri-mengalikan D−1 untuk kedua sisi sistem memberi
yang harus diselesaikan pada tahap postprocessing. Penggandaan-kiri oleh D−1 setara dengan pemecahan sistem formulir
Aj[VjWjGj] = [BjCjFj]
(menghilangkan W1 dan C1 untuk , dan Vp dan Bp untuk ), yang dapat dilakukan secara paralel.
Karena sifat berpita A, hanya beberapa kolom paling kiri dari setiap Vj dan beberapa kolom paling kanan dari masing-masing Wj dapat berupa nol. Kolom ini disebut spike.
Tanpa kehilangan sifat umum, asumsikan bahwa setiap lonjakan mengandung tepat kolom ( jauh lebih sedikit dari ) (bantalan spike dengan kolom nol jika perlu). Partisi paku di semua Vj dan Wj ke
and
dimana V(t) j, V(b) j, W(t) j dan W(b) j adalah dari dimensi . Partisi juga semua Xj dan Gj menjadi
and
Perhatikan bahwa sistem yang dihasilkan oleh tahap preprocessing dapat direduksi menjadi sistem pentadiagonal blok dengan ukuran yang jauh lebih kecil (ingat bahwa jauh lebih sedikit dari )
yang kami sebut sistem tereduksi dan dilambangkan dengan S̃X̃ = G̃.
Setelah semua X(t) j dan X(b) j ditemukan, semua X′j dapat dipulihkan dengan paralelisme sempurna via