Skip to content

Instantly share code, notes, and snippets.

@blackh
blackh / silv.ml
Created January 24, 2012 20:45
Silverman
let silv n =
let u = make_vect (2*n+1) 0 in
let k = ref 2 in let j = ref 3 in let p = ref 3 in
u.(1)<- 1; u.(2)<-2; u.(3)<-2;
while u.(n)==0 do
for i=1 to !k do u.(!p+i) <- !j; done;
p:=!p+(!k); j:=!j+1; k:=u.(!j);
done;
u;;
@blackh
blackh / td1p.ml
Created January 24, 2012 20:45
TD Public
let tri e =
let tmp = ref 0 in
if (e.(0)<e.(2)) then (tmp:=e.(0); e.(0)<-e.(2); e.(2) <- !tmp);
if (e.(1)<e.(0)) then (tmp:=e.(0); e.(0)<-e.(1); e.(1) <- !tmp);
if (e.(2)<e.(1)) then (tmp:=e.(1); e.(1)<-e.(2); e.(2) <- !tmp);
e;;
let echange i j v =
let tmp = ref 0 in
tmp:=v.(i); v.(i)<-v.(j); v.(j)<-(!tmp);