Beispiel #1
0
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);
			}
		}
}
Beispiel #3
0
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);
		}
	}
}