void libenv_observe()

in gym3/libenv_fixedseq.c [120:134]


void libenv_observe(libenv_env *env) {
    struct environment *e = env;
    for (int env_idx = 0; env_idx < e->num; env_idx++) {
        float *ob = e->bufs->ob[env_idx];
        *ob = 0;
        uint8_t *ac = e->bufs->ac[env_idx];
        uint8_t correct_ac = e->sequence[e->step_count % e->episode_len];
        e->bufs->rew[env_idx] = (*ac == correct_ac);
        bool first = false;
        if (e->step_count % e->episode_len == 0) {
            first = true;
        }
        e->bufs->first[env_idx] = first;
    }
}