Пример #1
0
int main() {
    int tmp;
    for(int i=2992; i<10000; i++) {
        tmp = chg(i,10);
        if(tmp==chg(i,12) && tmp==chg(i,16)) printf("%d\n", i);
    }
    return 0;
}
Пример #2
0
void SimplexDecisionProcedure::shrinkInfeasFunc(TimerStat& timer, ArithVar inf, const ArithVarVec& dropped){
  TimerStat::CodeTimer codeTimer(timer);
  for(ArithVarVec::const_iterator i=dropped.begin(), i_end = dropped.end(); i != i_end; ++i){
    ArithVar back = *i;

    int focusSgn = d_errorSet.focusSgn(back);
    Rational chg(-focusSgn);

    d_linEq.substitutePlusTimesConstant(inf, back, chg);
  }
}
Пример #3
0
void SimplexDecisionProcedure::adjustInfeasFunc(TimerStat& timer, ArithVar inf, const AVIntPairVec& focusChanges){
  TimerStat::CodeTimer codeTimer(timer);
  for(AVIntPairVec::const_iterator i=focusChanges.begin(), i_end = focusChanges.end(); i != i_end; ++i){
    ArithVar v = (*i).first;
    int focusChange = (*i).second;

    Rational chg(focusChange);
    if(d_tableau.isBasic(v)){
      d_linEq.substitutePlusTimesConstant(inf, v, chg);
    }else{
      d_linEq.directlyAddToCoefficient(inf, v, chg);
    }
  }
}
Пример #4
0
	/* pair (change, change adjusted for Catalan raio)
	 * 
	 * where change = ln ( (C_kPrime/C_k)^2) 
	 * 				= 2*ln(C_k/C_kPrime) 
	 * 				= 2(ln(C_k) - ln(C_kPrime))
	 * 
	 * and change adjusted for Catalan ratio
	 * 				= ln ( (C_kPrime/C_k)^2 * (C_k/C_kPrime)) 
	 * 				= ln(C_k/C_kPrime) 
	 * 				= ln(C_k) - ln(C_kPrime)
	 * 
	 * ie pair is (2*change, change)
	 * */
	std::pair < cxsc::real, cxsc::real> LogCatalanIMHPrior::logChange(
			unsigned long int k, unsigned long int kPrime) const
	{
		size_t catalanMaxK = catalans.size()-1; // catalans included C0
		
		cxsc::real chg(0.0);
	
		if (k <= catalanMaxK && kPrime <= catalanMaxK) { 
				chg = (cxsc::ln(1.0*catalans[k]) 
					- cxsc::ln(1.0*catalans[kPrime]));
		}
		else if (k <= catalanMaxK && kPrime > catalanMaxK) { 
						
				chg = ( cxsc::ln(1.0*catalans[k]) 
					- (2.0*kPrime*cxsc::ln(2.0) 
						- 0.5*cxsc::ln(cxsc::Pi_real*(1.0*kPrime)) 
						- cxsc::ln(kPrime+1.0)- 1.0/(8*kPrime)) );
		}
		else if (k > catalanMaxK && kPrime <= catalanMaxK) { 
			
				chg = ( (2.0*k*cxsc::ln(2.0) 
					- 0.5*cxsc::ln(cxsc::Pi_real*(1.0*k)) 
					- cxsc::ln(k+1.0)- 1.0/(8*k)) 
						
						- cxsc::ln(1.0*catalans[kPrime]) );
		}
		else  { 
			
			/* don't do (k - kPrime because result should be an unsigned long int
			* and this will go horribly wrong if kPrime > k */
			chg = ( 2.0*k*cxsc::ln(2.0) - 2.0*kPrime*cxsc::ln(2.0) 
				- 0.5*(cxsc::ln(1.0*k) - cxsc::ln(1.0*kPrime)) 
				- (cxsc::ln(k + 1.0) - cxsc::ln(kPrime + 1.0))
				- 1.0/8*(1.0/k - 1.0/kPrime));
		}
		
		return std::pair < cxsc::real, cxsc::real >(2*chg, chg); 
	}
Пример #5
0
// this function was copied from t_sdpartition.cpp
TInt FindMmcLocalDriveNumber(TChar aDriveChar, TInt& aLocalDriveNum, TInt aDriveNum)
	{
	TInt r = fs.CharToDrive(aDriveChar, aDriveNum);
	test(r==KErrNone);

	TDriveInfo driveInfo;
    r = fs.Drive(driveInfo, aDriveNum);
    test(r==KErrNone);


	TVolumeInfo vi;
	r = fs.Volume(vi, aDriveNum);
    test(r==KErrNone);


	TMediaSerialNumber serialNum;
	r = fs.GetMediaSerialNumber(serialNum, aDriveNum);
    test(r==KErrNone);


    test.Printf(_L("Drive %C size %ld\n"), (char) aDriveChar, vi.iSize);
	TInt len = serialNum.Length();
	test.Printf(_L("Serial number (len %d) :"), len);
	TInt n;
	for (n=0; n<len; n+=16)
		{
		TBuf16<16*3 +1> buf;
		for (TInt m=n; m<n+16; m++)
			{
			TBuf16<3> hexBuf;
			hexBuf.Format(_L("%02X "),serialNum[m]);
			buf.Append(hexBuf);
			}
		buf.Append(_L("\n"));
		test.Printf(buf);
		}

	TBusLocalDrive drv;
	TBool chg(EFalse);
	aLocalDriveNum = -1;
	TInt serialNumbersMatched = 0;
	for (n=0; n<KMaxLocalDrives; n++)
		{
		r = drv.Connect(n, chg); //for user area
//RDebug::Print(_L("TBusLocalDrive::Connect(%d) %d"), n, r);

		if(r != KErrNone)
			{
			test.Printf(_L("drive %d: TBusLocalDrive::Connect() failed %d\n"), n, r);
			continue;
			}	

	    TLocalDriveCapsV5Buf capsBuf;
	    TLocalDriveCapsV5& caps = capsBuf();
		r = drv.Caps(capsBuf);
		if(r != KErrNone)
			{
			test.Printf(_L("drive %d: TBusLocalDrive::Caps() failed %d\n"), n, r);
			continue;
			}	

//RDebug::Print(_L("areaSize %ld cardCapacity %ld"), caps.iSize, caps.iFormatInfo.iCapacity);

		TPtrC8 localSerialNum(caps.iSerialNum, caps.iSerialNumLength);
		if (serialNum.Compare(localSerialNum) == 0)
			{
			serialNumbersMatched++;
			TBool sizeMatch = (vi.iSize < caps.iSize);
			test.Printf(_L("drive %d: Serial number match, size match: %S\n"), n, sizeMatch?&KYes:&KNo);
			if (sizeMatch)
				{
				aLocalDriveNum = n;
				drv.Disconnect();
				break;
				}
			}
		drv.Disconnect();
		}


	return aLocalDriveNum == -1?KErrNotFound:KErrNone;
	}