o2scl Namespace Reference

The main O2scl namespace. More...


Functions

template<class vec_t , class vec2_t >
int solve_tridiag_sym (const vec_t &diag, const vec2_t &offdiag, const vec_t &b, vec_t &x, size_t N)
 Solve a symmetric tridiagonal linear system.
template<class vec_t , class vec2_t >
int solve_tridiag_nonsym (const vec_t &diag, const vec2_t &abovediag, const vec2_t &belowdiag, const vec_t &rhs, vec_t &x, size_t N)
 Solve an asymmetric tridiagonal linear system.
template<class vec_t >
int solve_cyc_tridiag_sym (const vec_t &diag, const vec_t &offdiag, const vec_t &b, vec_t &x, size_t N)
 Solve a symmetric cyclic tridiagonal linear system.
template<class vec_t >
int solve_cyc_tridiag_nonsym (const vec_t &diag, const vec_t &abovediag, const vec_t &belowdiag, const vec_t &rhs, vec_t &x, size_t N)
 Solve an asymmetric cyclic tridiagonal linear system.


Detailed Description

The main O2scl namespace.

By default, all O2scl classes and functions which are not listed as being in one of O2scl 's smaller specialized namespaces are in this namespace. This namespace has been removed from the documentation to simplify the formatting.

For a full list of all the O2scl classes, see Data Structures. For a full list of all the O2scl global objects which are not classes, see Files::Globals.


Function Documentation

int o2scl::solve_cyc_tridiag_nonsym ( const vec_t &  diag,
const vec_t &  abovediag,
const vec_t &  belowdiag,
const vec_t &  rhs,
vec_t &  x,
size_t  N 
) [inline]

Solve an asymmetric cyclic tridiagonal linear system.

This function solves the following system w/o the corner elements and then use Sherman-Morrison formula to compensate for them

      *
      *        diag[0]  abovediag[0]             0   .....  belowdiag[N-1]
      *   belowdiag[0]       diag[1]  abovediag[1]   .....
      *              0  belowdiag[1]       diag[2]
      *              0             0  belowdiag[2]   .....
      *            ...           ...
      * abovediag[N-1]           ...
      

Definition at line 319 of file tridiag_base.h.

int o2scl::solve_cyc_tridiag_sym ( const vec_t &  diag,
const vec_t &  offdiag,
const vec_t &  b,
vec_t &  x,
size_t  N 
) [inline]

Solve a symmetric cyclic tridiagonal linear system.

Todo:
Put reference in correctly.
For a description of the method see [Engeln-Mullges + Uhlig, p. 96]
      *
      *      diag[0]  offdiag[0]             0   .....  offdiag[N-1]
      *   offdiag[0]     diag[1]    offdiag[1]   .....
      *            0  offdiag[1]       diag[2]
      *            0           0    offdiag[2]   .....
      *          ...         ...
      * offdiag[N-1]         ...
      

Definition at line 216 of file tridiag_base.h.

int o2scl::solve_tridiag_nonsym ( const vec_t &  diag,
const vec2_t &  abovediag,
const vec2_t &  belowdiag,
const vec_t &  rhs,
vec_t &  x,
size_t  N 
) [inline]

Solve an asymmetric tridiagonal linear system.

This function uses plain gauss elimination, only not bothering with the zeroes.

      * 
      *       diag[0]  abovediag[0]             0   .....
      *  belowdiag[0]       diag[1]  abovediag[1]   .....
      *             0  belowdiag[1]       diag[2]
      *             0             0  belowdiag[2]   .....
      

Definition at line 145 of file tridiag_base.h.

int o2scl::solve_tridiag_sym ( const vec_t &  diag,
const vec2_t &  offdiag,
const vec_t &  b,
vec_t &  x,
size_t  N 
) [inline]

Solve a symmetric tridiagonal linear system.

Idea for future:
Convert into class for memory managment and combine with other functions below
For description of method see [Engeln-Mullges + Uhlig, p. 92]
      *
      *     diag[0]  offdiag[0]             0   .....
      *  offdiag[0]     diag[1]    offdiag[1]   .....
      *           0  offdiag[1]       diag[2]
      *           0           0    offdiag[2]   .....
      

Definition at line 68 of file tridiag_base.h.


Documentation generated with Doxygen and provided under the GNU Free Documentation License. See License Information for details.

Project hosting provided by SourceForge.net Logo, O2scl Sourceforge Project Page