00001 // @(#)root/mathmore:$Id: GSLRootFdFSolver.h 20882 2007-11-19 11:31:26Z rdm $ 00002 // Authors: L. Moneta, A. Zsenei 08/2005 00003 00004 /********************************************************************** 00005 * * 00006 * Copyright (c) 2004 ROOT Foundation, CERN/PH-SFT * 00007 * * 00008 * This library is free software; you can redistribute it and/or * 00009 * modify it under the terms of the GNU General Public License * 00010 * as published by the Free Software Foundation; either version 2 * 00011 * of the License, or (at your option) any later version. * 00012 * * 00013 * This library 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 GNU * 00016 * General Public License for more details. * 00017 * * 00018 * You should have received a copy of the GNU General Public License * 00019 * along with this library (see file COPYING); if not, write * 00020 * to the Free Software Foundation, Inc., 59 Temple Place, Suite * 00021 * 330, Boston, MA 02111-1307 USA, or contact the author. * 00022 * * 00023 **********************************************************************/ 00024 00025 // Header file for class GSLRootFdFSolver 00026 // 00027 // Created by: moneta at Sun Nov 14 17:23:06 2004 00028 // 00029 // Last update: Sun Nov 14 17:23:06 2004 00030 // 00031 #ifndef ROOT_Math_GSLRootFdFSolver 00032 #define ROOT_Math_GSLRootFdFSolver 00033 00034 00035 #include "gsl/gsl_roots.h" 00036 00037 00038 namespace ROOT { 00039 namespace Math { 00040 00041 00042 /** 00043 Root-Finder with derivatives implementation class using GSL 00044 00045 @ingroup RootFinders 00046 */ 00047 class GSLRootFdFSolver { 00048 00049 public: 00050 00051 GSLRootFdFSolver(const gsl_root_fdfsolver_type * type) { 00052 fSolver = gsl_root_fdfsolver_alloc( type); 00053 } 00054 virtual ~GSLRootFdFSolver() { 00055 gsl_root_fdfsolver_free( fSolver); 00056 } 00057 00058 /* private: */ 00059 /* // usually copying is non trivial, so we make this unaccessible */ 00060 /* GSLRootFdFSolver(const GSLRootFdFSolver &); */ 00061 /* GSLRootFdFSolver & operator = (const GSLRootFdFSolver &); */ 00062 00063 /* public: */ 00064 00065 gsl_root_fdfsolver * Solver() const { return fSolver; } 00066 00067 00068 protected: 00069 00070 00071 private: 00072 00073 gsl_root_fdfsolver *fSolver; 00074 00075 00076 }; 00077 00078 } // namespace Math 00079 } // namespace ROOT 00080 00081 00082 #endif /* ROOT_Math_GSLRootFdFSolver */