void agent_init(const char * task_spec){ emptyAction=allocateRLStructPointer(0,0,0); nonEmptyAction=allocateRLStructPointer(0,0,0); set_k_ints_in_abstract_type(nonEmptyAction,7); set_k_doubles_in_abstract_type(nonEmptyAction,3); set_k_chars_in_abstract_type(nonEmptyAction,1); whichEpisode=0; }
const char* env_init() { env_whichEpisode=0; emptyObservation=allocateRLStructPointer(0,0,0); nonEmptyObservation=allocateRLStructPointer(0,0,0); set_k_ints_in_abstract_type(nonEmptyObservation,2); set_k_doubles_in_abstract_type(nonEmptyObservation,4); set_k_chars_in_abstract_type(nonEmptyObservation,5); return ""; }
const reward_observation_terminal_t *env_step(const action_t *a) { int terminal=0; stepCount++; clearRLStruct(o); /*Short episode with big observations*/ if(episodeCount%2==0){ __RL_CHECK_STRUCT(o) set_k_ints_in_abstract_type(o, 50000); __RL_CHECK_STRUCT(o) set_k_doubles_in_abstract_type(o, 50000); __RL_CHECK_STRUCT(o) if(stepCount==200)terminal=1; }
void makeKInts(rl_abstract_type_t *theStruct, int numInts){ set_k_ints_in_abstract_type(theStruct,numInts); }