Changeset 5a9e7b in git for kernel/structs.h


Ignore:
Timestamp:
Jan 3, 2007, 1:17:12 AM (17 years ago)
Author:
Motsak Oleksandr <motsak@…>
Branches:
(u'spielwiese', 'fe61d9c35bf7c61f2b6cbf1b56e25e2f08d536cc')
Children:
3d11074289ae1a5160b095ecdc1e4d8279ffedc5
Parents:
6dbc9674142dc50c311aab80c025def4c3a3bf08
Message:
*motsak: rewritten non-commutative engine + sca support


git-svn-id: file:///usr/local/Singular/svn/trunk@9620 2c84dea3-7e68-4137-9b89-c4e89433aadc
File:
1 edited

Legend:

Unmodified
Added
Removed
  • kernel/structs.h

    r6dbc96 r5a9e7b  
    44*  Computer Algebra System SINGULAR     *
    55****************************************/
    6 /* $Id: structs.h,v 1.25 2006-12-15 17:16:07 Singular Exp $ */
     6/* $Id: structs.h,v 1.26 2007-01-03 00:17:12 motsak Exp $ */
    77/*
    88* ABSTRACT
     
    6464typedef long int64;
    6565#else
    66 #error int64 undefined 
     66#error int64 undefined
    6767#endif
    6868
     
    101101};
    102102
    103 #ifdef HAVE_PLURAL
     103// #ifdef HAVE_PLURAL
    104104enum nc_type
    105105{
    106   nc_general=0, /* yx=q xy+... */
     106  nc_error = -1, // Something's gone wrong!
     107  nc_general = 0, /* yx=q xy+... */
    107108  nc_skew, /*1*/ /* yx=q xy */
    108109  nc_comm, /*2*/ /* yx= xy */
    109110  nc_lie,  /*3*/ /* yx=xy+... */
    110   nc_undef /*4*/  /* for internal reasons */
    111 };
    112 #endif
     111  nc_undef, /*4*/  /* for internal reasons */
     112
     113  nc_exterior /*5*/ // Exterior Algebra(SCA): yx= -xy & (!:) x^2 = 0
     114};
     115// #endif
    113116
    114117typedef enum { LT_NONE, LT_NOTFOUND, LT_SINGULAR, LT_ELF, LT_HPUX, LT_MACH_O} lib_types;
     
    144147typedef struct  n_Procs_s  n_Procs_s;
    145148
    146 #ifdef HAVE_PLURAL
     149// #ifdef HAVE_PLURAL
    147150struct nc_struct;
    148151typedef struct nc_struct   nc_struct;
    149 #endif
     152// #endif
    150153
    151154typedef struct _ssubexpr   sSubexpr;
     
    410413};
    411414
    412 #ifdef HAVE_PLURAL
     415// #ifdef HAVE_PLURAL
     416// NC pProcs:
     417typedef poly (*mm_Mult_p_Proc_Ptr)(const poly m, poly p, const ring r);
     418typedef poly (*mm_Mult_pp_Proc_Ptr)(const poly m, const poly p, const ring r);
     419
     420typedef ideal (*GB_Proc_Ptr)(const ideal F, const ideal Q, const intvec *w, const intvec *hilb, kStrategy strat);
     421
     422typedef poly (*SPoly_Proc_Ptr)(const poly p1, const poly p2, const ring r);
     423typedef poly (*SPolyReduce_Proc_Ptr)(const poly p1, poly p2, const ring r);
     424
     425typedef void (*Bucket_Proc_Ptr)(kBucket_pt b, poly p, number *c);
     426
     427struct nc_pProcs
     428{
     429public:
     430  mm_Mult_p_Proc_Ptr                    mm_Mult_p;
     431  mm_Mult_pp_Proc_Ptr                   mm_Mult_pp;
     432
     433  Bucket_Proc_Ptr                       BucketPolyRed;
     434  Bucket_Proc_Ptr                       BucketPolyRed_Z;
     435
     436  SPoly_Proc_Ptr                        SPoly;
     437  SPolyReduce_Proc_Ptr                  ReduceSPoly;
     438
     439  GB_Proc_Ptr                           GB;
     440//                                         GlobalGB, // BBA
     441//                                         LocalGB;  // MORA
     442};
     443
     444
     445struct nc_struct
     446{
     447  short ref;
     448  nc_type type;
     449  ring basering; // the ring C,D,.. live in
     450  matrix C;
     451  matrix D;
     452  matrix *MT;
     453  matrix COM;
     454  int *MTsize;
     455
     456  // IsSkewConstantindicates whethere coeffs C_ij are all equal, effective together with nc_type=nc_skew
     457  int IsSkewConstant;
     458
     459  private:
     460    // treat variables from iAltVarsStart till iAltVarsEnd as alternating vars.
     461    // these variables should have odd degree, though that will not be checked
     462    // iAltVarsStart, iAltVarsEnd are only used together with nc_type=nc_exterior
     463    // 1 <= iAltVarsStart <= iAltVarsEnd <= r->N
     464    unsigned int iFirstAltVar, iLastAltVar;
     465
     466  public:
     467    inline unsigned int& FirstAltVar() { return (iFirstAltVar); };
     468    inline unsigned int& LastAltVar () { return (iLastAltVar ); };
     469
     470    inline unsigned int FirstAltVar() const { return (iFirstAltVar); };
     471    inline unsigned int LastAltVar () const { return (iLastAltVar ); };
     472
     473  public:
     474    nc_pProcs p_Procs; // NC procedures.
     475
     476};
     477// #endif
     478#if 0
    413479struct nc_struct
    414480{
     
    425491};
    426492#endif
     493
    427494
    428495struct sip_sring
Note: See TracChangeset for help on using the changeset viewer.