Ignore:
Timestamp:
Aug 13, 2002, 12:38:56 PM (23 years ago)
Author:
cmv
Message:

disparition de varop dans skymapmodule.cc

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/SophyaPI/ProgPI/skymapmodule.cc

    r2178 r2179  
    6868  void ClOper(vector<string>& tokens);
    6969  void ClRebin(vector<string>& tokens);
    70   void VarOper(vector<string>& tokens);
    7170protected:
    7271  void SetTypeMap(vector<string>& tokens);
     
    256255mpiac->RegisterCommand(kw, usage, this, hgrp);
    257256
    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 
    266257DefTypMap = HealPix;
    267258}
     
    416407  }
    417408  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);
    424409}
    425410
     
    610595 if(tokens.size()>2) {
    611596   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);
    613598   omg.SetVar(tokens[2],(string)str);
    614599   cout<<" stored into $"<<tokens[2];
     
    11601145 if(tokens.size()>2) if(tokens[2][0]!='!') {
    11611146   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);
    11631148   omg.SetVar(tokens[2],(string)str);
    11641149   cout<<" mean stored into $"<<tokens[2];
     
    11661151 if(tokens.size()>3) if(tokens[3][0]!='!') {
    11671152   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);
    11691154   omg.SetVar(tokens[3],(string)str);
    11701155   cout<<" sigma stored into $"<<tokens[3];
     
    12701255 if(tokens.size()>2) {
    12711256   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);
    12731258   omg.SetVar(tokens[2],(string)str);
    12741259   cout<<" stored into $"<<tokens[2];
     
    14021387}
    14031388
    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 
    14421389////////////////////////////////////////////////////////////
    14431390
Note: See TracChangeset for help on using the changeset viewer.