Example #1
0
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;
}