⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mvc.h

📁 主要进行大规模的电路综合
💻 H
📖 第 1 页 / 共 3 页
字号:
#define Mvc_Cube1BitSharp( CubeR, Cube1, Cube2 )\         (((CubeR)->pData[0]) = ((Cube1)->pData[0] & ~((Cube2)->pData[0])))#define Mvc_Cube2BitSharp( CubeR, Cube1, Cube2 )\        ((((CubeR)->pData[0]) = ((Cube1)->pData[0] & ~((Cube2)->pData[0]))),\         (((CubeR)->pData[1]) = ((Cube1)->pData[1] & ~((Cube2)->pData[1]))))#define Mvc_CubeNBitSharp( CubeR, Cube1, Cube2 )\{\    int _i_;\    for (_i_ = (Cube1)->iLast; _i_ >= 0; _i_--)\        (((CubeR)->pData[_i_]) = ((Cube1)->pData[_i_] & ~(Cube2)->pData[_i_]));\}  #define Mvc_Cube1BitEmpty( Res, Cube )\  (Res = ((Cube)->pData[0] == 0))#define Mvc_Cube2BitEmpty( Res, Cube )\  (Res = ((Cube)->pData[0] == 0 && (Cube)->pData[1] == 0))#define Mvc_CubeNBitEmpty( Res, Cube )\{\    int _i_; Res = 1;\    for (_i_ = (Cube)->iLast; _i_ >= 0; _i_--)\        if ( (Cube)->pData[_i_] )\           { Res = 0; break; }\}#define Mvc_Cube1BitEqual( Res, Cube1, Cube2 )\  (Res = (((Cube1)->pData[0]) == ((Cube2)->pData[0])))#define Mvc_Cube2BitEqual( Res, Cube1, Cube2 )\ (Res = ((((Cube1)->pData[0]) == ((Cube2)->pData[0])) &&\         (((Cube1)->pData[1]) == ((Cube2)->pData[1]))))#define Mvc_CubeNBitEqual( Res, Cube1, Cube2 )\{\    int _i_; Res = 1;\    for (_i_ = (Cube1)->iLast; _i_ >= 0; _i_--)\         if (((Cube1)->pData[_i_]) != ((Cube2)->pData[_i_]))\              { Res = 0; break; }\}#define Mvc_Cube1BitLess( Res, Cube1, Cube2 )\  (Res = (((Cube1)->pData[0]) <  ((Cube2)->pData[0])))#define Mvc_Cube2BitLess( Res, Cube1, Cube2 )\ (Res = ((((Cube1)->pData[0]) <  ((Cube2)->pData[0])) ||\        ((((Cube1)->pData[0]) == ((Cube2)->pData[0])) && (((Cube1)->pData[1]) <  ((Cube2)->pData[1])))))#define Mvc_CubeNBitLess( Res, Cube1, Cube2 )\{\    int _i_; Res = 1;\    for (_i_ = (Cube1)->iLast; _i_ >= 0; _i_--)\         if (((Cube1)->pData[_i_]) >= ((Cube2)->pData[_i_]))\             { Res = 0; break; }\}        #define Mvc_Cube1BitMore( Res, Cube1, Cube2 )\  (Res = (((Cube1)->pData[0]) >  ((Cube2)->pData[0])))#define Mvc_Cube2BitMore( Res, Cube1, Cube2 )\ (Res = ((((Cube1)->pData[0]) >  ((Cube2)->pData[0])) ||\        ((((Cube1)->pData[0]) == ((Cube2)->pData[0])) && (((Cube1)->pData[1]) >  ((Cube2)->pData[1])))))#define Mvc_CubeNBitMore( Res, Cube1, Cube2 )\{\    int _i_; Res = 1;\    for (_i_ = (Cube1)->iLast; _i_ >= 0; _i_--)\        if (((Cube1)->pData[_i_]) <= ((Cube2)->pData[_i_]))\             { Res = 0; break; }\}         #define Mvc_Cube1BitNotImpl( Res, Cube1, Cube2 )\  (Res = (((Cube1)->pData[0])  & ~((Cube2)->pData[0])))#define Mvc_Cube2BitNotImpl( Res, Cube1, Cube2 )\ (Res = ((((Cube1)->pData[0]) & ~((Cube2)->pData[0])) ||\         (((Cube1)->pData[1]) & ~((Cube2)->pData[1]))))#define Mvc_CubeNBitNotImpl( Res, Cube1, Cube2 )\{\    int _i_; Res = 0;\    for (_i_ = (Cube1)->iLast; _i_ >= 0; _i_--)\        if (((Cube1)->pData[_i_]) & ~((Cube2)->pData[_i_]))\            { Res = 1; break; }\}         #define Mvc_Cube1BitDisjoint( Res, Cube1, Cube2 )\  (Res = ((((Cube1)->pData[0]) &  ((Cube2)->pData[0])) == 0 ))#define Mvc_Cube2BitDisjoint( Res, Cube1, Cube2 )\ (Res = (((((Cube1)->pData[0]) &  ((Cube2)->pData[0])) == 0 ) &&\         ((((Cube1)->pData[1]) &  ((Cube2)->pData[1])) == 0 )))#define Mvc_CubeNBitDisjoint( Res, Cube1, Cube2 )\{\    int _i_; Res = 1;\    for (_i_ = (Cube1)->iLast; _i_ >= 0; _i_--)\        if (((Cube1)->pData[_i_]) & ((Cube2)->pData[_i_]))\             { Res = 0; break; }\}             #define Mvc_Cube1BitEqualUnderMask( Res, Cube1, Cube2, Mask )\  (Res = ((((Cube1)->pData[0]) & ((Mask)->pData[0])) == (((Cube2)->pData[0]) & ((Mask)->pData[0]))))#define Mvc_Cube2BitEqualUnderMask( Res, Cube1, Cube2, Mask )\ (Res = (((((Cube1)->pData[0]) & ((Mask)->pData[0])) == (((Cube2)->pData[0]) & ((Mask)->pData[0])))  &&\         ((((Cube1)->pData[1]) & ((Mask)->pData[1])) == (((Cube2)->pData[1]) & ((Mask)->pData[1])))))#define Mvc_CubeNBitEqualUnderMask( Res, Cube1, Cube2, Mask )\{\    int _i_; Res = 1;\    for (_i_ = (Cube1)->iLast; _i_ >= 0; _i_--)\        if ((((Cube1)->pData[_i_]) & ((Mask)->pData[_i_])) != (((Cube2)->pData[_i_]) & ((Mask)->pData[_i_])))\            { Res = 0; break; }\}               #define Mvc_Cube1BitEqualOutsideMask( Res, Cube1, Cube2, Mask )\  (Res = ((((Cube1)->pData[0]) | ((Mask)->pData[0])) == (((Cube2)->pData[0]) | ((Mask)->pData[0]))))#define Mvc_Cube2BitEqualOutsideMask( Res, Cube1, Cube2, Mask )\ (Res = (((((Cube1)->pData[0]) | ((Mask)->pData[0])) == (((Cube2)->pData[0]) | ((Mask)->pData[0])))  &&\         ((((Cube1)->pData[1]) | ((Mask)->pData[1])) == (((Cube2)->pData[1]) | ((Mask)->pData[1])))))#define Mvc_CubeNBitEqualOutsideMask( Res, Cube1, Cube2, Mask )\{\    int _i_; Res = 1;\    for (_i_ = (Cube1)->iLast; _i_ >= 0; _i_--)\        if ((((Cube1)->pData[_i_]) | ((Mask)->pData[_i_])) != (((Cube2)->pData[_i_]) | ((Mask)->pData[_i_])))\            { Res = 0; break; }\}              #define Mvc_Cube1BitIntersectUnderMask( Res, Cube1, Cube2, Mask)\  (Res = ((((Cube1)->pData[0]) & ((Cube2)->pData[0]) & ((Mask)->pData[0])) > 0))#define Mvc_Cube2BitIntersectUnderMask( Res, Cube1, Cube2, Mask)\ (Res = (((((Cube1)->pData[0]) & ((Cube2)->pData[0]) & ((Mask)->pData[0])) > 0) ||\         ((((Cube1)->pData[1]) & ((Cube2)->pData[1]) & ((Mask)->pData[1])) > 0)))#define Mvc_CubeNBitIntersectUnderMask( Res, Cube1, Cube2, Mask)\{\    int _i_; Res = 0;\    for (_i_ = (Cube1)->iLast; _i_ >= 0; _i_--)\        if (((Cube1)->pData[_i_]) & ((Cube2)->pData[_i_]) & ((Mask)->pData[_i_]))\           { Res = 1; break; }\}             // the following macros make no assumption about the cube's bitset size#define Mvc_CubeBitClean( Cube )\    if ( Mvc_Cube1Words(Cube) )      { Mvc_Cube1BitClean( Cube ); }\    else if ( Mvc_Cube2Words(Cube) ) { Mvc_Cube2BitClean( Cube ); }\    else                             { Mvc_CubeNBitClean( Cube ); }#define Mvc_CubeBitFill( Cube )\    if ( Mvc_Cube1Words(Cube) )      { Mvc_Cube1BitFill( Cube ); }\    else if ( Mvc_Cube2Words(Cube) ) { Mvc_Cube2BitFill( Cube ); }\    else                             { Mvc_CubeNBitFill( Cube ); }#define Mvc_CubeBitNot( Cube )\    if ( Mvc_Cube1Words(Cube) )      { Mvc_Cube1BitNot( Cube ); }\    else if ( Mvc_Cube2Words(Cube) ) { Mvc_Cube2BitNot( Cube ); }\    else                             { Mvc_CubeNBitNot( Cube ); }#define Mvc_CubeBitCopy( Cube1, Cube2 )\    if ( Mvc_Cube1Words(Cube1) )     { Mvc_Cube1BitCopy( Cube1, Cube2 ); }\    else if ( Mvc_Cube2Words(Cube1) ){ Mvc_Cube2BitCopy( Cube1, Cube2 ); }\    else                             { Mvc_CubeNBitCopy( Cube1, Cube2 ); }#define Mvc_CubeBitOr( CubeR, Cube1, Cube2 )\    if ( Mvc_Cube1Words(Cube1) )     { Mvc_Cube1BitOr( CubeR, Cube1, Cube2 ); }\    else if ( Mvc_Cube2Words(Cube1) ){ Mvc_Cube2BitOr( CubeR, Cube1, Cube2 ); }\    else                             { Mvc_CubeNBitOr( CubeR, Cube1, Cube2 ); }#define Mvc_CubeBitExor( CubeR, Cube1, Cube2 )\    if ( Mvc_Cube1Words(Cube1) )     { Mvc_Cube1BitExor( CubeR, Cube1, Cube2 ); }\    else if ( Mvc_Cube2Words(Cube1) ){ Mvc_Cube2BitExor( CubeR, Cube1, Cube2 ); }\    else                             { Mvc_CubeNBitExor( CubeR, Cube1, Cube2 ); }#define Mvc_CubeBitAnd( CubeR, Cube1, Cube2 )\    if ( Mvc_Cube1Words(Cube1) )     { Mvc_Cube1BitAnd( CubeR, Cube1, Cube2 ); }\    else if ( Mvc_Cube2Words(Cube1) ){ Mvc_Cube2BitAnd( CubeR, Cube1, Cube2 ); }\    else                             { Mvc_CubeNBitAnd( CubeR, Cube1, Cube2 ); }#define Mvc_CubeBitSharp( CubeR, Cube1, Cube2 )\    if ( Mvc_Cube1Words(Cube1) )     { Mvc_Cube1BitSharp( CubeR, Cube1, Cube2 ); }\    else if ( Mvc_Cube2Words(Cube1) ){ Mvc_Cube2BitSharp( CubeR, Cube1, Cube2 ); }\    else                             { Mvc_CubeNBitSharp( CubeR, Cube1, Cube2 ); }#define Mvc_CubeBitEmpty( Res, Cube )\    if ( Mvc_Cube1Words(Cube) )      { Mvc_Cube1BitEmpty( Res, Cube ); }\    else if ( Mvc_Cube2Words(Cube) ) { Mvc_Cube2BitEmpty( Res, Cube ); }\    else                             { Mvc_CubeNBitEmpty( Res, Cube ); }#define Mvc_CubeBitEqual( Res, Cube1, Cube2 )\    if ( Mvc_Cube1Words(Cube1) )     { Mvc_Cube1BitEqual( Res, Cube1, Cube2 ); }\    else if ( Mvc_Cube2Words(Cube1) ){ Mvc_Cube2BitEqual( Res, Cube1, Cube2 ); }\    else                             { Mvc_CubeNBitEqual( Res, Cube1, Cube2 ); }#define Mvc_CubeBitLess( Res, Cube1, Cube2 )\    if ( Mvc_Cube1Words(Cube1) )     { Mvc_Cube1BitLess( Res, Cube1, Cube2 ); }\    else if ( Mvc_Cube2Words(Cube1) ){ Mvc_Cube2BitLess( Res, Cube1, Cube2 ); }\    else                             { Mvc_CubeNBitLess( Res, Cube1, Cube2 ); }#define Mvc_CubeBitMore( Res, Cube1, Cube2 )\    if ( Mvc_Cube1Words(Cube1) )     { Mvc_Cube1BitMore( Res, Cube1, Cube2 ); }\    else if ( Mvc_Cube2Words(Cube1) ){ Mvc_Cube2BitMore( Res, Cube1, Cube2 ); }\    else                             { Mvc_CubeNBitMore( Res, Cube1, Cube2 ); }#define Mvc_CubeBitNotImpl( Res, Cube1, Cube2 )\    if ( Mvc_Cube1Words(Cube1) )     { Mvc_Cube1BitNotImpl( Res, Cube1, Cube2 ); }\    else if ( Mvc_Cube2Words(Cube1) ){ Mvc_Cube2BitNotImpl( Res, Cube1, Cube2 ); }\    else                             { Mvc_CubeNBitNotImpl( Res, Cube1, Cube2 ); }#define Mvc_CubeBitDisjoint( Res, Cube1, Cube2 )\    if ( Mvc_Cube1Words(Cube1) )     { Mvc_Cube1BitDisjoint( Res, Cube1, Cube2 ); }\    else if ( Mvc_Cube2Words(Cube1) ){ Mvc_Cube2BitDisjoint( Res, Cube1, Cube2 ); }\    else                             { Mvc_CubeNBitDisjoint( Res, Cube1, Cube2 ); }#define Mvc_CubeBitEqualUnderMask( Res, Cube1, Cube2, Mask )\    if ( Mvc_Cube1Words(Cube1) )     { Mvc_Cube1BitEqualUnderMask( Res, Cube1, Cube2, Mask ); }\    else if ( Mvc_Cube2Words(Cube1) ){ Mvc_Cube2BitEqualUnderMask( Res, Cube1, Cube2, Mask ); }\    else                             { Mvc_CubeNBitEqualUnderMask( Res, Cube1, Cube2, Mask ); }#define Mvc_CubeBitEqualOutsideMask( Res, Cube1, Cube2, Mask )\    if ( Mvc_Cube1Words(Cube1) )     { Mvc_Cube1BitEqualOutsideMask( Res, Cube1, Cube2, Mask ); }\    else if ( Mvc_Cube2Words(Cube1) ){ Mvc_Cube2BitEqualOutsideMask( Res, Cube1, Cube2, Mask ); }\    else                             { Mvc_CubeNBitEqualOutsideMask( Res, Cube1, Cube2, Mask ); }#define Mvc_CubeBitIntersectUnderMask( Res, Cube1, Cube2, Mask )\    if ( Mvc_Cube1Words(Cube1) )     { Mvc_Cube1BitIntersectUnderMask( Res, Cube1, Cube2, Mask ); }\    else if ( Mvc_Cube2Words(Cube1) ){ Mvc_Cube2BitIntersectUnderMask( Res, Cube1, Cube2, Mask ); }\    else                             { Mvc_CubeNBitIntersectUnderMask( Res, Cube1, Cube2, Mask ); }// managing linked lists#define Mvc_ListAddCubeHead( pList, pCube )\    {\        if ( pList->pHead == NULL )\        {\            Mvc_CubeSetNext( pCube, NULL );\            pList->pHead = pCube;\            pList->pTail = pCube;\        }\        else\        {\            Mvc_CubeSetNext( pCube, pList->pHead );\            pList->pHead = pCube;\        }\        pList->nItems++;\    }#define Mvc_ListAddCubeTail( pList, pCube )\    {\        if ( pList->pHead == NULL )\            pList->pHead = pCube;\        else\            Mvc_CubeSetNext( pList->pTail, pCube );\        pList->pTail    = pCube;\        Mvc_CubeSetNext( pCube, NULL );\        pList->nItems++;\    }#define Mvc_ListDeleteCube( pList, pPrev, pCube )\{\    if ( pPrev == NULL )\

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -