From 9c8be56ccd76eecf43f59fe26fef3d8978213ed8 Mon Sep 17 00:00:00 2001 From: Alan Mishchenko Date: Thu, 6 Sep 2012 15:32:07 -0700 Subject: Integrated new fast semi-canonical form for Boolean functions up to 16 inputs. --- src/bool/lucky/luckyInt.h | 34 ++++++++++++++++++++++++++++++++-- 1 file changed, 32 insertions(+), 2 deletions(-) (limited to 'src/bool/lucky/luckyInt.h') diff --git a/src/bool/lucky/luckyInt.h b/src/bool/lucky/luckyInt.h index 295d3c30..02dc690d 100644 --- a/src/bool/lucky/luckyInt.h +++ b/src/bool/lucky/luckyInt.h @@ -24,6 +24,7 @@ #include #include + // comment out this line to run Lucky Code outside of ABC #define _RUNNING_ABC_ @@ -80,6 +81,8 @@ typedef struct int totalFlips; }permInfo; + + static inline void TimePrint( char* Message ) { static int timeBegin; @@ -89,6 +92,25 @@ static inline void TimePrint( char* Message ) timeBegin = clock(); } +static word SFmask[5][4] = { + {0x8888888888888888,0x4444444444444444,0x2222222222222222,0x1111111111111111}, + {0xC0C0C0C0C0C0C0C0,0x3030303030303030,0x0C0C0C0C0C0C0C0C,0x0303030303030303}, + {0xF000F000F000F000,0x0F000F000F000F00,0x00F000F000F000F0,0x000F000F000F000F}, + {0xFF000000FF000000,0x00FF000000FF0000,0x0000FF000000FF00,0x000000FF000000FF}, + {0xFFFF000000000000,0x0000FFFF00000000,0x00000000FFFF0000,0x000000000000FFFF} +}; + +static inline int CompareWords(word x, word y) +{ + if(x>y) + return 1; + else if(x