Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
A
abc
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
lvzhengyang
abc
Commits
38d72c43
Commit
38d72c43
authored
Nov 13, 2020
by
Alan Mishchenko
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Duplicating Glucose package.
parent
2f65566d
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
43 additions
and
43 deletions
+43
-43
src/sat/glucose2/AbcGlucose2.cpp
+43
-43
No files found.
src/sat/glucose2/AbcGlucose2.cpp
View file @
38d72c43
...
@@ -58,24 +58,24 @@ using namespace Gluco2;
...
@@ -58,24 +58,24 @@ using namespace Gluco2;
SeeAlso []
SeeAlso []
***********************************************************************/
***********************************************************************/
SimpSolver
*
glucose_solver_start
()
SimpSolver
*
glucose
2
_solver_start
()
{
{
SimpSolver
*
S
=
new
SimpSolver
;
SimpSolver
*
S
=
new
SimpSolver
;
S
->
setIncrementalMode
();
S
->
setIncrementalMode
();
return
S
;
return
S
;
}
}
void
glucose_solver_stop
(
Gluco2
::
SimpSolver
*
S
)
void
glucose
2
_solver_stop
(
Gluco2
::
SimpSolver
*
S
)
{
{
delete
S
;
delete
S
;
}
}
void
glucose_solver_reset
(
Gluco2
::
SimpSolver
*
S
)
void
glucose
2
_solver_reset
(
Gluco2
::
SimpSolver
*
S
)
{
{
S
->
reset
();
S
->
reset
();
}
}
int
glucose_solver_addclause
(
Gluco2
::
SimpSolver
*
S
,
int
*
plits
,
int
nlits
)
int
glucose
2
_solver_addclause
(
Gluco2
::
SimpSolver
*
S
,
int
*
plits
,
int
nlits
)
{
{
vec
<
Lit
>
lits
;
vec
<
Lit
>
lits
;
for
(
int
i
=
0
;
i
<
nlits
;
i
++
,
plits
++
)
for
(
int
i
=
0
;
i
<
nlits
;
i
++
,
plits
++
)
...
@@ -90,14 +90,14 @@ int glucose_solver_addclause(Gluco2::SimpSolver* S, int * plits, int nlits)
...
@@ -90,14 +90,14 @@ int glucose_solver_addclause(Gluco2::SimpSolver* S, int * plits, int nlits)
return
S
->
addClause
(
lits
);
// returns 0 if the problem is UNSAT
return
S
->
addClause
(
lits
);
// returns 0 if the problem is UNSAT
}
}
void
glucose_solver_setcallback
(
Gluco2
::
SimpSolver
*
S
,
void
*
pman
,
int
(
*
pfunc
)(
void
*
,
int
,
int
*
))
void
glucose
2
_solver_setcallback
(
Gluco2
::
SimpSolver
*
S
,
void
*
pman
,
int
(
*
pfunc
)(
void
*
,
int
,
int
*
))
{
{
S
->
pCnfMan
=
pman
;
S
->
pCnfMan
=
pman
;
S
->
pCnfFunc
=
pfunc
;
S
->
pCnfFunc
=
pfunc
;
S
->
nCallConfl
=
1000
;
S
->
nCallConfl
=
1000
;
}
}
int
glucose_solver_solve
(
Gluco2
::
SimpSolver
*
S
,
int
*
plits
,
int
nlits
)
int
glucose
2
_solver_solve
(
Gluco2
::
SimpSolver
*
S
,
int
*
plits
,
int
nlits
)
{
{
vec
<
Lit
>
lits
;
vec
<
Lit
>
lits
;
for
(
int
i
=
0
;
i
<
nlits
;
i
++
,
plits
++
)
for
(
int
i
=
0
;
i
<
nlits
;
i
++
,
plits
++
)
...
@@ -110,23 +110,23 @@ int glucose_solver_solve(Gluco2::SimpSolver* S, int * plits, int nlits)
...
@@ -110,23 +110,23 @@ int glucose_solver_solve(Gluco2::SimpSolver* S, int * plits, int nlits)
return
(
res
==
l_True
?
1
:
res
==
l_False
?
-
1
:
0
);
return
(
res
==
l_True
?
1
:
res
==
l_False
?
-
1
:
0
);
}
}
int
glucose_solver_addvar
(
Gluco2
::
SimpSolver
*
S
)
int
glucose
2
_solver_addvar
(
Gluco2
::
SimpSolver
*
S
)
{
{
S
->
newVar
();
S
->
newVar
();
return
S
->
nVars
()
-
1
;
return
S
->
nVars
()
-
1
;
}
}
int
*
glucose_solver_read_cex
(
Gluco2
::
SimpSolver
*
S
)
int
*
glucose
2
_solver_read_cex
(
Gluco2
::
SimpSolver
*
S
)
{
{
return
S
->
getCex
();
return
S
->
getCex
();
}
}
int
glucose_solver_read_cex_varvalue
(
Gluco2
::
SimpSolver
*
S
,
int
ivar
)
int
glucose
2
_solver_read_cex_varvalue
(
Gluco2
::
SimpSolver
*
S
,
int
ivar
)
{
{
return
S
->
model
[
ivar
]
==
l_True
;
return
S
->
model
[
ivar
]
==
l_True
;
}
}
void
glucose_solver_setstop
(
Gluco2
::
SimpSolver
*
S
,
int
*
pstop
)
void
glucose
2
_solver_setstop
(
Gluco2
::
SimpSolver
*
S
,
int
*
pstop
)
{
{
S
->
pstop
=
pstop
;
S
->
pstop
=
pstop
;
}
}
...
@@ -145,31 +145,31 @@ void glucose_solver_setstop(Gluco2::SimpSolver* S, int * pstop)
...
@@ -145,31 +145,31 @@ void glucose_solver_setstop(Gluco2::SimpSolver* S, int * pstop)
***********************************************************************/
***********************************************************************/
bmcg2_sat_solver
*
bmcg2_sat_solver_start
()
bmcg2_sat_solver
*
bmcg2_sat_solver_start
()
{
{
return
(
bmcg2_sat_solver
*
)
glucose_solver_start
();
return
(
bmcg2_sat_solver
*
)
glucose
2
_solver_start
();
}
}
void
bmcg2_sat_solver_stop
(
bmcg2_sat_solver
*
s
)
void
bmcg2_sat_solver_stop
(
bmcg2_sat_solver
*
s
)
{
{
glucose_solver_stop
((
Gluco2
::
SimpSolver
*
)
s
);
glucose
2
_solver_stop
((
Gluco2
::
SimpSolver
*
)
s
);
}
}
void
bmcg2_sat_solver_reset
(
bmcg2_sat_solver
*
s
)
void
bmcg2_sat_solver_reset
(
bmcg2_sat_solver
*
s
)
{
{
glucose_solver_reset
((
Gluco2
::
SimpSolver
*
)
s
);
glucose
2
_solver_reset
((
Gluco2
::
SimpSolver
*
)
s
);
}
}
int
bmcg2_sat_solver_addclause
(
bmcg2_sat_solver
*
s
,
int
*
plits
,
int
nlits
)
int
bmcg2_sat_solver_addclause
(
bmcg2_sat_solver
*
s
,
int
*
plits
,
int
nlits
)
{
{
return
glucose_solver_addclause
((
Gluco2
::
SimpSolver
*
)
s
,
plits
,
nlits
);
return
glucose
2
_solver_addclause
((
Gluco2
::
SimpSolver
*
)
s
,
plits
,
nlits
);
}
}
void
bmcg2_sat_solver_setcallback
(
bmcg2_sat_solver
*
s
,
void
*
pman
,
int
(
*
pfunc
)(
void
*
,
int
,
int
*
))
void
bmcg2_sat_solver_setcallback
(
bmcg2_sat_solver
*
s
,
void
*
pman
,
int
(
*
pfunc
)(
void
*
,
int
,
int
*
))
{
{
glucose_solver_setcallback
((
Gluco2
::
SimpSolver
*
)
s
,
pman
,
pfunc
);
glucose
2
_solver_setcallback
((
Gluco2
::
SimpSolver
*
)
s
,
pman
,
pfunc
);
}
}
int
bmcg2_sat_solver_solve
(
bmcg2_sat_solver
*
s
,
int
*
plits
,
int
nlits
)
int
bmcg2_sat_solver_solve
(
bmcg2_sat_solver
*
s
,
int
*
plits
,
int
nlits
)
{
{
return
glucose_solver_solve
((
Gluco2
::
SimpSolver
*
)
s
,
plits
,
nlits
);
return
glucose
2
_solver_solve
((
Gluco2
::
SimpSolver
*
)
s
,
plits
,
nlits
);
}
}
int
bmcg2_sat_solver_final
(
bmcg2_sat_solver
*
s
,
int
**
ppArray
)
int
bmcg2_sat_solver_final
(
bmcg2_sat_solver
*
s
,
int
**
ppArray
)
...
@@ -180,7 +180,7 @@ int bmcg2_sat_solver_final(bmcg2_sat_solver* s, int ** ppArray)
...
@@ -180,7 +180,7 @@ int bmcg2_sat_solver_final(bmcg2_sat_solver* s, int ** ppArray)
int
bmcg2_sat_solver_addvar
(
bmcg2_sat_solver
*
s
)
int
bmcg2_sat_solver_addvar
(
bmcg2_sat_solver
*
s
)
{
{
return
glucose_solver_addvar
((
Gluco2
::
SimpSolver
*
)
s
);
return
glucose
2
_solver_addvar
((
Gluco2
::
SimpSolver
*
)
s
);
}
}
void
bmcg2_sat_solver_set_nvars
(
bmcg2_sat_solver
*
s
,
int
nvars
)
void
bmcg2_sat_solver_set_nvars
(
bmcg2_sat_solver
*
s
,
int
nvars
)
...
@@ -215,16 +215,16 @@ int bmcg2_sat_solver_elim_varnum(bmcg2_sat_solver* s)
...
@@ -215,16 +215,16 @@ int bmcg2_sat_solver_elim_varnum(bmcg2_sat_solver* s)
int
*
bmcg2_sat_solver_read_cex
(
bmcg2_sat_solver
*
s
)
int
*
bmcg2_sat_solver_read_cex
(
bmcg2_sat_solver
*
s
)
{
{
return
glucose_solver_read_cex
((
Gluco2
::
SimpSolver
*
)
s
);
return
glucose
2
_solver_read_cex
((
Gluco2
::
SimpSolver
*
)
s
);
}
}
int
bmcg2_sat_solver_read_cex_varvalue
(
bmcg2_sat_solver
*
s
,
int
ivar
)
int
bmcg2_sat_solver_read_cex_varvalue
(
bmcg2_sat_solver
*
s
,
int
ivar
)
{
{
return
glucose_solver_read_cex_varvalue
((
Gluco2
::
SimpSolver
*
)
s
,
ivar
);
return
glucose
2
_solver_read_cex_varvalue
((
Gluco2
::
SimpSolver
*
)
s
,
ivar
);
}
}
void
bmcg2_sat_solver_set_stop
(
bmcg2_sat_solver
*
s
,
int
*
pstop
)
void
bmcg2_sat_solver_set_stop
(
bmcg2_sat_solver
*
s
,
int
*
pstop
)
{
{
glucose_solver_setstop
((
Gluco2
::
SimpSolver
*
)
s
,
pstop
);
glucose
2
_solver_setstop
((
Gluco2
::
SimpSolver
*
)
s
,
pstop
);
}
}
abctime
bmcg2_sat_solver_set_runtime_limit
(
bmcg2_sat_solver
*
s
,
abctime
Limit
)
abctime
bmcg2_sat_solver_set_runtime_limit
(
bmcg2_sat_solver
*
s
,
abctime
Limit
)
...
@@ -339,19 +339,19 @@ int bmcg2_sat_solver_add_and( bmcg2_sat_solver * s, int iVar, int iVar0, int iVa
...
@@ -339,19 +339,19 @@ int bmcg2_sat_solver_add_and( bmcg2_sat_solver * s, int iVar, int iVar0, int iVa
SeeAlso []
SeeAlso []
***********************************************************************/
***********************************************************************/
Solver
*
glucose_solver_start
()
Solver
*
glucose
2
_solver_start
()
{
{
Solver
*
S
=
new
Solver
;
Solver
*
S
=
new
Solver
;
S
->
setIncrementalMode
();
S
->
setIncrementalMode
();
return
S
;
return
S
;
}
}
void
glucose_solver_stop
(
Gluco2
::
Solver
*
S
)
void
glucose
2
_solver_stop
(
Gluco2
::
Solver
*
S
)
{
{
delete
S
;
delete
S
;
}
}
int
glucose_solver_addclause
(
Gluco2
::
Solver
*
S
,
int
*
plits
,
int
nlits
)
int
glucose
2
_solver_addclause
(
Gluco2
::
Solver
*
S
,
int
*
plits
,
int
nlits
)
{
{
vec
<
Lit
>
lits
;
vec
<
Lit
>
lits
;
for
(
int
i
=
0
;
i
<
nlits
;
i
++
,
plits
++
)
for
(
int
i
=
0
;
i
<
nlits
;
i
++
,
plits
++
)
...
@@ -366,14 +366,14 @@ int glucose_solver_addclause(Gluco2::Solver* S, int * plits, int nlits)
...
@@ -366,14 +366,14 @@ int glucose_solver_addclause(Gluco2::Solver* S, int * plits, int nlits)
return
S
->
addClause
(
lits
);
// returns 0 if the problem is UNSAT
return
S
->
addClause
(
lits
);
// returns 0 if the problem is UNSAT
}
}
void
glucose_solver_setcallback
(
Gluco2
::
Solver
*
S
,
void
*
pman
,
int
(
*
pfunc
)(
void
*
,
int
,
int
*
))
void
glucose
2
_solver_setcallback
(
Gluco2
::
Solver
*
S
,
void
*
pman
,
int
(
*
pfunc
)(
void
*
,
int
,
int
*
))
{
{
S
->
pCnfMan
=
pman
;
S
->
pCnfMan
=
pman
;
S
->
pCnfFunc
=
pfunc
;
S
->
pCnfFunc
=
pfunc
;
S
->
nCallConfl
=
1000
;
S
->
nCallConfl
=
1000
;
}
}
int
glucose_solver_solve
(
Gluco2
::
Solver
*
S
,
int
*
plits
,
int
nlits
)
int
glucose
2
_solver_solve
(
Gluco2
::
Solver
*
S
,
int
*
plits
,
int
nlits
)
{
{
vec
<
Lit
>
lits
;
vec
<
Lit
>
lits
;
for
(
int
i
=
0
;
i
<
nlits
;
i
++
,
plits
++
)
for
(
int
i
=
0
;
i
<
nlits
;
i
++
,
plits
++
)
...
@@ -386,23 +386,23 @@ int glucose_solver_solve(Gluco2::Solver* S, int * plits, int nlits)
...
@@ -386,23 +386,23 @@ int glucose_solver_solve(Gluco2::Solver* S, int * plits, int nlits)
return
(
res
==
l_True
?
1
:
res
==
l_False
?
-
1
:
0
);
return
(
res
==
l_True
?
1
:
res
==
l_False
?
-
1
:
0
);
}
}
int
glucose_solver_addvar
(
Gluco2
::
Solver
*
S
)
int
glucose
2
_solver_addvar
(
Gluco2
::
Solver
*
S
)
{
{
S
->
newVar
();
S
->
newVar
();
return
S
->
nVars
()
-
1
;
return
S
->
nVars
()
-
1
;
}
}
int
*
glucose_solver_read_cex
(
Gluco2
::
Solver
*
S
)
int
*
glucose
2
_solver_read_cex
(
Gluco2
::
Solver
*
S
)
{
{
return
S
->
getCex
();
return
S
->
getCex
();
}
}
int
glucose_solver_read_cex_varvalue
(
Gluco2
::
Solver
*
S
,
int
ivar
)
int
glucose
2
_solver_read_cex_varvalue
(
Gluco2
::
Solver
*
S
,
int
ivar
)
{
{
return
S
->
model
[
ivar
]
==
l_True
;
return
S
->
model
[
ivar
]
==
l_True
;
}
}
void
glucose_solver_setstop
(
Gluco2
::
Solver
*
S
,
int
*
pstop
)
void
glucose
2
_solver_setstop
(
Gluco2
::
Solver
*
S
,
int
*
pstop
)
{
{
S
->
pstop
=
pstop
;
S
->
pstop
=
pstop
;
}
}
...
@@ -421,26 +421,26 @@ void glucose_solver_setstop(Gluco2::Solver* S, int * pstop)
...
@@ -421,26 +421,26 @@ void glucose_solver_setstop(Gluco2::Solver* S, int * pstop)
***********************************************************************/
***********************************************************************/
bmcg2_sat_solver
*
bmcg2_sat_solver_start
()
bmcg2_sat_solver
*
bmcg2_sat_solver_start
()
{
{
return
(
bmcg2_sat_solver
*
)
glucose_solver_start
();
return
(
bmcg2_sat_solver
*
)
glucose
2
_solver_start
();
}
}
void
bmcg2_sat_solver_stop
(
bmcg2_sat_solver
*
s
)
void
bmcg2_sat_solver_stop
(
bmcg2_sat_solver
*
s
)
{
{
glucose_solver_stop
((
Gluco2
::
Solver
*
)
s
);
glucose
2
_solver_stop
((
Gluco2
::
Solver
*
)
s
);
}
}
int
bmcg2_sat_solver_addclause
(
bmcg2_sat_solver
*
s
,
int
*
plits
,
int
nlits
)
int
bmcg2_sat_solver_addclause
(
bmcg2_sat_solver
*
s
,
int
*
plits
,
int
nlits
)
{
{
return
glucose_solver_addclause
((
Gluco2
::
Solver
*
)
s
,
plits
,
nlits
);
return
glucose
2
_solver_addclause
((
Gluco2
::
Solver
*
)
s
,
plits
,
nlits
);
}
}
void
bmcg2_sat_solver_setcallback
(
bmcg2_sat_solver
*
s
,
void
*
pman
,
int
(
*
pfunc
)(
void
*
,
int
,
int
*
))
void
bmcg2_sat_solver_setcallback
(
bmcg2_sat_solver
*
s
,
void
*
pman
,
int
(
*
pfunc
)(
void
*
,
int
,
int
*
))
{
{
glucose_solver_setcallback
((
Gluco2
::
Solver
*
)
s
,
pman
,
pfunc
);
glucose
2
_solver_setcallback
((
Gluco2
::
Solver
*
)
s
,
pman
,
pfunc
);
}
}
int
bmcg2_sat_solver_solve
(
bmcg2_sat_solver
*
s
,
int
*
plits
,
int
nlits
)
int
bmcg2_sat_solver_solve
(
bmcg2_sat_solver
*
s
,
int
*
plits
,
int
nlits
)
{
{
return
glucose_solver_solve
((
Gluco2
::
Solver
*
)
s
,
plits
,
nlits
);
return
glucose
2
_solver_solve
((
Gluco2
::
Solver
*
)
s
,
plits
,
nlits
);
}
}
int
bmcg2_sat_solver_final
(
bmcg2_sat_solver
*
s
,
int
**
ppArray
)
int
bmcg2_sat_solver_final
(
bmcg2_sat_solver
*
s
,
int
**
ppArray
)
...
@@ -451,7 +451,7 @@ int bmcg2_sat_solver_final(bmcg2_sat_solver* s, int ** ppArray)
...
@@ -451,7 +451,7 @@ int bmcg2_sat_solver_final(bmcg2_sat_solver* s, int ** ppArray)
int
bmcg2_sat_solver_addvar
(
bmcg2_sat_solver
*
s
)
int
bmcg2_sat_solver_addvar
(
bmcg2_sat_solver
*
s
)
{
{
return
glucose_solver_addvar
((
Gluco2
::
Solver
*
)
s
);
return
glucose
2
_solver_addvar
((
Gluco2
::
Solver
*
)
s
);
}
}
void
bmcg2_sat_solver_set_nvars
(
bmcg2_sat_solver
*
s
,
int
nvars
)
void
bmcg2_sat_solver_set_nvars
(
bmcg2_sat_solver
*
s
,
int
nvars
)
...
@@ -486,17 +486,17 @@ int bmcg2_sat_solver_elim_varnum(bmcg2_sat_solver* s)
...
@@ -486,17 +486,17 @@ int bmcg2_sat_solver_elim_varnum(bmcg2_sat_solver* s)
int
*
bmcg2_sat_solver_read_cex
(
bmcg2_sat_solver
*
s
)
int
*
bmcg2_sat_solver_read_cex
(
bmcg2_sat_solver
*
s
)
{
{
return
glucose_solver_read_cex
((
Gluco2
::
Solver
*
)
s
);
return
glucose
2
_solver_read_cex
((
Gluco2
::
Solver
*
)
s
);
}
}
int
bmcg2_sat_solver_read_cex_varvalue
(
bmcg2_sat_solver
*
s
,
int
ivar
)
int
bmcg2_sat_solver_read_cex_varvalue
(
bmcg2_sat_solver
*
s
,
int
ivar
)
{
{
return
glucose_solver_read_cex_varvalue
((
Gluco2
::
Solver
*
)
s
,
ivar
);
return
glucose
2
_solver_read_cex_varvalue
((
Gluco2
::
Solver
*
)
s
,
ivar
);
}
}
void
bmcg2_sat_solver_set_stop
(
bmcg2_sat_solver
*
s
,
int
*
pstop
)
void
bmcg2_sat_solver_set_stop
(
bmcg2_sat_solver
*
s
,
int
*
pstop
)
{
{
glucose_solver_setstop
((
Gluco2
::
Solver
*
)
s
,
pstop
);
glucose
2
_solver_setstop
((
Gluco2
::
Solver
*
)
s
,
pstop
);
}
}
abctime
bmcg2_sat_solver_set_runtime_limit
(
bmcg2_sat_solver
*
s
,
abctime
Limit
)
abctime
bmcg2_sat_solver_set_runtime_limit
(
bmcg2_sat_solver
*
s
,
abctime
Limit
)
...
@@ -589,7 +589,7 @@ int bmcg2_sat_solver_minimize_assumptions( bmcg2_sat_solver * s, int * plits, in
...
@@ -589,7 +589,7 @@ int bmcg2_sat_solver_minimize_assumptions( bmcg2_sat_solver * s, int * plits, in
SeeAlso []
SeeAlso []
***********************************************************************/
***********************************************************************/
void
glucose_print_stats
(
SimpSolver
&
s
,
abctime
clk
)
void
glucose
2
_print_stats
(
SimpSolver
&
s
,
abctime
clk
)
{
{
double
cpu_time
=
(
double
)(
unsigned
)
clk
/
CLOCKS_PER_SEC
;
double
cpu_time
=
(
double
)(
unsigned
)
clk
/
CLOCKS_PER_SEC
;
double
mem_used
=
memUsed
();
double
mem_used
=
memUsed
();
...
@@ -701,7 +701,7 @@ void Glucose2_SolveCnf( char * pFileName, Glucose2_Pars * pPars )
...
@@ -701,7 +701,7 @@ void Glucose2_SolveCnf( char * pFileName, Glucose2_Pars * pPars )
vec
<
Lit
>
dummy
;
vec
<
Lit
>
dummy
;
lbool
ret
=
S
.
solveLimited
(
dummy
,
0
);
lbool
ret
=
S
.
solveLimited
(
dummy
,
0
);
if
(
pPars
->
verb
)
glucose_print_stats
(
S
,
Abc_Clock
()
-
clk
);
if
(
pPars
->
verb
)
glucose
2
_print_stats
(
S
,
Abc_Clock
()
-
clk
);
printf
(
ret
==
l_True
?
"SATISFIABLE"
:
ret
==
l_False
?
"UNSATISFIABLE"
:
"INDETERMINATE"
);
printf
(
ret
==
l_True
?
"SATISFIABLE"
:
ret
==
l_False
?
"UNSATISFIABLE"
:
"INDETERMINATE"
);
Abc_PrintTime
(
1
,
" Time"
,
Abc_Clock
()
-
clk
);
Abc_PrintTime
(
1
,
" Time"
,
Abc_Clock
()
-
clk
);
}
}
...
@@ -736,12 +736,12 @@ Vec_Int_t * Glucose_SolverFromAig( Gia_Man_t * p, SimpSolver& s )
...
@@ -736,12 +736,12 @@ Vec_Int_t * Glucose_SolverFromAig( Gia_Man_t * p, SimpSolver& s )
return
vCnfIds
;
return
vCnfIds
;
}
}
// procedure below does not work because glucose_solver_addclause() expects Solver
// procedure below does not work because glucose
2
_solver_addclause() expects Solver
Vec_Int_t
*
Glucose_SolverFromAig2
(
Gia_Man_t
*
p
,
SimpSolver
&
S
)
Vec_Int_t
*
Glucose_SolverFromAig2
(
Gia_Man_t
*
p
,
SimpSolver
&
S
)
{
{
Cnf_Dat_t
*
pCnf
=
(
Cnf_Dat_t
*
)
Mf_ManGenerateCnf
(
p
,
8
/*nLutSize*/
,
0
/*fCnfObjIds*/
,
1
/*fAddOrCla*/
,
0
,
0
/*verbose*/
);
Cnf_Dat_t
*
pCnf
=
(
Cnf_Dat_t
*
)
Mf_ManGenerateCnf
(
p
,
8
/*nLutSize*/
,
0
/*fCnfObjIds*/
,
1
/*fAddOrCla*/
,
0
,
0
/*verbose*/
);
for
(
int
i
=
0
;
i
<
pCnf
->
nClauses
;
i
++
)
for
(
int
i
=
0
;
i
<
pCnf
->
nClauses
;
i
++
)
if
(
!
glucose_solver_addclause
(
&
S
,
pCnf
->
pClauses
[
i
],
pCnf
->
pClauses
[
i
+
1
]
-
pCnf
->
pClauses
[
i
]
)
)
if
(
!
glucose
2
_solver_addclause
(
&
S
,
pCnf
->
pClauses
[
i
],
pCnf
->
pClauses
[
i
+
1
]
-
pCnf
->
pClauses
[
i
]
)
)
assert
(
0
);
assert
(
0
);
Vec_Int_t
*
vCnfIds
=
Vec_IntAllocArrayCopy
(
pCnf
->
pVarNums
,
pCnf
->
nVars
);
Vec_Int_t
*
vCnfIds
=
Vec_IntAllocArrayCopy
(
pCnf
->
pVarNums
,
pCnf
->
nVars
);
//printf( "CNF stats: Vars = %6d. Clauses = %7d. Literals = %8d. ", pCnf->nVars, pCnf->nClauses, pCnf->nLiterals );
//printf( "CNF stats: Vars = %6d. Clauses = %7d. Literals = %8d. ", pCnf->nVars, pCnf->nClauses, pCnf->nLiterals );
...
@@ -1361,7 +1361,7 @@ int Glucose2_SolveAig(Gia_Man_t * p, Glucose2_Pars * pPars)
...
@@ -1361,7 +1361,7 @@ int Glucose2_SolveAig(Gia_Man_t * p, Glucose2_Pars * pPars)
vec
<
Lit
>
dummy
;
vec
<
Lit
>
dummy
;
lbool
ret
=
S
.
solveLimited
(
dummy
,
0
);
lbool
ret
=
S
.
solveLimited
(
dummy
,
0
);
if
(
pPars
->
verb
)
glucose_print_stats
(
S
,
Abc_Clock
()
-
clk
);
if
(
pPars
->
verb
)
glucose
2
_print_stats
(
S
,
Abc_Clock
()
-
clk
);
printf
(
ret
==
l_True
?
"SATISFIABLE"
:
ret
==
l_False
?
"UNSATISFIABLE"
:
"INDETERMINATE"
);
printf
(
ret
==
l_True
?
"SATISFIABLE"
:
ret
==
l_False
?
"UNSATISFIABLE"
:
"INDETERMINATE"
);
Abc_PrintTime
(
1
,
" Time"
,
Abc_Clock
()
-
clk
);
Abc_PrintTime
(
1
,
" Time"
,
Abc_Clock
()
-
clk
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment