//--------------------------------------------------------------------------- double *GetDerivativesForState(double epoch, double state[], int stateDim, double dt, int order, int *pdim) { double *retval = NULL; static double *deriv = NULL; int modelIndex = *pdim; if (modelIndex > 0) if (odeTable.find(*pdim) != odeTable.end()) { ode = odeTable[modelIndex]; pSetup = setupTable[modelIndex]; } if (ode != NULL) { if (SetState(epoch, state, stateDim) == 0) { double *dvState = GetState(); *pdim = GetStateSize(); if (deriv == NULL) deriv = new double[*pdim]; ode->GetDerivatives(dvState, dt, order); const double *ddt = ode->GetDerivativeArray(); memcpy(deriv, ddt, *pdim * sizeof(double)); retval = deriv; } } return retval; }
void cScenarioBallRL::InitTupleBuffer() { mTupleBuffer.resize(gTupleBufferSize); for (int i = 0; i < gTupleBufferSize; ++i) { mTupleBuffer[i] = tExpTuple(GetStateSize(), GetActionSize()); } }
void cScenarioBallRL::Init() { SetupController(); mCurrTuple = tExpTuple(GetStateSize(), GetActionSize()); InitTupleBuffer(); InitTrainer(); InitLearner(); InitGround(); Reset(); }
int CCodecBase::InternalSetStateWrapper(const void *pState, size_t cb) { if (IsLogWriterInitializedOrDebugBuild()) { char buf[256]; FormatBinary(buf, pState, cb, GetStateSize()); LOGPRINTF("%p CCodecBase::InternalSetStateWrapper(pState=%s, cb=%" PRIuSZT ")", this, buf, cb); } int ret = InternalSetState(pState, cb); LOGPRINTF("%p CCodecBase::InternalSetStateWrapper return %d", this, ret); return ret; }
bool CHIC::getState() { bool bResult = isOpen(); if (!bResult) { TRACE("CHIC::getState: %s Not open\n", bResult ? "OK" : "FAIL"); return bResult; } try { if (m_pState) { ASSERT(0 < m_ulStateSize); delete [] m_pState; m_ulStateSize = 0L; } ASSERT(0L == m_ulStateSize); m_ulStateSize = GetStateSize(); bResult = (0 < m_ulStateSize); if (!bResult) { TRACE("CHIC::getState: %s bad size\n", bResult ? "OK" : "FAIL"); return bResult; } // TODO, Possible memory leak, where is the delete operation of the new below done although there is a delete in catch m_pState = new char[m_ulStateSize]; LRESULT lResult = ::ICGetState(m_hIC, m_pState, m_ulStateSize); // bResult = (lResult == m_ulStateSize ); ==> C4389 Warning, type mismatch bResult = ( lResult - m_ulStateSize == 0 ); // Save if (!bResult) throw "ICGetState failed"; } catch(...) { bResult = false; if (m_pState) { ASSERT(0 < m_ulStateSize); delete [] m_pState, m_pState = 0; m_ulStateSize = 0L; } ASSERT(0L == m_ulStateSize); } TRACE("CHIC::getState: %s\n", bResult ? "OK" : "FAIL"); return bResult; }
//--------------------------------------------------------------------------- double *GetDerivatives(double dt, int order, int *pdim) { double *retval = NULL; static double *deriv = NULL; int modelIndex = *pdim; char dvData[1024]; sprintf(dvData, "ODE Model index: %d\n", modelIndex); lastMsg = dvData; if (modelIndex > 0) if (odeTable.find(*pdim) != odeTable.end()) { ode = odeTable[modelIndex]; pSetup = setupTable[modelIndex]; } if (ode != NULL) { double *state = GetState(); int dim = GetStateSize(); *pdim = dim; if (deriv == NULL) deriv = new double[dim]; ode->GetDerivatives(state, dt, order); const double *ddt = ode->GetDerivativeArray(); sprintf(dvData, " %lf\n %lf\n %lf\n %le\n %le\n %le\n " "%le\n %le\n %le\n %le\n %le\n %le\n", state[0], state[1], state[2], state[3], state[4], state[5], ddt[0], ddt[1], ddt[2], ddt[3], ddt[4], ddt[5]); lastMsg += dvData; memcpy(deriv, ddt, dim * sizeof(double)); retval = deriv; lastMsg += ode->GetGeneratingString(Gmat::NO_COMMENTS); } return retval; }
int CCodecBase::SaveConfig(void) { #ifdef _WIN32 HKEY hkUtVideo; DWORD dwSaveConfig; DWORD cb; DWORD dwType; char buf[16]; char szValueName[16]; if (RegCreateKeyEx(HKEY_CURRENT_USER, "Software\\Ut Video Codec Suite", 0, NULL, 0, KEY_ALL_ACCESS, NULL, &hkUtVideo, NULL) != ERROR_SUCCESS) return -1; cb = sizeof(DWORD); if (RegQueryValueEx(hkUtVideo, "SaveConfig", NULL, &dwType, (uint8_t *)&dwSaveConfig, &cb) != ERROR_SUCCESS) goto notsaved; if (!dwSaveConfig) goto notsaved; wsprintf(szValueName, "Config%s", GetTinyName()); cb = (DWORD)GetStateSize(); _ASSERT(cb <= sizeof(buf)); GetState(buf, cb); if (RegSetValueEx(hkUtVideo, szValueName, 0, REG_BINARY, (const BYTE *)buf, cb) != ERROR_SUCCESS) goto notsaved; RegCloseKey(hkUtVideo); return 0; notsaved: RegCloseKey(hkUtVideo); return -1; #endif #if defined(__APPLE__) || defined (__unix__) return 0; #endif }