Changeset 89abd46 in git
- Timestamp:
- Jul 13, 2007, 4:05:14 PM (16 years ago)
- Branches:
- (u'spielwiese', '0d6b7fcd9813a1ca1ed4220cfa2b104b97a0a003')
- Children:
- 5accf0ace0c30c09c866e4c16039ef64597f6a2c
- Parents:
- 90ee8d1d1ab99050b0c30c21eadf342a5b681f01
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
Singular/LIB/nctools.lib
r90ee8d r89abd46 1 1 /////////////////////////////////////////////////////////////////////////////// 2 version="$Id: nctools.lib,v 1.2 6 2007-05-24 09:16:59motsak Exp $";2 version="$Id: nctools.lib,v 1.27 2007-07-13 14:05:14 motsak Exp $"; 3 3 category="Noncommutative"; 4 4 info=" … … 721 721 "USAGE: SuperCommutative([b,[e, [Q]]]); 722 722 RETURN: qring 723 PURPOSE: create the super-commutative algebra over a basering, 724 NOTE: activate this qring with the \"setring\" command 723 PURPOSE: create the super-commutative algebra (as a GR-algebra) 'over' a basering, 724 NOTE: activate this qring with the \"setring\" command. 725 NOTE: as a side effect the basering will be changed to bo the basis G-algebra (without factor). 725 726 THEORY: given a basering, this procedure introduces the anticommutative relations x(j)x(i)=-x(i)x(j) for all e>=j>i>=b, 726 727 @* moreover, creates a factor algebra modulo the two-sided ideal, generated by x(b)^2, ..., x(e)^2[ + Q] … … 739 740 int e = N; 740 741 741 742 def saveRing = basering; 742 743 ideal Q = 0; 743 744 … … 752 753 } 753 754 754 if(size(#)>1) 755 { 756 if(typeof(#[2]) != "int") 757 { 758 ERROR("Last argument 'e' must be an integer!"); 759 return(); 760 } 761 e = #[2]; 762 } 763 764 if(size(#)>2) 765 { 766 if(typeof(#[3]) != "ideal") 767 { 768 ERROR("Last argument 'Q' must be an ideal!"); 769 return(); 770 } 771 Q = #[3]; 772 } 773 755 if(size(#)>1) 756 { 757 if(typeof(#[2]) != "int") 758 { 759 ERROR("Last argument 'e' must be an integer!"); 760 return(); 761 } 762 e = #[2]; 763 } 764 765 if(size(#)>2) 766 { 767 if(typeof(#[3]) != "ideal") 768 { 769 ERROR("Last argument 'Q' must be an ideal!"); 770 return(); 771 } 772 Q = #[3]; 773 } 774 775 /* 776 // Singular'(Hans) politics: no ring copyes! 777 // in future ncalgebra() should return a new ring!!! 774 778 list CurrRing = ringlist(basering); 775 779 def @R = ring(CurrRing); 776 780 setring @R; // @R; 781 */ 777 782 778 783 matrix @E = UpOneMatrix(N); … … 790 795 ncalgebra(@E, 0); 791 796 792 793 797 ideal Q = fetch(saveRing, Q); 798 j = ncols(Q) + 1; 794 799 795 800 for ( i=e; i>=b; i--, j++ ) … … 861 866 if( c == -1 ) 862 867 { 863 864 865 866 867 868 869 870 871 868 if(i < b) 869 { 870 b = i; 871 } 872 873 if(j > e) 874 { 875 e = j; 876 } 872 877 } else 873 878 { // should commute … … 915 920 // E; 916 921 917 918 922 ideal Q = fetch(saveRing, Q); // should belong to E! 923 Q = twostd(Q); 919 924 920 925 // "Q = ", string(Q); … … 924 929 if( NF(var(i)^2, Q) != 0 ) 925 930 { 926 931 setring saveRing; 927 932 return("The current ring is not SCA! (Wrong quotient ideal)"); 928 933 } 929 934 } 930 935 931 936 //////////////////////////////////////////////////////////////////////// 932 937 // ok. it is a SCA!!! 933 938
Note: See TracChangeset
for help on using the changeset viewer.