Changeset 4f0f42 in git for libpolys/polys/monomials/ring.cc
- Timestamp:
- Mar 30, 2011, 6:10:59 PM (13 years ago)
- Branches:
- (u'spielwiese', 'fe61d9c35bf7c61f2b6cbf1b56e25e2f08d536cc')
- Children:
- cf5c053a2033583db0824a2b0459625b00d37a26
- Parents:
- 21c6b368221deec3e5484f0c925b9ea662ef2f90
- git-author:
- Oleksandr Motsak <motsak@mathematik.uni-kl.de>2011-03-30 18:10:59+02:00
- git-committer:
- Mohamed Barakat <mohamed.barakat@rwth-aachen.de>2011-11-09 12:04:16+01:00
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
libpolys/polys/monomials/ring.cc
r21c6b3 r4f0f42 788 788 typedef char * char_ptr; 789 789 omBin char_ptr_bin = omGetSpecBin(sizeof(char_ptr)); // deallocation? 790 791 792 #ifdef HAVE_PLURAL793 // NC pProcs:794 typedef poly (*mm_Mult_p_Proc_Ptr)(const poly m, poly p, const ring r);795 typedef poly (*mm_Mult_pp_Proc_Ptr)(const poly m, const poly p, const ring r);796 797 typedef ideal (*GB_Proc_Ptr)(const ideal F, const ideal Q, const intvec *w, const intvec *hilb, kStrategy strat);798 799 typedef poly (*SPoly_Proc_Ptr)(const poly p1, const poly p2, const ring r);800 typedef poly (*SPolyReduce_Proc_Ptr)(const poly p1, poly p2, const ring r);801 802 typedef void (*bucket_Proc_Ptr)(kBucket_pt b, poly p, number *c);803 804 struct nc_pProcs805 {806 public:807 mm_Mult_p_Proc_Ptr mm_Mult_p;808 mm_Mult_pp_Proc_Ptr mm_Mult_pp;809 810 bucket_Proc_Ptr BucketPolyRed;811 bucket_Proc_Ptr BucketPolyRed_Z;812 813 SPoly_Proc_Ptr SPoly;814 SPolyReduce_Proc_Ptr ReduceSPoly;815 816 GB_Proc_Ptr GB;817 // GlobalGB, // BBA818 // LocalGB; // MORA819 };820 821 822 struct nc_struct823 {824 nc_type type;825 //ring basering; // the ring C,D,.. live in (commutative ring with this NC structure!)826 827 // initial data: square matrices rVar() x rVar()828 // logically: upper triangular!!!829 // TODO: eliminate this waste of memory!!!!830 matrix C;831 matrix D;832 833 // computed data:834 matrix *MT; // size 0.. (rVar()*rVar()-1)/2835 matrix COM;836 int *MTsize; // size 0.. (rVar()*rVar()-1)/2837 838 // IsSkewConstant indicates whethere coeffs C_ij are all equal,839 // effective together with nc_type=nc_skew840 int IsSkewConstant;841 842 private:843 // internal data for different implementations844 // if dynamic => must be deallocated in destructor (nc_rKill!)845 union846 {847 struct848 {849 // treat variables from iAltVarsStart till iAltVarsEnd as alternating vars.850 // these variables should have odd degree, though that will not be checked851 // iAltVarsStart, iAltVarsEnd are only used together with nc_type=nc_exterior852 // 1 <= iAltVarsStart <= iAltVarsEnd <= r->N853 unsigned int iFirstAltVar, iLastAltVar; // = 0 by default854 855 // for factors of super-commutative algebras we need856 // the part of general quotient ideal modulo squares!857 ideal idSCAQuotient; // = NULL by default. // must be deleted in Kill!858 } sca;859 } data;860 861 CGlobalMultiplier* m_Multiplier;862 CFormulaPowerMultiplier* m_PowerMultiplier;863 864 public:865 866 inline nc_type& ncRingType() { return (type); };867 inline nc_type ncRingType() const { return (type); };868 869 inline unsigned int& FirstAltVar()870 { assume(ncRingType() == nc_exterior); return (data.sca.iFirstAltVar); };871 inline unsigned int& LastAltVar ()872 { assume(ncRingType() == nc_exterior); return (data.sca.iLastAltVar ); };873 874 inline unsigned int FirstAltVar() const875 { assume(ncRingType() == nc_exterior); return (data.sca.iFirstAltVar); };876 inline unsigned int LastAltVar () const877 { assume(ncRingType() == nc_exterior); return (data.sca.iLastAltVar ); };878 879 inline ideal& SCAQuotient()880 { assume(ncRingType() == nc_exterior); return (data.sca.idSCAQuotient); };881 882 inline CGlobalMultiplier* GetGlobalMultiplier() const883 { assume(ncRingType() != nc_exterior); return (m_Multiplier); };884 885 inline CGlobalMultiplier*& GetGlobalMultiplier()886 { assume(ncRingType() != nc_exterior); return (m_Multiplier); };887 888 889 inline CFormulaPowerMultiplier* GetFormulaPowerMultiplier() const890 { assume(ncRingType() != nc_exterior); return (m_PowerMultiplier); };891 892 inline CFormulaPowerMultiplier*& GetFormulaPowerMultiplier()893 { assume(ncRingType() != nc_exterior); return (m_PowerMultiplier); };894 895 public:896 nc_pProcs p_Procs; // NC procedures.897 898 };899 #endif900 790 901 791
Note: See TracChangeset
for help on using the changeset viewer.