let const_sign c =
try
let n = ref (Num.Int 0) in
MConst.iter (fun c i ->
if i <> 0 then
match c with
| ConstName _ -> raise Exit
| ConstInt a | ConstReal a ->
n := Num.add_num (Num.mult_num (Num.Int i) a) !n) c;
Some (Num.compare_num !n (Num.Int 0))
with Exit -> None