mirror of
https://github.com/c-cube/sidekick.git
synced 2025-12-06 03:05:31 -05:00
Corrected indentation.
This commit is contained in:
parent
4daf685b3e
commit
d4e9865a4c
3 changed files with 49 additions and 48 deletions
28
sat/sat.ml
28
sat/sat.ml
|
|
@ -12,11 +12,11 @@ module Fsat = struct
|
||||||
let max_index = ref 0
|
let max_index = ref 0
|
||||||
|
|
||||||
let make i =
|
let make i =
|
||||||
if i <> 0 then begin
|
if i <> 0 then begin
|
||||||
max_index := max !max_index (abs i);
|
max_index := max !max_index (abs i);
|
||||||
i
|
i
|
||||||
end else
|
end else
|
||||||
raise Dummy
|
raise Dummy
|
||||||
|
|
||||||
let dummy = 0
|
let dummy = 0
|
||||||
|
|
||||||
|
|
@ -34,7 +34,7 @@ module Fsat = struct
|
||||||
let create, iter =
|
let create, iter =
|
||||||
let create () =
|
let create () =
|
||||||
if !max_index <> max_lit then
|
if !max_index <> max_lit then
|
||||||
(incr max_index; !max_index)
|
(incr max_index; !max_index)
|
||||||
else
|
else
|
||||||
raise Out_of_int
|
raise Out_of_int
|
||||||
in
|
in
|
||||||
|
|
@ -84,16 +84,16 @@ module Make(Dummy : sig end) = struct
|
||||||
type state = SatSolver.t
|
type state = SatSolver.t
|
||||||
|
|
||||||
let new_atom () =
|
let new_atom () =
|
||||||
try
|
try
|
||||||
Fsat.create ()
|
Fsat.create ()
|
||||||
with Fsat.Out_of_int ->
|
with Fsat.Out_of_int ->
|
||||||
raise Bad_atom
|
raise Bad_atom
|
||||||
|
|
||||||
let make i =
|
let make i =
|
||||||
try
|
try
|
||||||
Fsat.make i
|
Fsat.make i
|
||||||
with Fsat.Dummy ->
|
with Fsat.Dummy ->
|
||||||
raise Bad_atom
|
raise Bad_atom
|
||||||
|
|
||||||
let neg = Fsat.neg
|
let neg = Fsat.neg
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -414,8 +414,9 @@ module Make (F : Formula_intf.S)
|
||||||
var_bump_activity q.var;
|
var_bump_activity q.var;
|
||||||
q.var.seen <- true;
|
q.var.seen <- true;
|
||||||
seen := q :: !seen;
|
seen := q :: !seen;
|
||||||
if q.var.level >= decision_level () then incr pathC
|
if q.var.level >= decision_level () then begin
|
||||||
else begin
|
incr pathC
|
||||||
|
end else begin
|
||||||
learnt := q :: !learnt;
|
learnt := q :: !learnt;
|
||||||
incr size;
|
incr size;
|
||||||
blevel := max !blevel q.var.level
|
blevel := max !blevel q.var.level
|
||||||
|
|
|
||||||
64
util/test.ml
64
util/test.ml
|
|
@ -38,39 +38,39 @@ let input_file = fun s -> file := s
|
||||||
let usage = "Usage : main [options] <file>"
|
let usage = "Usage : main [options] <file>"
|
||||||
let argspec = Arg.align [
|
let argspec = Arg.align [
|
||||||
"-v", Arg.Int (fun i -> Log.set_debug i),
|
"-v", Arg.Int (fun i -> Log.set_debug i),
|
||||||
"<lvl> Sets the debug verbose level";
|
"<lvl> Sets the debug verbose level";
|
||||||
"-t", Arg.String (int_arg time_limit),
|
"-t", Arg.String (int_arg time_limit),
|
||||||
"<t>[smhd] Sets the time limit for the sat solver";
|
"<t>[smhd] Sets the time limit for the sat solver";
|
||||||
"-s", Arg.String (int_arg size_limit),
|
"-s", Arg.String (int_arg size_limit),
|
||||||
"<s>[kMGT] Sets the size limit for the sat solver";
|
"<s>[kMGT] Sets the size limit for the sat solver";
|
||||||
"-model", Arg.Set p_assign,
|
"-model", Arg.Set p_assign,
|
||||||
" Outputs the boolean model found if sat";
|
" Outputs the boolean model found if sat";
|
||||||
]
|
]
|
||||||
|
|
||||||
(* Limits alarm *)
|
(* Limits alarm *)
|
||||||
let check () =
|
let check () =
|
||||||
let t = Sys.time () in
|
let t = Sys.time () in
|
||||||
let heap_size = (Gc.quick_stat ()).Gc.heap_words in
|
let heap_size = (Gc.quick_stat ()).Gc.heap_words in
|
||||||
let s = float heap_size *. float Sys.word_size /. 8. in
|
let s = float heap_size *. float Sys.word_size /. 8. in
|
||||||
if t > !time_limit then
|
if t > !time_limit then
|
||||||
raise Out_of_time
|
raise Out_of_time
|
||||||
else if s > !size_limit then
|
else if s > !size_limit then
|
||||||
raise Out_of_space
|
raise Out_of_space
|
||||||
|
|
||||||
(* Entry file parsing *)
|
(* Entry file parsing *)
|
||||||
let get_cnf () =
|
let get_cnf () =
|
||||||
let chan = open_in !file in
|
let chan = open_in !file in
|
||||||
let lexbuf = Lexing.from_channel chan in
|
let lexbuf = Lexing.from_channel chan in
|
||||||
let l = Parsedimacs.file Lexdimacs.token lexbuf in
|
let l = Parsedimacs.file Lexdimacs.token lexbuf in
|
||||||
List.map (List.map S.make) l
|
List.map (List.map S.make) l
|
||||||
|
|
||||||
let print_cnf cnf =
|
let print_cnf cnf =
|
||||||
Format.printf "CNF :@\n";
|
Format.printf "CNF :@\n";
|
||||||
List.iter (fun c ->
|
List.iter (fun c ->
|
||||||
Format.fprintf Format.std_formatter "%a;@\n"
|
Format.fprintf Format.std_formatter "%a;@\n"
|
||||||
(fun fmt -> List.iter (fun a ->
|
(fun fmt -> List.iter (fun a ->
|
||||||
Format.fprintf fmt "%a@ " S.print_atom a
|
Format.fprintf fmt "%a@ " S.print_atom a
|
||||||
)
|
)
|
||||||
) c
|
) c
|
||||||
) cnf
|
) cnf
|
||||||
|
|
||||||
|
|
@ -86,8 +86,8 @@ let main () =
|
||||||
(* Administrative duties *)
|
(* Administrative duties *)
|
||||||
Arg.parse argspec input_file usage;
|
Arg.parse argspec input_file usage;
|
||||||
if !file = "" then begin
|
if !file = "" then begin
|
||||||
Arg.usage argspec usage;
|
Arg.usage argspec usage;
|
||||||
exit 2
|
exit 2
|
||||||
end;
|
end;
|
||||||
let al = Gc.create_alarm check in
|
let al = Gc.create_alarm check in
|
||||||
|
|
||||||
|
|
@ -96,19 +96,19 @@ let main () =
|
||||||
S.assume cnf;
|
S.assume cnf;
|
||||||
match S.solve () with
|
match S.solve () with
|
||||||
| S.Sat ->
|
| S.Sat ->
|
||||||
Format.printf "Sat@.";
|
Format.printf "Sat@.";
|
||||||
if !p_assign then
|
if !p_assign then
|
||||||
print_assign Format.std_formatter ()
|
print_assign Format.std_formatter ()
|
||||||
| S.Unsat ->
|
| S.Unsat ->
|
||||||
Format.printf "Unsat@."
|
Format.printf "Unsat@."
|
||||||
;;
|
;;
|
||||||
|
|
||||||
try
|
try
|
||||||
main ()
|
main ()
|
||||||
with
|
with
|
||||||
| Out_of_time ->
|
| Out_of_time ->
|
||||||
Format.printf "Time limit exceeded@.";
|
Format.printf "Time limit exceeded@.";
|
||||||
exit 2
|
exit 2
|
||||||
| Out_of_space ->
|
| Out_of_space ->
|
||||||
Format.printf "Size limit exceeded@.";
|
Format.printf "Size limit exceeded@.";
|
||||||
exit 3
|
exit 3
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue