ABC: A System for Sequential Synthesis and Verification
 
Loading...
Searching...
No Matches
ifDec07.c File Reference
#include "if.h"
#include "misc/extra/extra.h"
#include "bool/kit/kit.h"
Include dependency graph for ifDec07.c:

Go to the source code of this file.

Functions

void Kit_DsdPrintFromTruth (unsigned *pTruth, int nVars)
 
void Extra_PrintBinary (FILE *pFile, unsigned Sign[], int nBits)
 
void If_DecPrintConfig (word z)
 FUNCTION DEFINITIONS ///.
 
word If_Dec6Truth (word z)
 
void If_Dec6Verify (word t, word z)
 
void If_Dec7Verify (word t[2], word z)
 
word If_Dec6Perform (word t, int fDerive)
 
word If_Dec7Perform (word t0[2], int fDerive)
 
word If_Dec6MinimumBase (word uTruth, int *pSupp, int nVarsAll, int *pnVars)
 
void If_Dec7MinimumBase (word uTruth[2], int *pSupp, int nVarsAll, int *pnVars)
 
int If_Dec6PickBestMux (word t, word Cofs[2])
 
int If_Dec7PickBestMux (word t[2], word c0r[2], word c1r[2])
 
word If_Dec5Perform (word t, int fDerive)
 
word If_Dec5PerformEx ()
 
void If_Dec5PerformTest ()
 
word If_CutPerformDerive07 (If_Man_t *p, unsigned *pTruth, int nVars, int nLeaves, char *pStr)
 
int If_CutPerformCheck07 (If_Man_t *p, unsigned *pTruth, int nVars, int nLeaves, char *pStr)
 
int If_MatchCheck1 (If_Man_t *p, unsigned *pTruth, int nVars, int nLeaves, char *pStr)
 
int If_MatchCheck2 (If_Man_t *p, unsigned *pTruth, int nVars, int nLeaves, char *pStr)
 

Function Documentation

◆ Extra_PrintBinary()

void Extra_PrintBinary ( FILE * pFile,
unsigned Sign[],
int nBits )
extern

Function*************************************************************

Synopsis [Prints the bit string.]

Description []

SideEffects []

SeeAlso []

Definition at line 516 of file extraUtilFile.c.

517{
518 int i;
519 for ( i = nBits-1; i >= 0; i-- )
520 fprintf( pFile, "%c", '0' + Abc_InfoHasBit(Sign, i) );
521// fprintf( pFile, "\n" );
522}
Here is the caller graph for this function:

◆ If_CutPerformCheck07()

int If_CutPerformCheck07 ( If_Man_t * p,
unsigned * pTruth,
int nVars,
int nLeaves,
char * pStr )

Function*************************************************************

Synopsis [Performs additional check.]

Description []

SideEffects []

SeeAlso []

Definition at line 1060 of file ifDec07.c.

1061{
1062 int fDerive = 0;
1063 int v;
1064 // skip non-support minimal
1065 for ( v = 0; v < nLeaves; v++ )
1066 if ( !Abc_TtHasVar( (word *)pTruth, nVars, v ) )
1067 return 0;
1068 // check
1069 if ( nLeaves < 5 )
1070 return 1;
1071 if ( nLeaves == 5 )
1072 {
1073 word z, t = ((word)pTruth[0] << 32) | (word)pTruth[0];
1074 z = If_Dec5Perform( t, fDerive );
1075 if ( fDerive && z )
1076 If_Dec6Verify( t, z );
1077 return z != 0;
1078 }
1079 if ( nLeaves == 6 )
1080 {
1081 word z, t = ((word *)pTruth)[0];
1082 z = If_Dec6Perform( t, fDerive );
1083 if ( fDerive && z )
1084 {
1085// If_DecPrintConfig( z );
1086 If_Dec6Verify( t, z );
1087 }
1088// if ( z == 0 )
1089// Extra_PrintHex(stdout, (unsigned *)&t, 6), printf( " " ), Kit_DsdPrintFromTruth( (unsigned *)&t, 6 ), printf( "\n" );
1090 return z != 0;
1091 }
1092 if ( nLeaves == 7 )
1093 {
1094 word z, t[2];
1095 t[0] = ((word *)pTruth)[0];
1096 t[1] = ((word *)pTruth)[1];
1097// if ( If_Dec7CheckMux(t) >= 0 )
1098// return 1;
1099 z = If_Dec7Perform( t, fDerive );
1100 if ( fDerive && z )
1101 If_Dec7Verify( t, z );
1102 return z != 0;
1103 }
1104 assert( 0 );
1105 return 0;
1106}
void If_Dec7Verify(word t[2], word z)
Definition ifDec07.c:163
word If_Dec6Perform(word t, int fDerive)
Definition ifDec07.c:409
void If_Dec6Verify(word t, word z)
Definition ifDec07.c:131
word If_Dec7Perform(word t0[2], int fDerive)
Definition ifDec07.c:449
word If_Dec5Perform(word t, int fDerive)
Definition ifDec07.c:857
unsigned __int64 word
DECLARATIONS ///.
Definition kitPerm.c:36
#define assert(ex)
Definition util_old.h:213
Here is the call graph for this function:
Here is the caller graph for this function:

◆ If_CutPerformDerive07()

word If_CutPerformDerive07 ( If_Man_t * p,
unsigned * pTruth,
int nVars,
int nLeaves,
char * pStr )

Function*************************************************************

Synopsis [Performs additional check.]

Description []

SideEffects []

SeeAlso []

Definition at line 1018 of file ifDec07.c.

1019{
1020 if ( nLeaves < 5 )
1021 return 1;
1022 if ( nLeaves == 5 )
1023 {
1024 word z, t = ((word)pTruth[0] << 32) | (word)pTruth[0];
1025 z = If_Dec5Perform( t, 1 );
1026 If_Dec6Verify( t, z );
1027 return z;
1028 }
1029 if ( nLeaves == 6 )
1030 {
1031 word z, t = ((word *)pTruth)[0];
1032 z = If_Dec6Perform( t, 1 );
1033 If_Dec6Verify( t, z );
1034 return z;
1035 }
1036 if ( nLeaves == 7 )
1037 {
1038 word z, t[2];
1039 t[0] = ((word *)pTruth)[0];
1040 t[1] = ((word *)pTruth)[1];
1041 z = If_Dec7Perform( t, 1 );
1042 If_Dec7Verify( t, z );
1043 return z;
1044 }
1045 assert( 0 );
1046 return 0;
1047}
Here is the call graph for this function:
Here is the caller graph for this function:

◆ If_Dec5Perform()

word If_Dec5Perform ( word t,
int fDerive )

Definition at line 857 of file ifDec07.c.

858{
859 int Pla2Var[7], Var2Pla[7];
860 int i, j, v;
861 word t0 = t;
862/*
863 word c0, c1, c00, c01, c10, c11;
864 for ( i = 0; i < 5; i++ )
865 {
866 c0 = If_Dec6Cofactor( t, i, 0 );
867 c1 = If_Dec6Cofactor( t, i, 1 );
868 if ( c0 == 0 )
869 return 1;
870 if ( ~c0 == 0 )
871 return 1;
872 if ( c1 == 0 )
873 return 1;
874 if ( ~c1 == 0 )
875 return 1;
876 if ( c0 == ~c1 )
877 return 1;
878 }
879 for ( i = 0; i < 4; i++ )
880 {
881 c0 = If_Dec6Cofactor( t, i, 0 );
882 c1 = If_Dec6Cofactor( t, i, 1 );
883 for ( j = i + 1; j < 5; j++ )
884 {
885 c00 = If_Dec6Cofactor( c0, j, 0 );
886 c01 = If_Dec6Cofactor( c0, j, 1 );
887 c10 = If_Dec6Cofactor( c1, j, 0 );
888 c11 = If_Dec6Cofactor( c1, j, 1 );
889 if ( c00 == c01 && c00 == c10 )
890 return 1;
891 if ( c11 == c01 && c11 == c10 )
892 return 1;
893 if ( c11 == c00 && c11 == c01 )
894 return 1;
895 if ( c11 == c00 && c11 == c10 )
896 return 1;
897 if ( c00 == c11 && c01 == c10 )
898 return 1;
899 }
900 }
901*/
902 // start arrays
903 for ( i = 0; i < 7; i++ )
904 Pla2Var[i] = Var2Pla[i] = i;
905 // generate permutations
906 for ( v = 0; v < 5; v++ )
907 {
908 t = If_Dec6MoveTo( t, v, 0, Pla2Var, Var2Pla );
909 If_DecVerifyPerm( Pla2Var, Var2Pla );
910 for ( i = 0; i < 4; i++ )
911 for ( j = i + 1; j < 4; j++ )
912 {
913 word z = If_Dec5CofCount2( t, i, j, Pla2Var, t0, fDerive );
914 if ( z )
915 {
916/*
917 if ( v == 0 && i == 1 && j == 2 )
918 {
919 Kit_DsdPrintFromTruth( (unsigned *)&t, 5 ); printf( "\n" );
920 }
921*/
922 return z;
923 }
924 }
925 }
926
927/*
928 // start arrays
929 for ( i = 0; i < 7; i++ )
930 Pla2Var[i] = Var2Pla[i] = i;
931
932 t = t0;
933 for ( v = 0; v < 5; v++ )
934 {
935 int x, y;
936
937 t = If_Dec6MoveTo( t, v, 0, Pla2Var, Var2Pla );
938 If_DecVerifyPerm( Pla2Var, Var2Pla );
939
940 for ( i = 0; i < 16; i++ )
941 printf( "%d ", ((t >> (i<<1)) & 3) );
942 printf( "\n" );
943
944 for ( x = 0; x < 4; x++ )
945 for ( y = x + 1; y < 4; y++ )
946 {
947 for ( i = 0; i < 16; i++ )
948 if ( !((i >> x) & 1) && !((i >> y) & 1) )
949 printf( "%d ", ((t >> (i<<1)) & 3) );
950 printf( "\n" );
951
952 for ( i = 0; i < 16; i++ )
953 if ( ((i >> x) & 1) && !((i >> y) & 1) )
954 printf( "%d ", ((t >> (i<<1)) & 3) );
955 printf( "\n" );
956
957 for ( i = 0; i < 16; i++ )
958 if ( !((i >> x) & 1) && ((i >> y) & 1) )
959 printf( "%d ", ((t >> (i<<1)) & 3) );
960 printf( "\n" );
961
962 for ( i = 0; i < 16; i++ )
963 if ( ((i >> x) & 1) && ((i >> y) & 1) )
964 printf( "%d ", ((t >> (i<<1)) & 3) );
965 printf( "\n" );
966 printf( "\n" );
967 }
968 }
969*/
970
971// Kit_DsdPrintFromTruth( (unsigned *)&t, 5 ); printf( "\n" );
972 return 0;
973}
Here is the caller graph for this function:

◆ If_Dec5PerformEx()

word If_Dec5PerformEx ( )

Definition at line 975 of file ifDec07.c.

976{
977 word z;
978 // find one
979 z = (word)(0x17ac & 0xFFFF);
980 z |= (((word)3) << (16 + 4*0));
981 z |= (((word)4) << (16 + 4*1));
982 z |= (((word)1) << (16 + 4*2));
983 z |= (((word)2) << (16 + 4*3));
984 // second one
985 z |= (((word)(0x179a & 0xFFFF)) << 32);
986 z |= (((word)0) << (48 + 4*0));
987 z |= (((word)7) << (48 + 4*1));
988 z |= (((word)1) << (48 + 4*2));
989 z |= (((word)2) << (48 + 4*3));
990 return z;
991}

◆ If_Dec5PerformTest()

void If_Dec5PerformTest ( )

Definition at line 992 of file ifDec07.c.

993{
994 word z, t, t1;
995// s = If_Dec5PerformEx();
996// t = If_Dec6Truth( s );
997 t = ABC_CONST(0xB0F3B0FFB0F3B0FF);
998
999 Kit_DsdPrintFromTruth( (unsigned *)&t, 5 ); printf("\n");
1000
1001 z = If_Dec5Perform( t, 1 );
1002 t1 = If_Dec6Truth( z );
1003 assert( t == t1 );
1004}
#define ABC_CONST(number)
PARAMETERS ///.
Definition abc_global.h:240
word If_Dec6Truth(word z)
Definition ifDec07.c:107
void Kit_DsdPrintFromTruth(unsigned *pTruth, int nVars)
Definition kitDsd.c:491
Here is the call graph for this function:

◆ If_Dec6MinimumBase()

word If_Dec6MinimumBase ( word uTruth,
int * pSupp,
int nVarsAll,
int * pnVars )

Definition at line 501 of file ifDec07.c.

502{
503 int v, iVar = 0, uSupp = 0;
504 assert( nVarsAll <= 6 );
505 for ( v = 0; v < nVarsAll; v++ )
506 if ( If_Dec6HasVar( uTruth, v ) )
507 {
508 uSupp |= (1 << v);
509 if ( pSupp )
510 pSupp[iVar] = pSupp[v];
511 iVar++;
512 }
513 if ( pnVars )
514 *pnVars = iVar;
515 if ( If_DecSuppIsMinBase( uSupp ) )
516 return uTruth;
517 return If_Dec6TruthShrink( uTruth, iVar, nVarsAll, uSupp );
518}
Here is the caller graph for this function:

◆ If_Dec6Perform()

word If_Dec6Perform ( word t,
int fDerive )

Definition at line 409 of file ifDec07.c.

410{
411 word r = 0;
412 int i, v, u, x, Count, Pla2Var[6], Var2Pla[6];
413 // start arrays
414 for ( i = 0; i < 6; i++ )
415 {
416 assert( If_Dec6HasVar( t, i ) );
417 Pla2Var[i] = Var2Pla[i] = i;
418 }
419 // generate permutations
420 i = 0;
421 for ( v = 0; v < 6; v++ )
422 for ( u = v+1; u < 6; u++, i++ )
423 {
424 t = If_Dec6MoveTo( t, v, 0, Pla2Var, Var2Pla );
425 t = If_Dec6MoveTo( t, u, 1, Pla2Var, Var2Pla );
426// If_DecVerifyPerm( Pla2Var, Var2Pla );
427 Count = If_Dec6CofCount2( t );
428 assert( Count > 1 );
429 if ( Count == 2 )
430 return !fDerive ? 1 : If_Dec6DeriveDisjoint( t, Pla2Var, Var2Pla );
431 // check non-disjoint decomposition
432 if ( !r && (Count == 3 || Count == 4) )
433 {
434 for ( x = 0; x < 4; x++ )
435 {
436 word c0 = If_Dec6Cofactor( t, x+2, 0 );
437 word c1 = If_Dec6Cofactor( t, x+2, 1 );
438 if ( If_Dec6CofCount2( c0 ) <= 2 && If_Dec6CofCount2( c1 ) <= 2 )
439 {
440 r = !fDerive ? 1 : If_Dec6DeriveNonDisjoint( t, x+2, Pla2Var, Var2Pla );
441 break;
442 }
443 }
444 }
445 }
446 assert( i == 15 );
447 return r;
448}
Here is the caller graph for this function:

◆ If_Dec6PickBestMux()

int If_Dec6PickBestMux ( word t,
word Cofs[2] )

Definition at line 626 of file ifDec07.c.

627{
628 int v, vBest = -1, Count0, Count1, CountBest = 1000;
629 for ( v = 0; v < 6; v++ )
630 {
631 Count0 = If_Dec6SuppSize( If_Dec6Cofactor(t, v, 0) );
632 Count1 = If_Dec6SuppSize( If_Dec6Cofactor(t, v, 1) );
633 if ( Count0 < 5 && Count1 < 5 && CountBest > Count0 + Count1 )
634 {
635 CountBest = Count0 + Count1;
636 vBest = v;
637 Cofs[0] = If_Dec6Cofactor(t, v, 0);
638 Cofs[1] = If_Dec6Cofactor(t, v, 1);
639 }
640 }
641 return vBest;
642}
Here is the caller graph for this function:

◆ If_Dec6Truth()

word If_Dec6Truth ( word z)

Definition at line 107 of file ifDec07.c.

108{
109 word r, q, f[4];
110 int i, v;
111 assert( z );
112 for ( i = 0; i < 4; i++ )
113 {
114 v = (z >> (16+(i<<2))) & 7;
115 assert( v != 7 );
116 if ( v == 6 )
117 continue;
118 f[i] = Truth6[v];
119 }
120 q = If_Dec6ComposeLut4( (int)(z & 0xffff), f );
121 for ( i = 0; i < 4; i++ )
122 {
123 v = (z >> (48+(i<<2))) & 7;
124 if ( v == 6 )
125 continue;
126 f[i] = (v == 7) ? q : Truth6[v];
127 }
128 r = If_Dec6ComposeLut4( (int)((z >> 32) & 0xffff), f );
129 return r;
130}
Here is the caller graph for this function:

◆ If_Dec6Verify()

void If_Dec6Verify ( word t,
word z )

Definition at line 131 of file ifDec07.c.

132{
133 word r = If_Dec6Truth( z );
134 if ( r != t )
135 {
137 Kit_DsdPrintFromTruth( (unsigned*)&t, 6 ); printf( "\n" );
138// Kit_DsdPrintFromTruth( (unsigned*)&q, 6 ); printf( "\n" );
139 Kit_DsdPrintFromTruth( (unsigned*)&r, 6 ); printf( "\n" );
140 printf( "Verification failed!\n" );
141 }
142}
void If_DecPrintConfig(word z)
FUNCTION DEFINITIONS ///.
Definition ifDec07.c:66
Here is the call graph for this function:
Here is the caller graph for this function:

