void Integrator::_reset(uint64_t &integral_dt) { _integral(0) = 0.0f; _integral(1) = 0.0f; _integral(2) = 0.0f; integral_dt = (_last_integration_time - _last_reset_time); _last_reset_time = _last_integration_time; }
long __Call_polyint( CDSR_VMEval& vm, MMD_Address& addr, UniWord *arg ) { #if _DEBUG if( addr.param2 < 0 ) throw _T("__Call_(fun) : internal error, out of range"); #endif #ifndef _NO_HMATHBS CDSRArray<CDSRReal> pPolinom, pIntegral; CDSRArray<CDSRReal>* ptrPolinom = &pPolinom; CDSRArray<CDSRReal>* ptrIntegral = &pIntegral; vm.getSmbTable().convert2DSRRealArray( (arg - 3)->getPolynomial(), pPolinom ); CDSRReal rlBegX = (arg - 2)->getReal(); CDSRReal rlBegY = (arg - 1)->getReal(); _integral( ptrPolinom, ptrIntegral, rlBegX, rlBegY ); *(arg - 3) = vm.getSmbTable().makeUniWord_Polynomial( pIntegral ); #endif return 1 - addr.param3; }