00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028 char base_val_name_r_C[] = "$Header: /cvsroot/Lorene/C++/Source/Base_val/base_val_name_r.C,v 1.3 2007/12/11 15:28:09 jl_cornou Exp $" ;
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050 #include <string.h>
00051 #include <stdlib.h>
00052
00053
00054 #include "base_val.h"
00055
00056
00057 void basename_r_unknown(int, int, int, char*) ;
00058 void basename_r_cheb(int, int, int, char*) ;
00059 void basename_r_chebp(int, int, int, char*) ;
00060 void basename_r_chebi(int, int, int, char*) ;
00061 void basename_r_chebpim_p(int, int, int, char*) ;
00062 void basename_r_chebpim_i(int, int, int, char*) ;
00063 void basename_r_chebpi_p(int, int, int, char*) ;
00064 void basename_r_chebpi_i(int, int, int, char*) ;
00065 void basename_r_jaco02(int, int, int, char*) ;
00066
00067
00068
00069
00070
00071 void Base_val::name_r(int l, int k, int j, int i, char* name) const {
00072
00073
00074 static void(*vbasename_r[MAX_BASE])(int, int, int, char*) ;
00075
00076 static bool first_call = true ;
00077
00078
00079
00080 if ( first_call ) {
00081
00082 first_call = false ;
00083
00084 for (int ib=0 ; ib<MAX_BASE ; ib++) {
00085 vbasename_r[ib] = basename_r_unknown ;
00086 }
00087
00088 vbasename_r[R_CHEB >> TRA_R] = basename_r_cheb ;
00089 vbasename_r[R_CHEBP >> TRA_R] = basename_r_chebp ;
00090 vbasename_r[R_CHEBI >> TRA_R] = basename_r_chebi ;
00091 vbasename_r[R_CHEBPIM_P >> TRA_R] = basename_r_chebpim_p ;
00092 vbasename_r[R_CHEBPIM_I >> TRA_R] = basename_r_chebpim_i ;
00093 vbasename_r[R_CHEBU >> TRA_R] = basename_r_cheb ;
00094 vbasename_r[R_CHEBPI_P >> TRA_R] = basename_r_chebpi_p ;
00095 vbasename_r[R_CHEBPI_I >> TRA_R] = basename_r_chebpi_i ;
00096 vbasename_r[R_JACO02 >> TRA_R] = basename_r_jaco02 ;
00097 }
00098
00099
00100
00101
00102 assert( (l>=0) && (l<nzone) ) ;
00103
00104 int base_r = ( b[l] & MSQ_R ) >> TRA_R ;
00105
00106 vbasename_r[base_r](k, j, i, name) ;
00107
00108 }
00109
00110
00111
00112
00113
00114
00115 void basename_r_unknown(int, int, int, char*) {
00116 cout << "Base_val::name_r : unknwon basis !" << endl ;
00117 abort() ;
00118 }
00119
00120
00121 void basename_r_cheb(int, int, int i, char* name) {
00122
00123 assert( i>=0 ) ;
00124
00125 strcpy(name, "T") ;
00126
00127 char cxr[4] ;
00128 assert( i < 1000) ;
00129 sprintf(cxr, "%d", i) ;
00130 strcat(name, cxr) ;
00131 }
00132
00133
00134 void basename_r_chebp(int, int, int i, char* name) {
00135
00136 assert( i>=0 ) ;
00137
00138 strcpy(name, "T") ;
00139
00140 int xr = 2*i ;
00141 char cxr[4] ;
00142 assert( xr < 1000) ;
00143 sprintf(cxr, "%d", xr) ;
00144 strcat(name, cxr) ;
00145 }
00146
00147
00148 void basename_r_chebi(int, int, int i, char* name) {
00149
00150 assert( i>=0 ) ;
00151
00152 strcpy(name, "T") ;
00153
00154 int xr = 2*i + 1 ;
00155 char cxr[4] ;
00156 assert( xr < 1000) ;
00157 sprintf(cxr, "%d", xr) ;
00158 strcat(name, cxr) ;
00159 }
00160
00161
00162 void basename_r_chebpim_p(int k, int, int i, char* name) {
00163
00164 assert( k>=0 ) ;
00165 assert( i>=0 ) ;
00166
00167 int m = k / 2 ;
00168 int xr = (m%2 == 0) ? 2*i : 2*i + 1 ;
00169
00170 strcpy(name, "T") ;
00171
00172 char cxr[4] ;
00173 assert( xr < 1000) ;
00174 sprintf(cxr, "%d", xr) ;
00175 strcat(name, cxr) ;
00176 }
00177
00178
00179 void basename_r_chebpim_i(int k, int, int i, char* name) {
00180
00181 assert( k>=0 ) ;
00182 assert( i>=0 ) ;
00183
00184 int m = k / 2 ;
00185 int xr = (m%2 == 0) ? 2*i + 1 : 2*i ;
00186
00187 strcpy(name, "T") ;
00188
00189 char cxr[4] ;
00190 assert( xr < 1000) ;
00191 sprintf(cxr, "%d", xr) ;
00192 strcat(name, cxr) ;
00193 }
00194
00195 void basename_r_chebpi_p(int , int j, int i, char* name) {
00196
00197 assert( j>=0 ) ;
00198 assert( i>=0 ) ;
00199
00200 int xr = (j%2 == 0) ? 2*i : 2*i + 1 ;
00201
00202 strcpy(name, "T") ;
00203
00204 char cxr[4] ;
00205 assert( xr < 1000) ;
00206 sprintf(cxr, "%d", xr) ;
00207 strcat(name, cxr) ;
00208 }
00209
00210
00211 void basename_r_chebpi_i(int , int j, int i, char* name) {
00212
00213 assert( j>=0 ) ;
00214 assert( i>=0 ) ;
00215
00216 int xr = (j%2 == 0) ? 2*i + 1 : 2*i ;
00217
00218 strcpy(name, "T") ;
00219
00220 char cxr[4] ;
00221 assert( xr < 1000) ;
00222 sprintf(cxr, "%d", xr) ;
00223 strcat(name, cxr) ;
00224 }
00225
00226
00227 void basename_r_jaco02(int, int, int i, char* name) {
00228
00229 assert( i>=0 ) ;
00230
00231 strcpy(name, "J") ;
00232
00233 char cxr[4] ;
00234 assert( i < 1000) ;
00235 sprintf(cxr, "%d", i) ;
00236 strcat(name, cxr) ;
00237 }
00238
00239
00240
00241
00242
00243
00244
00245
00246