void randoms_of_len(len_t n, flag_t flag, rand_t state, ...) { va_list ap; nn_t * obj; va_start(ap, state); while ((obj = va_arg(ap, nn_t *)) != NULL) { (*obj) = alloc_redzoned_nn(n); nn_test_random(*obj, state, n); switch (flag) { case ANY: break; case FULL: while (nn_normalise(*obj, n) != n) nn_test_random(*obj, state, n); break; case ODD: (*obj)[0] |= (word_t) 1; break; default: talker("Unknown flag in randoms_of_len"); abort(); } garbage = new_node(NN, (void *) (*obj), n, garbage); } va_end(ap); }
void randoms(flag_t flag, rand_t state, ...) { va_list ap; word_t * w; va_start(ap, state); while ((w = va_arg(ap, word_t *)) != NULL) { (*w) = test_randword(state); switch (flag) { case ANY: break; case ODD: (*w) |= 1; break; case NONZERO: while ((*w) == 0) (*w) = test_randword(state); break; default: talker("Unknown flag in randoms."); } } va_end(ap); }
void randoms_upto(word_t limit, flag_t flag, rand_t state, ...) { va_list ap; word_t * w; va_start(ap, state); if (limit == 0) talker("Limit too low in randoms_upto"); while ((w = va_arg(ap, word_t *)) != NULL) { (*w) = randint(limit, state); switch (flag) { case ANY: break; case ODD: if (limit == 1) talker("Limit too low in randoms_upto"); (*w) |= 1; while ((*w) >= limit) (*w) = randint(limit, state) & 1; break; case NONZERO: if (limit == 1) talker("Limit too low in randoms_upto"); while ((*w) == 0) (*w) = randint(limit, state); break; default: talker("Unknown flag in randoms_upto."); } } va_end(ap); }
int main(int ac, char **av) { int socketDescriptor; t_entry **entry; if (ac != 3) { fprintf(stderr, "Usage: %s machine port\n", av[0]); return (EXIT_FAILURE); } if ((socketDescriptor = init_client(av[1], av[2])) == EXIT_FAILURE) return (xclose(socketDescriptor, EXIT_FAILURE)); if (!(entry = init_fct())) return (xclose(socketDescriptor, EXIT_FAILURE)); if ((talker(socketDescriptor, entry)) == EXIT_FAILURE) return (xclose(socketDescriptor, EXIT_FAILURE)); return (xclose(socketDescriptor, EXIT_SUCCESS)); }