00001 /* 00002 ------------------------------------------------------------------- 00003 00004 Copyright (C) 2006, 2007, 2008, Andrew W. Steiner 00005 00006 This file is part of O2scl. 00007 00008 O2scl is free software; you can redistribute it and/or modify 00009 it under the terms of the GNU General Public License as published by 00010 the Free Software Foundation; either version 3 of the License, or 00011 (at your option) any later version. 00012 00013 O2scl is distributed in the hope that it will be useful, 00014 but WITHOUT ANY WARRANTY; without even the implied warranty of 00015 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00016 GNU General Public License for more details. 00017 00018 You should have received a copy of the GNU General Public License 00019 along with O2scl. If not, see <http://www.gnu.org/licenses/>. 00020 00021 ------------------------------------------------------------------- 00022 */ 00023 #ifndef O2SCL_GIVENS_H 00024 #define O2SCL_GIVENS_H 00025 00026 #include <o2scl/err_hnd.h> 00027 #include <o2scl/permutation.h> 00028 #include <o2scl/cblas.h> 00029 #include <o2scl/vec_arith.h> 00030 00031 /** \file givens.h 00032 \brief File for Givens rotations 00033 */ 00034 00035 /// Namespace for O2scl linear algebra function templates with operator[] 00036 namespace o2scl_linalg { 00037 00038 /// Desc 00039 void create_givens(const double a, const double b, double &c, 00040 double &s); 00041 00042 #define O2SCL_IX(V,i) V[i] 00043 #define O2SCL_IX2(M,i,j) M[i][j] 00044 #include <o2scl/givens_base.h> 00045 #undef O2SCL_IX 00046 #undef O2SCL_IX2 00047 00048 } 00049 00050 /** 00051 \brief Namespace for O2scl linear algebra function templates with 00052 operator() 00053 00054 This namespace contains an identical copy of all the functions given 00055 in the \ref o2scl_cblas namespace, but perform array indexing 00056 with \c operator() rather than \c operator[]. See \ref o2scl_linalg 00057 for the function listing and documentation. 00058 */ 00059 namespace o2scl_linalg_paren { 00060 00061 void create_givens(const double a, const double b, double &c, 00062 double &s); 00063 00064 #define O2SCL_IX(V,i) V(i) 00065 #define O2SCL_IX2(M,i,j) M(i,j) 00066 #include <o2scl/givens_base.h> 00067 #undef O2SCL_IX 00068 #undef O2SCL_IX2 00069 00070 } 00071 00072 #endif
Documentation generated with Doxygen and provided under the GNU Free Documentation License. See License Information for details.
Project hosting provided by
,
O2scl Sourceforge Project Page