Changeset 80ca3c in git for libpolys/polys/nc


Ignore:
Timestamp:
Feb 22, 2012, 9:32:50 PM (12 years ago)
Author:
Oleksandr Motsak <motsak@…>
Branches:
(u'spielwiese', '17f1d200f27c5bd38f5dfc6e8a0879242279d1d8')
Children:
64f0ca8d7049bea31d0e107cf5c613e0b6ffa5d3
Parents:
1adae39f1ae788b310c426226af46794834f1fac
git-author:
Oleksandr Motsak <motsak@mathematik.uni-kl.de>2012-02-22 21:32:50+01:00
git-committer:
Oleksandr Motsak <motsak@mathematik.uni-kl.de>2012-02-23 20:35:08+01:00
Message:
NC-subsystem preparations

fix: gnc_GB properly
add: gb_hack.h to help handling the circular dependency (GB&NC)
chg: moved stuff around and misc changes
Location:
libpolys/polys/nc
Files:
1 added
3 edited

Legend:

Unmodified
Added
Removed
  • libpolys/polys/nc/nc.h

    r1adae39 r80ca3c  
    22#define POLYS_NC_H
    33
     4#include <polys/monomials/ring.h>
     5#include <polys/kbuckets.h>
    46
    57#ifdef HAVE_PLURAL
    6 
    7 
    88
    99// TODO: the following is a part of ring.h... would be nice to have a
    1010// clear public NC interface defined here!
    11 
    12 #include <polys/monomials/ring.h>
    13 #include <polys/kbuckets.h>
    1411
    1512
     
    7572  SPoly_Proc_Ptr                        SPoly;
    7673  SPolyReduce_Proc_Ptr                  ReduceSPoly;
     74
     75  void*                                 GB; ///< From "gb_hack.h"
     76//                                         GlobalGB, // BBA
     77//                                         LocalGB;  // MORA
    7778};
    7879
     
    312313}
    313314
    314 
    315315/* subst: */
    316316poly nc_pSubst(poly p, int n, poly e, const ring r);
    317 
    318 // set pProcs table for rGR and global variable p_Procs
    319 // this should be used by p_ProcsSet in p_Procs_Set.h
    320 void nc_p_ProcsSet(ring rGR, p_Procs_s* p_Procs);
    321 
    322317
    323318// the part, related to the interface
     
    332327
    333328
    334 BOOLEAN nc_rComplete(const ring src, ring dest, bool bSetupQuotient = true); // in ring.cc
    335 
    336329// this function should be used inside QRing definition!
    337330// we go from rG into factor ring rGR with factor ideal rGR->qideal.
    338331bool nc_SetupQuotient(ring rGR, const ring rG = NULL, bool bCopy = false); // rG == NULL means that there is no base G-algebra
    339332
     333BOOLEAN nc_rComplete(const ring src, ring dest, bool bSetupQuotient = true); // in ring.cc
    340334
    341335bool nc_rCopy(ring res, const ring r, bool bSetupQuotient);
     
    372366
    373367#ifdef PLURAL_INTERNAL_DECLARATIONS
     368
     369// set pProcs table for rGR and global variable p_Procs
     370// this should be used by p_ProcsSet in p_Procs_Set.h
     371void nc_p_ProcsSet(ring rGR, p_Procs_s* p_Procs);
     372
    374373
    375374#include <polys/matpol.h>
     
    398397}
    399398
    400 #endif /* PLURAL_INTERNAL_DECLARATIONS */
     399#endif // PLURAL_INTERNAL_DECLARATIONS
    401400
    402401#endif /* HAVE_PLURAL */
  • libpolys/polys/nc/old.gring.cc

    r1adae39 r80ca3c  
    2626#include "nc/nc.h"
    2727#include "nc/sca.h"
    28 
     28#include "nc/gb_hack.h"
     29
     30#include "monomials/ring.h"
     31   
    2932#include <coeffs/numbers.h>
    3033#include "coeffrings.h"
     
    121124poly gnc_mm_Mult_pp(const poly m, const poly p, const ring r);
    122125
    123 
    124 // set pProcs for r and global variable p_Procs as for general non-commutative algebras.
    125 void gnc_p_ProcsSet(ring rGR, p_Procs_s* p_Procs);
    126126
    127127/* syzygies : */
     
    27482748
    27492749
     2750
    27502751BOOLEAN gnc_InitMultiplication(ring r, bool bSetupQuotient = false); // just for a moment
    2751 
    2752 
    27532752
    27542753/// returns TRUE if there were errors
     
    30643063  // Setup new NC structure!!!
    30653064  if (r->GetNC() != NULL)
     3065  {
     3066#ifndef NDEBUG
     3067    WarnS("Changing the NC-structure of an existing NC-ring!!!");
     3068#endif   
    30663069    nc_rKill(r);
     3070  }
    30673071
    30683072  r->GetNC() = nc_new;
     
    31713175  }
    31723176  r->GetNC()->COM=COM;
     3177 
    31733178
    31743179  nc_p_ProcsSet(r, r->p_Procs);
    31753180
    31763181  if(bSetupQuotient) // Test me!!!
    3177   {
    3178     nc_SetupQuotient(r);
    3179   }
    3180 
    3181 
    3182   // ???
    3183   if( bNoPluralMultiplication )
    3184     ncInitSpecialPairMultiplication(r);
    3185 
    3186 
    3187   if(!rIsSCA(r) && !bNoFormula)
    3188     ncInitSpecialPowersMultiplication(r);
    3189 
    3190 
     3182    nc_SetupQuotient(r, NULL, false); // no copy!
     3183
     3184 
    31913185//  if (save != currRing)
    31923186//    rChangeCurrRing(save);
     
    31953189}
    31963190
     3191
     3192// set pProcs for r and global variable p_Procs as for general non-commutative algebras.
     3193static inline
    31973194void gnc_p_ProcsSet(ring rGR, p_Procs_s* p_Procs)
    31983195{
     
    32253222#endif
    32263223
    3227 
     3224  // warning: ISO C++ forbids casting between pointer-to-function and pointer-to-object?
     3225  if (rHasLocalOrMixedOrdering(rGR))
     3226    rGR->GetNC()->p_Procs.GB = cast_A_to_vptr(gnc_gr_mora);
     3227  else
     3228    rGR->GetNC()->p_Procs.GB = cast_A_to_vptr(gnc_gr_bba);
     3229
     3230///////////  rGR->GetNC()->p_Procs.GB          = gnc_gr_bba; // bba even for local case!
     3231// old ///    r->GetNC()->GB()            = gnc_gr_bba;
     3232//   rGR->GetNC()->p_Procs.GlobalGB    = gnc_gr_bba;
     3233//   rGR->GetNC()->p_Procs.LocalGB     = gnc_gr_mora;
     3234//  const ring save = currRing; if( save != r ) rChangeCurrRing(r);
     3235//  ideal res = gnc_gr_bba(F, Q, w, hilb, strat/*, r*/);
     3236//  if( save != r )     rChangeCurrRing(save);     return (res);
    32283237
    32293238
     
    32613270    sca_p_ProcsSet(rGR, p_Procs);
    32623271  }
    3263 }
    3264 
     3272
     3273  if( bNoPluralMultiplication )
     3274    ncInitSpecialPairMultiplication(rGR);
     3275
     3276  if(!rIsSCA(rGR) && !bNoFormula)
     3277    ncInitSpecialPowersMultiplication(rGR);
     3278
     3279}
    32653280
    32663281
  • libpolys/polys/nc/old.gring.h

    r1adae39 r80ca3c  
    121121}
    122122
    123 inline ideal nc_GB(const ideal F, const ideal Q, const intvec *w, const intvec *hilb, kStrategy strat)
    124 {
    125   assume(rIsPluralRing(currRing));
    126 
    127   assume(currRing->GetNC()->p_Procs.GB!=NULL);
    128   return currRing->GetNC()->p_Procs.GB(F, Q, w, hilb, strat);
    129 
    130 /*
    131   if (rHasLocalOrMixedOrder(currRing))
    132   {
    133     assume(currRing->GetNC()->p_Procs.LocalGB!=NULL);
    134     return currRing->GetNC()->p_Procs.LocalGB(F, Q, w, hilb, strat);
    135   } else
    136   {
    137     assume(currRing->GetNC()->p_Procs.GlobalGB!=NULL);
    138     return currRing->GetNC()->p_Procs.GlobalGB(F, Q, w, hilb, strat);
    139   }
    140 */
    141 }
    142 
    143 
    144 
    145 
    146123#endif //
Note: See TracChangeset for help on using the changeset viewer.