solve_linsys.hpp

Go to the documentation of this file.
00001 /*****************************************************************************
00002     
00003     solve_linsys.hpp -- solving of linear systems of equations over
00004         different structures.
00005 
00006     This file is a part of the Arageli library.
00007 
00008     Copyright (C) Nikolai Yu. Zolotykh, 1999--2006
00009     Copyright (C) Sergey S. Lyalin, 2006
00010     Copyright (C) Anna Bestaeva, 2006
00011     University of Nizhni Novgorod, Russia
00012 
00013 *****************************************************************************/
00014 
00025 #ifndef _ARAGELI_solve_linsys_hpp_
00026 #define _ARAGELI_solve_linsys_hpp_
00027 
00028 #include "config.hpp"
00029 
00030 #include "exception.hpp"
00031 
00032 
00033 namespace Arageli
00034 {
00035 
00036 
00038 
00040 class no_unique_solution : public exception {};
00041 
00042 
00043 enum solve_linsys_result { SLR_EMPTY, SLR_UNIQUE, SLR_MULTIPLE };
00044 
00045 
00047 
00054 template <typename A, typename B, typename GX, typename Offset>
00055 solve_linsys_result solve_linsys (const A& a, const B& b, Offset& offset, GX& gx);
00056 
00057 
00059 
00066 template <typename A, typename B, typename X>
00067 solve_linsys_result solve_linsys (const A& a, const B& b, X& x);
00068 
00069 
00071 
00077 template <typename A, typename B>
00078 B solve_linsys (const A& a, const B& b);
00079 
00080 
00082 
00088 template <typename A>
00089 A solve_linsys (const A& a);
00090 
00091 
00092 } // namesapce Arageli
00093 
00094 
00095 #ifdef ARAGELI_INCLUDE_CPP_WITH_EXPORT_TEMPLATE
00096     #define ARAGELI_INCLUDE_CPP_WITH_EXPORT_TEMPLATE_solve_linsys
00097     #include "solve_linsys.cpp"
00098     #undef  ARAGELI_INCLUDE_CPP_WITH_EXPORT_TEMPLATE_solve_linsys
00099 #endif
00100 
00101 #endif  // #ifndef _ARAGELI_solve_linsys_hpp_

Generated on Thu Aug 31 17:38:11 2006 for Arageli by  doxygen 1.4.7