Ignore:
Timestamp:
Aug 9, 2012, 9:27:42 PM (11 years ago)
Author:
Oleksandr Motsak <motsak@…>
Branches:
(u'jengelh-datetime', 'ceac47cbc86fe4a15902392bdbb9bd2ae0ea02c6')(u'spielwiese', '1d362c315e551a5b527ab0759f8839cf0e94f3a5')
Children:
c814238a3c69aaf59662652396c4843d8c8c52fa
Parents:
5cecde90d96d1acc0cbd216cf0037bd2db293c31
git-author:
Oleksandr Motsak <motsak@mathematik.uni-kl.de>2012-08-09 21:27:42+02:00
git-committer:
Oleksandr Motsak <motsak@mathematik.uni-kl.de>2014-05-07 04:41:46+02:00
Message:
adding IGNORETAILS option for computing pure Schreyer Frames (test with 'testAGRFrame')
File:
1 edited

Legend:

Unmodified
Added
Removed
  • dyn_modules/syzextra/syzextra.cc

    r5cecde re98c64  
    516516  assume( m_syzLeads != NULL );
    517517
    518   if( __TAILREDSYZ__ )
    519     assume( m_checker.IsNonempty() );
    520 
    521518  ideal& LL = m_syzLeads;
    522519
     
    534531    const poly a = LL->m[k]; assume( a != NULL );
    535532
    536     const int r = p_GetComp(a, R) - 1;
    537 
    538     assume( r >= 0 && r < IDELEMS(T) );
    539     assume( r >= 0 && r < IDELEMS(L) );
    540 
    541     poly aa = leadmonom(a, R); assume( aa != NULL); // :(   
    542 
    543533    poly a2 = pNext(a);   
    544534
    545535    // Splitting 2-terms Leading syzygy module
    546536    if( a2 != NULL )
     537      pNext(a) = NULL;
     538
     539    if( __IGNORETAILS__ )
    547540    {
    548       TT->m[k] = a2; pNext(a) = NULL;
     541      TT->m[k] = NULL;
     542
     543      if( a2 != NULL )
     544        p_Delete(&a2, R);
     545
     546      continue;
    549547    }
     548   
     549    TT->m[k] = a2;
     550
     551    const int r = p_GetComp(a, R) - 1;
     552
     553    assume( r >= 0 && r < IDELEMS(T) );
     554    assume( r >= 0 && r < IDELEMS(L) );         
     555
     556    poly aa = leadmonom(a, R); assume( aa != NULL); // :(
    550557
    551558    if( ! __HYBRIDNF__ )
     
    579586      p_Delete(&a2, R);
    580587    }
     588
    581589    p_Delete(&aa, R);   
    582590  }
     
    591599//  const BOOLEAN __LEAD2SYZ__   = attributes.__LEAD2SYZ__;
    592600//  const BOOLEAN __TAILREDSYZ__ = attributes.__TAILREDSYZ__;
     601
     602  assume( m_syzLeads == NULL );
    593603
    594604  if( bComputeSecondTerms )
     
    609619  assume( m_syzLeads!= NULL );
    610620
    611   if (__TAILREDSYZ__ && (IDELEMS(m_syzLeads) > 0))
     621  if (__TAILREDSYZ__ && (IDELEMS(m_syzLeads) > 0) && !__IGNORETAILS__)
    612622  {
    613623    m_LS = m_syzLeads;
    614624    m_checker.Initialize(m_syzLeads);
    615   }
    616 
    617   (void)( __LEAD2SYZ__ );
     625    assume( m_checker.IsNonempty() ); // TODO: this always fails... BUG????
     626  }
    618627}
    619628
     
    627636// {
    628637
     638  assume( !__IGNORETAILS__ );
     639
    629640  const ideal& L = m_idLeads;
    630641  const ideal& T = m_idTails;
     
    691702poly SchreyerSyzygyComputation::TraverseTail(poly multiplier, poly tail) const
    692703{
     704  assume( !__IGNORETAILS__ );
     705
    693706  const ideal& L = m_idLeads;
    694707  const ideal& T = m_idTails;
     
    730743poly SchreyerSyzygyComputation::ReduceTerm(poly multiplier, poly term4reduction, poly syztermCheck) const
    731744{
     745  assume( !__IGNORETAILS__ );
     746
    732747  const ideal& L = m_idLeads;
    733748  const ideal& T = m_idTails;
     
    809824    __TAILREDSYZ__( (BOOLEAN)atGetInt(rootRingHdl, "TAILREDSYZ", 1) ),
    810825    __HYBRIDNF__( (BOOLEAN)atGetInt(rootRingHdl, "HYBRIDNF", 0) ),
     826    __IGNORETAILS__( (BOOLEAN)atGetInt(rootRingHdl, "IGNORETAILS", 0) ),
    811827    m_rBaseRing( rootRingHdl->data.uring )
    812828{   
     
    814830  {
    815831    PrintS("SchreyerSyzygyComputationFlags: \n");
    816     Print("   DEBUG     : \t%d\n", __DEBUG__);
     832    Print("        DEBUG: \t%d\n", __DEBUG__);
    817833//    Print("   SYZCHECK  : \t%d\n", __SYZCHECK__);
    818     Print("   LEAD2SYZ  : \t%d\n", __LEAD2SYZ__);
     834    Print("     LEAD2SYZ: \t%d\n", __LEAD2SYZ__);
    819835    Print("   TAILREDSYZ: \t%d\n", __TAILREDSYZ__);
     836    Print("  IGNORETAILS: \t%d\n", __IGNORETAILS__);
     837   
    820838  }
    821839
     
    9821000  const TReducers& reducers = it->second;
    9831001
    984   const BOOLEAN to_check = __TAILREDSYZ__ && (syz_checker.IsNonempty());
     1002  const BOOLEAN to_check = (syz_checker.IsNonempty()); // __TAILREDSYZ__ &&
    9851003
    9861004  const poly q = p_New(r); pNext(q) = NULL;
Note: See TracChangeset for help on using the changeset viewer.