View on GitHub

computational-mathematics

Contains basic implementations of a number of standard procedures in scientific computing and computational mathematics.

Software Manual

C++ Linear Algebra and Numerical Library

This library was initially written for MATH4610 course at Utah State University, taught by Joe Koebbe. Ongoing development is currently focused on developing routines for approximating solutions to differential equations in conjuncting with the followup course MATH5620.

  1. Basic Routines
    1. Machine epsilon
    2. Absolute error
    3. Relative error
  2. Root finding methods
    1. Bisection method
    2. Functional iteration
    3. Secant method
    4. Newton method
    5. Newton method with error checking
    6. Hybrid bisection-secant
    7. Hybrid bisection-newton
  3. Matrix and Vector Code
    1. Sequential Operations
      1. Dot product
      2. Vector norm (L-1)
      3. Vector norm (L-2)
      4. Vector norm (L-infinity)
      5. Vector error (L-1)
      6. Vector error (L-2)
      7. Vector error (l-infinity)
      8. Matrix addition
      9. Matrix subtraction
      10. Matrix scale
      11. Matrix-vector product
      12. Matrix-matrix product
      13. Matrix norm (L-1)
      14. Matrix norm (L-infinity)
    2. Parallel Operations
      1. Parallel matrix-vector product
      2. Parallel matrix-matrix product
  4. Linear solvers
    1. Sequential Solvers
      1. Jacobi
      2. Gauss-Seidel
      3. Conjugate gradient
      4. Steepest descent
    2. Parallel Solvers
      1. Jacobi (parallel)
      2. Steepest descent (parallel)
      3. Conjugate gradient (parallel)
  5. Eigenvalue solvers
    1. Sequential
      1. Power method
      2. Inverse power method
    2. Parallel
      1. Power method (parallel)
      2. Inverse power method (parallel)
  6. Polynomial interpolation
    1. Newton interpolation
    2. Evaluate Newton form at x=a
  7. Differential Equation Solvers

Support or Contact

All code provided as-is, without warranty. Pull requests welcome. Please contact me through my github (Christopher42) with any questions.