buddy: rename libbdd to libbddx
* buddy/src/bdd.h, buddy/src/bvec.h, buddy/src/fdd.h: Rename as... * buddy/src/bddx.h, buddy/src/bvecx.h, buddy/src/fddx.h: ... these. * buddy/src/Makefile.am: Build libbddx.la instead of libbdd.la. * buddy/examples/Makefile.def: Use it. * Makefile.am, buddy/src/bddtest.cxx, buddy/src/bvec.c, buddy/src/cppext.cxx, buddy/src/fdd.c, buddy/src/imatrix.h, buddy/src/kernel.h, buddy/examples/adder/adder.cxx, buddy/examples/bddcalc/parser_.h, buddy/examples/bddtest/bddtest.cxx, buddy/examples/cmilner/cmilner.c, buddy/examples/fdd/fdd.cxx, buddy/examples/milner/milner.cxx, buddy/examples/money/money.cxx, buddy/examples/queen/queen.cxx, buddy/examples/solitare/solitare.cxx, m4/buddy.m4, src/ltlvisit/apcollect.hh, src/ltlvisit/simplify.hh, src/misc/bddlt.hh, src/misc/bddop.hh, src/misc/minato.hh, src/priv/acccompl.hh, src/priv/accconv.hh, src/priv/accmap.hh, src/priv/bddalloc.cc, src/tgba/bdddict.hh, src/tgba/bddprint.hh, src/tgba/tgbamask.hh, src/tgba/tgbasafracomplement.cc, src/tgbaalgos/emptiness.hh, src/tgbaalgos/gtec/sccstack.hh, src/tgbaalgos/neverclaim.cc, src/tgbaalgos/powerset.cc, src/tgbaalgos/sccfilter.hh, src/tgbaalgos/sccinfo.hh, src/tgbaalgos/weight.hh, wrap/python/buddy.i: Adjust. * NEWS, README: Document it.
This commit is contained in:
parent
f35be908c8
commit
ad8d24222a
45 changed files with 253 additions and 291 deletions
|
|
@ -1,2 +1,2 @@
|
|||
AM_CPPFLAGS = -I$(top_srcdir)/src -I$(srcdir)
|
||||
LDADD = $(top_builddir)/src/libbdd.la
|
||||
LDADD = $(top_builddir)/src/libbddx.la
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@
|
|||
#include <string.h>
|
||||
#include <time.h>
|
||||
#include <iostream>
|
||||
#include "bdd.h"
|
||||
#include "bddx.h"
|
||||
|
||||
using namespace std;
|
||||
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@
|
|||
#define _PARSER_H
|
||||
|
||||
#include <stdio.h>
|
||||
#include "bdd.h"
|
||||
#include "bddx.h"
|
||||
|
||||
#define MAXIDLEN 32 /* Max. number of allowed characters in an identifier */
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
#include <iomanip>
|
||||
#include <stdlib.h>
|
||||
#include <bdd.h>
|
||||
#include <bddx.h>
|
||||
|
||||
static const int varnum = 5;
|
||||
|
||||
|
|
@ -47,9 +47,9 @@ void test1_check(bdd x)
|
|||
{
|
||||
using namespace std ;
|
||||
double anum = bdd_satcount(x);
|
||||
|
||||
|
||||
cout << "Checking bdd with " << setw(4) << anum << " assignments: ";
|
||||
|
||||
|
||||
allsatBDD = x;
|
||||
allsatSumBDD = bddfalse;
|
||||
|
||||
|
|
@ -107,7 +107,7 @@ void test1()
|
|||
int v = rand() % varnum;
|
||||
int s = rand() % 2;
|
||||
int o = rand() % 2;
|
||||
|
||||
|
||||
if (o == 0)
|
||||
{
|
||||
if (s == 0)
|
||||
|
|
@ -136,10 +136,10 @@ int main()
|
|||
{
|
||||
bdd_init(1000,1000);
|
||||
bdd_setvarnum(varnum);
|
||||
|
||||
|
||||
test1();
|
||||
|
||||
|
||||
bdd_done();
|
||||
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <math.h>
|
||||
#include "bdd.h"
|
||||
#include "bddx.h"
|
||||
|
||||
int N; /* Number of cyclers */
|
||||
int *normvar; /* Current state variables */
|
||||
|
|
@ -289,4 +289,3 @@ int main(int argc, char** argv)
|
|||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@
|
|||
* 0 -> 1 -> 2 -> 3 -> 4 -> 5 -> -> 7 -> 0
|
||||
*/
|
||||
|
||||
#include "fdd.h"
|
||||
#include "fddx.h"
|
||||
|
||||
/* Use the transition relation "transRel" to iterate through the statespace
|
||||
*/
|
||||
|
|
@ -63,7 +63,7 @@ int main() {
|
|||
{
|
||||
/* Set the current state to be state 'i' */
|
||||
bdd current = fdd_ithvar(0,i);
|
||||
|
||||
|
||||
/* Set the next state to be state 'i+1' */
|
||||
bdd next = fdd_ithvar(1, (i+1) % 8);
|
||||
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <math.h>
|
||||
#include "bdd.h"
|
||||
#include "bddx.h"
|
||||
#include <iostream>
|
||||
using namespace std;
|
||||
|
||||
|
|
@ -17,11 +17,11 @@ bdd A(bdd* x, bdd* y, int z)
|
|||
{
|
||||
bdd res = bddtrue;
|
||||
int i;
|
||||
|
||||
|
||||
for(i=0 ; i<N ; i++)
|
||||
if(i != z)
|
||||
res &= bdd_apply(x[i],y[i],bddop_biimp);
|
||||
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
|
|
@ -35,19 +35,19 @@ bdd transitions(bdd* t, bdd* tp, bdd* h, bdd* hp, bdd* c, bdd* cp)
|
|||
bdd P; // Cycler i's handling of the token
|
||||
bdd E; // Cycler i's handling of it's task
|
||||
bdd T = bddfalse; // The monolithic transition relation
|
||||
|
||||
|
||||
for(i=0 ; i<N ; i++)
|
||||
{
|
||||
P = ((c[i]>cp[i]) & (tp[i]>t[i]) & hp[i] & A(c,cp,i)
|
||||
& A(t,tp,i) & A(h,hp,i))
|
||||
| ((h[i]>hp[i]) & cp[(i+1)%N] & A(c,cp,(i+1)%N) & A(h,hp,i)
|
||||
& A(t,tp,N));
|
||||
|
||||
|
||||
E = t[i] & !tp[i] & A(t,tp,i) & A(h,hp,N) & A(c,cp,N);
|
||||
|
||||
|
||||
T |= P | E;
|
||||
}
|
||||
|
||||
|
||||
return T;
|
||||
}
|
||||
|
||||
|
|
@ -58,10 +58,10 @@ bdd initial_state(bdd* t, bdd* h, bdd* c)
|
|||
{
|
||||
int i;
|
||||
bdd I = c[0] & !h[0] & !t[0];
|
||||
|
||||
|
||||
for(i=1; i<N; i++)
|
||||
I &= !c[i] & !h[i] & !t[i];
|
||||
|
||||
|
||||
return I;
|
||||
}
|
||||
|
||||
|
|
@ -90,7 +90,7 @@ bdd reachable_states(bdd I, bdd T)
|
|||
R |= tmp;
|
||||
}
|
||||
while(prevR != R);
|
||||
|
||||
|
||||
return R;
|
||||
}
|
||||
|
||||
|
|
@ -105,38 +105,38 @@ int main(int argc, char** argv)
|
|||
cerr << " N number of cyclers\n";
|
||||
exit(1);
|
||||
}
|
||||
|
||||
|
||||
N = atoi(argv[1]);
|
||||
if (N <= 0)
|
||||
{
|
||||
cerr << "The number of cyclers must be more than zero\n";
|
||||
exit(2);
|
||||
}
|
||||
|
||||
|
||||
bdd_init(500000, 50000);
|
||||
bdd_setvarnum(N*6);
|
||||
|
||||
|
||||
bdd* c = new bdd[N];
|
||||
bdd* cp = new bdd[N];
|
||||
bdd* t = new bdd[N];
|
||||
bdd* tp = new bdd[N];
|
||||
bdd* h = new bdd[N];
|
||||
bdd* hp = new bdd[N];
|
||||
|
||||
|
||||
int *nvar = new int[N*3];
|
||||
int *pvar = new int[N*3];
|
||||
|
||||
|
||||
for (n=0 ; n<N*3 ; n++)
|
||||
{
|
||||
nvar[n] = n*2;
|
||||
pvar[n] = n*2+1;
|
||||
}
|
||||
|
||||
|
||||
normvar = bdd_makeset(nvar, N*3);
|
||||
primvar = bdd_makeset(pvar, N*3);
|
||||
renamepair = bdd_newpair();
|
||||
bdd_setpairs(renamepair, pvar, nvar, N*3);
|
||||
|
||||
|
||||
for (n=0 ; n<N ; n++)
|
||||
{
|
||||
c[n] = bdd_ithvar(n*6);
|
||||
|
|
@ -161,7 +161,7 @@ int main(int argc, char** argv)
|
|||
bdd I = initial_state(t,h,c);
|
||||
bdd T = transitions(t,tp,h,hp,c,cp);
|
||||
bdd R = reachable_states(I,T);
|
||||
|
||||
|
||||
bddStat s;
|
||||
bdd_stats(&s);
|
||||
|
||||
|
|
@ -176,4 +176,3 @@ int main(int argc, char** argv)
|
|||
bdd_done();
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
#include "bvec.h"
|
||||
#include "bvecx.h"
|
||||
#include <iostream>
|
||||
using namespace std;
|
||||
|
||||
|
|
@ -16,15 +16,15 @@ using namespace std;
|
|||
|
||||
int main(void)
|
||||
{
|
||||
using namespace std ;
|
||||
using namespace std ;
|
||||
// Allocate 11 domains with room for up to 3*10
|
||||
static int dom[11] = {30,30,30,30,30,30,30,30,30,30,30};
|
||||
|
||||
|
||||
bdd_init(10000,10000);
|
||||
fdd_extdomain(dom,11);
|
||||
|
||||
// Assign binary vectors (expressions) to the digits
|
||||
|
||||
|
||||
bvec s = bvec_varfdd(0); // The 's' digit
|
||||
bvec e = bvec_varfdd(1); // The 'e' digit
|
||||
bvec n = bvec_varfdd(2); // ...
|
||||
|
|
@ -50,7 +50,7 @@ int main(void)
|
|||
|
||||
// The use of "m1*10" instead of "m1*c10" avoids a bitnum mismatch since
|
||||
// "m1*10" results in 5 bits but "m1*c10" results in 10 bits!
|
||||
|
||||
|
||||
// And so on ...
|
||||
bdd t2 = (n + r + m1 == e + m2*10) & n<c10 & r<c10 & m2<c2;
|
||||
bdd t3 = (e + o + m2 == n + m3*10) & o<c10 & m3<c2;
|
||||
|
|
@ -71,6 +71,6 @@ int main(void)
|
|||
|
||||
// Print result
|
||||
cout << fddset << t << endl;
|
||||
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -23,11 +23,11 @@
|
|||
. . . X
|
||||
X . . .
|
||||
. . X .
|
||||
|
||||
|
||||
**************************************************************************/
|
||||
#include <stdlib.h>
|
||||
#include <iostream>
|
||||
#include "bdd.h"
|
||||
#include "bddx.h"
|
||||
using namespace std;
|
||||
|
||||
int N; /* Size of the chess board */
|
||||
|
|
@ -41,7 +41,7 @@ void build(int i, int j)
|
|||
{
|
||||
bdd a=bddtrue, b=bddtrue, c=bddtrue, d=bddtrue;
|
||||
int k,l;
|
||||
|
||||
|
||||
/* No one in the same column */
|
||||
for (l=0 ; l<N ; l++)
|
||||
if (l != j)
|
||||
|
|
@ -78,7 +78,7 @@ int main(int ac, char **av)
|
|||
{
|
||||
using namespace std ;
|
||||
int n,i,j;
|
||||
|
||||
|
||||
if (ac != 2)
|
||||
{
|
||||
fprintf(stderr, "USAGE: queen N\n");
|
||||
|
|
@ -97,7 +97,7 @@ int main(int ac, char **av)
|
|||
bdd_setvarnum(N*N);
|
||||
|
||||
queen = bddtrue;
|
||||
|
||||
|
||||
/* Build variable array */
|
||||
X = new bdd*[N];
|
||||
for (n=0 ; n<N ; n++)
|
||||
|
|
@ -115,7 +115,7 @@ int main(int ac, char **av)
|
|||
e |= X[i][j];
|
||||
queen &= e;
|
||||
}
|
||||
|
||||
|
||||
/* Build requirements for each variable(field) */
|
||||
for (i=0 ; i<N ; i++)
|
||||
for (j=0 ; j<N ; j++)
|
||||
|
|
@ -131,6 +131,6 @@ int main(int ac, char **av)
|
|||
cout << bddset << solution << endl;
|
||||
|
||||
bdd_done();
|
||||
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
#include <unistd.h>
|
||||
#include <stdlib.h>
|
||||
#include <iostream>
|
||||
#include "bdd.h"
|
||||
#include "bddx.h"
|
||||
using std::cout;
|
||||
using std::endl;
|
||||
using std::flush;
|
||||
|
|
@ -23,7 +23,7 @@ bddPair *pair; // Renaming pair
|
|||
|
||||
|
||||
// All the possible moves. Note that the numbering starts from '1'
|
||||
int moves[][3] =
|
||||
int moves[][3] =
|
||||
{ {1,4,9}, {1,2,3},
|
||||
{2,5,10},
|
||||
{3,2,1}, {3,6,11},
|
||||
|
|
@ -68,7 +68,7 @@ int moves[][3] =
|
|||
void make_board(void)
|
||||
{
|
||||
bdd_setvarnum(SIZE*2);
|
||||
|
||||
|
||||
for (int n=0 ; n<SIZE ; n++)
|
||||
{
|
||||
boardC[n] = bdd_ithvar(n*2);
|
||||
|
|
@ -81,7 +81,7 @@ void make_board(void)
|
|||
void make_initial_state(void)
|
||||
{
|
||||
I = bddtrue;
|
||||
|
||||
|
||||
for (int n=0 ; n<SIZE ; n++)
|
||||
if (n == CENTER)
|
||||
I &= !boardC[n];
|
||||
|
|
@ -95,7 +95,7 @@ void make_initial_state(void)
|
|||
bdd all_other_idle(int src, int tmp, int dst)
|
||||
{
|
||||
bdd idle = bddtrue;
|
||||
|
||||
|
||||
for (int n=0 ; n<SIZE ; n++)
|
||||
{
|
||||
if (n != src && n != tmp && n != dst)
|
||||
|
|
@ -113,7 +113,7 @@ bdd make_move(int src, int tmp, int dst)
|
|||
!boardN[src] & !boardN[tmp] & boardN[dst];
|
||||
|
||||
move &= all_other_idle(src, tmp, dst);
|
||||
|
||||
|
||||
return move;
|
||||
}
|
||||
|
||||
|
|
@ -122,7 +122,7 @@ void make_transition_relation(void)
|
|||
{
|
||||
using namespace std ;
|
||||
T = bddfalse;
|
||||
|
||||
|
||||
for (int n=0 ; moves[n][0]!=moves[n][1] ; n++)
|
||||
T |= make_move(moves[n][0]-1, moves[n][1]-1, moves[n][2]-1);
|
||||
|
||||
|
|
@ -137,7 +137,7 @@ void make_itedata(void)
|
|||
pair = bdd_newpair();
|
||||
for (int n=0 ; n<SIZE ; n++)
|
||||
bdd_setpair(pair, n*2+1, n*2);
|
||||
|
||||
|
||||
currentvar = bddtrue;
|
||||
for (int n=0 ; n<SIZE ; n++)
|
||||
currentvar &= boardC[n];
|
||||
|
|
@ -152,7 +152,7 @@ void iterate(void)
|
|||
int cou = 1;
|
||||
|
||||
make_itedata();
|
||||
|
||||
|
||||
do
|
||||
{
|
||||
tmp = reachable;
|
||||
|
|
@ -177,7 +177,7 @@ void iterate_front(void)
|
|||
int cou = 1;
|
||||
|
||||
make_itedata();
|
||||
|
||||
|
||||
do
|
||||
{
|
||||
tmp = reachable;
|
||||
|
|
@ -201,7 +201,7 @@ void setup(void)
|
|||
bdd_init(100000,1000);
|
||||
bdd_setcacheratio(64);
|
||||
bdd_setmaxincrease(500000);
|
||||
|
||||
|
||||
dummyStateNum = pow(2.0, SIZE);
|
||||
|
||||
make_board();
|
||||
|
|
@ -217,4 +217,3 @@ int main(void)
|
|||
|
||||
system("ps aux | grep \"./solitare\" | grep -v \"grep\"");
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue