void CNbzHandler::DataIntegrateForCompensate(CMapStringToString& mstr,int indexmax) { mstr.SetAt("0.005","0"); mstr.SetAt("0.01","1"); mstr.SetAt("0.02","2"); mstr.SetAt("0.05","3"); mstr.SetAt("0.1","4"); mstr.SetAt("0.2","5"); mstr.SetAt("0.5","6"); mstr.SetAt("1","7"); mstr.SetAt("2","8"); mstr.SetAt("5","9"); mstr.SetAt("5","10"); static int g_Digipos[] = {-7,-6,-6,-6,-5,-5,-5,-4,-4,-4,-3}; static int g_Mantissa[]= { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}; CString perrecord; int ipos = indexmax; while(ipos-- > 0) { CString sid; double accuracy; sid.Format("Z%d",ipos); if(mstr.Lookup(sid,perrecord)) { if(perrecord.Find("--") >= 0) continue; sid.Format("jhsel%d",INDEX2GROUP(ipos)); if(!mstr.Lookup(sid,sid)) continue;//retrieve the jhsel accuracy = atof(sid)/100.0; if(!mstr.Lookup(sid,sid)) continue;//translate the jhsel perrecord = DataIntergrate(ipos,atof(perrecord),g_Digipos[atoi(sid)]-2,g_Mantissa[atoi(sid)]); sid=SJD2SByPosition(GetDiffData(ipos,atof(perrecord),accuracy),INDEX2GROUP(ipos)+g_Digipos[atoi(sid)]-3); if(!CheckData(ipos,atof(perrecord),accuracy)) { sid = "<font color='red'>"+sid+"</font>"; } perrecord = sid; sid.Format("Z%d",ipos); mstr.SetAt(sid,perrecord); } } }
void JPlotLinearFit::AdjustDiffData() { JFloat B = itsBParameter; JPlotDataBase* pwd = GetDiffData(); J2DDataPoint dataD; J2DDataPoint data; const JSize count = pwd->GetElementCount(); for (JSize i = 1; i <= count; i++) { pwd->GetElement(i, &dataD); GetData()->GetElement(i, &data); JFloat yerr; if (GetData()->HasYErrors() || GetData()->HasXErrors()) { yerr = sqrt(data.yerr*data.yerr + B*B*data.y*data.y*data.xerr*data.xerr); AdjustDiffDataValue(i, yerr); } } }
PRGINTERFACE_API void DataIntegrateForCompensate(CMapStringToString &mstr,int indexmax) { CString perrecord; int ipos = indexmax; zero = 0.0; if(mstr.Lookup(_T("Z19"),perrecord) && (perrecord.FindOneOf("0123456789") >= 0)){ zero = atof(perrecord); } z14 = 0; if(mstr.Lookup(_T("Z14"),perrecord) && (perrecord.FindOneOf("0123456789") >= 0)){ z14 = atoi(perrecord); } while(ipos-- > 0) { CString sid; double accuracy; sid.Format("Z%d",ipos); if(mstr.Lookup(sid,perrecord) && (perrecord.FindOneOf("0123456789") >= 0)) { if(perrecord.Find("--") >= 0) continue; sid.Format("jhsel%d",INDEX2GROUP(ipos)); if(!mstr.Lookup(sid,sid) || sid.FindOneOf("0123456789") < 0) continue;//retrieve the jhsel accuracy = atof(sid)/100.0; int iid = CheckPrecious(sid); if(iid < 0) continue;//translate the jhsel perrecord = DataIntergrate(ipos,atof(perrecord),g_PrecBase[iid].iDigipos-2,g_PrecBase[iid].iMantissa); sid=SJD2SByPosition(GetDiffData(ipos,atof(perrecord),accuracy),INDEX2GROUP(ipos)+g_PrecBase[iid].iDigipos-3); if(!CheckData(ipos,atof(perrecord),accuracy)) { sid = "<font color='red'>"+sid+"</font>"; } perrecord = sid; sid.Format("Z%d",ipos); mstr.SetAt(sid,perrecord); } } }