def from_outputs(outputs, bits): outputs = [c_uint32(o).value for o in outputs] gen = lcg.from_outputs(outputs, MULTIPLIER, INCREMENT, MODULUS, 48-bits) for prediction in gen: yield prediction & ((1 << bits) - 1)
def from_outputs(prev_values, output_modulus=None): yield from lcg.from_outputs(prev_values, a=MULTIPLIER, c=INCREMENT, m=MODULUS, masked_bits=SHIFT_BITS, output_modulus=output_modulus)
def handle_lcg(args): if args.seed: print_from_gen( lcg.from_seed(args.seed, args.multiplier, args.increment, args.modulus, args.bitshift, args.modulo), args.count) else: print_from_gen( lcg.from_outputs(args.outputs, args.multiplier, args.increment, args.modulus, args.bitshift, args.modulo), args.count)
def handle_lcg(args): if args.seed: print_from_gen(lcg.from_seed(args.seed, args.multiplier, args.increment, args.modulus, args.bitshift, args.modulo), args.count) else: print_from_gen(lcg.from_outputs(args.outputs, args.multiplier, args.increment, args.modulus, args.bitshift, args.modulo), args.count)
def from_outputs(outputs, bits): outputs = [c_uint32(o).value for o in outputs] gen = lcg.from_outputs(outputs, MULTIPLIER, INCREMENT, MODULUS, 48 - bits) for prediction in gen: yield prediction & ((1 << bits) - 1)