Legend:
Page
Library
Module
Module type
Parameter
Class
Class type
Source
Source file types.ml
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687typedigits_twotypedigits_fourtypeword_32typeword_64(* factor out dependence on UInt32 / UInt64 and word size (32/64 bit) *)moduletypeNUM=sigtypedigitstypewordtype('digits,'word)t(* ctors *)valof_int:int->(digits,word)tvalof_string:string->(digits,word)t(* dtors *)valto_int:('digits,'word)t->intvalto_string:('digits,'word)t->string(* consts *)valzero:(digits,word)tvalone:(digits,word)tvalmax_int:(digits,word)tvalskein_ks_parity:(digits,word)tvalrotations_0:(digits,word)tRotations.tvalrotations_1:(digits,word)tRotations.tvaldigits:int(* ops *)valequal:('digits,'word)t->('digits,'word)t->boolvalsucc:('digits,'word)t->('digits,'word)tvalpred:('digits,'word)t->('digits,'word)tvaladd:('digits,'word)t->('digits,'word)t->('digits,'word)tvalsub:('digits,'word)t->('digits,'word)t->('digits,'word)tvalrem:('digits,'word)t->('digits,'word)t->('digits,'word)tvallogxor:('digits,'word)t->('digits,'word)t->('digits,'word)tvalrotL:('digits,'word)t->('digits,'word)t->('digits,'word)tend(* NOTE also that this implementation swaps around the args key/ctr
as compared to the original C implementation *)moduletypeRNG_MAKER=sigtypedigits(* sentinal type to allow for constraints *)moduleMake:functor(Num:NUM)->sigvalrand_R:of_int:(int->(Num.digits,Num.word)Num.t)->rounds:int->key:(Num.digits,Num.word)Num.tarray->ctr:(Num.digits,Num.word)Num.tarray->(Num.digits,Num.word)Num.tarrayendendtypekind=Rand|Uniform01|UniformofintmoduletypeGEN=sigtypetvalof_int_array:intarray->tvalto_int_array:t->intarrayvalof_string_array:stringarray->tvalto_string_array:t->stringarrayvalsucc:t->tvalpred:t->tvalrand:?rounds:int->key:t->ctr:t->unit->tvaluniform:?upper:int->?rounds:int->key:t->ctr:t->unit->intarrayvaluniform01:?rounds:int->key:t->ctr:t->unit->floatarrayvaldraw_from:rand:(?rounds:int->key:t->ctr:t->unit->t)->uniform01:(?rounds:int->key:t->ctr:t->unit->floatarray)->uniform:(?upper:int->?rounds:int->key:t->ctr:t->unit->intarray)->key:t->ctr:t->kind->stringarrayvaldigits:intvalis_zero:t->boolend