Changeset afc8b6 in git for Singular/LIB
- Timestamp:
- Aug 5, 2004, 4:49:14 PM (20 years ago)
- Branches:
- (u'fieker-DuVal', '117eb8c30fc9e991c4decca4832b1d19036c4c65')(u'spielwiese', 'b4f17ed1d25f93d46dbe29e4b499baecc2fd51bb')
- Children:
- b630a780ee0428a67776401525d297cfd5e67868
- Parents:
- fb004c35e492eee30ecc9db2c44c74cdeb3f4200
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
Singular/LIB/center.lib
rfb004c rafc8b6 1 1 /////////////////////////////////////////////////////////////////////////////// 2 version="$Id: center.lib,v 1. 7 2004-07-22 20:14:01 pluralExp $";2 version="$Id: center.lib,v 1.8 2004-08-05 14:49:14 levandov Exp $"; 3 3 category="Noncommutative"; 4 4 info=" … … 7 7 OVERVIEW: 8 8 This is a library for computing the central elements and centralisators of elements in various noncommutative algebras. 9 Implementations are based on algorithms, written in the frame of the diploma thesis by Oleksandr Motsak 10 (advisor: Prof. Ovsienko Sergiy Adamovich) at Kyiv Taras Shevchenko University: 11 'An algorithm for the computation of the center of noncommutative polynomial algebra'. 9 Implementation is partially based on algorithms, written in the frame of the diploma thesis by Oleksandr Motsak (advisors: Prof. S.A. Ovsienko, V.Levandovskyy) at Kyiv Taras Shevchenko University: 'An algorithm for the computation of the center of noncommutative polynomial algebra'. 12 10 @* The last version of this library can be found via internet. 13 SUPPORT: Forschungsschwerpunkt 11 12 SUPPORT: Forschungsschwerpunkt 'Mathematik und Praxis' 13 14 14 PROCEDURES: 15 center(MaxDeg[,N]); Computing of a Center of current algebra 16 centralizator(f, MaxDeg[,N]); Computing of a Centralizator of f in current algebra 17 18 inCenter(l); Check for the commutativity of polynomials of list/ideal/poly l 19 inCentralizator(l, f); Check for the commutativity of polynomials of list/ideal/poly l with polynomial f 15 center(MaxDeg[,N]); returns the center of basering, 16 centralizer(f, MaxDeg[,N]); returns the centralizer of f in basering, 17 inCenter(l); checks the centrality of elements of list/ideal/poly l 18 inCentralizer(l, f); checks the commutativity wrt polynomialf of polynomials of list/ideal/poly l 20 19 21 20 SEE ALSO: ncalg_lib, nctools_lib 22 KEYWORDS: inCenter; inCentraliz ator; center; centralizator21 KEYWORDS: inCenter; inCentralizer; center; centralizer 23 22 "; 24 23 … … 2393 2392 2394 2393 /******************************************************************************/ 2395 static proc inCentraliz ator_poly( poly p, poly f )2396 " 2397 if p in Centraliz ator(f) => return 12394 static proc inCentralizer_poly( poly p, poly f ) 2395 " 2396 if p in Centralizer(f) => return 1 2398 2397 otherwise return 0 2399 2398 " … … 2403 2402 if( toprint() ) 2404 2403 { 2405 "POLY: ", string (p), " is NOT in Centraliz ator(f)";2404 "POLY: ", string (p), " is NOT in Centralizer(f)"; 2406 2405 }; 2407 2406 return (0); … … 2410 2409 if( toprint() ) 2411 2410 { 2412 "POLY: ", string (p), " is in Centraliz ator(f)";2411 "POLY: ", string (p), " is in Centralizer(f)"; 2413 2412 }; 2414 2413 return (1); … … 2416 2415 2417 2416 /******************************************************************************/ 2418 static proc inCentraliz ator_list( def l, poly f )2417 static proc inCentralizer_list( def l, poly f ) 2419 2418 { 2420 2419 for ( int @i = 1; @i <= size(l); @i++ ) … … 2422 2421 if ( typeof(l[@i])=="poly" ) 2423 2422 { 2424 if (! inCentraliz ator_poly(l[@i], f) )2423 if (! inCentralizer_poly(l[@i], f) ) 2425 2424 { 2426 2425 return(0); … … 2431 2430 if ( (typeof(l[@i])=="list") or (typeof(l[@i])=="ideal") ) 2432 2431 { 2433 if (! inCentraliz ator_list(l[@i], f) )2432 if (! inCentralizer_list(l[@i], f) ) 2434 2433 { 2435 2434 return(0); … … 2584 2583 /////////////////////////////////////////////////////////////////////////////// 2585 2584 /////////////////////////////////////////////////////////////////////////////// 2586 /// Centraliz ator's computations2587 2588 /////////////////////////////////////////////////////////////////////////////// 2589 /* static */ proc centraliz ator_vectorspace( poly p, int MaxDeg )2585 /// Centralizer's computations 2586 2587 /////////////////////////////////////////////////////////////////////////////// 2588 /* static */ proc centralizer_vectorspace( poly p, int MaxDeg ) 2590 2589 { 2591 2590 return( calc_k_base( PBW_base( MaxDeg, p ))); … … 2593 2592 2594 2593 /////////////////////////////////////////////////////////////////////////////// 2595 /* static */ proc centraliz ator_min_vectorspace( poly p, int MaxDeg )2596 { 2597 return( makeIdeal( zReduce( centraliz ator_vectorspace( p, MaxDeg))));2598 }; 2599 2600 /////////////////////////////////////////////////////////////////////////////// 2601 /* static */ proc centraliz ator_min_iterative( poly p, int MaxDeg, list # )2602 " 2603 computes the 'minimal' set of elements (of deg <= MaxDeg) generating centraliz ator of p in iterative way2594 /* static */ proc centralizer_min_vectorspace( poly p, int MaxDeg ) 2595 { 2596 return( makeIdeal( zReduce( centralizer_vectorspace( p, MaxDeg)))); 2597 }; 2598 2599 /////////////////////////////////////////////////////////////////////////////// 2600 /* static */ proc centralizer_min_iterative( poly p, int MaxDeg, list # ) 2601 " 2602 computes the 'minimal' set of elements (of deg <= MaxDeg) generating centralizer of p in iterative way 2604 2603 Note: based on calc_k_base 2605 2604 2606 2605 !!! NEED DEBUG !!! 2607 Note: no proof that it is really centraliz ator and moreover 'minimal' centralizator2606 Note: no proof that it is really centralizer and moreover 'minimal' centralizer 2608 2607 " 2609 2608 { … … 2723 2722 2724 2723 /******************************************************************************/ 2725 proc inCentraliz ator( def a, poly f )2726 "USAGE: inCentraliz ator(a, f); a poly/list/ideal, f poly2727 RETURN: integer (1 if a in centraliz ator(f), 0 otherwise)2728 EXAMPLE: example inCentraliz ator; shows examples"2724 proc inCentralizer( def a, poly f ) 2725 "USAGE: inCentralizer(a, f); a poly/list/ideal, f poly 2726 RETURN: integer (1 if a in centralizer(f), 0 otherwise) 2727 EXAMPLE: example inCentralizer; shows examples" 2729 2728 { 2730 2729 if ( typeof(a) == "poly" ) 2731 2730 { 2732 return (inCentraliz ator_poly(a, f));2731 return (inCentralizer_poly(a, f)); 2733 2732 }; 2734 2733 2735 2734 if ( (typeof(a)=="list") or (typeof(a)=="ideal") ) 2736 2735 { 2737 return (inCentraliz ator_list(a, f));2736 return (inCentralizer_list(a, f)); 2738 2737 }; 2739 2738 } … … 2750 2749 poly a = z; /// lies in center 2751 2750 poly b = y^2; 2752 inCentraliz ator(a, f);2753 inCentraliz ator(b, f);2751 inCentralizer(a, f); 2752 inCentralizer(b, f); 2754 2753 list l = list(1, a); 2755 inCentraliz ator(l, f);2754 inCentralizer(l, f); 2756 2755 ideal I = a, b; 2757 inCentraliz ator(I, f);2756 inCentralizer(I, f); 2758 2757 }; 2759 2758 … … 2769 2768 1. MaxDeg - maximal degree of desired elements or/and 2770 2769 2. n - the minimal number of desired elements to find. 2771 SEE ALSO: centraliz ator; inCenter2770 SEE ALSO: centralizer; inCenter 2772 2771 EXAMPLE: example center; shows an example" 2773 2772 { … … 2806 2805 2807 2806 /////////////////////////////////////////////////////////////////////////////// 2808 proc centraliz ator( poly p, int MaxDeg, list # )2809 "USAGE: centraliz ator(F, MaxDeg[, N]); poly F, int MaxDeg, int N2807 proc centralizer( poly p, int MaxDeg, list # ) 2808 "USAGE: centralizer(F, MaxDeg[, N]); poly F, int MaxDeg, int N 2810 2809 RETURN: ideal generated by found elements 2811 NOTE: computes the 'minimal' set of elements of centraliz ator(F).2810 NOTE: computes the 'minimal' set of elements of centralizer(F). 2812 2811 Since in general algorithms knows nothing about the number and degrees of 2813 2812 desired polynomials one have to specify any kind of termination condition: 2814 2813 1. MaxDeg - maximal degree of desired elements or/and 2815 2814 2. n - the minimal number of desired elements to find. 2816 SEE ALSO: center; inCentraliz ator2817 EXAMPLE: example centraliz ator; shows an example"2815 SEE ALSO: center; inCentralizer 2816 EXAMPLE: example centralizer; shows an example" 2818 2817 { 2819 2818 2820 2819 if( myInt(#) > 0 ) 2821 2820 { 2822 return( centraliz ator_min_iterative( p, MaxDeg, # ) );2821 return( centralizer_min_iterative( p, MaxDeg, # ) ); 2823 2822 }; 2824 2823 2825 2824 if( MaxDeg >= 0 ) 2826 2825 { 2827 // return( centraliz ator_min_iterative( p, MaxDeg, # ) );2828 return( centraliz ator_min_vectorspace( p, MaxDeg ) );2826 // return( centralizer_min_iterative( p, MaxDeg, # ) ); 2827 return( centralizer_min_vectorspace( p, MaxDeg ) ); 2829 2828 }; 2830 2829 … … 2843 2842 poly f = 4*x*y+z^2-2*z; /// central polynomial 2844 2843 f; 2845 ideal c = centraliz ator(f, 2); /// find all elements of degree <= 2 which lies in centralizator of f2844 ideal c = centralizer(f, 2); /// find all elements of degree <= 2 which lies in centralizer of f 2846 2845 c; 2847 inCentraliz ator(c, f);2848 ideal cc = centraliz ator(f, -1, 2 ); /// find at least first two non trivial elements of the centralizator of f2846 inCentralizer(c, f); 2847 ideal cc = centralizer(f, -1, 2 ); /// find at least first two non trivial elements of the centralizer of f 2849 2848 cc; 2850 inCentraliz ator(cc, f);2849 inCentralizer(cc, f); 2851 2850 poly g = z^2-2*z; /// any polynomial 2852 2851 g; 2853 c = centraliz ator(g, 2); /// find all elements of degree <= 2 which lies in centralizator of g2852 c = centralizer(g, 2); /// find all elements of degree <= 2 which lies in centralizer of g 2854 2853 c; 2855 inCentraliz ator(c, g);2856 cc = centraliz ator(g, -1, 2 ); /// find at least first two non trivial elements of the centralizator of g2854 inCentralizer(c, g); 2855 cc = centralizer(g, -1, 2 ); /// find at least first two non trivial elements of the centralizer of g 2857 2856 cc; 2858 inCentraliz ator(cc, g);2859 }; 2860 2861 2862 /////////////////////////////////////////////////////////////////////////////// 2863 /////////////////////////////////////////////////////////////////////////////// 2864 /////////////////////////////////////////////////////////////////////////////// 2857 inCentralizer(cc, g); 2858 }; 2859 2860 2861 /////////////////////////////////////////////////////////////////////////////// 2862 /////////////////////////////////////////////////////////////////////////////// 2863 ///////////////////////////////////////////////////////////////////////////////
Note: See TracChangeset
for help on using the changeset viewer.