Changeset 648 in 3DVCSoftware for branches/HTM-8.2-dev0-Cleanup/source/App


Ignore:
Timestamp:
19 Oct 2013, 18:46:09 (11 years ago)
Author:
tech
Message:

Macro removal part H_MV5.

Location:
branches/HTM-8.2-dev0-Cleanup/source/App
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • branches/HTM-8.2-dev0-Cleanup/source/App/TAppDecoder/TAppDecTop.cpp

    r646 r648  
    500500        const Window &defDisp = m_respectDefDispWindow ? pcPic->getDefDisplayWindow() : Window();
    501501#if H_MV
    502 #if H_MV5
    503502        assert( conf   .getScaledFlag() );
    504503        assert( defDisp.getScaledFlag() );
    505 #endif
    506504        m_tVideoIOYuvReconFile[decIdx]->write( pcPic->getPicYuvRec(),
    507505#else
     
    577575        const Window &defDisp = m_respectDefDispWindow ? pcPic->getDefDisplayWindow() : Window();
    578576#if H_MV
    579 #if H_MV5
    580577        assert( conf   .getScaledFlag() );
    581578        assert( defDisp.getScaledFlag() );
    582 #endif
    583579        m_tVideoIOYuvReconFile[decIdx]->write( pcPic->getPicYuvRec(),
    584580#else
  • branches/HTM-8.2-dev0-Cleanup/source/App/TAppEncoder/TAppEncCfg.cpp

    r647 r648  
    228228    in>>entry.m_interViewRefPosL[1][i];
    229229  }
    230 #if !H_MV5
    231   if (entry.m_numActiveRefLayerPics > 0 )
    232   {
    233     in>>entry.m_collocatedRefLayerIdx;
    234   }
    235 #endif
    236230#endif
    237231  return in;
     
    373367  ("NumberOfLayers",        m_numberOfLayers     , 1,                     "Number of layers")
    374368#if !H_3D
    375 #if H_MV5
    376369  ("ScalabilityMask",       m_scalabilityMask    , 2                    , "Scalability Mask")   
    377 #else
    378   ("ScalabilityMask",       m_scalabilityMask    , 1                    , "Scalability Mask")   
    379 #endif
    380370#else
    381371  ("ScalabilityMask",       m_scalabilityMask    , 3                    , "Scalability Mask, 1: Texture 3: Texture + Depth ")   
    382372#endif 
    383373  ("DimensionIdLen",        m_dimensionIdLen     , cfg_dimensionLength  , "Number of bits used to store dimensions Id")
    384 #if H_MV5
    385374  ("ViewOrderIndex",        m_viewOrderIndex     , std::vector<Int>(1,0), "View Order Index per layer")
    386375  ("ViewId",                m_viewId             , std::vector<Int>(1,0), "View Id per View Order Index")
    387 #else
    388   ("ViewId",                m_viewId             , std::vector<Int>(1,0), "View Id")
    389 #endif
    390376#if H_3D
    391377  ("DepthFlag",             m_depthFlag          , std::vector<Int>(1,0), "Depth Flag")
     
    620606#endif
    621607
    622 #if H_MV5
    623608#if H_MV
    624609  // VPS VUI
     
    637622  ("CtuBasedOffsetEnabledFlag"   , m_ctuBasedOffsetEnabledFlag   , std::vector< Bool >(1,0)  ,MAX_NUM_LAYERS       , "CtuBasedOffsetEnabledFlag    per direct reference for the N-th layer")
    638623  ("MinHorizontalCtuOffsetPlus1" , m_minHorizontalCtuOffsetPlus1 , std::vector< Int  >(1,0)  ,MAX_NUM_LAYERS       , "MinHorizontalCtuOffsetPlus1  per direct reference for the N-th layer")
    639 #endif
    640624#endif
    641625
     
    782766    if( k == 0 )
    783767    {
    784 #if H_MV5
    785768      m_GOPListMvc[0][0].m_sliceType = 'I';
    786 #endif
    787769      for( Int i = 1; i < MAX_GOP + 1; i++ )
    788770      {
     
    988970  // allocate slice-based dQP values
    989971#if H_MV
    990 #if H_MV5
    991972  xResizeVector( m_viewOrderIndex    );
    992973
     
    1008989#if H_3D
    1009990  xResizeVector( m_depthFlag );
    1010 #endif
    1011 #else
    1012   xResizeVector( m_viewId    );
    1013 #if H_3D
    1014   xResizeVector( m_depthFlag );
    1015 
    1016   std::vector<Int> uniqueViewIds;
    1017   for( Int layer = 0; layer < m_numberOfLayers; layer++ )
    1018   {   
    1019     Bool isIn = false;
    1020     for ( Int i = 0 ; i < uniqueViewIds.size(); i++ )
    1021     {
    1022       isIn = isIn || ( m_viewId[ layer ] == uniqueViewIds[ i ] );
    1023     }
    1024     if ( !isIn )
    1025     {
    1026       uniqueViewIds.push_back( m_viewId[ layer ] );
    1027     }
    1028   }
    1029   m_iNumberOfViews = (Int) uniqueViewIds.size();
    1030 #endif
    1031 
    1032991#endif
    1033992  xResizeVector( m_fQP );
     
    13031262  xConfirmPara( (m_layerIdInNuh.size()!=1) && (m_layerIdInNuh.size() < m_numberOfLayers) , "LayerIdInNuh must be given for all layers. ");
    13041263 
    1305 #if H_MV5
    13061264#if H_3D
    13071265  xConfirmPara( m_scalabilityMask != 2 && m_scalabilityMask != 3, "Scalability Mask must be equal to 2 or 3. ");
     
    13181276
    13191277  m_dimIds.push_back( m_viewOrderIndex );   
    1320 #else
    1321 #if H_3D
    1322   xConfirmPara( m_scalabilityMask != 1 && m_scalabilityMask != 3, "Scalability Mask must be equal to 1 or 3. ");
    1323 #else
    1324   xConfirmPara( m_scalabilityMask != 1 , "Scalability Mask must be equal to 1. ");
    1325 #endif
    1326  
    1327   m_dimIds.push_back( m_viewId );
    1328   const Int viewDimPosition = 0;
    1329 #if H_3D
    1330   if ( m_scalabilityMask & ( 1 << DEPTH_ID ) )
    1331     m_dimIds.push_back( m_depthFlag );
    1332 #endif
    1333 
    1334 #endif
    13351278  xConfirmPara(  m_dimensionIdLen.size() < m_dimIds.size(), "DimensionIdLen must be given for all dimensions. "   );   Int dimBitOffset[MAX_NUM_SCALABILITY_TYPES+1];
    13361279
     
    13491292  {   
    13501293    xConfirmPara( m_dimIds[j].size() < m_numberOfLayers,  "DimensionId must be given for all layers and all dimensions. ");   
    1351 #if H_MV5   
    13521294    xConfirmPara( (m_dimIds[j][0] != 0)                 , "DimensionId of layer 0 must be 0. " );
    1353 #else
    1354     xConfirmPara( ( j != viewDimPosition ) &&  (m_dimIds[j][0] != 0), "DimensionId of layer 0 must be 0. " );
    1355 #endif
    13561295    xConfirmPara( m_dimensionIdLen[j] < 1 || m_dimensionIdLen[j] > 8, "DimensionIdLen must be greater than 0 and less than 9 in all dimensions. " );
    13571296     
     
    13961335     {
    13971336       Bool inc = m_dimIds[ lastDiff ][ i ] > m_dimIds[ lastDiff ][ j ];
    1398 #if H_MV5
    13991337       Bool shallBeButIsNotIncreasing = ( !inc  ) ;
    1400 #else
    1401        Bool shallBeButIsNotIncreasing = ( !inc && ( lastDiff != viewDimPosition ) ) ;
    1402 #endif
    14031338       if ( shallBeButIsNotIncreasing )
    14041339       {       
    14051340         printf( "\nError: Positions of Layers %d and %d is not increasing in dimension %d \n", i, j, lastDiff);       
    14061341       }
    1407 #if H_MV5
    14081342       xConfirmPara( shallBeButIsNotIncreasing,  "DimensionIds shall be increasing within one dimension. " );
    1409 #else
    1410        xConfirmPara( shallBeButIsNotIncreasing && ( lastDiff != viewDimPosition ),  "DimensionIds shall be increasing within one dimension. " );
    1411 #endif
    14121343     }
    14131344#endif
     
    14151346 }
    14161347
    1417 #if H_MV5
    14181348 /// ViewId
    14191349 xConfirmPara( m_viewId.size() != m_iNumberOfViews, "The number of ViewIds must be equal to the number of views." );
     
    14211351  /// Layer sets
    14221352  xConfirmPara( m_vpsNumLayerSets < 0 || m_vpsNumLayerSets > 1024, "VpsNumLayerSets must be greater than 0 and less than 1025. ") ;
    1423 #else
    1424   xConfirmPara( m_vpsNumLayerSets < 0 || m_vpsNumLayerSets > 1024, "VpsNumLayerSets must be greater than 0 and less than 1025") ;
    1425 #endif
    14261353  for( Int lsIdx = 0; lsIdx < m_vpsNumLayerSets; lsIdx++ )
    14271354  {
     
    21852112  }
    21862113#endif
    2187 #if H_MV5
    21882114#if H_MV
    21892115  // VPS VUI
     
    22082134  }
    22092135#endif
    2210 #endif
    22112136
    22122137  xConfirmPara(!m_TransquantBypassEnableFlag && m_CUTransquantBypassFlagValue, "CUTransquantBypassFlagValue cannot be 1 when TransquantBypassEnableFlag is 0");
     
    22742199#endif
    22752200#if H_MV
    2276 #if H_MV5
    22772201  xPrintParaVector( "ViewIdVal"     , m_viewId );
    22782202  xPrintParaVector( "ViewOrderIndex", m_viewOrderIndex );
    2279 #else
    2280   xPrintParaVector( "ViewId", m_viewId );
    2281 #endif
    22822203#endif
    22832204#if H_3D
  • branches/HTM-8.2-dev0-Cleanup/source/App/TAppEncoder/TAppEncCfg.h

    r646 r648  
    6969  std::vector<char*>     m_pchReconFileList;                  ///< output reconstruction file names
    7070  Int                    m_numberOfLayers;                    ///< number of Layers to Encode
    71 #if H_MV5
    7271  Int                    m_iNumberOfViews;                    ///< number of Layers that are views
    73 #else
    74 #if H_3D
    75   Int                    m_iNumberOfViews;                    ///< number of Layers that are views
    76 #endif
    77 #endif
    7872#else
    7973  Char*     m_pchReconFile;                                   ///< output reconstruction file
     
    8377  std::vector< std::vector<Int> > m_dimIds;                   ///< dimension ids ( pointers to m_viewId and m_depthFlag
    8478  std::vector<Int>       m_viewId;                            ///< view id
    85 #if H_MV5
    8679  std::vector<Int>       m_viewOrderIndex;                    ///< view order index 
    87 #endif
    8880#if H_3D
    8981  std::vector<Int>       m_depthFlag;                         ///< depth flag
     
    10698  std::vector< std::vector<Int> > m_dependencyTypes;          ///< Dependency types of direct reference layers
    10799
    108 #if H_MV5
    109100  // VPS VUI
    110101  Bool m_vpsVuiPresentFlag;
     
    122113  std::vector< std::vector<Bool > > m_ctuBasedOffsetEnabledFlag;
    123114  std::vector< std::vector<Int  > > m_minHorizontalCtuOffsetPlus1;
    124 #endif
    125115
    126116#if H_3D_IV_MERGE
  • branches/HTM-8.2-dev0-Cleanup/source/App/TAppEncoder/TAppEncTop.cpp

    r646 r648  
    8888    vps.setTemporalNestingFlag(true);
    8989  }
    90 #if H_MV5
    9190  vps.setMaxLayersMinus1( m_numberOfLayers - 1);
    92 #else
    93   vps.setMaxLayers( m_numberOfLayers );
    94 #endif
    9591  for(Int i = 0; i < MAX_TLAYER; i++)
    9692  {
     
    124120  xSetDependencies( vps );
    125121  xSetProfileTierLevel     ( vps );
    126 #if H_MV5
    127122  xSetRepFormat            ( vps );
    128 #endif
    129123  xSetLayerSets            ( vps );
    130 #if H_MV5
    131124  xSetVPSVUI               ( vps );
    132 #endif
    133125#if H_3D
    134 #if !H_MV5
    135   vps.initViewIndex();
    136 #endif
    137126  xSetVPSExtension2        ( vps );
    138127  m_ivPicLists.setVPS      ( &vps );
     
    140129
    141130
    142 #if H_MV5
    143131  for(Int layerIdInVps = 0; layerIdInVps < m_numberOfLayers; layerIdInVps++)
    144 #else
    145   for(Int layer = 0; layer < m_numberOfLayers; layer++)
    146 #endif
    147132  {
    148133    m_frameRcvd                 .push_back(0);
     
    151136    m_acTVideoIOYuvReconFileList.push_back(new TVideoIOYuv);
    152137    m_picYuvRec                 .push_back(new TComList<TComPicYuv*>) ;
    153 #if H_MV5   
    154138    m_ivPicLists.push_back( m_acTEncTopList[ layerIdInVps ]->getListPic()  );
    155139    TEncTop& m_cTEncTop = *m_acTEncTopList[ layerIdInVps ];  // It is not a member, but this name helps avoiding code duplication !!!
     
    160144    m_cTEncTop.setViewId                       ( vps.getViewId      (  layerId ) );
    161145    m_cTEncTop.setViewIndex                    ( vps.getViewIndex   (  layerId ) );
    162 #else
    163     m_ivPicLists.push_back( m_acTEncTopList[ layer ]->getListPic()  );
    164     TEncTop& m_cTEncTop = *m_acTEncTopList[ layer ];  // It is not a member, but this name helps avoiding code duplication !!!
    165    
    166     m_cTEncTop.setLayerIdInVps                 ( layer );
    167     m_cTEncTop.setLayerId                      ( vps.getLayerIdInNuh( layer ) );   
    168     m_cTEncTop.setViewId                       ( vps.getViewId      ( layer ) );
    169 
    170 #endif
    171146#if H_3D
    172 #if H_MV5
    173147    Bool isDepth = ( vps.getDepthId     ( layerId ) != 0 ) ;
    174 #else
    175     Bool isDepth = ( vps.getDepthId     ( layer ) != 0 ) ;
    176     m_cTEncTop.setViewIndex                    ( vps.getViewIndex   ( layer ) );
    177 #endif
    178148    m_cTEncTop.setIsDepth                      ( isDepth );
    179149    //====== Camera Parameters =========
     
    201171    m_cTEncTop.setDWeight                      ( isDepth ? m_iDWeight             : 0     );
    202172#endif // H_3D_VSO
    203 #if H_MV5
    204173#if H_3D_ARP
    205174    //====== Advanced Inter-view Residual Prediction =========
     
    209178#if H_3D_IC
    210179    m_cTEncTop.setUseIC                        ( vps.getViewIndex( layerId ) == 0 ? false : m_abUseIC[isDepth ? 1 : 0] );
    211 #endif
    212 #else
    213 #if H_3D_ARP
    214     //====== Advanced Inter-view Residual Prediction =========
    215     m_cTEncTop.setUseAdvRP                     ( ( isDepth || 0==layer ) ? 0 : m_uiUseAdvResPred );
    216     m_cTEncTop.setARPStepNum                   ( ( isDepth || 0==layer ) ? 1 : H_3D_ARP_WFNR     );
    217 #endif
    218 #if H_3D_IC
    219     m_cTEncTop.setUseIC                        ( vps.getViewIndex( layer ) == 0 ? false : m_abUseIC[isDepth ? 1 : 0] );
    220 #endif
    221180#endif
    222181  //========== Depth intra modes ==========
     
    260219  m_cTEncTop.setGOPSize                      ( m_iGOPSize );
    261220#if H_MV
    262 #if H_MV5
    263221m_cTEncTop.setGopList                      ( m_GOPListMvc[layerIdInVps] );
    264222  m_cTEncTop.setExtraRPSs                    ( m_extraRPSsMvc[layerIdInVps] );
     
    269227  }
    270228#else
    271   m_cTEncTop.setGopList                      ( m_GOPListMvc[layer] );
    272   m_cTEncTop.setExtraRPSs                    ( m_extraRPSsMvc[layer] );
    273   for(Int i = 0; i < MAX_TLAYER; i++)
    274   {
    275     m_cTEncTop.setNumReorderPics             ( m_numReorderPicsMvc[layer][i], i );
    276     m_cTEncTop.setMaxDecPicBuffering         ( m_maxDecPicBufferingMvc[layer][i], i );
    277   }
    278 #endif
    279 #else
    280229  m_cTEncTop.setGopList                      ( m_GOPList );
    281230  m_cTEncTop.setExtraRPSs                    ( m_extraRPSs );
     
    291240  }
    292241#if H_MV
    293 #if H_MV5
    294242  m_cTEncTop.setQP                           ( m_iQP[layerIdInVps] );
    295243#else
    296   m_cTEncTop.setQP                           ( m_iQP[layer] );
    297 #endif
    298 #else
    299244  m_cTEncTop.setQP                           ( m_iQP );
    300245#endif
     
    303248
    304249#if H_MV
    305 #if H_MV5
    306250  m_cTEncTop.setMaxTempLayer                 ( m_maxTempLayerMvc[layerIdInVps] );
    307251#else
    308   m_cTEncTop.setMaxTempLayer                 ( m_maxTempLayerMvc[layer] );
    309 #endif
    310 #else
    311252  m_cTEncTop.setMaxTempLayer                 ( m_maxTempLayer );
    312253#endif
     
    317258  //====== Loop/Deblock Filter ========
    318259#if H_MV
    319 #if H_MV5
    320260  m_cTEncTop.setLoopFilterDisable            ( m_bLoopFilterDisable[layerIdInVps]);
    321 #else
    322   m_cTEncTop.setLoopFilterDisable            ( m_bLoopFilterDisable[layer]);
    323 #endif
    324261#else
    325262  m_cTEncTop.setLoopFilterDisable            ( m_bLoopFilterDisable       );
     
    351288
    352289#if H_MV
    353 #if H_MV5
    354290  if ((m_iMaxDeltaQP == 0 ) && (m_iQP[layerIdInVps] == lowestQP) && (m_useLossless == true))
    355 #else
    356   if ((m_iMaxDeltaQP == 0 ) && (m_iQP[layer] == lowestQP) && (m_useLossless == true))
    357 #endif
    358291#else
    359292  if ((m_iMaxDeltaQP == 0 ) && (m_iQP == lowestQP) && (m_useLossless == true))
     
    372305  m_cTEncTop.setUseLossless                  ( m_useLossless );
    373306#if H_MV
    374 #if H_MV5
    375307  m_cTEncTop.setdQPs                         ( m_aidQP[layerIdInVps]   );
    376 #else
    377   m_cTEncTop.setdQPs                         ( m_aidQP[layer]   );
    378 #endif
    379308#else
    380309  m_cTEncTop.setdQPs                         ( m_aidQP        );
     
    435364  m_cTEncTop.setLFCrossSliceBoundaryFlag( m_bLFCrossSliceBoundaryFlag );
    436365#if H_MV
    437 #if H_MV5
    438366  m_cTEncTop.setUseSAO ( m_bUseSAO[layerIdInVps] );
    439 #else
    440   m_cTEncTop.setUseSAO ( m_bUseSAO[layer] );
    441 #endif
    442367#else
    443368  m_cTEncTop.setUseSAO ( m_bUseSAO );
     
    13031228Void TAppEncTop::xSetDimensionIdAndLength( TComVPS& vps )
    13041229{   
    1305 #if H_MV5
    13061230  vps.setScalabilityMaskFlag( m_scalabilityMask );
    1307 #else
    1308   vps.setScalabilityMask( m_scalabilityMask );
    1309 #endif
    13101231  for( Int dim = 0; dim < m_dimIds.size(); dim++ )
    13111232  {
    13121233    vps.setDimensionIdLen( dim, m_dimensionIdLen[ dim ] );
    1313 #if H_MV5
    13141234    for( Int layer = 0; layer <= vps.getMaxLayersMinus1(); layer++ )
    1315 #else
    1316     for( Int layer = 0; layer < vps.getMaxLayers(); layer++ )
    1317 #endif
    13181235
    13191236    {       
     
    13221239  }
    13231240
    1324 #if H_MV5
    13251241  Int maxViewId = xGetMax( m_viewId );
    13261242
     
    13351251
    13361252  assert( m_iNumberOfViews == vps.getNumViews() );
    1337 #endif
    13381253}
    13391254
     
    13621277
    13631278  // Max temporal id for inter layer reference pictures + presence flag
    1364 #if H_MV5
    13651279  Bool maxTidRefPresentFlag = false;
    1366 #endif
    13671280  for ( Int refLayerIdInVps = 0; refLayerIdInVps < m_numberOfLayers; refLayerIdInVps++)
    13681281    {
     
    13851298    }
    13861299    vps.setMaxTidIlRefPicPlus1( refLayerIdInVps, maxTid + 1 );
    1387 #if H_MV5
    13881300    maxTidRefPresentFlag = maxTidRefPresentFlag || ( maxTid != 6 );   
    1389 #endif
    1390   }
    1391 
    1392 #if H_MV5
     1301  }
     1302
    13931303  vps.setMaxTidRefPresentFlag( maxTidRefPresentFlag );
    1394 #endif
    13951304  // Max one active ref layer flag
    13961305  Bool maxOneActiveRefLayerFlag = true; 
    1397 #if H_MV5
    13981306  for ( Int layerIdInVps = 1; layerIdInVps < m_numberOfLayers && maxOneActiveRefLayerFlag; layerIdInVps++)
    1399 #else
    1400   for ( Int currLayerIdInVps = 1; currLayerIdInVps < m_numberOfLayers && maxOneActiveRefLayerFlag; currLayerIdInVps++)
    1401 #endif
    14021307  {
    14031308    for( Int i = 0; i < ( getGOPSize() + 1) && maxOneActiveRefLayerFlag; i++ )
    14041309    {       
    1405 #if H_MV5
    14061310      GOPEntry ge =  m_GOPListMvc[layerIdInVps][ ( i < getGOPSize()  ? i : MAX_GOP ) ];
    1407 #else
    1408       GOPEntry ge =  m_GOPListMvc[currLayerIdInVps][ ( i < getGOPSize()  ? i : MAX_GOP ) ];
    1409 #endif
    14101311      maxOneActiveRefLayerFlag =  maxOneActiveRefLayerFlag && (ge.m_numActiveRefLayerPics <= 1);
    14111312    }           
     
    14151316 
    14161317 
    1417 #if H_MV5
    14181318  // All Ref layers active flag
    14191319  Bool allRefLayersActiveFlag = true;
     
    14311331  // Currently cross layer irap aligned is always true.   
    14321332  vps.setCrossLayerIrapAlignedFlag( true );
    1433 #endif
    14341333  vps.setRefLayers();
    14351334};
    14361335
    1437 #if H_MV5
    14381336GOPEntry* TAppEncTop::xGetGopEntry( Int layerIdInVps, Int poc )
    14391337{
     
    14501348  return geFound;
    14511349}
    1452 #endif
    14531350
    14541351Void TAppEncTop::xSetLayerIds( TComVPS& vps )
     
    14901387}
    14911388
    1492 #if H_MV5
    14931389
    14941390Void TAppEncTop::xSetRepFormat( TComVPS& vps )
     
    15151411  }
    15161412}
    1517 #endif
    15181413
    15191414Void TAppEncTop::xSetLayerSets( TComVPS& vps )
     
    15681463  }
    15691464}
    1570 #if H_MV5
    15711465
    15721466Void TAppEncTop::xSetVPSVUI( TComVPS& vps )
     
    16601554}
    16611555#endif
    1662 #endif
    16631556#if H_3D
    16641557Void TAppEncTop::xSetVPSExtension2( TComVPS& vps )
    16651558{
    1666 #if H_MV5
    16671559
    16681560  for ( Int layer = 0; layer <= vps.getMaxLayersMinus1(); layer++ )
    1669 #else
    1670   for ( Int layer = 0; layer < vps.getMaxLayers(); layer++ )
    1671 #endif
    16721561  {
    16731562    Bool isDepth      = ( vps.getDepthId( layer ) == 1 ) ;
  • branches/HTM-8.2-dev0-Cleanup/source/App/TAppEncoder/TAppEncTop.h

    r635 r648  
    124124  Void xSetLayerSets              ( TComVPS& vps );
    125125  Void xSetProfileTierLevel       ( TComVPS& vps );
    126 #if H_MV5
    127126  Void xSetRepFormat              ( TComVPS& vps );
    128127  Void xSetVPSVUI                 ( TComVPS& vps );
    129128  GOPEntry* xGetGopEntry( Int layerIdInVps, Int poc );
    130 #endif
    131129  Int  xGetMax( std::vector<Int>& vec);
    132130#endif
Note: See TracChangeset for help on using the changeset viewer.