Revision ed82e2ebe5f14fa875cc3d0a2180c64980408e8f authored by Glen on 19 October 2016, 17:49:36 UTC, committed by GitHub on 19 October 2016, 17:49:36 UTC
1 parent 2dea289
Raw File
ExpTuple.cpp
#include "ExpTuple.h"

bool tExpTuple::TestFlag(unsigned int flag, int idx)
{
	assert(idx < sizeof(flag) * 8 && idx >= 0);
	unsigned mask = 1 << idx;
	bool val = (flag & mask) != 0;
	return val;
}

tExpTuple::tExpTuple()
{
	mID = 0;
	mReward = 0;
	mFlags = 0;
}

tExpTuple::tExpTuple(int state_size, int action_size)
{
	mReward = 0;
	mFlags = 0;
	mStateBeg = Eigen::VectorXd::Zero(state_size);
	mAction = Eigen::VectorXd::Zero(action_size);
	mStateEnd = Eigen::VectorXd::Zero(state_size);
}

void tExpTuple::ClearFlags()
{
	mFlags = 0;
}

void tExpTuple::SetFlag(bool val, int idx)
{
	assert(idx < sizeof(mFlags) * 8 && idx >= 0);
	unsigned mask = 1 << idx;
	if (val)
	{
		mFlags |= mask;
	}
	else
	{
		mFlags &= ~mask;
	}
}

bool tExpTuple::GetFlag(int idx) const
{
	return TestFlag(mFlags, idx);
}
back to top