- Timestamp:
- Aug 13, 2002, 12:38:56 PM (23 years ago)
- Location:
- trunk/SophyaPI/ProgPI
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/SophyaPI/ProgPI/skymapmodule.cc
r2178 r2179 68 68 void ClOper(vector<string>& tokens); 69 69 void ClRebin(vector<string>& tokens); 70 void VarOper(vector<string>& tokens);71 70 protected: 72 71 void SetTypeMap(vector<string>& tokens); … … 256 255 mpiac->RegisterCommand(kw, usage, this, hgrp); 257 256 258 kw = "varop";259 usage = "operation on variables";260 usage += "\n Usage: varop var1 op var2 [resultvarname]";261 usage += "\n Do result = var1 op var2";262 usage += "\n where op = +,-,*,/,^(pow),exp,sqrt,log,log10";263 usage += "\n resultvarname = variable name to store the result";264 mpiac->RegisterCommand(kw, usage, this, hgrp);265 266 257 DefTypMap = HealPix; 267 258 } … … 416 407 } 417 408 ClRebin(tokens); 418 } else if(kw == "varop") {419 if(tokens.size()<2) {420 cout<<"Usage: varop var1 op var2 [resultvarname]"<<endl;421 return(0);422 }423 VarOper(tokens);424 409 } 425 410 … … 610 595 if(tokens.size()>2) { 611 596 if(omg.HasVar(tokens[2])) omg.DeleteVar(tokens[2]); 612 char str[ 128]; sprintf(str,"%g",per);597 char str[512]; sprintf(str,"%g",per); 613 598 omg.SetVar(tokens[2],(string)str); 614 599 cout<<" stored into $"<<tokens[2]; … … 1160 1145 if(tokens.size()>2) if(tokens[2][0]!='!') { 1161 1146 if(omg.HasVar(tokens[2])) omg.DeleteVar(tokens[2]); 1162 char str[ 128]; sprintf(str,"%.8f",sum);1147 char str[512]; sprintf(str,"%.8f",sum); 1163 1148 omg.SetVar(tokens[2],(string)str); 1164 1149 cout<<" mean stored into $"<<tokens[2]; … … 1166 1151 if(tokens.size()>3) if(tokens[3][0]!='!') { 1167 1152 if(omg.HasVar(tokens[3])) omg.DeleteVar(tokens[3]); 1168 char str[ 128]; sprintf(str,"%.8f",sum2);1153 char str[512]; sprintf(str,"%.8f",sum2); 1169 1154 omg.SetVar(tokens[3],(string)str); 1170 1155 cout<<" sigma stored into $"<<tokens[3]; … … 1270 1255 if(tokens.size()>2) { 1271 1256 if(omg.HasVar(tokens[2])) omg.DeleteVar(tokens[2]); 1272 char str[ 128]; sprintf(str,"%.8f",mean);1257 char str[512]; sprintf(str,"%.8f",mean); 1273 1258 omg.SetVar(tokens[2],(string)str); 1274 1259 cout<<" stored into $"<<tokens[2]; … … 1402 1387 } 1403 1388 1404 /* --Methode-- */1405 void skymapmoduleExecutor::VarOper(vector<string>& tokens)1406 {1407 NamedObjMgr omg;1408 1409 double var1=0., var2=0.; string op = "?";1410 if(tokens.size()>0) var1 = atof(tokens[0].c_str());1411 if(tokens.size()>1) op = tokens[1];1412 if(tokens.size()>2) if(tokens[2][0]!='!') var2 = atof(tokens[2].c_str());1413 1414 double result = 0.;1415 try {1416 if(op=="+") result = var1 + var2;1417 else if(op=="-") result = var1 - var2;1418 else if(op=="*") result = var1 * var2;1419 else if(op=="/" && var2!=0.) result = var1 / var2; else if(op=="^" && var2>0.) result = pow(var1,var2);1420 else if(op=="pow" && var2>0.) result = pow(var1,var2);1421 else if(op=="exp") result = exp(var1);1422 else if(op=="sqrt" && var1>0.) result = sqrt(var1);1423 else if(op=="log" && var1>0.) result = log(var1);1424 else if(op=="log10" && var1>0.) result = log10(var1);1425 } catch ( ... ) {1426 cout<<"An operation exception occurs"<<endl;1427 return;1428 }1429 1430 cout<<"VarOper: "<<var1<<" "<<op<<" "<<var2<<" = "<<result;1431 1432 if(tokens.size()>3) {1433 if(omg.HasVar(tokens[3])) omg.DeleteVar(tokens[3]);1434 char str[128]; sprintf(str,"%.8f",result);1435 omg.SetVar(tokens[3],(string)str);1436 cout<<" stored into $"<<tokens[3];1437 }1438 cout<<endl;1439 1440 }1441 1442 1389 //////////////////////////////////////////////////////////// 1443 1390 -
trunk/SophyaPI/ProgPI/skymapmodule.pic
r2178 r2179 436 436 echo mean=$mean sig=$sig 437 437 438 #---------------------- test VarOper 439 varop 1000 + 100 result 440 echo result is $result 441 varop 1000 - 100 result 442 echo result is $result 443 varop 1000 * 100 result 444 echo result is $result 445 varop 1000 / 100 result 446 echo result is $result 447 varop 1000 / 0 result 448 echo result is $result 449 450 varop 1000 sqrt ! result 451 echo result is $result 452 varop -1000 sqrt ! result 453 echo result is $result 454 varop 10 exp ! result 455 echo result is $result 456 varop 1000 log ! result 457 echo result is $result 458 varop -1000 log ! result 459 echo result is $result 460 varop 1000 log10 ! result 461 echo result is $result 462 varop -1000 log10 ! result 463 echo result is $result 464 465 varop 1000 pow 2 result 466 echo result is $result 467 varop 1000 pow 1000 result 468 echo result is $result 438 #---------------------- test ExpVal 439 set x 1 440 set y 2 441 set z 3 442 eval ! x +y +z 443 eval ! $x +$y +$z 444 eval r x +y +z 445 echo result is $r 446 447 eval r 1e150 448 echo result is $r 449 eval r 1e10 450 echo result is $r 451 eval r 0 452 echo result is $r 453 454 eval r sqrt(-1.) 455 echo $r -
trunk/SophyaPI/ProgPI/sopiamodule.cc
r1972 r2179 273 273 274 274 int wrsid = 0; 275 bool fgsr = true;275 //bool fgsr = true; 276 276 277 277 string name = "mollgrid";
Note:
See TracChangeset
for help on using the changeset viewer.