let size_apply_operation f sz1 sz2 =
let sz2p = size_to_same_unit sz1 sz2
in
match sz1,sz2p with
TB f1, TB f2 -> TB ( f f1 f2 )
| GB f1, GB f2 -> GB ( f f1 f2 )
| MB f1, MB f2 -> MB ( f f1 f2 )
| KB f1, KB f2 -> KB ( f f1 f2 )
| B f1, B f2 -> B ( f f1 f2 )
| _ , _ -> raise SizeInvalid