AI-PBDD
view release on metacpan or search on metacpan
my $bdd1 = AI::PBDD::createBDD();
$names{AI::PBDD::internal_index($bdd1)} = 'A';
my $bdd2 = AI::PBDD::createBDD();
$names{AI::PBDD::internal_index($bdd2)} = 'B';
my $bdd = AI::PBDD::imp($bdd1,$bdd2);
my $dmp = DumpBDD($bdd, \%names);
is($dmp, "A (B (T) (F)) (T)", "imp()");
AI::PBDD::kill();
}
{
#
# biimp
#
AI::PBDD::init(100,1000000);
my %names = ();
my $bdd1 = AI::PBDD::createBDD();
$names{AI::PBDD::internal_index($bdd1)} = 'A';
my $bdd2 = AI::PBDD::createBDD();
$names{AI::PBDD::internal_index($bdd2)} = 'B';
my $bdd = AI::PBDD::biimp($bdd1,$bdd2);
my $dmp = DumpBDD($bdd, \%names);
is($dmp, "A (B (T) (F)) (B (F) (T))", "biimp()");
AI::PBDD::kill();
}
{
#
# not
#
AI::PBDD::init(100,1000000);
my %names = ();
my $bdd1 = AI::PBDD::createBDD();
$names{AI::PBDD::internal_index($bdd1)} = 'A';
my $bdd = AI::PBDD::not($bdd1);
my $dmp = DumpBDD($bdd, \%names);
is($dmp, "A (F) (T)", "not()");
AI::PBDD::kill();
}
{
#
# makeSet
#
my @vars;
my %names = ();
AI::PBDD::init(100,1000000);
my $bdd1 = AI::PBDD::createBDD();
$names{AI::PBDD::internal_index($bdd1)} = 'A';
push @vars, $bdd1;
my $bdd2 = AI::PBDD::createBDD();
$names{AI::PBDD::internal_index($bdd2)} = 'B';
push @vars, $bdd2;
my $set = AI::PBDD::makeSet(\@vars, 2);
my $dmp = DumpBDD($set, \%names);
is($dmp, "A (B (T) (F)) (F)", "first makeSet()");
$set = AI::PBDD::makeSet(\@vars, 1, 1);
$dmp = DumpBDD($set, \%names);
is($dmp, "B (T) (F)", "second makeSet()");
AI::PBDD::kill();
}
{
#
# exists
#
AI::PBDD::init(100,1000000);
my %names = ();
my $bdd1 = AI::PBDD::createBDD();
$names{AI::PBDD::internal_index($bdd1)} = 'A';
my $bdd2 = AI::PBDD::createBDD();
$names{AI::PBDD::internal_index($bdd2)} = 'B';
my $bdd3 = AI::PBDD::and($bdd1,$bdd2);
my $bdd = AI::PBDD::exists($bdd3, $bdd1);
my $dmp = DumpBDD($bdd, \%names);
is($dmp, "B (T) (F)", "first exists()");
$bdd = AI::PBDD::exists($bdd3, $bdd2);
$dmp = DumpBDD($bdd, \%names);
is($dmp, "A (T) (F)", "second exists()");
AI::PBDD::kill();
}
{
#
# forall
#
AI::PBDD::init(100,1000000);
my %names = ();
my $bdd1 = AI::PBDD::createBDD();
$names{AI::PBDD::internal_index($bdd1)} = 'A';
my $bdd2 = AI::PBDD::createBDD();
$names{AI::PBDD::internal_index($bdd2)} = 'B';
my $bdd3 = AI::PBDD::or($bdd1,$bdd2);
my $bdd = AI::PBDD::forall($bdd3, $bdd1);
my $dmp = DumpBDD($bdd, \%names);
is($dmp, "B (T) (F)", "first forall()");
$bdd = AI::PBDD::forall($bdd3, $bdd2);
$dmp = DumpBDD($bdd, \%names);
is($dmp, "A (T) (F)", "second forall()");
AI::PBDD::kill();
}
{
#
# relProd
#
AI::PBDD::init(100,1000000);
my %names = ();
my $bdd1 = AI::PBDD::createBDD();
$names{AI::PBDD::internal_index($bdd1)} = 'A';
( run in 0.703 second using v1.01-cache-2.11-cpan-39bf76dae61 )