let sub c d =
assert (Array.length c = Array.length d) ;
let a = Array.make (Array.length c) None in
for i = 1 to (Array.length c)-1 do
match c.(i), d.(i) with
| None, _
| _, None -> assert false
| (Some (x,y,z)), (Some (m,n,o)) ->
a.(i) <- Some (x-.m, y-.n, z-.o)
done ;
a