FUNCTION DEFINITIONS ///.
4538{
4539 unsigned uMasks[4][2] = {
4540 { 0x5555, 0xAAAA },
4541 { 0x3333, 0xCCCC },
4542 { 0x0F0F, 0xF0F0 },
4543 { 0x00FF, 0xFF00 }
4544 };
4545 char Map[256], * pPrev, * pMemory;
4546 char * pSopSizes, ** pSops;
4547 int i, k, b, Size;
4548
4549
4550 for ( i = 0; i < 256; i++ )
4551 Map[i] = (char)(-1);
4552 for ( i = 0; i < 81; i++ )
4553 Map[(
int)
s_Data3[i]] = (char)i;
4554
4555
4556 for ( Size = 0; s_Data4[Size] && Size < 100000; Size++ );
4558
4559
4561
4562 for ( i = 0; i < Size; i++ )
4563 for ( k = 0; k < 75; k++ )
4564 if ( s_Data4[i][k] == ' ' )
4565 pMemory[i*75+k] = (char)(-1);
4566 else
4567 pMemory[i*75+k] = Map[(int)s_Data4[i][k]];
4568
4569
4572 pSopSizes[0] = 0;
4573 pSops[0] = NULL;
4574 pPrev = pMemory;
4575 for ( k = 0, i = 1; i < 65536; k++ )
4576 if ( pMemory[k] == (char)(-1) )
4577 {
4578 pSopSizes[i] = pMemory + k - pPrev;
4579 pSops[i++] = pPrev;
4580 pPrev = pMemory + k + 1;
4581 }
4582 *ppSopSizes = pSopSizes;
4583 *ppSops = pSops;
4584
4585
4586 for ( i = 1; i < 65536; i++ )
4587 {
4588 int uTruth = 0, uCube, Lit;
4589 for ( k = 0; k < pSopSizes[i]; k++ )
4590 {
4591 uCube = 0xFFFF;
4592 Lit = pSops[i][k];
4593 for ( b = 3; b >= 0; b-- )
4594 {
4595 if ( Lit % 3 == 0 )
4596 uCube &= uMasks[b][0];
4597 else if ( Lit % 3 == 1 )
4598 uCube &= uMasks[b][1];
4599 Lit = Lit / 3;
4600 }
4601 uTruth |= uCube;
4602 }
4604 }
4605}
#define ABC_ALLOC(type, num)
unsigned int s_Data3[24772]