◆ If_Dec7MinimumBase()

void If_Dec7MinimumBase ( word uTruth[2],
int * pSupp,
int nVarsAll,
int * pnVars )

Definition at line 533 of file ifDec07.c.

534{
535 int v, iVar = 0, uSupp = 0;
536 assert( nVarsAll <= 7 );
537 for ( v = 0; v < nVarsAll; v++ )
538 if ( If_Dec7HasVar( uTruth, v ) )
539 {
540 uSupp |= (1 << v);
541 if ( pSupp )
542 pSupp[iVar] = pSupp[v];
543 iVar++;
544 }
545 if ( pnVars )
546 *pnVars = iVar;
547 if ( If_DecSuppIsMinBase( uSupp ) )
548 return;
549 If_Dec7TruthShrink( uTruth, iVar, nVarsAll, uSupp );
550}
Here is the caller graph for this function:

◆ If_Dec7Perform()

word If_Dec7Perform ( word t0[2],
int fDerive )

Definition at line 449 of file ifDec07.c.

450{
451 word t[2] = {t0[0], t0[1]};
452 int i, v, u, y, Pla2Var[7], Var2Pla[7];
453 // start arrays
454 for ( i = 0; i < 7; i++ )
455 {
456/*
457 if ( i < 6 )
458 assert( If_Dec6HasVar( t[0], i ) || If_Dec6HasVar( t[1], i ) );
459 else
460 assert( t[0] != t[1] );
461*/
462 Pla2Var[i] = Var2Pla[i] = i;
463 }
464 // generate permutations
465 for ( v = 0; v < 7; v++ )
466 for ( u = v+1; u < 7; u++ )
467 for ( y = u+1; y < 7; y++ )
468 {
469 If_Dec7MoveTo( t, v, 0, Pla2Var, Var2Pla );
470 If_Dec7MoveTo( t, u, 1, Pla2Var, Var2Pla );
471 If_Dec7MoveTo( t, y, 2, Pla2Var, Var2Pla );
472// If_DecVerifyPerm( Pla2Var, Var2Pla );
473 if ( If_Dec7CofCount3( t ) == 2 )
474 {
475 return !fDerive ? 1 : If_Dec7DeriveDisjoint( t, Pla2Var, Var2Pla );
476 }
477 }
478 return 0;
479}
Here is the caller graph for this function:

◆ If_Dec7PickBestMux()

int If_Dec7PickBestMux ( word t[2],
word c0r[2],
word c1r[2] )

Definition at line 643 of file ifDec07.c.

644{
645 word c0[2], c1[2];
646 int v, vBest = -1, Count0, Count1, CountBest = 1000;
647 for ( v = 0; v < 7; v++ )
648 {
649 If_Dec7Cofactor( t, v, 0, c0 );
650 If_Dec7Cofactor( t, v, 1, c1 );
651 Count0 = If_Dec7SuppSize(c0);
652 Count1 = If_Dec7SuppSize(c1);
653 if ( Count0 < 5 && Count1 < 5 && CountBest > Count0 + Count1 )
654 {
655 CountBest = Count0 + Count1;
656 vBest = v;
657 c0r[0] = c0[0]; c0r[1] = c0[1];
658 c1r[0] = c1[0]; c1r[1] = c1[1];
659 }
660 }
661 return vBest;
662}
Here is the caller graph for this function:

◆ If_Dec7Verify()

void If_Dec7Verify ( word t[2],
word z )

Definition at line 163 of file ifDec07.c.

164{
165 word f[4][2], r[2];
166 int i, v;
167 assert( z );
168 for ( i = 0; i < 4; i++ )
169 {
170 v = (z >> (16+(i<<2))) & 7;
171 f[i][0] = Truth7[v][0];
172 f[i][1] = Truth7[v][1];
173 }
174 If_Dec7ComposeLut4( (int)(z & 0xffff), f, r );
175 f[3][0] = r[0];
176 f[3][1] = r[1];
177 for ( i = 0; i < 3; i++ )
178 {
179 v = (z >> (48+(i<<2))) & 7;
180 f[i][0] = Truth7[v][0];
181 f[i][1] = Truth7[v][1];
182 }
183 If_Dec7ComposeLut4( (int)((z >> 32) & 0xffff), f, r );
184 if ( r[0] != t[0] || r[1] != t[1] )
185 {
187 Kit_DsdPrintFromTruth( (unsigned*)t, 7 ); printf( "\n" );
188 Kit_DsdPrintFromTruth( (unsigned*)r, 7 ); printf( "\n" );
189 printf( "Verification failed!\n" );
190 }
191}
Here is the call graph for this function:
Here is the caller graph for this function:

