00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 char base_val_manip_C[] = "$Header: /cvsroot/Lorene/C++/Source/Base_val/base_val_manip.C,v 1.9 2009/10/08 16:20:13 j_novak Exp $" ;
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050
00051
00052
00053
00054
00055
00056
00057
00058
00059
00060
00061
00062
00063
00064
00065
00066
00067
00068
00069
00070
00071
00072
00073 #include <stdlib.h>
00074 #include <assert.h>
00075
00076
00077 #include "headcpp.h"
00078 #include "type_parite.h"
00079 #include "base_val.h"
00080
00081 void Base_val::dsdx() {
00082
00083 switch(get_base_r(0)) {
00084 case R_CHEBP:
00085 set_base_r(0, R_CHEBI) ;
00086 break ;
00087 case R_CHEBI:
00088 set_base_r(0, R_CHEBP) ;
00089 break ;
00090 case R_CHEBPIM_P:
00091 set_base_r(0, R_CHEBPIM_I) ;
00092 break ;
00093 case R_CHEBPIM_I:
00094 set_base_r(0, R_CHEBPIM_P) ;
00095 break ;
00096 case R_CHEBPI_P:
00097 set_base_r(0, R_CHEBPI_I) ;
00098 break ;
00099 case R_CHEBPI_I:
00100 set_base_r(0, R_CHEBPI_P) ;
00101 break ;
00102 default:
00103 break ;
00104 }
00105 return ;
00106 }
00107
00108 void Base_val::sx() {
00109
00110 switch(get_base_r(0)) {
00111 case R_CHEBP:
00112 set_base_r(0, R_CHEBI) ;
00113 break ;
00114 case R_CHEBI:
00115 set_base_r(0, R_CHEBP) ;
00116 break ;
00117 case R_CHEBPIM_P:
00118 set_base_r(0, R_CHEBPIM_I) ;
00119 break ;
00120 case R_CHEBPIM_I:
00121 set_base_r(0, R_CHEBPIM_P) ;
00122 break ;
00123 case R_CHEBPI_P:
00124 set_base_r(0, R_CHEBPI_I) ;
00125 break ;
00126 case R_CHEBPI_I:
00127 set_base_r(0, R_CHEBPI_P) ;
00128 break ;
00129 default:
00130 break ;
00131 }
00132 return ;
00133 }
00134
00135 void Base_val::mult_x() {
00136
00137 switch(get_base_r(0)) {
00138 case R_CHEBP:
00139 set_base_r(0, R_CHEBI) ;
00140 break ;
00141 case R_CHEBI:
00142 set_base_r(0, R_CHEBP) ;
00143 break ;
00144 case R_CHEBPIM_P:
00145 set_base_r(0, R_CHEBPIM_I) ;
00146 break ;
00147 case R_CHEBPIM_I:
00148 set_base_r(0, R_CHEBPIM_P) ;
00149 break ;
00150 case R_CHEBPI_P:
00151 set_base_r(0, R_CHEBPI_I) ;
00152 break ;
00153 case R_CHEBPI_I:
00154 set_base_r(0, R_CHEBPI_P) ;
00155 break ;
00156 default:
00157 break ;
00158 }
00159 return ;
00160 }
00161
00162 void Base_val::dsdt() {
00163
00164 switch(get_base_t(0)) {
00165 case T_COS_P:
00166 set_base_t(T_SIN_P) ;
00167 break ;
00168 case T_COS_I:
00169 set_base_t(T_SIN_I) ;
00170 break ;
00171 case T_SIN_P:
00172 set_base_t(T_COS_P) ;
00173 break ;
00174 case T_SIN_I:
00175 set_base_t(T_COS_I) ;
00176 break ;
00177 case T_COSSIN_CP:
00178 set_base_t(T_COSSIN_SP) ;
00179 break ;
00180 case T_COSSIN_SP:
00181 set_base_t(T_COSSIN_CP) ;
00182 break ;
00183 case T_COSSIN_CI:
00184 set_base_t(T_COSSIN_SI) ;
00185 break ;
00186 case T_COSSIN_SI:
00187 set_base_t(T_COSSIN_CI) ;
00188 break ;
00189 case T_COSSIN_C:
00190 set_base_t(T_COSSIN_S) ;
00191 break ;
00192 case T_COSSIN_S:
00193 set_base_t(T_COSSIN_C) ;
00194 break ;
00195 case T_COS:
00196 set_base_t(T_SIN) ;
00197 break ;
00198 case T_SIN:
00199 set_base_t(T_COS) ;
00200 break ;
00201 default:
00202 cout << "Wrong base in Base_val::dsdt()!" << endl ;
00203 abort() ;
00204 exit(-1) ;
00205 break ;
00206 }
00207 return ;
00208 }
00209
00210 void Base_val::ssint() {
00211
00212 switch(get_base_t(0)) {
00213 case T_COS_P:
00214 set_base_t(T_SIN_I) ;
00215 break ;
00216 case T_COS_I:
00217 set_base_t(T_SIN_P) ;
00218 break ;
00219 case T_SIN_P:
00220 set_base_t(T_COS_I) ;
00221 break ;
00222 case T_SIN_I:
00223 set_base_t(T_COS_P) ;
00224 break ;
00225 case T_COSSIN_CP:
00226 set_base_t(T_COSSIN_SI) ;
00227 break ;
00228 case T_COSSIN_SP:
00229 set_base_t(T_COSSIN_CI) ;
00230 break ;
00231 case T_COSSIN_CI:
00232 set_base_t(T_COSSIN_SP) ;
00233 break ;
00234 case T_COSSIN_SI:
00235 set_base_t(T_COSSIN_CP) ;
00236 break ;
00237 case T_COSSIN_C:
00238 set_base_t(T_COSSIN_S) ;
00239 break ;
00240 case T_COSSIN_S:
00241 set_base_t(T_COSSIN_C) ;
00242 break ;
00243 case T_COS:
00244 set_base_t(T_SIN) ;
00245 break ;
00246 case T_SIN:
00247 set_base_t(T_COS) ;
00248 break ;
00249 default:
00250 cout << "Wrong base in Base_val::ssint()!" << endl ;
00251 abort() ;
00252 exit(-1) ;
00253 break ;
00254 }
00255 return ;
00256 }
00257
00258 void Base_val::mult_sint() {
00259
00260 switch(get_base_t(0)) {
00261 case T_COS_P:
00262 set_base_t(T_SIN_I) ;
00263 break ;
00264 case T_COS_I:
00265 set_base_t(T_SIN_P) ;
00266 break ;
00267 case T_SIN_P:
00268 set_base_t(T_COS_I) ;
00269 break ;
00270 case T_SIN_I:
00271 set_base_t(T_COS_P) ;
00272 break ;
00273 case T_COSSIN_CP:
00274 set_base_t(T_COSSIN_SI) ;
00275 break ;
00276 case T_COSSIN_SP:
00277 set_base_t(T_COSSIN_CI) ;
00278 break ;
00279 case T_COSSIN_CI:
00280 set_base_t(T_COSSIN_SP) ;
00281 break ;
00282 case T_COSSIN_SI:
00283 set_base_t(T_COSSIN_CP) ;
00284 break ;
00285 case T_COSSIN_C:
00286 set_base_t(T_COSSIN_S) ;
00287 break ;
00288 case T_COSSIN_S:
00289 set_base_t(T_COSSIN_C) ;
00290 break ;
00291 case T_COS:
00292 set_base_t(T_SIN) ;
00293 break ;
00294 case T_SIN:
00295 set_base_t(T_COS) ;
00296 break ;
00297 default:
00298 cout << "Wrong base in Base_val::mult_sint()!" << endl ;
00299 abort() ;
00300 exit(-1) ;
00301 break ;
00302 }
00303 return ;
00304 }
00305
00306 void Base_val::mult_cost() {
00307
00308 switch(get_base_t(0)) {
00309 case T_COS_P:
00310 set_base_t(T_COS_I) ;
00311 break ;
00312 case T_COS_I:
00313 set_base_t(T_COS_P) ;
00314 break ;
00315 case T_SIN_P:
00316 set_base_t(T_SIN_I) ;
00317 break ;
00318 case T_SIN_I:
00319 set_base_t(T_SIN_P) ;
00320 break ;
00321 case T_COSSIN_CP:
00322 set_base_t(T_COSSIN_CI) ;
00323 break ;
00324 case T_COSSIN_SP:
00325 set_base_t(T_COSSIN_SI) ;
00326 break ;
00327 case T_COSSIN_CI:
00328 set_base_t(T_COSSIN_CP) ;
00329 break ;
00330 case T_COSSIN_SI:
00331 set_base_t(T_COSSIN_SP) ;
00332 break ;
00333 case T_COSSIN_C:
00334 set_base_t(T_COSSIN_C) ;
00335 break ;
00336 case T_COSSIN_S:
00337 set_base_t(T_COSSIN_S) ;
00338 break ;
00339 case T_COS:
00340 set_base_t(T_COS) ;
00341 break ;
00342 case T_SIN:
00343 set_base_t(T_SIN) ;
00344 break ;
00345 default:
00346 cout << "Wrong base in Base_val::mult_cost()!" << endl ;
00347 abort() ;
00348 exit(-1) ;
00349 break ;
00350 }
00351 return ;
00352 }
00353
00354 void Base_val::ylm() {
00355
00356 switch(get_base_t(0)) {
00357 case T_COS_P:
00358 set_base_t(T_LEG_PP) ;
00359 break ;
00360 case T_COS_I:
00361 set_base_t(T_LEG_IP) ;
00362 break ;
00363 case T_SIN_I:
00364 set_base_t(T_LEG_PI) ;
00365 break ;
00366 case T_SIN_P:
00367 set_base_t(T_LEG_II) ;
00368 break ;
00369 case T_COSSIN_CP:
00370 set_base_t(T_LEG_P) ;
00371 break ;
00372 case T_COSSIN_CI:
00373 set_base_t(T_LEG_I) ;
00374 break ;
00375 case T_COSSIN_C:
00376 set_base_t(T_LEG) ;
00377 break ;
00378 case T_COSSIN_S:
00379 set_base_t(T_LEG) ;
00380 break ;
00381 case T_COS:
00382 set_base_t(T_LEG_MP) ;
00383 break ;
00384 default:
00385 cout << "Wrong base in Base_val::ylm()!" << endl ;
00386 abort() ;
00387 exit(-1) ;
00388 break ;
00389 }
00390 return ;
00391 }