1 Linear algebra problems
1.1 Matrix and vector operations
1.1.1 Vector operations
- Pairwise summation
- Pairwise summation of numbers
- Parallel prefix scan algorithm using pairwise summation
- Uniform norm of a vector: Real version, serial-parallel variant
- Dot product
- The serial-parallel summation method
1.1.2 Matrix-vector operations
1.1.2.1 Multiplying a nonsingular matrix by a vector
- Dense matrix-vector multiplication
1.1.2.2 Multiplying a matrix of special form by a vector
- Fourier transform
- Fast Fourier transform for composite dimension
- Fast Fourier transform for powers-of-two
- Cooley–Tukey Fast Fourier Transform, radix-2 case
- Fast Fourier transform for even powers-of-two
- Fast Fourier transform for composite dimension with small prime divisors (2,3,5,7)
- Fast Fourier transform for prime dimension
1.1.3 Matrix operations
- Dense matrix multiplication
- Dense matrix multiplication (serial version for real matrices)
- Strassen's algorithm
1.2 Matrix decompositions
Matrix decomposition problem
- Triangular decompositions
- Gaussian elimination (finding the LU decomposition)
- LU decomposition using Gaussian elimination without pivoting
- LU decomposition via Gaussian elimination
- Gaussian elimination, compact scheme for tridiagonal matrices and its modifications
- Compact scheme for Gaussian elimination: Dense matrix
- Compact scheme for Gaussian elimination and its modifications: Tridiagonal matrix
- Gaussian elimination, compact scheme for tridiagonal matrices, serial version
- Stone doubling algorithm for the LU decomposition of a tridiagonal matrix
- Serial-parallel algorithm for the LU decomposition of a tridiagonal matrix
- LU decomposition using Gaussian elimination with pivoting
- Gaussian elimination with column pivoting
- Gaussian elimination with row pivoting
- Gaussian elimination with diagonal pivoting
- Gaussian elimination with complete pivoting
- Cholesky method
- Cholesky decomposition
- Available triangular decompositions for matrices of special form
- Unitary-triangular factorizations
- QR decomposition of dense nonsingular matrices
- Givens (rotations) method for the QR decomposition of a matrix
- Givens method
- Householder (reflections) method for the QR decomposition of a matrix
- Householder (reflections) method for the QR decomposition of a square matrix, real point-wise version
- Orthogonalization method
- Classical orthogonalization method
- Orthogonalization method with reorthogonalization
- Triangular decomposition of a Gram matrix
- QR decomposition methods for dense Hessenberg matrices
- Givens (rotations) method for the QR decomposition of a (real) Hessenberg matrix
- Householder (reflections) method for the QR decomposition of a (real) Hessenberg matrix
- Reducing matrices to compact forms
- Unitary reductions to Hessenberg form
- Householder (reflections) reduction of a matrix to Hessenberg form
- Classical point-wise Householder (reflections) method for reducing a matrix to Hessenberg form
- Givens (rotations) method for reducing a matrix to Hessenberg form
- Classical point-wise Givens (rotations) method for reducing a matrix to Hessenberg form
- Unitary reductions to tridiagonal form
- Householder (reflections) reduction to tridiagonal form
- Householder (reflections) method for reducing a symmetric matrix to tridiagonal form
- Householder (reflections) method for reducing a complex Hermitian matrix to symmetric tridiagonal form
- Givens (rotations) reduction to tridiagonal form
- Eigenvalue decomposition (finding eigenvalues and eigenvectors)
- Unitary non-similarity reductions to compact forms
- Unitary reduction to bidiagonal form
- Householder (reflections) reduction of a matrix to bidiagonal form
- Givens (rotations) reduction of a matrix to bidiagonal form
- Singular value decomposition
- Singular value decomposition (finding singular values and singular vectors)
- Methods for calculating singular values of bidiagonal matrices
- The dqds algorithm for calculating singular values of bidiagonal matrices
- One step of the dqds algorithm
1.3 Solving systems of linear algebraic equations
- Direct methods
- Linpack benchmark
- Matrices of a special form
- Triangular matrices
- Forward substitution
- Backward substitution
- Bidiagonal matrices
- Forward and backward substitution for bidiagonal matrices
- Stone doubling algorithm for solving bidiagonal matrices
- Serial-parallel variant of the backward substitution
- Methods for solving tridiagonal SLAEs
- Methods based on the conventional LU decomposition
- Thomas algorithm
- Thomas algorithm, pointwise version
- Repeated Thomas algorithm, pointwise version
- Stone doubling algorithm
- Stone doubling algorithm for the LU decomposition of tridiagonal matrices
- Stone doubling algorithm for solving bidiagonal SLAEs
- Serial-parallel method for solving tridiagonal matrices based on the LU decomposition and backward substitutions
- Other methods
- Reduction method
- Complete reduction method
- Reduction method repeated for a new right-hand side
- Two-sided Thomas algorithm
- Two-sided Thomas algorithm, pointwise version
- Repeated two-sided Thomas algorithm, pointwise version
- Cyclic reduction
- Complete cyclic reduction
- Cyclic reduction repeated for a new right-hand side
- Bordering method
- Methods for solving block triangular matrices
- Block forward substitution (real version)
- Block backward substitution (real version)
- Methods for solving block bidiagonal matrices
- Forward and backward substitution for block bidiagonal matrices
- Stone doubling algorithm for solving block bidiagonal matrices
- Serial-parallel variant of the block backward substitution for solving block bidiagonal matrices
- Methods for solving block tridiagonal matrices
- Methods based on the conventional LU decomposition
- Block Thomas algorithm
- Serial-parallel method for solving block systems of linear algebraic equations based on the LU decomposition and backward substitutions
- Other methods
- Two-sided Thomas algorithm, block variant
- Block cyclic reduction
- Block bordering method
- Solving systems of linear algebraic equations with coefficient matrices of special form whose inverses are known
- Iterative methods for solving systems of linear algebraic equations
- High Performance Conjugate Gradient (HPCG) benchmark
- Biconjugate gradient stabilized method (BiCGStab)
- Kaczmarz's algorithm
1.4 Solving eigenvalue problems
- Eigenvalue decomposition (finding eigenvalues and eigenvectors)
- QR algorithm
- QR algorithm as implemented in SCALAPACK
- Classical point-wise Householder (reflections) method for reducing a matrix to Hessenberg form
- Hessenberg QR algorithm as implemented in SCALAPACK
- Symmetric QR algorithm as implemented in SCALAPACK
- Householder (reflections) method for reducing a symmetric matrix to tridiagonal form
- Symmetric tridiagonal QR algorithm as implemented in SCALAPACK
- QR algorithm for complex Hermitian matrices as implemented in SCALAPACK
- Householder (reflections) method for reducing a complex Hermitian matrix to symmetric tridiagonal form
- Symmetric tridiagonal QR algorithm as implemented in SCALAPACK
- The Jacobi (rotations) method for solving the symmetric eigenvalue problem
- The classical Jacobi (rotations) method with pivoting for symmetric matrices
- Serial Jacobi (rotations) method for symmetric matrices
- Serial Jacobi (rotations) method with thresholds for symmetric matrices
- Lanczos algorithm
- Lanczos algorithm in exact algorithm (without reorthogonalization)
- Partial eigenvalue problem
- Method of bisection
- Singular value decomposition (finding singular values and singular vectors)
- Jacobi (rotations) method for finding singular values
- Serial Jacobi (rotations) method for finding singular values
- Jacobi method with a special choice of rotations for finding singular values
- QR algorithm as applied to singular value decomposition алгоритм
1.5 Algebra of polynomials
- Horner's method
2 Algorithms on lists and arrays
2.1 Search algorithms
- Linear search: Finding an item in an arbitrary list, [math]O(n)[/math]
- Binary search: Finding the position of a target value within a sorted array, [math]O(\log(n))[/math]
2.2 Sorting algorithms
- Binary tree sort
- Bubble sort
- Merge sort (serial and parallel variants)
2.3 Graph algorithms
- Graph traversal
- Breadth-first search (BFS)
- Depth-first search (DFS)
- Single Source Shortest Path (SSSP)
- Breadth-first search (BFS) (for unweighted graphs)
- Dijkstra's algorithm
- Bellman-Ford algorithm
- Δ-stepping algorithm
- All Pairs Shortest Path (APSP)
- Johnson's algorithm
- Floyd-Warshall algorithm
- Transitive closure of a directed graph
- Purdom's algorithm
- Longest shortest path
- Construction of the minimum spanning tree (MST)
- Boruvka's algorithm
- Kruskal's algorithm
- Prim's algorithm
- GHS algorithm
- Search for isomorphic subgraphs
- Ullman's algorithm
- VF2 algorithm
- Graph connectivity
- Shiloach-Vishkin algorithm for finding the connected components
- Disjoint set union
- Tarjan's strongly connected components algorithm
- DCSC algorithm for finding the strongly connected components
- Tarjan's biconnected components algorithm
- Tarjan-Vishkin biconnected components algorithm
- Tarjan's algorithm for finding the bridges of a graph
- Vertex connectivity of a graph
- Gabow's edge connectivity algorithm
- Finding maximal flow in a transportation network
- Ford–Fulkerson algorithm
- Preflow-Push algorithm
- Finding minimal-cost flow in a transportation network
- Assignment problem
- Hungarian algorithm
- Auction algorithm
- Hopcroft–Karp algorithm
- Betweenness centrality algorithm
3 Computational geometry
- Finding the diameter of a point set
- Finding the convex hull of a point set
- Delaunay triangulation
- Voronoi diagram
- Point-in-polygon problem
- Convex polygon intersection
- Star-shaped polygon intersection
3.1 Computer graphics
- Line drawing algorithms: Approximating a line segment on discrete graphical media
- Determining visible parts of a three-dimensional scene
- Ray tracing: Rendering realistic images
- Global illumination: Regarding direct illumination and reflection from other objects
4 Computer analysis and modeling
4.1 Computer benchmarks
- High Performance Conjugate Gradient (HPCG) benchmark
- Linpack benchmark
4.2 Algorithms of quantum system simulation
- Algorithms of quantum computation simulation
- Single-qubit transform of a state vector
- Two-qubit transform of a state vector
- Quantum Fourier transform simulation
4.3 Machine learning algorithms
- k-means clustering
4.3.1 Neural networks
- Pattern recognition
- Text recognition
- Speech recognition
- Face recognition
4.3.2 Game theory algorithms
5 Miscellaneous applied problems
5.1 Optimization algorithms
- Linear programming
- Simplex algorithm
- Branch and bound method
- Genetic algorithms
- Ant colony algorithms
- Hybrid algorithms
- Stochastic dual dynamic programming (SDDP)
5.2 Solving systems of nonlinear equations
- Newton's method for systems of nonlinear equations
5.3 Numerical quadrature
- Cubature rules
- Numerical quadrature (cubature) rules on an interval (for a multidimensional cube)
- Rectangle rule
- Trapezoid rule
- Simpson rule
- Gauss rule
5.4 Algorithms for solving equations of mathematical physics
- Poisson equation, solving with DFT
6 Cryptographic algorithms
- Meet-in-the-middle attack
7 Other algorithms