00001 /* 00002 ------------------------------------------------------------------- 00003 00004 Copyright (C) 2006, 2007, 2008, 2009, 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 <gsl/gsl_math.h> 00027 00028 #include <o2scl/err_hnd.h> 00029 #include <o2scl/permutation.h> 00030 #include <o2scl/cblas.h> 00031 #include <o2scl/vec_arith.h> 00032 00033 /** \file givens.h 00034 \brief File for Givens rotations 00035 */ 00036 00037 /// Namespace for O2scl linear algebra function templates with operator[] 00038 namespace o2scl_linalg { 00039 00040 /// Desc 00041 void create_givens(const double a, const double b, double &c, 00042 double &s); 00043 00044 #define O2SCL_IX(V,i) V[i] 00045 #define O2SCL_IX2(M,i,j) M[i][j] 00046 #include <o2scl/givens_base.h> 00047 #undef O2SCL_IX 00048 #undef O2SCL_IX2 00049 00050 } 00051 00052 /** 00053 \brief Namespace for O2scl linear algebra function templates with 00054 operator() 00055 00056 This namespace contains an identical copy of all the functions given 00057 in the \ref o2scl_cblas namespace, but perform array indexing 00058 with \c operator() rather than \c operator[]. See \ref o2scl_linalg 00059 for the function listing and documentation. 00060 */ 00061 namespace o2scl_linalg_paren { 00062 00063 void create_givens(const double a, const double b, double &c, 00064 double &s); 00065 00066 #define O2SCL_IX(V,i) V(i) 00067 #define O2SCL_IX2(M,i,j) M(i,j) 00068 #include <o2scl/givens_base.h> 00069 #undef O2SCL_IX 00070 #undef O2SCL_IX2 00071 00072 } 00073 00074 #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