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; }
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); } }
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); } } }
/* 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); }
// 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; }