base_val_name_theta.C

00001 /*
00002  *  Method Base_val::name_theta
00003  *
00004  *  (see file base_val.h for documentation). 
00005  *
00006  */
00007 
00008 /*
00009  *   Copyright (c) 2003 Eric Gourgoulhon. 
00010  *
00011  *   This file is part of LORENE.
00012  *
00013  *   LORENE is free software; you can redistribute it and/or modify
00014  *   it under the terms of the GNU General Public License version 2
00015  *   as published by the Free Software Foundation.
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 char base_val_name_theta_C[] = "$Header: /cvsroot/Lorene/C++/Source/Base_val/base_val_name_theta.C,v 1.7 2009/10/23 12:55:16 j_novak Exp $" ;
00029 
00030 /*
00031  * $Id: base_val_name_theta.C,v 1.7 2009/10/23 12:55:16 j_novak Exp $
00032  * $Log: base_val_name_theta.C,v $
00033  * Revision 1.7  2009/10/23 12:55:16  j_novak
00034  * New base T_LEG_MI
00035  *
00036  * Revision 1.6  2009/10/08 16:20:13  j_novak
00037  * Addition of new bases T_COS and T_SIN.
00038  *
00039  * Revision 1.5  2004/12/17 13:35:01  m_forot
00040  * Add the case T_LEG
00041  *
00042  * Revision 1.4  2004/11/23 15:08:01  m_forot
00043  * Added the bases for the cases without any equatorial symmetry
00044  * (T_COSSIN_C, T_COSSIN_S, T_LEG, R_CHEBPI_P, R_CHEBPI_I).
00045  *
00046  * Revision 1.3  2004/10/04 13:40:38  j_novak
00047  * Added the T_COS base case.
00048  *
00049  * Revision 1.2  2004/08/24 09:14:41  p_grandclement
00050  * Addition of some new operators, like Poisson in 2d... It now requieres the
00051  * GSL library to work.
00052  *
00053  * Also, the way a variable change is stored by a Param_elliptic is changed and
00054  * no longer uses Change_var but rather 2 Scalars. The codes using that feature
00055  * will requiere some modification. (It should concern only the ones about monopoles)
00056  *
00057  * Revision 1.1  2003/10/19 19:49:40  e_gourgoulhon
00058  * First version
00059  *
00060  *
00061  *
00062  * $Header: /cvsroot/Lorene/C++/Source/Base_val/base_val_name_theta.C,v 1.7 2009/10/23 12:55:16 j_novak Exp $
00063  *
00064  */
00065 
00066 // C headers
00067 #include <string.h>
00068 #include <stdlib.h>
00069 
00070 // Lorene headers
00071 #include "type_parite.h"
00072 #include "base_val.h"
00073 
00074 // Local prototypes
00075 void basename_t_unknown(int, int, char*) ; 
00076 void basename_t_cos(int, int, char*) ; 
00077 void basename_t_sin(int, int, char*) ; 
00078 void basename_t_cos_p(int, int, char*) ; 
00079 void basename_t_sin_p(int, int, char*) ; 
00080 void basename_t_cos_i(int, int, char*) ; 
00081 void basename_t_sin_i(int, int, char*) ; 
00082 void basename_t_cossin_cp(int, int, char*) ; 
00083 void basename_t_cossin_sp(int, int, char*) ;
00084 void basename_t_cossin_c(int, int, char*) ; 
00085 void basename_t_cossin_s(int, int, char*) ; 
00086 void basename_t_cossin_ci(int, int, char*) ; 
00087 void basename_t_cossin_si(int, int, char*) ; 
00088 void basename_t_leg_p(int, int, char*) ; 
00089 void basename_t_leg(int, int, char*) ; 
00090 void basename_t_leg_mp(int, int, char*) ; 
00091 void basename_t_leg_mi(int, int, char*) ; 
00092 void basename_t_leg_pp(int, int, char*) ; 
00093 void basename_t_leg_i(int, int, char*) ; 
00094 void basename_t_leg_ip(int, int, char*) ; 
00095 void basename_t_leg_pi(int, int, char*) ; 
00096 void basename_t_leg_ii(int, int, char*) ; 
00097 void basename_t_cl_cos_p(int, int, char*) ; 
00098 void basename_t_cl_sin_p(int, int, char*) ; 
00099 void basename_t_cl_cos_i(int, int, char*) ; 
00100 void basename_t_cl_sin_i(int, int, char*) ; 
00101 
00102 
00103             //----------------------------//
00104             //      Base_val method       //
00105             //----------------------------//
00106 
00107 void Base_val::name_theta(int l, int k, int j, char* name) const {
00108 
00109     // Array of actual base name functions
00110     static void(*vbasename_t[MAX_BASE])(int, int, char*) ;  
00111 
00112     static bool first_call = true ;
00113 
00114     // Initializations at first call
00115     // -----------------------------
00116     if ( first_call ) {
00117 
00118         first_call = false ;
00119 
00120         for (int i=0 ; i<MAX_BASE ; i++) {
00121             vbasename_t[i] = basename_t_unknown ;
00122         }
00123 
00124         vbasename_t[T_COS >> TRA_T] = basename_t_cos ;
00125         vbasename_t[T_SIN >> TRA_T] = basename_t_sin ;
00126         vbasename_t[T_COS_P >> TRA_T] = basename_t_cos_p ;
00127         vbasename_t[T_SIN_P >> TRA_T] = basename_t_sin_p ;
00128         vbasename_t[T_COS_I >> TRA_T] = basename_t_cos_i ;
00129         vbasename_t[T_SIN_I >> TRA_T] = basename_t_sin_i ;
00130         vbasename_t[T_COSSIN_CP >> TRA_T] = basename_t_cossin_cp ;
00131         vbasename_t[T_COSSIN_SP >> TRA_T] = basename_t_cossin_sp ;
00132         vbasename_t[T_COSSIN_CI >> TRA_T] = basename_t_cossin_ci ;
00133         vbasename_t[T_COSSIN_SI >> TRA_T] = basename_t_cossin_si ;
00134         vbasename_t[T_COSSIN_C >> TRA_T] = basename_t_cossin_c ;
00135         vbasename_t[T_COSSIN_S >> TRA_T] = basename_t_cossin_s ;
00136         vbasename_t[T_LEG_P >> TRA_T] = basename_t_leg_p ;
00137         vbasename_t[T_LEG_MP >> TRA_T] = basename_t_leg_mp ;
00138         vbasename_t[T_LEG_MI >> TRA_T] = basename_t_leg_mi ;
00139         vbasename_t[T_LEG >> TRA_T] = basename_t_leg ;
00140         vbasename_t[T_LEG_PP >> TRA_T] = basename_t_leg_pp ;
00141         vbasename_t[T_LEG_I >> TRA_T] = basename_t_leg_i ;
00142         vbasename_t[T_LEG_IP >> TRA_T] = basename_t_leg_ip ;
00143         vbasename_t[T_LEG_PI >> TRA_T] = basename_t_leg_pi ;
00144         vbasename_t[T_LEG_II >> TRA_T] = basename_t_leg_ii ;
00145         vbasename_t[T_CL_COS_P >> TRA_T] = basename_t_cl_cos_p ;
00146         vbasename_t[T_CL_SIN_P >> TRA_T] = basename_t_cl_sin_p ;
00147         vbasename_t[T_CL_COS_I >> TRA_T] = basename_t_cl_cos_i ;
00148         vbasename_t[T_CL_SIN_I >> TRA_T] = basename_t_cl_sin_i ;
00149 
00150     }
00151     
00152     // Call to the function adapted to the basis in domain l
00153     //------------------------------------------------------
00154     
00155     assert( (l>=0) && (l<nzone) ) ; 
00156     
00157     int base_t = ( b[l] & MSQ_T ) >> TRA_T ;
00158     
00159     vbasename_t[base_t](k, j, name) ; 
00160 
00161 }
00162     
00163     
00164             //-------------------------------//
00165             //  individual basis functions   //
00166             //-------------------------------//
00167     
00168 void basename_t_unknown(int, int, char*) {
00169     cout << "Base_val::name_theta : unknwon basis !" << endl ; 
00170     abort() ; 
00171 } 
00172 
00173 
00174 void basename_t_cos(int , int j, char* name) {
00175 
00176     assert( j>=0 ) ; 
00177 
00178     strcpy(name, "cos") ; 
00179         
00180     int xt = j ; 
00181         
00182     char cxt[4] ;
00183     assert( xt < 1000) ; 
00184     sprintf(cxt, "%d", xt) ; 
00185     strcat(name, cxt) ; 
00186     strcat(name, "t") ; 
00187 }   
00188 
00189 void basename_t_sin(int , int j, char* name) {
00190 
00191     assert( j>=0 ) ; 
00192 
00193     strcpy(name, "sin") ; 
00194         
00195     int xt = j ; 
00196         
00197     char cxt[4] ;
00198     assert( xt < 1000) ; 
00199     sprintf(cxt, "%d", xt) ; 
00200     strcat(name, cxt) ; 
00201     strcat(name, "t") ; 
00202 }   
00203 
00204 
00205 void basename_t_cos_p(int , int j, char* name) {
00206 
00207     assert( j>=0 ) ; 
00208 
00209     strcpy(name, "cos") ; 
00210         
00211     int xt = 2*j ; 
00212         
00213     char cxt[4] ;
00214     assert( xt < 1000) ; 
00215     sprintf(cxt, "%d", xt) ; 
00216     strcat(name, cxt) ; 
00217     strcat(name, "t") ; 
00218 }   
00219 
00220 
00221 void basename_t_sin_p(int , int j, char* name) {
00222 
00223     assert( j>=0 ) ; 
00224 
00225     if (j == 0) {
00226         strcpy(name, "unused") ; 
00227         return ;
00228     }
00229 
00230     strcpy(name, "sin") ; 
00231         
00232     int xt = 2*j ; 
00233         
00234     char cxt[4] ;
00235     assert( xt < 1000) ; 
00236     sprintf(cxt, "%d", xt) ; 
00237     strcat(name, cxt) ; 
00238     strcat(name, "t") ; 
00239 }
00240     
00241 void basename_t_cl_cos_p(int , int j, char* name) {
00242 
00243     assert( j>=0 ) ; 
00244 
00245     strcpy(name, "cl_cos") ; 
00246         
00247     int xt = 2*j ; 
00248         
00249     char cxt[4] ;
00250     assert( xt < 1000) ; 
00251     sprintf(cxt, "%d", xt) ; 
00252     strcat(name, cxt) ; 
00253     strcat(name, "t") ; 
00254 }
00255 
00256 void basename_t_cl_sin_p(int , int j, char* name) {
00257 
00258     assert( j>=0 ) ; 
00259 
00260     strcpy(name, "cl_sin") ; 
00261         
00262     int xt = 2*j ; 
00263         
00264     char cxt[4] ;
00265     assert( xt < 1000) ; 
00266     sprintf(cxt, "%d", xt) ; 
00267     strcat(name, cxt) ; 
00268     strcat(name, "t") ; 
00269 }
00270     
00271 void basename_t_cos_i(int , int j, char* name) {
00272 
00273     assert( j>=0 ) ; 
00274 
00275     strcpy(name, "cos") ; 
00276         
00277     int xt = 2*j + 1 ; 
00278         
00279     char cxt[4] ;
00280     assert( xt < 1000) ; 
00281     sprintf(cxt, "%d", xt) ; 
00282     strcat(name, cxt) ; 
00283     strcat(name, "t") ; 
00284 }   
00285 
00286 void basename_t_cl_cos_i(int , int j, char* name) {
00287 
00288     assert( j>=0 ) ; 
00289 
00290     strcpy(name, "cl_cos") ; 
00291         
00292     int xt = 2*j + 1 ; 
00293         
00294     char cxt[4] ;
00295     assert( xt < 1000) ; 
00296     sprintf(cxt, "%d", xt) ; 
00297     strcat(name, cxt) ; 
00298     strcat(name, "t") ; 
00299 }
00300 
00301 void basename_t_sin_i(int , int j, char* name) {
00302 
00303     assert( j>=0 ) ; 
00304 
00305     strcpy(name, "sin") ; 
00306         
00307     int xt = 2*j + 1 ; 
00308         
00309     char cxt[4] ;
00310     assert( xt < 1000) ; 
00311     sprintf(cxt, "%d", xt) ; 
00312     strcat(name, cxt) ; 
00313     strcat(name, "t") ; 
00314 }
00315     
00316 void basename_t_cl_sin_i(int , int j, char* name) {
00317 
00318     assert( j>=0 ) ; 
00319 
00320     strcpy(name, "cl_sin") ; 
00321         
00322     int xt = 2*j + 1 ; 
00323         
00324     char cxt[4] ;
00325     assert( xt < 1000) ; 
00326     sprintf(cxt, "%d", xt) ; 
00327     strcat(name, cxt) ; 
00328     strcat(name, "t") ; 
00329 }   
00330 
00331     
00332 void basename_t_cossin_cp(int k, int j, char* name) {
00333 
00334     assert( k>=0 ) ; 
00335     assert( j>=0 ) ; 
00336 
00337     int m = k / 2 ; 
00338     int xt ; 
00339     if (m%2 == 0) {
00340         strcpy(name, "cos") ; 
00341         xt = 2*j ; 
00342     }
00343     else {
00344         strcpy(name, "sin") ; 
00345         xt = 2*j + 1 ; 
00346     }
00347     
00348     char cxt[4] ;
00349     assert( xt < 1000) ; 
00350     sprintf(cxt, "%d", xt) ; 
00351     strcat(name, cxt) ; 
00352     strcat(name, "t") ; 
00353 }   
00354 
00355 
00356 void basename_t_cossin_sp(int k, int j, char* name) {
00357 
00358     assert( k>=0 ) ; 
00359     assert( j>=0 ) ; 
00360 
00361     int m = k / 2 ; 
00362     int xt ; 
00363     if (m%2 == 0) {
00364         if (j == 0) {
00365             strcpy(name, "unused") ;
00366             return ;  
00367         }
00368         else {
00369             strcpy(name, "sin") ; 
00370             xt = 2*j ;
00371         } 
00372     }
00373     else {
00374         strcpy(name, "cos") ; 
00375         xt = 2*j + 1 ; 
00376     }
00377     
00378     char cxt[4] ;
00379     assert( xt < 1000) ; 
00380     sprintf(cxt, "%d", xt) ; 
00381     strcat(name, cxt) ; 
00382     strcat(name, "t") ; 
00383 }   
00384 
00385 void basename_t_cossin_c(int k, int j, char* name) {
00386 
00387     assert( k>=0 ) ; 
00388     assert( j>=0 ) ; 
00389 
00390     int m = k / 2 ; 
00391     int xt ; 
00392     if (m%2 == 0) {
00393         strcpy(name, "cos") ; 
00394         xt = j ; 
00395     }
00396     else {
00397       if (j == 0) {
00398         strcpy(name, "unused") ;
00399         return ;  
00400       } else {
00401         strcpy(name, "sin") ; 
00402         xt = j ;
00403       } 
00404     }
00405     
00406     char cxt[4] ;
00407     assert( xt < 1000) ; 
00408     sprintf(cxt, "%d", xt) ; 
00409     strcat(name, cxt) ; 
00410     strcat(name, "t") ; 
00411 }   
00412 
00413 
00414 void basename_t_cossin_s(int k, int j, char* name) {
00415 
00416     assert( k>=0 ) ; 
00417     assert( j>=0 ) ; 
00418 
00419     int m = k / 2 ; 
00420     int xt ; 
00421     if (m%2 == 0) {
00422         if (j == 0) {
00423             strcpy(name, "unused") ;
00424             return ;  
00425         }
00426         else {
00427             strcpy(name, "sin") ; 
00428             xt = j ;
00429         } 
00430     }
00431     else {
00432         strcpy(name, "cos") ; 
00433         xt = j ; 
00434     }
00435     
00436     char cxt[4] ;
00437     assert( xt < 1000) ; 
00438     sprintf(cxt, "%d", xt) ; 
00439     strcat(name, cxt) ; 
00440     strcat(name, "t") ; 
00441 }   
00442 
00443 
00444 void basename_t_cossin_ci(int k, int j, char* name) {
00445 
00446     assert( k>=0 ) ; 
00447     assert( j>=0 ) ; 
00448 
00449     int m = k / 2 ; 
00450     int xt ; 
00451     if (m%2 == 0) {
00452         strcpy(name, "cos") ; 
00453         xt = 2*j + 1; 
00454     }
00455     else {
00456         if (j == 0) {
00457             strcpy(name, "unused") ;
00458             return ;  
00459         }
00460         else {
00461             strcpy(name, "sin") ; 
00462             xt = 2*j ; 
00463         }
00464     }
00465     
00466     char cxt[4] ;
00467     assert( xt < 1000) ; 
00468     sprintf(cxt, "%d", xt) ; 
00469     strcat(name, cxt) ; 
00470     strcat(name, "t") ; 
00471 }   
00472 
00473 
00474 void basename_t_cossin_si(int k, int j, char* name) {
00475 
00476     assert( k>=0 ) ; 
00477     assert( j>=0 ) ; 
00478 
00479     int m = k / 2 ; 
00480     int xt ; 
00481     if (m%2 == 0) {
00482         strcpy(name, "sin") ; 
00483         xt = 2*j + 1; 
00484     }
00485     else {
00486         strcpy(name, "cos") ; 
00487         xt = 2*j ; 
00488     }
00489     
00490     char cxt[4] ;
00491     assert( xt < 1000) ; 
00492     sprintf(cxt, "%d", xt) ; 
00493     strcat(name, cxt) ; 
00494     strcat(name, "t") ; 
00495 }   
00496 
00497 void basename_t_leg(int k, int j, char* name) {
00498 
00499     assert( k>=0 ) ; 
00500     assert( j>=0 ) ; 
00501 
00502     int m = k / 2 ;
00503      
00504     if (j < m/2) {
00505         strcpy (name, "unused") ; 
00506         return ; 
00507     }
00508     
00509     strcpy(name, "P_") ; 
00510 
00511     int xt = j; 
00512 
00513     char cxt[4] ;
00514     assert( xt < 1000) ; 
00515     sprintf(cxt, "%d", xt) ; 
00516     strcat(name, cxt) ; 
00517     strcat(name, "^") ; 
00518 
00519     assert( m < 1000) ; 
00520     sprintf(cxt, "%d", m) ; 
00521     strcat(name, cxt) ; 
00522 }   
00523 
00524 void basename_t_leg_mp(int k, int j, char* name) {
00525 
00526     assert( k>=0 ) ; 
00527     assert( j>=0 ) ; 
00528 
00529     int m = 2 * (k / 2) ;
00530      
00531     if (j < m/2) {
00532         strcpy (name, "unused") ; 
00533         return ; 
00534     }
00535     
00536     strcpy(name, "P_") ; 
00537 
00538     int xt = j; 
00539 
00540     char cxt[4] ;
00541     assert( xt < 1000) ; 
00542     sprintf(cxt, "%d", xt) ; 
00543     strcat(name, cxt) ; 
00544     strcat(name, "^") ; 
00545 
00546     assert( m < 1000) ; 
00547     sprintf(cxt, "%d", m) ; 
00548     strcat(name, cxt) ; 
00549 }   
00550 
00551 void basename_t_leg_mi(int k, int j, char* name) {
00552 
00553     assert( k>=0 ) ; 
00554     assert( j>=0 ) ; 
00555 
00556     int m = 2 * ((k-1) / 2) + 1 ;
00557      
00558     if (j < m/2) {
00559         strcpy (name, "unused") ; 
00560         return ; 
00561     }
00562     
00563     strcpy(name, "P_") ; 
00564 
00565     int xt = j; 
00566 
00567     char cxt[4] ;
00568     assert( xt < 1000) ; 
00569     sprintf(cxt, "%d", xt) ; 
00570     strcat(name, cxt) ; 
00571     strcat(name, "^") ; 
00572 
00573     assert( m < 1000) ; 
00574     sprintf(cxt, "%d", m) ; 
00575     strcat(name, cxt) ; 
00576 }   
00577 
00578 void basename_t_leg_p(int k, int j, char* name) {
00579 
00580     assert( k>=0 ) ; 
00581     assert( j>=0 ) ; 
00582 
00583     int m = k / 2 ;
00584      
00585     if (j < m/2) {
00586         strcpy (name, "unused") ; 
00587         return ; 
00588     }
00589     
00590     strcpy(name, "P_") ; 
00591 
00592     int xt = (m%2 == 0) ? 2*j : 2*j + 1 ; 
00593 
00594     char cxt[4] ;
00595     assert( xt < 1000) ; 
00596     sprintf(cxt, "%d", xt) ; 
00597     strcat(name, cxt) ; 
00598     strcat(name, "^") ; 
00599 
00600     assert( m < 1000) ; 
00601     sprintf(cxt, "%d", m) ; 
00602     strcat(name, cxt) ; 
00603 }   
00604 
00605 
00606 void basename_t_leg_pp(int k, int j, char* name) {
00607 
00608     assert( k>=0 ) ; 
00609     assert( j>=0 ) ; 
00610 
00611     int m = 2 * (k / 2) ; 
00612      
00613     if (j < m/2) {
00614         strcpy (name, "unused") ; 
00615         return ; 
00616     }
00617     
00618     strcpy(name, "P_") ; 
00619 
00620     int xt = 2*j ; 
00621 
00622     char cxt[4] ;
00623     assert( xt < 1000) ; 
00624     sprintf(cxt, "%d", xt) ; 
00625     strcat(name, cxt) ; 
00626     strcat(name, "^") ; 
00627 
00628     assert( m < 1000) ; 
00629     sprintf(cxt, "%d", m) ; 
00630     strcat(name, cxt) ; 
00631 }   
00632 
00633 
00634 void basename_t_leg_i(int k, int j, char* name) {
00635 
00636     assert( k>=0 ) ; 
00637     assert( j>=0 ) ; 
00638 
00639     int m = k / 2 ;
00640      
00641     if (j < m/2 + m%2) {
00642         strcpy (name, "unused") ; 
00643         return ; 
00644     }
00645     
00646     strcpy(name, "P_") ; 
00647 
00648     int xt = (m%2 == 0) ? 2*j + 1 : 2*j ; 
00649 
00650     char cxt[4] ;
00651     assert( xt < 1000) ; 
00652     sprintf(cxt, "%d", xt) ; 
00653     strcat(name, cxt) ; 
00654     strcat(name, "^") ; 
00655 
00656     assert( m < 1000) ; 
00657     sprintf(cxt, "%d", m) ; 
00658     strcat(name, cxt) ; 
00659 }   
00660     
00661 
00662 void basename_t_leg_ip(int k, int j, char* name) {
00663 
00664     assert( k>=0 ) ; 
00665     assert( j>=0 ) ; 
00666 
00667     int m = 2 * (k / 2) ; 
00668      
00669     if (j < m/2) {
00670         strcpy (name, "unused") ; 
00671         return ; 
00672     }
00673     
00674     strcpy(name, "P_") ; 
00675 
00676     int xt = 2*j + 1 ; 
00677 
00678     char cxt[4] ;
00679     assert( xt < 1000) ; 
00680     sprintf(cxt, "%d", xt) ; 
00681     strcat(name, cxt) ; 
00682     strcat(name, "^") ; 
00683 
00684     assert( m < 1000) ; 
00685     sprintf(cxt, "%d", m) ; 
00686     strcat(name, cxt) ; 
00687 }   
00688 
00689 
00690 void basename_t_leg_pi(int k, int j, char* name) {
00691 
00692     assert( k>=0 ) ; 
00693     assert( j>=0 ) ; 
00694 
00695     int m = 2 * ((k-1) / 2) + 1 ; 
00696      
00697     if (j < m/2) {
00698         strcpy (name, "unused") ; 
00699         return ; 
00700     }
00701     
00702     strcpy(name, "P_") ; 
00703 
00704     int xt = 2*j + 1 ; 
00705 
00706     char cxt[4] ;
00707     assert( xt < 1000) ; 
00708     sprintf(cxt, "%d", xt) ; 
00709     strcat(name, cxt) ; 
00710     strcat(name, "^") ; 
00711 
00712     assert( m < 1000) ; 
00713     sprintf(cxt, "%d", m) ; 
00714     strcat(name, cxt) ; 
00715 }   
00716 
00717 
00718 void basename_t_leg_ii(int k, int j, char* name) {
00719 
00720     assert( k>=0 ) ; 
00721     assert( j>=0 ) ; 
00722 
00723     int m = 2 * ((k-1) / 2) + 1 ; 
00724      
00725     if (j < m/2 + 1) {
00726         strcpy (name, "unused") ; 
00727         return ; 
00728     }
00729     
00730     strcpy(name, "P_") ; 
00731 
00732     int xt = 2*j ; 
00733 
00734     char cxt[4] ;
00735     assert( xt < 1000) ; 
00736     sprintf(cxt, "%d", xt) ; 
00737     strcat(name, cxt) ; 
00738     strcat(name, "^") ; 
00739 
00740     assert( m < 1000) ; 
00741     sprintf(cxt, "%d", m) ; 
00742     strcat(name, cxt) ; 
00743 }   
00744 
00745     
00746     
00747     
00748     
00749     
00750     
00751     
00752     
00753     
00754     
00755     
00756     
00757     

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