◆ If_DecPrintConfig()

void If_DecPrintConfig ( word z)

FUNCTION DEFINITIONS ///.

Definition at line 66 of file ifDec07.c.

67{
68 unsigned S[1];
69 S[0] = (z & 0xffff) | ((z & 0xffff) << 16);
70 Extra_PrintBinary( stdout, S, 16 );
71 printf( " " );
73 printf( " " );
74 printf( " %d", (int)((z >> 16) & 7) );
75 printf( " %d", (int)((z >> 20) & 7) );
76 printf( " %d", (int)((z >> 24) & 7) );
77 printf( " %d", (int)((z >> 28) & 7) );
78 printf( " " );
79 S[0] = ((z >> 32) & 0xffff) | (((z >> 32) & 0xffff) << 16);
80 Extra_PrintBinary( stdout, S, 16 );
81 printf( " " );
83 printf( " " );
84 printf( " %d", (int)((z >> 48) & 7) );
85 printf( " %d", (int)((z >> 52) & 7) );
86 printf( " %d", (int)((z >> 56) & 7) );
87 printf( " %d", (int)((z >> 60) & 7) );
88 printf( "\n" );
89}
void Extra_PrintBinary(FILE *pFile, unsigned Sign[], int nBits)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ If_MatchCheck1()

int If_MatchCheck1 ( If_Man_t * p,
unsigned * pTruth,
int nVars,
int nLeaves,
char * pStr )

Function*************************************************************

Synopsis []

Description []

SideEffects []

SeeAlso []

Definition at line 1119 of file ifDec07.c.

1120{
1121 if ( nLeaves < nVars )
1122 return 1;
1123 assert( nLeaves == nVars );
1124 if ( Abc_Tt6Check1( ((word *)pTruth)[0], nLeaves ) )
1125 return 1;
1126 return 0;
1127}

◆ If_MatchCheck2()

int If_MatchCheck2 ( If_Man_t * p,
unsigned * pTruth,
int nVars,
int nLeaves,
char * pStr )

Definition at line 1128 of file ifDec07.c.

1129{
1130 if ( nLeaves < nVars )
1131 return 1;
1132 assert( nLeaves == nVars );
1133 if ( Abc_Tt6Check2( ((word *)pTruth)[0], nLeaves ) )
1134 return 1;
1135 return 0;
1136}

◆ Kit_DsdPrintFromTruth()

void Kit_DsdPrintFromTruth ( unsigned * pTruth,
int nVars )
extern

Function*************************************************************

Synopsis [Print the DSD formula.]

Description []

SideEffects []

SeeAlso []

Definition at line 491 of file kitDsd.c.

492{
493 Kit_DsdNtk_t * pTemp, * pTemp2;
494// pTemp = Kit_DsdDecomposeMux( pTruth, nVars, 5 );
495 pTemp = Kit_DsdDecomposeMux( pTruth, nVars, 8 );
496// Kit_DsdPrintExpanded( pTemp );
497 pTemp2 = Kit_DsdExpand( pTemp );
498 Kit_DsdPrint( stdout, pTemp2 );
499 Kit_DsdVerify( pTemp2, pTruth, nVars );
500 Kit_DsdNtkFree( pTemp2 );
501 Kit_DsdNtkFree( pTemp );
502}
void Kit_DsdVerify(Kit_DsdNtk_t *pNtk, unsigned *pTruth, int nVars)
Definition kitDsd.c:2493
void Kit_DsdPrint(FILE *pFile, Kit_DsdNtk_t *pNtk)
Definition kitDsd.c:375
void Kit_DsdNtkFree(Kit_DsdNtk_t *pNtk)
Definition kitDsd.c:164
Kit_DsdNtk_t * Kit_DsdDecomposeMux(unsigned *pTruth, int nVars, int nDecMux)
Definition kitDsd.c:2351
Kit_DsdNtk_t * Kit_DsdExpand(Kit_DsdNtk_t *p)
Definition kitDsd.c:1452
struct Kit_DsdNtk_t_ Kit_DsdNtk_t
Definition kit.h:124
Here is the caller graph for this function: