cg_rc


cg_rc, a C++ code which implements the conjugate gradient (CG) method for solving a symmetric positive definite (SPD) sparse linear system A*x=b, using reverse communication (RC).

Licensing:

The information on this web page is distributed under the MIT license.

Languages:

cg_rc is available in a C version and a C++ version and a Fortran90 version and a MATLAB version and an Octave version and a Python version.

Related Data and Programs:

cg_rc_test

backtrack_binary_rc, a C++ code which carries out a backtrack search for a set of binary decisions, using reverse communication (RC).

bisection_rc, a C++ code which seeks a solution to the equation F(X)=0 using bisection within a user-supplied change of sign interval [A,B]. The procedure is written using reverse communication (RC).

cg, a C++ code which implements a simple version of the conjugate gradient (CG) method for solving a system of linear equations of the form A*x=b, suitable for situations in which the matrix A is symmetric positive definite (SPD) (only real, positive eigenvalues).

jacobi, a C++ code which implements the Jacobi iteration for solving symmetric positive definite (SPD) systems of linear equations.

local_min_rc, a C++ code which finds a local minimum of a scalar function of a scalar variable, without the use of derivative information, using reverse communication (RC), by Richard Brent.

mgmres, a C++ code which applies the restarted GMRES algorithm to solve a sparse linear system.

root_rc, a C++ code which seeks a solution of a scalar nonlinear equation f(x) = 0, using reverse communication (RC), by Gaston Gonnet.

roots_rc, a C++ code which seeks a solution of a system of nonlinear equations f(x) = 0, using reverse communication (RC), by Gaston Gonnet.

sort_rc, a C++ code which sorts a list of any kind of objects, using reverse communication (RC).

superlu, C++ codes which illustrate how a C++ code can call the SUPERLU library, (which is written in C), which applies a fast direct solution method to solve sparse linear systems, by James Demmel, John Gilbert, and Xiaoye Li.

test_matrix, a C++ code which defines test matrices.

zero_rc, a C++ code which seeks solutions of a scalar nonlinear equation f(x) = 0, using reverse communication (RC).

Reference:

  1. Richard Barrett, Michael Berry, Tony Chan, James Demmel, June Donato, Jack Dongarra, Victor Eijkhout, Roidan Pozo, Charles Romine, Henk van der Vorst,
    Templates for the Solution of Linear Systems: Building Blocks for Iterative Methods,
    SIAM, 1994,
    ISBN: 0898714710,
    LC: QA297.8.T45.
  2. Jonathan Shewchuk,
    An introduction to the conjugate gradient method without the agonizing pain,
    Edition 1.25, August 1994.

Source Code:


Last revised on 16 February 2020.