static void awake(plan *ego_, enum wakefulness wakefulness) { P *ego = (P *) ego_; X(plan_awake)(ego->cld1, wakefulness); X(plan_awake)(ego->cld2, wakefulness); X(plan_awake)(ego->cld_omega, wakefulness); switch (wakefulness) { case SLEEPY: free_omega(ego->omega); ego->omega = 0; break; default: ego->omega = mkomega(wakefulness, ego->cld_omega, ego->n, ego->ginv); break; } }
static void awake(plan *ego_, enum wakefulness wakefulness) { P *ego = (P *) ego_; X(plan_awake)(ego->cld1, wakefulness); X(plan_awake)(ego->cld2, wakefulness); X(plan_awake)(ego->cld_omega, wakefulness); switch (wakefulness) { case SLEEPY: free_omega(ego->omega); ego->omega = 0; break; default: ego->g = X(find_generator)(ego->n); ego->ginv = X(power_mod)(ego->g, ego->n - 2, ego->n); A(MULMOD(ego->g, ego->ginv, ego->n) == 1); A(!ego->omega); ego->omega = mkomega(wakefulness, ego->cld_omega,ego->n,ego->npad,ego->ginv); break; } }