Ejemplo n.º 1
0
bool cutFlowHandler::mask()
{
	for(TMapiP2cc::iterator ii=list->begin() ; ii!=list->end() ; ++ii)
	{
		int num    = ii->first;
		string str = (string)ii->second;
		_INFO("["+tostring(num)+"]="+str);
		
		if(str=="obj")
		{
			if(Next(ii)=="NAME")    name    = Next(ii); else {_ERROR("obj: failed to read NAME->"+PreviousStay(ii)); return false;}
			if(Next(ii)=="FLAG")    flag    = Next(ii); else {_ERROR("obj NAME:"+name+" -> failed to read FLAG->"+PreviousStay(ii)); return false;}
			if(Next(ii)=="order")   order   = Next(ii); else {_ERROR("obj NAME:"+name+" -> failed to read order->"+PreviousStay(ii)); return false;}
			if(Next(ii)=="phase")   phase   = Next(ii); else {_ERROR("obj NAME:"+name+" -> failed to read phase->"+PreviousStay(ii)); return false;}
			if(Next(ii)=="skip")    skip    = Next(ii); else {_ERROR("obj NAME:"+name+" -> failed to read skip->"+PreviousStay(ii)); return false;}
			if(Next(ii)=="nparameters") nparameters = Next(ii); else {_ERROR("obj NAME:"+name+" -> failed to read nparameters->"+PreviousStay(ii)); return false;}
			_INFO("NAME="+name+", FLAG="+flag+", order="+order+", phase="+phase+", skip="+skip+", nparameters="+nparameters);

			if(Next(ii)=="parameters")
			{
				vdtmp.clear();
				for(int v=1 ; v<=validate_int(nparameters) ; ++v)
				{
					if(Next(ii)=="parameter") /* do nothing*/
					if(Next(ii)=="NAME")  attrname  = Next(ii); else {_ERROR("obj NAME:"+name+" -> failed to read NAME->"+PreviousStay(ii)); return false;}
					if(Next(ii)=="ORDER") attrorder = Next(ii); else {_ERROR("obj NAME:"+name+" -> failed to read ORDER->"+PreviousStay(ii)); return false;}
					if(Next(ii)=="TYPE")  attrtype  = Next(ii); else {_ERROR("obj NAME:"+name+" -> failed to read TYPE->"+PreviousStay(ii)); return false;}
					val = Next(ii);
					_INFO("\tparameter["+tostring(v)+"] NAME="+attrname+", ORDER="+attrorder+", TYPE="+attrtype+", val="+val);
					// HAVE TO CHECK THE TYPE !!!!!
					vdtmp.push_back(validate_double(val));
				}
				if((int)vdtmp.size() != validate_int(nparameters)) {_ERROR("vector size doesn't match nparameters"); return false;}
			}
			else {_ERROR("obj NAME:"+name+" -> failed to read parameters->"+PreviousStay(ii)); return false;}
			
			if(Next(ii)=="description") description = Next(ii); else {_ERROR("obj NAME:"+name+" -> failed to read description->"+PreviousStay(ii)); return false;}
			_INFO("description="+description);

			m_cutFlowOrdered->insert(     make_pair(validate_double(order),name) );
			m_cutFlowTypeOrdered->insert( make_pair(validate_double(order),phase) );
			m_cutFlowNumbers->insert(     make_pair(name,0) );
			m_cutFlowMapSVD->insert(      make_pair(name,vdtmp) );
			m_cutsFlowSkipMap->insert(    make_pair(name,validate_bool(skip)) );
		}
	}
	return true;
}
Ejemplo n.º 2
0
// verify lossless compression or measure loss
static int
validate(const void* data, const void* copy, size_t count, int type, int lossless)
{
  if (lossless) {
    if (!(type == FPZIP_TYPE_FLOAT ? validate_float((const float*)data, (const float*)copy, count) : validate_double((const double*)data, (const double*)copy, count)))
      return 0;
  }
  else
    fprintf(stderr, "rmse=%g\n", (type == FPZIP_TYPE_FLOAT ? error_float((const float*)data, (const float*)copy, count) : error_double((const double*)data, (const double*)copy, count)));
  return 1;
}