param.h

00001 /*
00002  *  Definition of Lorene class Param
00003  *
00004  */
00005 
00006 /*
00007  *   Copyright (c) 1999-2005 Eric Gourgoulhon
00008  *   Copyright (c) 2000-2003 Jerome Novak
00009  *
00010  *   This file is part of LORENE.
00011  *
00012  *   LORENE is free software; you can redistribute it and/or modify
00013  *   it under the terms of the GNU General Public License as published by
00014  *   the Free Software Foundation; either version 2 of the License, or
00015  *   (at your option) any later version.
00016  *
00017  *   LORENE is distributed in the hope that it will be useful,
00018  *   but WITHOUT ANY WARRANTY; without even the implied warranty of
00019  *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00020  *   GNU General Public License for more details.
00021  *
00022  *   You should have received a copy of the GNU General Public License
00023  *   along with LORENE; if not, write to the Free Software
00024  *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
00025  *
00026  */
00027 
00028 
00029 #ifndef __PARAM_H_ 
00030 #define __PARAM_H_ 
00031 
00032 
00033 /*
00034  * $Id: param.h,v 1.8 2006/06/15 08:15:36 j_novak Exp $
00035  * $Log: param.h,v $
00036  * Revision 1.8  2006/06/15 08:15:36  j_novak
00037  * Removed members linked to Qtenseur objects.
00038  * Added members for Matrice objects.
00039  *
00040  * Revision 1.7  2005/08/13 16:08:20  m_saijo
00041  * Corrected the documents related to the Star
00042  *
00043  * Revision 1.6  2005/08/13 16:03:36  m_saijo
00044  * Added storage of a Star
00045  *
00046  * Revision 1.5  2005/03/24 21:55:58  e_gourgoulhon
00047  * Added storage of a Scalar.
00048  *
00049  * Revision 1.4  2004/03/22 13:12:43  j_novak
00050  * Modification of comments to use doxygen instead of doc++
00051  *
00052  * Revision 1.3  2003/09/25 12:08:02  j_novak
00053  * Tensors can be stored in Param objects
00054  *
00055  * Revision 1.2  2002/09/19 09:52:42  j_novak
00056  * Added objects Qtenseur and Qmetrique for 4D tensor and metric handling.
00057  *
00058  * Revision 1.1.1.1  2001/11/20 15:19:27  e_gourgoulhon
00059  * LORENE
00060  *
00061  * Revision 1.10  2001/10/27  09:26:24  novak
00062  * *** empty log message ***
00063  *
00064  * Revision 1.9  2001/10/11 07:44:12  eric
00065  * Ajout du stokage des Etoile's
00066  *
00067  * Revision 1.8  2000/10/24  14:54:49  novak
00068  * Added the function clean_all()
00069  *
00070  * Revision 1.7  2000/05/25 12:39:19  eric
00071  * MODIFICATION MAJEURE: pour les int et les double, ce sont desormais les
00072  * adresses qui sont stokees, et non plus les nombres eux-memes
00073  * (le traitement des int et des double est donc desormais completement
00074  * aligne sur celui des Tbl, Cmp, etc...)
00075  *
00076  * Revision 1.6  1999/12/29  13:10:39  eric
00077  * Ajout du stokage des Mtbl_cf.
00078  *
00079  * Revision 1.5  1999/12/27  12:16:43  eric
00080  * Ajout du stokage des mappings (class Map).
00081  *
00082  * Revision 1.4  1999/12/16  10:27:40  eric
00083  * Ajout des membres modifiables.
00084  * Par defaut, les objets listes sont const.
00085  *
00086  * Revision 1.3  1999/12/15  16:49:52  eric
00087  * *** empty log message ***
00088  *
00089  * Revision 1.2  1999/12/15  16:22:36  eric
00090  * Changement de l'ordre des arguments dans add_*
00091  * Argument par defaut: position = 0
00092  * Ajout du stokage des int et des double.
00093  *
00094  * Revision 1.1  1999/12/13  14:35:56  eric
00095  * Initial revision
00096  *
00097  *
00098  * $Header: /cvsroot/Lorene/C++/Include/param.h,v 1.8 2006/06/15 08:15:36 j_novak Exp $
00099  *
00100  */
00101 
00102 class Tbl ; 
00103 class Itbl ;
00104 class Matrice ; 
00105 class Mtbl_cf ; 
00106 class Map ; 
00107 class Cmp ; 
00108 class Tenseur ;
00109 class Tensor ;
00110 class Scalar ; 
00111 class Etoile ;
00112 class Star ;
00113 
00121 class Param {
00122 
00123     // Data : 
00124     // -----
00125     private:
00126     int n_int ; 
00127 
00128     const int** p_int ; 
00129 
00130     int n_int_mod ; 
00131 
00132     int** p_int_mod ;   
00133 
00134     int n_double ; 
00135 
00136     const double** p_double ; 
00137 
00138     int n_double_mod ; 
00139 
00140     double** p_double_mod ; 
00141 
00142 
00143     int n_tbl ; 
00144 
00145     const Tbl** p_tbl ; 
00146     
00147     int n_tbl_mod ; 
00148 
00149     Tbl** p_tbl_mod ;   
00150     
00151     int n_itbl ;    
00152 
00153     const Itbl** p_itbl ;   
00154     
00155     int n_itbl_mod ;    
00156 
00157     Itbl** p_itbl_mod ; 
00158     
00159     int n_matrice ; 
00160 
00161     const Matrice** p_matrice ; 
00162     
00163     int n_matrice_mod ; 
00164 
00165     Matrice** p_matrice_mod ;   
00166     
00167     int n_cmp ; 
00168 
00169     const Cmp** p_cmp ; 
00170     
00171     int n_cmp_mod ; 
00172 
00173     Cmp** p_cmp_mod ;   
00174     
00175     int n_tenseur ; 
00176 
00177     const Tenseur** p_tenseur ; 
00178     
00179     int n_tenseur_mod ; 
00180 
00181     Tenseur** p_tenseur_mod ;   
00182 
00183     int n_map ; 
00184 
00185     const Map** p_map ; 
00186     
00187     int n_mtbl_cf ; 
00188 
00189     const Mtbl_cf** p_mtbl_cf ; 
00190     
00191     int n_scalar ;  
00192 
00193     const Scalar** p_scalar ;   
00194     
00195     int n_scalar_mod ;  
00196 
00197     Scalar** p_scalar_mod ;
00198     
00199     int n_tensor ;  
00200 
00201     const Tensor** p_tensor ;   
00202     
00203     int n_tensor_mod ;  
00204 
00205     Tensor** p_tensor_mod ;
00206     
00207     int n_etoile ;  
00208 
00209     const Etoile** p_etoile ;   
00210 
00211     int n_star ;    
00212 
00213     const Star** p_star ;   
00214 
00215     // Constructors - Destructor
00216     // -------------------------
00217     
00218     public:
00219     Param() ;   
00220 
00221     private:
00225     Param(const Param& ) ;
00226     
00227     public: 
00228     ~Param() ;  
00229 
00233     void clean_all() ;  
00234 
00235 
00236 
00237     // Assignment
00238     // -----------
00239     private: 
00243     void operator=(const Param& ) ;
00244         
00245 
00246     // Addition/Extraction of one element
00247     // ----------------------------------
00248     public:
00249     
00251     int get_n_int() const ; 
00252     
00262     void add_int(const int& n, int position = 0) ;
00263     
00273     const int& get_int(int position = 0) const; 
00274 
00276     int get_n_int_mod() const ; 
00277     
00287     void add_int_mod(int& n, int position = 0) ;
00288     
00298     int& get_int_mod(int position = 0) const; 
00299     
00300 
00302     int get_n_double() const ; 
00303     
00313     void add_double(const double& x, int position = 0) ;
00314     
00324     const double& get_double(int position = 0) const; 
00325     
00326 
00328     int get_n_double_mod() const ; 
00329     
00339     void add_double_mod(double& x, int position = 0) ;
00340     
00351     double& get_double_mod(int position = 0) const; 
00352     
00353 
00355     int get_n_tbl() const ; 
00356     
00365     void add_tbl(const Tbl& ti, int position = 0) ;
00366     
00375     const Tbl& get_tbl(int position = 0) const; 
00376     
00377 
00379     int get_n_tbl_mod() const ; 
00380     
00389     void add_tbl_mod(Tbl& ti, int position = 0) ;
00390     
00400      Tbl& get_tbl_mod(int position = 0) const; 
00401     
00402 
00404     int get_n_itbl() const ; 
00405     
00414     void add_itbl(const Itbl& ti, int position = 0) ;
00415     
00424     const Itbl& get_itbl(int position = 0) const; 
00425     
00426 
00428     int get_n_itbl_mod() const ; 
00429     
00439     void add_itbl_mod(Itbl& ti, int position = 0) ;
00440     
00450     Itbl& get_itbl_mod(int position = 0) const; 
00451     
00453     int get_n_matrice() const ; 
00454     
00463     void add_matrice(const Matrice& ti, int position = 0) ;
00464     
00473     const Matrice& get_matrice(int position = 0) const; 
00474     
00475 
00477     int get_n_matrice_mod() const ; 
00478     
00487     void add_matrice_mod(Matrice& ti, int position = 0) ;
00488     
00498      Matrice& get_matrice_mod(int position = 0) const; 
00499     
00500 
00502     int get_n_cmp() const ; 
00503     
00512     void add_cmp(const Cmp& ti, int position = 0) ;
00513     
00522     const Cmp& get_cmp(int position = 0) const; 
00523     
00524 
00526     int get_n_cmp_mod() const ; 
00527     
00536     void add_cmp_mod(Cmp& ti, int position = 0) ;
00537     
00547      Cmp& get_cmp_mod(int position = 0) const; 
00548     
00549 
00551     int get_n_tenseur() const ; 
00552     
00561     void add_tenseur(const Tenseur& ti, int position = 0) ;
00562     
00571     const Tenseur& get_tenseur(int position = 0) const; 
00572     
00573 
00575     int get_n_tenseur_mod() const ; 
00576     
00585     void add_tenseur_mod(Tenseur& ti, int position = 0) ;
00586     
00596      Tenseur& get_tenseur_mod(int position = 0) const; 
00597     
00599     int get_n_map() const ; 
00600     
00609     void add_map(const Map& mi, int position = 0) ;
00610     
00619     const Map& get_map(int position = 0) const; 
00620     
00622     int get_n_mtbl_cf() const ; 
00623     
00632     void add_mtbl_cf(const Mtbl_cf& mi, int position = 0) ;
00633     
00642     const Mtbl_cf& get_mtbl_cf(int position = 0) const; 
00643     
00645     int get_n_scalar() const ; 
00646     
00655     void add_scalar(const Scalar& ti, int position = 0) ;
00656     
00665     const Scalar& get_scalar(int position = 0) const; 
00666     
00667 
00669     int get_n_scalar_mod() const ; 
00670     
00679     void add_scalar_mod(Scalar& ti, int position = 0) ;
00680     
00690      Scalar& get_scalar_mod(int position = 0) const; 
00691 
00692 
00694     int get_n_tensor() const ; 
00695     
00704     void add_tensor(const Tensor& ti, int position = 0) ;
00705     
00714     const Tensor& get_tensor(int position = 0) const; 
00715     
00716 
00718     int get_n_tensor_mod() const ; 
00719     
00728     void add_tensor_mod(Tensor& ti, int position = 0) ;
00729     
00739      Tensor& get_tensor_mod(int position = 0) const; 
00740 
00742     int get_n_etoile() const ;
00743 
00752     void add_etoile(const Etoile& eti, int position = 0) ;
00753     
00762     const Etoile& get_etoile(int position = 0) const;
00763     
00765     int get_n_star() const ;
00766 
00775     void add_star(const Star& eti, int position = 0) ;
00776     
00785     const Star& get_star(int position = 0) const;
00786     
00787  };
00788 
00789 #endif

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