change_var.h

00001 /*
00002  *  Definition of Lorene class Change_var
00003  *
00004  */
00005 
00006 /*
00007  *   Copyright (c) 2003 Philippe Grandclement
00008  *
00009  *   This file is part of LORENE.
00010  *
00011  *   LORENE is free software; you can redistribute it and/or modify
00012  *   it under the terms of the GNU General Public License version 2
00013  *   as published by the Free Software Foundation.
00014  *
00015  *   LORENE is distributed in the hope that it will be useful,
00016  *   but WITHOUT ANY WARRANTY; without even the implied warranty of
00017  *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00018  *   GNU General Public License for more details.
00019  *
00020  *   You should have received a copy of the GNU General Public License
00021  *   along with LORENE; if not, write to the Free Software
00022  *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
00023  *
00024  */
00025 
00026 #ifndef __CHANGE_VAR_H_ 
00027 #define __CHANGE_VAR_H_ 
00028 
00029 /*
00030  * $Id: change_var.h,v 1.5 2004/06/22 08:49:56 p_grandclement Exp $
00031  * $Log: change_var.h,v $
00032  * Revision 1.5  2004/06/22 08:49:56  p_grandclement
00033  * Addition of everything needed for using the logarithmic mapping
00034  *
00035  * Revision 1.4  2004/05/14 08:51:00  p_grandclement
00036  * *** empty log message ***
00037  *
00038  * Revision 1.3  2004/03/23 14:54:45  j_novak
00039  * More documentation
00040  *
00041  * Revision 1.2  2004/03/05 09:18:48  p_grandclement
00042  * Addition of operator sec_order_r2
00043  *
00044  * Revision 1.1  2003/12/11 14:57:00  p_grandclement
00045  * I had forgotten the .h (sorry folks...)
00046  *
00047  *
00048  * $Header: /cvsroot/Lorene/C++/Include/change_var.h,v 1.5 2004/06/22 08:49:56 p_grandclement Exp $
00049  *
00050  */
00051 
00052 #include "proto.h"
00053 
00054 // Defines the various types of variable changes with the associated 
00055 // functions F, G, F' and G'
00056 
00057 #define STD 1
00058 double one (double) ;
00059 double zero (double) ;
00060 
00061 #define W_BETA 2
00062 double ide (double) ;
00063 
00064 #define W_BETA_INF 3
00065 double part_ln (double) ;
00066 double part_ln_der (double) ;
00067 
00068 #define H_BETA 4
00069 
00070 #define LAMBDA_RN 5
00071 double plus_log(double) ;
00072 double moins_sur(double) ;
00073 
00074 #define NU_RN 6
00075 double moins_log(double) ;
00076 double plus_sur(double) ;
00077 
00094 class Change_var {
00095 
00096  protected:
00097   double (* func_F) (double) ; 
00098   double (* der_F) (double) ; 
00099   double (* func_G) (double) ; 
00100   double (* der_G) (double) ; 
00101 
00102   double mult_F ; 
00103   double add_F ; 
00104 
00105  public:
00106 
00121   Change_var (int var) ;
00122 
00128   Change_var (int var, double) ;
00129 
00135   Change_var (int var, double, double) ;
00136  
00137 
00138   Change_var (const Change_var& so) ; 
00139   ~Change_var() ; 
00140 
00141  public:
00142   double val_F (double x) ; 
00143   double val_der_F (double x) ; 
00144   double val_G (double x) ; 
00145   double val_der_G (double x) ; 
00146 } ;
00147 
00148 #endif

Generated on Tue Feb 7 01:35:15 2012 for LORENE by  doxygen 1.4.6