Changeset aa7c1c2 in git
- Timestamp:
- Jun 14, 2018, 1:08:24 PM (6 years ago)
- Branches:
- (u'spielwiese', '5b153614cbc72bfa198d75b1e9e33dab2645d9fe')
- Children:
- 8c73fdea988c87d699605750b3180fa69edf5d10
- Parents:
- a718906498691a0860e186cfee5db4fc1142ccd6db48f3ea705fcb451c2ea640a2b72f643bae2f22
- Files:
-
- 8 added
- 32 edited
Legend:
- Unmodified
- Added
- Removed
-
Singular/LIB/freegb.lib
rdb48f3e raa7c1c2 1 /////////////////////////////////////////////////////////////////////////////2 1 ///////////////////////////////////////////////////////////////////////////// 3 2 version="version freegb.lib 4.1.1.0 Dec_2017 "; // $Id$ … … 92 91 ERROR("uptodeg and lV do not agree on the basering!"); 93 92 } 94 // a kind of dirty hack 95 list L = ringlist(R); 96 attrib(L,"maxExp",1); 97 def @R = ring(L); 98 // Set letterplace-specific attributes for the output ring! 93 94 // Set letterplace-specific attributes for the output ring! 95 // a kind of dirty hack, getting the ringlist again 96 list RL = ringlist(R); 97 attrib(RL, "isLetterplaceRing", lV); 98 attrib(RL, "maxExp", 1); 99 def @R = ring(RL); 100 99 101 attrib(@R, "uptodeg", uptodeg); 100 102 attrib(@R, "isLetterplaceRing", lV); -
Singular/LIB/grobcov.lib
ra718906 raa7c1c2 6 6 category="General purpose"; 7 7 info=" 8 LIBRARY: grobcov.lib February 2018. 9 Groebner Cover for parametric ideals. 10 Comprehensive Groebner Systems, Groebner Cover, 11 Canonical Forms, Parametric Polynomial Systems, 12 Automatic Deduction of Geometric Theorems, 13 Dynamic Geometry, Loci, Envelope, Constructible sets. 14 See: A. Montes A, M. Wibmer, 15 \"Groebner Bases for Polynomial Systems with parameters\", 16 Journal of Symbolic Computation 45 (2010) 1391-1425. 17 (https://www.mat.upc.edu//en/people/antonio.montes/). 8 LIBRARY: grobcov.lib February 2018. Groebner Cover for parametric ideals. 18 9 19 10 IMPORTANT: The book, not yet published: 20 11 A. Montes. \" The Groebner Cover\": 21 12 (Discussing Parametric Polynomial Systems). 22 can be used as a user manual of all 23 the routines included in this library. 24 It defines and proves all the theoretic results used 25 here, and shows examples of all the routines. 13 can be used as a user manual of all the routines included in this library. 14 It defines and proves all the theoretic results used here, and shows examples of all the routines. 26 15 It will be published soon. 27 There are many previous papers realted to the subject, 28 but the book actualices all the contents.16 There are many previous papers realted to the subject, but the book actualices all the contents. 17 (https://www.mat.upc.edu/en/people/antonio.montes/). 29 18 30 19 AUTHORS: Antonio Montes (Universitat Politecnica de Catalunya), 31 20 Hans Schoenemann (Technische Universitaet Kaiserslautern). 32 21 33 OVERVIEW: In 2010, the library was designed to contain 34 Montes-Wibmer's 35 algorithms for computing the Canonical Groebner 36 Cover of a parametric ideal. The central routine is 37 grobcov. Given a parametric ideal, grobcov outputs 38 its Canonical Groebner Cover, consisting of a set 39 of triplets of (lpp, basis, segment). The basis 40 (after normalization) is the reduced Groebner basis 41 for each point of the segment. The segments 42 are disjoint, locally closed and correspond to 43 constant lpp (leading power product) of the basis, 44 and are represented in canonical representation. 22 PURPOSE: The routine grobcov computes a Groebner cover of a parametric ideal. 23 This is a disjoint covering of the parameter space by locally closed sets (set theoretical the difference of two 24 varieties given by two ideals), on which the Groebner basis of the input ideal is constant (and hence all invariants 25 which can be computed from the Groebner basis or its leading ideal). Moreover it computes for each locally 26 closed subset the corresponding Groebner basis and the leading ideal. 27 This is the fundamental routine of the library. 28 29 OVERVIEW: In 2010, the library was designed to contain Montes-Wibmer's algorithms 30 for computing the Canonical Groebner Cover of a parametric ideal.s 31 The central routine is grobcov. Given a parametric ideal, 32 grobcov outputs its Canonical Groebner Cover, consisting of a set 33 of triplets of (lpp, basis, segment). 34 The basis (after normalization) is the reduced Groebner basis 35 for each point of the segment. The segments are disjoint, 36 locally closed and correspond to constant lpp (leading power product) 37 of the basis, and are represented in canonical representation. 45 38 The segments cover the whole parameter space. 46 The output is canonical, it only depends on the 47 given parametric ideal and the monomial order. 48 This is much more than a simple Comprehensive 49 Groebner System. The algorithm grobcov allows 50 options to solve partially the problem when the 51 whole automatic algorithm does not finish in 52 reasonable time. 53 54 grobcov uses a first algorithm cgsdr that outputs a 55 disjoint reduced Comprehensive Groebner System 56 with constant lpp. For this purpose, in this library, 57 the implemented algorithm is Kapur-Sun-Wang 58 algorithm, because it is actually the most efficient 39 The output is canonical, it only depends on the given parametric ideal 40 and the monomial order. This is much more than a simple Comprehensive 41 Groebner System. The algorithm grobcov allows options to solve 42 partially the problem when the whole automatic algorithm does not 43 finish in reasonable time. 44 45 grobcov uses a first algorithm cgsdr that outputs a disjoint reduced 46 Comprehensive Groebner System with constant lpp. 47 For this purpose, in this library, the implemented algorithm is 48 Kapur-Sun-Wang algorithm, because it is actually the most efficient 59 49 algorithm known for this purpose. 60 D. Kapur, Y. Sun, and D.K. Wang \"A New Algorithm 61 for Computing Comprehensive Groebner Systems\". 50 D. Kapur, Y. Sun, and D.K. Wang \"A New Algorithm for Computing Comprehensive Groebner Systems\". 62 51 Proceedings of ISSAC'2010, ACM Press, (2010), 29-36. 63 52 64 The library has evolved to include new applications of 65 the Groebner Cover, and new theoretical developments 66 have been done. The actual version also includes a 67 routine (ConsLevels) for computing the canonical form 68 of a constructible set, given as a union of locally 69 closed sets. It determines the canonical locally closed 70 level sets of a constructible set. It is described in: 71 J.M. Brunat, A. Montes, \"Computing the canonical 72 representation of constructible sets\". 53 The library has evolved to include new applications of the Groebner Cover, 54 and new theoretical developments have been done. The actual version 55 also includes a routine (ConsLevels) for computing the canonical form 56 of a constructible set, given as a union of locally closed sets. 57 It determines the canonical locally closed level sets of a constructible set. 58 It is described in: 59 J.M. Brunat, A. Montes, \"Computing the canonical representation of constructible sets\". 73 60 Math. Comput. Sci. (2016) 19: 165-178. 74 61 75 A new routine locus has been included to compute 76 loci of points, and determining the taxonomy of the 77 components. It is described in the book 78 A. Montes. \"The Groebner Cover\" (Discussing 79 Parametric Polynomial Systems). 80 Additional routines to transform the output to string 81 (locusdg, locusto) are also included and used in the 82 Dynamic Geometry software GeoGebra. They were 83 described in: 84 M.A. Abanades, F. Botana, A. Montes, T. Recio: 85 \''An Algebraic Taxonomy for Locus Computation in 86 Dynamic Geometry\''. 62 A new routine locus has been included to compute loci of points, 63 and determining the taxonomy of the components. It is described in the book 64 A. Montes. \"The Groebner Cover\" (Discussing Parametric Polynomial Systems). 65 Additional routines to transform the output to string (locusdg, locusto) 66 are also included and used in the Dynamic Geometry software GeoGebra. 67 They were described in: 68 M.A. Abanades, F. Botana, A. Montes, T. Recio: \"An Algebraic Taxonomy for Locus Computation in Dynamic Geometry\". 87 69 Computer-Aided Design 56 (2014) 22-33. 88 70 89 Recently also routines for computing the generalized 90 envelope of a family of hyper-surfaces (envelop), 91 to be used in Dynamic Geometry, has been included 92 and is described in the book 93 A. Montes. \"The Groebner Cover\" (Discussing 94 Parametric Polynomial Systems). 95 96 The last inclusion is an automatic algorithm for 97 Automatic Deduction of Geometric Theorems, 71 Recently also routines for computing the generalized envelope of a family of hyper-surfaces (envelop), 72 to be used in Dynamic Geometry, has been included and is described in the book 73 A. Montes. \"The Groebner Cover\" (Discussing Parametric Polynomial Systems). 74 75 The last inclusion is an automatic algorithm for Automatic Deduction of Geometric Theorems, 98 76 described in the book \"Groebner Cover\". 99 77 100 78 This version was finished on 10/02/2018 101 79 102 NOTATIONS: Before calling any routine of the library grobcov, 103 the user must define the ideal Q[a][x], and all the 104 input polynomials and ideals defined on it. 105 Internally the routines define and use also other 106 ideals: Q[a], Q[x,a] and so on. 80 NOTATIONS: Before calling any routine of the library grobcov, the user must define the ideal Q[a][x], 81 and all the input polynomials and ideals defined on it. 82 Internally the routines define and use also other ideals: Q[a], Q[x,a] and so on. 107 83 108 84 PROCEDURES: … … 2505 2481 proc grobcov(ideal F,list #) 2506 2482 "USAGE: grobcov(ideal F[,options]); 2507 F: ideal in Q[a][x] (a=parameters, x=variables) to be 2508 discussed.This is the fundamental routine of the 2509 library. It computes the Groebner Cover of a parametric 2510 ideal F in Q[a][x]. See 2511 A. Montes , M. Wibmer, \"Groebner Bases for Polynomial 2512 Systems with parameters\". 2483 F: ideal in a ring with parameters and variables (the names can be arbitrary) 2484 RETURN: list, say G, where all the data of the Groebner cover of F are stored. 2485 G is a list of lists G[1],G[2],...,G[s] (G[i] is called below: (lpp_i, basis_i, segment_i, [lpph_i]) 2486 - each list G[i], consists of 2 ideals: G[i][1] and G[i][2] in the variables 2487 and a list G[i][3] of 2 ideals G[i][3][1] and G[i][3][2] in the parameters 2488 [and a fourth list,G[i][4] of 2 ideals in the parameters if option (\"rep\",2) is set] 2489 Meaning of the ideals G[i][1] and G[i][2]: 2490 - G[i][1] (= lpp_i) is the leading power product ideal of the input ideal F under the conditions in G[i][3] 2491 2492 - G[i][2] (= basis_i) is the Groebner basis of the input ideal F under the conditions in G[i][3] 2493 Meaning of the list G[i][3] (and similar for G[i][4]): 2494 2495 - G[i][3] (= segment_i) describes the locally closed set which has G[i][1] as (reduced) Groebner basis@* 2496 G[i][3][1] is the ideal of the closed conditions@* 2497 G[i][3][2] is the ideal of the open conditions@* 2498 i.e. in the set V(G[i][3][1]) \ G[i][3][2] the input ideal has leading ideal G[i][1] and Groebner basis G[i][2] 2499 NOTE: grobcov is only tested for ideals in rings with global ordering over QQ 2500 OPTIONS: An option is a pair of arguments: string, integer. 2501 To modify the default options, pairs of arguments 2502 -option name, value- of valid options must be added to the call. 2503 EXPLANATION: In the list G[1]=[[lpp_1,basis_1,segment_1], ..., G[s]=[lpp_s,basis_s,segment_s]] 2504 (optionally [[ lpp_1,basis_1,segment_1,lpph_1], ..., [lpp_s,basis_s,segment_s,lpph_s]]) 2505 The lpp (leading power products) are constant over a segment and are the set of lpp of the reduced 2506 Groebner basis for each point of the segment. 2507 2508 option (\"showhom\",1): the lpph will be shown: The lpph are the lpp of the homogenized ideal and are 2509 different for each segment. It is given as a string, and shown only for information. 2510 With the default option \"can\",1, the segments have different lpph. 2511 2512 basis: to each element of lpp corresponds an I-regular function given in full representation (by option (\"ext\",1)) 2513 or in generic representation (default option (\"ext\",0)). The I-regular function is the corresponding 2514 element of the reduced Groebner basis for each point of the segment with the given lpp. 2515 For each point in the segment, the polynomial or the set of polynomials representing it 2516 (if they do not specialize to 0) specializes to the corresponding element of the reduced Groebner basis 2517 after normalization. 2518 In the full representation at least one of the polynomials representing the I-regular function specializes 2519 to non-zero. 2520 2521 option (\"rep\",0): With the default option (\"rep\",0) the representation of the segment is the P-representation. 2522 The P-representation of a segment is of the form [[p_1,[p_11,..,p_1k1]],..,[p_r,[p_r1,..,p_rkr]]] representing 2523 the segment Union_i ( V(p_i) \ ( Union_j V(p_ij) ) ), where the p's are prime ideals. 2524 2525 option (\"rep\",1): With option (\"rep\",1) the representation of the segment is the C-representation. 2526 The C-representation of a segment is of the form (E,N) representing V(E) \ V(N), and the ideals E and N 2527 are radical and N contains E. 2528 2529 option (\"rep\",2): With option (\"rep\",2) both representations of the segment are given. 2530 2531 With the default option the homogenized ideal is computed before obtaining the Groebner Cover, 2532 so that the result is the canonical Groebner Cover. Setting (\"can\",0) only homogenizes the basis so 2533 the result is not exactly canonical, but the computation is shorter. 2534 2535 \"ext\",0-1: The default is (\"ext\",0). 2536 With the default (\"ext\",0), only the generic representation of the bases is computed (single polynomials, 2537 but not specializing to non-zero for every point of the segment. 2538 With option (\"ext\",1) the full representation of the bases is computed (possible sheaves) and sometimes a 2539 simpler result is obtained, but the computation is more time consuming. 2540 2541 \"rep\",0-1-2: The default is (\"rep\",0) 2542 and then the segments are given in canonical P-representation; 2543 option (\"rep\",1) represents the segments in canonical C-representation, and 2544 option (\"rep\",2) gives both representations. 2545 2546 \"comment\",0-3: The default is (\"comment\",0). 2547 Setting \"comment\" higher will provide information about the development of the computation. 2548 2549 \"showhom\",0-1: The default is (\"showhom\",0). 2550 Setting \"showhom\",1 will output the set of lpp of the homogenized ideal of each segment as last element. 2551 2552 One can give none or whatever of these options. 2553 THEORY: A. Montes , M. Wibmer, \"Groebner Bases for Polynomial Systems with parameters\". 2513 2554 JSC 45 (2010) 1391-1425.) 2514 2555 or the not yet published book 2515 A. Montes. \" The Groebner Cover\" (Discussing 2516 Parametric Polynomial Systems). 2517 The Groebner Cover of a parametric ideal F consist 2518 of a set of pairs(S_i,B_i), where the S_i are disjoint 2519 locally closed segments of the parameter space, 2520 and the B_i are the reducedGroebner bases of the 2521 ideal on every point of S_i. The ideal F must be 2522 defined on a parametric ring Q[a][x] (a=parameters, 2523 x=variables). 2524 RETURN: The list [[lpp_1,basis_1,segment_1], ..., 2525 [lpp_s,basis_s,segment_s]] 2526 optionally [[ lpp_1,basis_1,segment_1,lpph_1], ..., 2527 [lpp_s,basis_s,segment_s,lpph_s]] 2528 The lpp are constant over a segment and 2529 correspond to the set of lpp of the reduced 2530 Groebner basis for each point of the segment. 2531 With option (\"showhom\",1) the lpph will be 2532 shown: The lpph corresponds to the lpp of the 2533 homogenized ideal and is different for each 2534 segment. It is given as a string, and shown 2535 only for information. With the default option 2536 \"can\",1, the segments have different lpph. 2537 Basis: to each element of lpp corresponds 2538 an I-regular function given in full 2539 representation (by option (\"ext\",1)) or 2540 in generic representation (default option (\"ext\",0)). 2541 The I-regular function is the corresponding 2542 element of the reduced Groebner basis for 2543 each point of the segment with the given lpp. 2544 For each point in the segment, the polynomial 2545 or the set of polynomials representing it, 2546 if they do not specialize to 0, then after 2547 normalization, specializes to the corresponding 2548 element of the reduced Groebner basis. 2549 In the full representation at least one of the 2550 polynomials representing the I-regular function 2551 specializes to non-zero. 2552 With the default option (\"rep\",0) the 2553 representation of the segment is the 2554 P-representation. 2555 With option (\"rep\",1) the representation 2556 of the segment is the C-representation. 2557 With option (\"rep\",2) both representations 2558 of the segment are given. 2559 The P-representation of a segment is of the form 2560 [[p_1,[p_11,..,p_1k1]],..,[p_r,[p_r1,..,p_rkr]]] 2561 representing the segment 2562 Union_i ( V(p_i) \ ( Union_j V(p_ij) ) ), 2563 where the p's are prime ideals. 2564 The C-representation of a segment is of the form 2565 (E,N) representing V(E) \ V(N), and the ideals E 2566 and N are radical and N contains E. 2567 OPTIONS: An option is a pair of arguments: string, 2568 integer. To modify the default options, pairs 2569 of arguments -option name, value- of valid options 2570 must be added to the call. 2571 \"null\",ideal E: The default is (\"null\",ideal(0)). 2572 \"nonnull\",ideal N: The default is 2573 (\"nonnull\",ideal(1)). 2574 When options \"null\" and/or \"nonnull\" are given, 2575 then the parameter space is restricted to V(E) \ V(N). 2576 \"can\",0-1: The default is (\"can\",1). 2577 With the default option the homogenized 2578 ideal is computed before obtaining the Groebner 2579 Cover, so that the result is the canonical Groebner 2580 Cover. Setting (\"can\",0) only homogenizes the 2581 basis so the result is not exactly canonical, 2582 but the computation is shorter. 2583 \"ext\",0-1: The default is (\"ext\",0). 2584 With the default (\"ext\",0), only the generic 2585 representation of the bases is computed 2586 (single polynomials, but not specializing 2587 to non-zero for every point of the segment. 2588 With option (\"ext\",1) the full representation 2589 of the bases is computed (possible sheaves) 2590 and sometimes a simpler result is obtained, 2591 but the computation is more time consuming. 2592 \"rep\",0-1-2: The default is (\"rep\",0) 2593 and then the segments are given in canonical 2594 P-representation. 2595 Option (\"rep\",1) represents the segments 2596 in canonical C-representation, and 2597 option (\"rep\",2) gives both representations. 2598 \"comment\",0-3: The default is (\"comment\",0). 2599 Setting \"comment\" higher will provide 2600 information about the development of the 2601 computation. 2602 \"showhom\",0-1: The default is (\"showhom\",0). 2603 Setting \"showhom\",1 will output the set 2604 of lpp of the homogenized ideal of each segment 2605 as last element. One can give none or whatever 2606 of these options. 2607 NOTE: The basering R, must be of the form Q[a][x], 2608 (a=parameters, x=variables), and 2609 should be defined previously. The ideal 2610 must be defined on R. 2556 A. Montes. \" The Groebner Cover\" (Discussing Parametric Polynomial Systems). 2611 2557 KEYWORDS: Groebner cover; parametric ideal; canonical; discussion of parametric ideal 2612 2558 EXAMPLE: grobcov; shows an example" … … 2719 2665 "EXAMPLE:"; echo = 2; 2720 2666 // Casas conjecture for degree 4: 2721 if(defined(R)){kill R;} 2722 ring R=(0,a0,a1,a2,a3,a4),(x1,x2,x3),dp; 2667 ring R1=(0,a0,a1,a2,a3,a4),(x1,x2,x3),dp; 2723 2668 short=0; 2724 2669 ideal F=x1^4+(4*a3)*x1^3+(6*a2)*x1^2+(4*a1)*x1+(a0), … … 2737 2682 // Springer-Verlag 118: 1-29 (2000).; 2738 2683 // (18. Mathematical robotics: Problem 4, two-arm robot)." 2739 if (defined(R)){kill R;} 2740 ring R=(0,a,b,l2,l3),(c3,s3,c1,s1), dp; 2684 ring R2=(0,a,b,l2,l3),(c3,s3,c1,s1), dp; 2741 2685 short=0; 2742 2686 ideal S12=a-l3*c3-l2*c1,b-l3*s3-l2*s1,c1^2+s1^2-1,c3^2+s3^2-1; 2743 2687 S12; 2744 2688 grobcov(S12); 2689 // EXAMPLE: different segments may have different dimensions 2690 ring R3=(0,g,h),(y,z,v,w,t),dp; 2691 ideal I = -4*v2+zw+(h)*zt + (g)*vy, zv-4*v2+(h)*t2, -v2+vw+(-g)*vt+(-h)*t2; 2692 list G = grobcov(I); 2693 G; 2694 //Compute the dimension and the degree at the segment G[1][3]: V(0) \ V(h,g) = {h!=0 and g!=0} 2695 degree(std(G[1][1])); 2696 //Compute the dimension and the degree at the segment G[4][3]: V(h) \ V(h,g) = {h=0 and g!=0} 2697 degree(std(G[4][1])); 2745 2698 } 2746 2699 -
Singular/LIB/primdec.lib
ra718906 raa7c1c2 6832 6832 attrib(I, "isSB", 1); // I needs to be a reduced standard basis 6833 6833 list indep, fett; 6834 intvec @w, @hilb,op;6834 intvec op; 6835 6835 int @wr, @n, @m, lauf, di; 6836 6836 ideal fac, @h, collectrad, lsau; … … 6840 6840 def @P = basering; 6841 6841 int jdim = dim(I); // Computes the dimension of I 6842 int homo = homog(I); // Finds out if I is homogeneous6843 6842 ideal rad = ideal(1); // The unit ideal 6844 6843 ideal te = ser; … … 6846 6845 { 6847 6846 @wr = #[1]; 6848 }6849 if(homo == 1)6850 {6851 for(@n = 1; @n <= nvars(basering); @n++)6852 {6853 @w[@n] = ord(var(@n));6854 }6855 @hilb = hilb(I, 1, @w);6856 6847 } 6857 6848 … … 6911 6902 + indep[@m][2] + ");"); 6912 6903 execute("map phi = @P," + @va + ";"); 6913 if(homo == 1) 6914 { 6915 ideal @j = std(phi(I), @hilb, @w); 6916 } 6917 else 6918 { 6919 ideal @j = groebner(phi(I)); 6920 } 6904 ideal @j = groebner(phi(I)); 6921 6905 } 6922 6906 if((deg(@j[1]) == 0) || (dim(@j) < jdim)) … … 7060 7044 { 7061 7045 break; 7062 }7063 if(homo==1)7064 {7065 @hilb = hilb(I, 1, @w);7066 7046 } 7067 7047 } -
Singular/LIB/primdecint.lib
ra718906 raa7c1c2 919 919 { 920 920 def R = basering; 921 execute("ring S=integer,( X(1..nvars(R)) ), ( dp(nvars(R)) );");921 ring S=integer,( X(1..nvars(R)) ), ( dp(nvars(R)) ); 922 922 ideal I = fetch(R,I); 923 923 ideal J = fetch(R,J); 924 execute("ring St=integer, ( t, X(1..nvars(R)) ), ( dp(1), dp(nvars(R)) );");924 ring St=integer, ( t, X(1..nvars(R)) ), ( dp(1), dp(nvars(R)) ); 925 925 ideal I = imap(S,I); 926 926 ideal J = imap(S,J); 927 927 ideal K = var(1)*I+(1-var(1))*J; 928 K = std Z(K);928 K = std(K); 929 929 int i; 930 930 ideal L; -
Singular/dyn_modules/interval/interval.cc
ra718906 raa7c1c2 217 217 218 218 // check if second argument exists 219 if (args->Typ() == intervalID) 220 { 221 RES = new interval(n1, n2); 222 } 223 else if (args->next == NULL) 219 if (args->next == NULL) 224 220 { 225 221 RES = new interval(n1); -
Singular/grammar.cc
ra718906 raa7c1c2 580 580 #define YYFINAL 2 581 581 /* YYLAST -- Last index in YYTABLE. */ 582 #define YYLAST 25 83582 #define YYLAST 2593 583 583 584 584 /* YYNTOKENS -- Number of terminals. */ … … 706 706 112, -1, 112, 9, 112, -1, 112, 4, 112, -1, 707 707 112, 3, 112, -1, 112, 97, 112, -1, 8, 112, 708 -1, 89, 112, -1, 120, 127, -1, 111, 86, -1,708 -1, 89, 112, -1, 120, 127, -1, 111, 127, -1, 709 709 69, -1, 102, 112, 102, -1, 54, 110, -1, 55, 710 710 110, -1, 56, 110, -1, 57, 110, -1, 128, 110, … … 748 748 551, 555, 559, 563, 567, 571, 575, 579, 583, 587, 749 749 591, 595, 599, 603, 607, 611, 615, 619, 623, 627, 750 631, 637, 641, 645, 649, 653, 658, 662, 673, 67 9,751 6 84, 685, 689, 693, 697, 701, 705, 709, 713, 717,752 7 21, 738, 745, 744, 762, 770, 778, 787, 791, 795,753 79 9, 803, 807, 811, 815, 819, 823, 827, 831, 835,754 84 7, 854, 855, 874, 875, 887, 892, 897, 901, 905,755 9 41, 967, 988, 996, 1000, 1001, 1015, 1023, 1032, 1077,756 10 78, 1087, 1088, 1094, 1101, 1103, 1105, 1114, 1119, 1124,757 11 31, 1139, 1151, 1168, 1188, 1192, 1196, 1201, 1205, 1209,758 1 213, 1217, 1222, 1228, 1234, 1240, 1246, 1252, 1258, 1270,759 12 77, 1281, 1318, 1325, 1330, 1343, 1350, 1350, 1353, 1421,760 14 25, 1454, 1467, 1484, 1493, 1498, 1506, 1518, 1537, 1547,761 15 66, 1589, 1595, 1607, 1613750 631, 637, 641, 645, 649, 653, 658, 662, 673, 676, 751 677, 678, 682, 686, 690, 694, 698, 702, 706, 710, 752 714, 731, 738, 737, 755, 763, 771, 780, 784, 788, 753 792, 796, 800, 804, 808, 812, 816, 820, 824, 828, 754 840, 847, 848, 867, 868, 880, 885, 890, 894, 898, 755 932, 956, 977, 985, 989, 990, 1004, 1012, 1021, 1066, 756 1067, 1076, 1077, 1083, 1090, 1091, 1092, 1100, 1105, 1110, 757 1117, 1125, 1137, 1154, 1174, 1178, 1182, 1187, 1191, 1195, 758 1199, 1203, 1208, 1214, 1220, 1226, 1232, 1238, 1244, 1256, 759 1263, 1267, 1304, 1311, 1316, 1329, 1336, 1336, 1339, 1407, 760 1411, 1440, 1453, 1470, 1479, 1484, 1492, 1504, 1523, 1533, 761 1552, 1575, 1581, 1593, 1599 762 762 }; 763 763 #endif … … 881 881 85, 162, 82, 84, 0, 0, 0, 0, 0, 172, 882 882 171, 155, 127, 100, 0, 0, 0, 5, 0, 0, 883 1 02, 0, 0, 0, 88, 0, 87, 0, 0, 0,884 0, 0, 0, 0, 0, 0, 0, 0, 29, 0,885 123, 0, 6, 101, 0, 70, 0, 70, 158, 0,883 123, 0, 102, 0, 0, 88, 0, 87, 0, 0, 884 0, 0, 0, 0, 0, 0, 0, 0, 0, 29, 885 0, 0, 6, 101, 0, 70, 0, 70, 158, 0, 886 886 0, 0, 0, 0, 0, 68, 168, 0, 114, 0, 887 887 0, 0, 0, 0, 0, 0, 0, 59, 0, 68, … … 913 913 -1, 1, 55, 56, 57, 58, 59, 60, 145, 62, 914 914 219, 63, 64, 246, 65, 66, 67, 68, 69, 189, 915 370, 371, 382, 372, 1 73, 98, 71, 72, 73, 74,915 370, 371, 382, 372, 152, 98, 71, 72, 73, 74, 916 916 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 917 917 85, 86, 87, 88 … … 920 920 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing 921 921 STATE-NUM. */ 922 #define YYPACT_NINF -36 2922 #define YYPACT_NINF -366 923 923 static const yytype_int16 yypact[] = 924 924 { 925 -36 2, 383, -362, -84, 1887, -362, -362, 1953, -75, -362,926 -36 2, -72, -58, -53, -50, -43, -28, -11, 2, 2019,927 20 85, 2151, 2217, 17, 1887, -47, 1887, 4, -362, 1887,928 -36 2, -362, -362, -362, 42, 16, 36, -362, -362, 92,929 44, 64, 99, 77, -362, 115, 88, 2283, 123, 123,930 18 87, 1887, -362, 1887, 1887, -362, -362, -362, 107, -362,931 -2, -65, 1374, 1887, 1887, -362, 1887, 192, -52, -362,932 23 49, -362, -362, -362, -362, 129, -362, 1887, -362, -362,933 18 87, -362, -362, -362, -362, -362, -362, -362, -362, -362,934 1 21, -75, 132, 135, 137, 141, -362, 23, 147, 1887,935 2 10, 1374, -10, 2415, 1887, 1887, 1887, 1887, 1887, 1887,936 18 87, 1491, 1887, 262, 1557, 265, 1887, 385, 1623, 1317,937 1 66, -362, 169, 170, -362, 203, 1689, 1374, 40, 1887,938 -36 2, -362, -362, -362, 200, 1887, 212, 1755, 1953, 1374,939 1 86, -362, -362, 23, -56, -74, 3, -362, 1887, 1821,940 -36 2, 1887, 1887, 1887, -362, 1887, -362, 1887, 1887, 1887,941 18 87, 1887, 1887, 1887, 1887, 1887, 238, 554, 169, 219,942 -362, 1887, -362, -362, 1887, 51, 1887, 76, 1374, 1887,943 18 87, 1557, 1887, 1623, 1887, 569, -362, 1887, 584, 194,944 6 79, 694, 709, 181, 280, 724, 399, -362, -49, 739,945 -36 2, -41, 754, -362, -40, -362, -362, 39, 41, 69,946 79, 93, 95, -362, 33, 98, 224, -362, 849, 1887,947 22 7, 864, -362, -362, -36, -362, -362, -362, -362, -362,948 - 22, 1374, 252, 163, 163, 1403, 30, 30, 23, 414,949 18, 1389, 30, -362, 1887, -362, -362, 1887, -362, 1332,950 5 09, 1887, 472, 2415, 569, 739, -19, 754, -18, 509,951 -36 2, 879, -362, 2415, -362, 1887, 1887, 1887, -362, 1887,952 -36 2, 1887, 1887, -362, -362, -362, -362, -362, -362, -362,953 -36 2, -362, -362, -362, -362, 1495, -362, -362, -362, 2481,954 894, 233, -35, -362, -362, -362, 1887, 909, 909, 1887,955 -36 2, 924, 138, 1374, 213, -362, -362, 1887, 214, 1019,956 10 34, 1049, 1064, 524, 539, 216, 218, 221, 222, 223,957 2 30, 232, 116, 118, 126, 139, 144, 1079, -362, -362,958 -36 2, -362, 1094, -362, -362, 1189, 242, 1887, 2415, -15,959 -6 4, -362, 1887, -362, 1887, 1887, -362, 1887, -362, -362,960 -36 2, -362, -362, -362, -362, -362, -362, -362, -362, -362,961 -36 2, -362, -362, 1887, 1887, -31, 256, -362, -362, 225,962 2 04, -362, 246, 1204, 1219, 1234, 1249, 1264, 1359, -362,963 -6 4, 258, 254, 1887, -362, -362, -362, -362, -362, -362,964 -36 2, -362, 225, -362, -14, -362, -362925 -366, 393, -366, -80, 1897, -366, -366, 1963, -68, -366, 926 -366, -46, -29, -16, -14, 2, 21, 24, 39, 2029, 927 2095, 2161, 2227, 0, 1897, -52, 1897, 47, -366, 1897, 928 -366, -366, -366, -366, -47, 50, 78, -366, -366, -28, 929 93, 95, -9, 99, -366, 32, 101, 2293, 137, 137, 930 1897, 1897, -366, 1897, 1897, -366, -366, -366, 113, -366, 931 15, -70, 1384, 1897, 1897, -366, 1897, 201, -77, -366, 932 2359, -366, -366, -366, -366, 126, -366, 1897, -366, -366, 933 1897, -366, -366, -366, -366, -366, -366, -366, -366, -366, 934 133, -68, 135, 142, 144, 158, -366, 54, 161, 1897, 935 236, 1384, -7, 2425, 1897, 1897, 1897, 1897, 1897, 1897, 936 1897, 1501, 1897, 282, 1567, 305, 1897, 395, 1633, 1327, 937 130, -366, 170, 173, -366, 67, 1699, 1384, 59, 1897, 938 -366, -366, -366, -366, 205, 1897, 215, 1765, 1963, 1384, 939 193, -366, -366, 54, -72, -60, 149, -366, 1897, 1831, 940 -366, 1897, -366, 1897, 1897, -366, 1897, -366, 1897, 1897, 941 1897, 1897, 1897, 1897, 1897, 1897, 1897, 212, 564, 170, 942 222, 1897, -366, -366, 1897, 224, 1897, 107, 1384, 1897, 943 1897, 1567, 1897, 1633, 1897, 579, -366, 1897, 594, 210, 944 689, 704, 719, 3, 165, 734, 409, -366, -59, 749, 945 -366, -58, 764, -366, -45, -366, -366, 44, 65, 71, 946 111, 118, 124, -366, 22, 131, 244, -366, 859, 1897, 947 229, 874, -366, -366, -42, -366, -366, -366, -366, -366, 948 -32, 1384, 18, 260, 260, 1413, 49, 49, 54, 424, 949 66, 1399, 49, -366, 1897, -366, -366, 1897, -366, 1342, 950 519, 1897, 186, 2425, 579, 749, -31, 764, -23, 519, 951 -366, 889, -366, 2425, -366, 1897, 1897, 1897, -366, 1897, 952 -366, 1897, 1897, -366, -366, -366, -366, -366, -366, -366, 953 -366, -366, -366, -366, -366, 381, -366, -366, -366, 2491, 954 904, 250, -37, -366, -366, -366, 1897, 919, 919, 1897, 955 -366, 934, 184, 1384, 213, -366, -366, 1897, 235, 1029, 956 1044, 1059, 1074, 534, 549, 220, 232, 234, 243, 246, 957 252, 254, 174, 226, 228, 238, 240, 1089, -366, -366, 958 -366, -366, 1104, -366, -366, 1199, 253, 1897, 2425, -20, 959 -61, -366, 1897, -366, 1897, 1897, -366, 1897, -366, -366, 960 -366, -366, -366, -366, -366, -366, -366, -366, -366, -366, 961 -366, -366, -366, 1897, 1897, -10, 262, -366, -366, 289, 962 261, -366, 259, 1214, 1229, 1244, 1259, 1274, 1369, -366, 963 -61, 268, 264, 1897, -366, -366, -366, -366, -366, -366, 964 -366, -366, 289, -366, -13, -366, -366 965 965 }; 966 966 … … 968 968 static const yytype_int16 yypgoto[] = 969 969 { 970 -36 2, -362, -362, -362, -362, -362, -362, -4, -1, 48,971 -36 2, -362, -362, -168, -362, -362, 303, 308, 209, -249,972 -36 2, -361, -80, -17, 185, 0, -362, -362, -362, -362,973 -36 2, -362, -362, -362, -362, -362, -362, -362, -362, -362,974 -36 2, -362, -362, -362970 -366, -366, -366, -366, -366, -366, -366, 207, -1, 25, 971 -366, -366, -366, -49, -366, -366, 358, 319, 293, -252, 972 -366, -365, -21, -6, -65, 1, -366, -366, -366, -366, 973 -366, -366, -366, -366, -366, -366, -366, -366, -366, -366, 974 -366, -366, -366, -366 975 975 }; 976 976 … … 982 982 static const yytype_int16 yytable[] = 983 983 { 984 61, 70, 169, 100, 304, 368, 152, 153, 381, 148, 985 154, 89, 155, 156, 308, 113, 115, 117, 119, 123, 986 151, 150, 125, 122, 103, 154, 226, 104, 156, 151, 987 154, 381, 330, 156, 170, 369, 225, 154, 151, 331, 988 156, 105, 171, 172, 148, 151, 106, 70, 124, 107, 989 144, 274, 97, 151, 151, 101, 108, 186, 151, 276, 990 278, 379, 148, 151, 293, 168, 175, 101, 101, 101, 991 101, 109, 151, 177, 101, 151, 151, 127, 294, 151, 992 151, 305, 306, 120, 121, 367, 396, 148, 110, 366, 993 157, 158, 159, 160, 161, 139, 162, 149, 143, 163, 994 164, 111, 146, 126, 165, 227, 216, 217, 128, 161, 995 198, 166, 167, 201, 161, 129, 162, 204, 101, 165, 996 160, 161, 214, 162, 165, 101, 215, 285, 178, 333, 997 334, 165, 149, 286, 100, 130, 224, -110, 179, 279, 998 103, 280, 251, 132, 228, -110, -110, 185, 230, 148, 999 149, 188, 190, 191, 192, 193, 194, 195, 196, 131, 1000 199, 243, 170, 133, 202, 134, 152, 249, 180, 281, 1001 154, -152, 252, 156, 101, 149, 135, 218, 181, 282, 1002 256, 136, 258, 221, 152, 153, 101, 137, 154, 30, 1003 155, 156, 182, 283, 183, 284, 101, 184, 287, 231, 1004 232, 233, 147, 234, 169, 235, 236, 237, 238, 239, 1005 240, 241, 242, 101, 148, 104, 356, 107, 357, 101, 1006 179, 148, 250, 176, 101, 108, 358, 254, 255, 337, 1007 257, 180, 259, -153, 181, 261, 182, 149, 110, 359, 1008 183, 152, 153, 111, 360, 154, 184, 155, 156, 302, 1009 157, 158, 159, 160, 161, -154, 162, 141, 142, 154, 1010 164, 205, 156, 151, 165, 206, 220, 290, 157, 158, 1011 159, 160, 161, 148, 162, 267, 148, 163, 164, 222, 1012 171, 268, 165, 152, 153, 321, 248, 154, 263, 155, 1013 156, 288, 297, 291, 368, 298, -112, -132, -132, 301, 1014 329, 303, 149, 383, -112, -112, 339, 338, 340, 149, 1015 102, 303, 395, 309, 310, 311, 349, 312, 350, 313, 1016 314, 351, 352, 353, 244, 157, 158, 159, 160, 161, 1017 354, 162, 355, 364, 163, 164, 365, 327, 245, 165, 1018 158, 159, 160, 161, 332, 162, 384, 335, -105, 164, 1019 380, -106, 392, 165, 393, 140, -105, -105, 0, -106, 1020 -106, 149, 253, 391, 149, 0, 0, 157, 158, 159, 1021 160, 161, 0, 162, 269, 0, 163, 164, 0, 0, 1022 270, 165, 394, 2, 3, 0, 303, 0, 0, 0, 1023 373, 4, 374, 375, 0, 376, 148, 5, 6, 7, 1024 8, 0, 152, 153, 0, 9, 154, 0, 155, 156, 1025 0, 377, 378, 0, 0, 10, 0, 152, 153, 0, 1026 0, 154, 0, 155, 156, 0, 0, 0, 0, 11, 984 61, 304, 70, 173, 381, 170, 153, 154, 368, 150, 985 155, 308, 156, 157, 123, 89, 150, 171, 172, 128, 986 225, -154, 151, 122, 151, 155, 148, 381, 157, 97, 987 330, 103, 101, 148, 151, 151, 151, 331, 369, 131, 988 226, 274, 276, 124, 101, 101, 101, 101, 70, 151, 989 144, 101, 151, 104, 127, 278, 155, 134, 293, 157, 990 186, 155, 151, 151, 157, 169, 120, 121, 294, 305, 991 105, 151, 139, 155, 151, 143, 157, 306, 148, 146, 992 367, 151, 379, 106, 151, 107, 366, 396, 167, 168, 993 158, 159, 160, 161, 162, 101, 163, 267, 136, 164, 994 165, 108, 101, 268, 166, 178, 159, 160, 161, 162, 995 198, 163, 253, 201, 149, 165, 285, 204, 148, 166, 996 109, 149, 286, 110, 185, 216, 217, 215, 188, 190, 997 191, 192, 193, 194, 195, 196, 224, 199, 111, 161, 998 162, 202, 163, 179, 279, 162, 126, 163, 230, 129, 999 166, 101, 153, 154, 218, 166, 155, 162, 156, 157, 1000 221, -132, -132, 101, 103, 280, 149, 166, 153, 154, 1001 180, 281, 155, 101, 156, 157, 231, 130, 232, 233, 1002 256, 234, 258, 235, 236, 237, 238, 239, 240, 241, 1003 242, 101, 132, 150, 133, 148, 101, 148, 135, 250, 1004 137, 101, -152, 30, 254, 255, 149, 257, 147, 259, 1005 181, 282, 261, 170, 100, 153, 154, 182, 283, 155, 1006 176, 156, 157, 183, 284, 205, 113, 115, 117, 119, 1007 184, 287, 179, 125, 180, 148, 158, 159, 160, 161, 1008 162, 181, 163, 182, 290, 164, 165, 148, 333, 334, 1009 166, 227, 158, 159, 160, 161, 162, 183, 163, 269, 1010 184, 164, 165, 153, 151, 270, 166, 155, 206, 297, 1011 157, 220, 298, 104, 356, 337, 301, 175, 303, -153, 1012 -133, -133, 222, 149, 177, 149, 321, 171, 303, 248, 1013 309, 310, 311, 148, 312, 291, 313, 314, 244, 158, 1014 159, 160, 161, 162, 263, 163, 339, 338, 164, 165, 1015 -110, 288, 245, 166, 327, 251, 148, 329, -110, -110, 1016 349, 332, -112, 149, 335, 107, 357, 108, 358, 340, 1017 -112, -112, 350, 214, 351, 149, 365, 110, 359, 111, 1018 360, 141, 142, 352, 364, 100, 353, 158, 159, 160, 1019 161, 162, 354, 163, 355, 228, 380, 165, 368, 384, 1020 383, 166, 392, 303, 393, 102, 140, 373, -105, 374, 1021 375, 395, 376, 243, 391, 0, -105, -105, 249, 0, 1022 0, 149, 394, 252, 0, 0, 0, 0, 377, 378, 1023 0, -106, 0, 2, 3, 5, 6, 315, 316, -106, 1024 -106, 4, 0, 9, 149, 0, 148, 5, 6, 7, 1025 8, 0, 153, 154, 0, 9, 155, 0, 156, 157, 1026 0, 0, 0, 0, 0, 10, 0, 153, 154, 0, 1027 0, 155, 0, 156, 157, 317, 318, 319, 320, 11, 1027 1028 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 1028 1029 22, 23, 24, 25, 26, 0, 27, 28, 29, 30, 1029 0, 31, 32, 33, 34, 35, 36, 37, 38, 39,1030 302, 31, 32, 33, 34, 35, 36, 37, 38, 39, 1030 1031 40, 41, 42, 43, 44, 45, 46, 47, 48, 0, 1031 1032 49, -107, 50, 0, 51, 0, 0, 0, 52, -107, 1032 -107, 0, 53, 148, 149, 54, 157, 158, 159, 160,1033 16 1, 0, 162, 272, 0, 163, 164, 0, 0, 273,1034 16 5, 157, 158, 159, 160, 161, 295, 162, 296, 0,1035 16 3, 164, 152, 153, 0, 165, 154, 0, 155, 156,1036 0, 0, 0, 0, 0, 0, 0, 15 2, 153, 0,1037 0, 15 4, 0, 155, 156, 0, 0, 0, 0, 0,1038 0, 0, 15 2, 153, 0, 0, 154, 0, 155, 156,1039 0, 0, 0, 0, 0, 0, 0, 15 2, 153, 0,1040 0, 15 4, 0, 155, 156, 0, -133, -133, 0, 0,1041 0, 149, 152, 153, 0, 0, 154, 0, 155, 156,1042 0, 0, 0, 0, 0, 0, 0, 15 2, 153, 0,1043 0, 15 4, 0, 155, 156, 0, 157, 158, 159, 160,1044 16 1, 0, 162, 299, 0, 163, 164, 0, 0, 300,1045 16 5, 157, 158, 159, 160, 161, 0, 162, 345, 0,1046 16 3, 164, 0, 0, 346, 165, 157, 158, 159, 160,1047 16 1, 0, 162, 347, 0, 163, 164, 0, 0, 348,1048 16 5, 157, 158, 159, 160, 161, 0, 162, 247, 0,1049 16 3, 164, 0, 0, 0, 165, 157, 158, 159, 160,1050 16 1, 0, 162, 0, 0, 163, 164, 0, 0, 260,1051 16 5, 157, 158, 159, 160, 161, 0, 162, 0, 0,1052 16 3, 164, 152, 153, 262, 165, 154, 0, 155, 156,1053 0, 0, 0, 0, 0, 0, 0, 15 2, 153, 0,1054 0, 15 4, 0, 155, 156, 0, 0, 0, 0, 0,1055 0, 0, 15 2, 153, 0, 0, 154, 0, 155, 156,1056 0, 0, 0, 0, 0, 0, 0, 15 2, 153, 0,1057 0, 15 4, 0, 155, 156, 0, 0, 0, 0, 0,1058 0, 0, 15 2, 153, 0, 0, 154, 0, 155, 156,1059 0, 0, 0, 0, 0, 0, 0, 15 2, 153, 0,1060 0, 15 4, 0, 155, 156, 0, 157, 158, 159, 160,1061 16 1, 0, 162, 0, 0, 163, 164, 0, 0, 264,1062 16 5, 157, 158, 159, 160, 161, 0, 162, 265, 0,1063 16 3, 164, 0, 0, 0, 165, 157, 158, 159, 160,1064 16 1, 0, 162, 266, 0, 163, 164, 0, 0, 0,1065 16 5, 157, 158, 159, 160, 161, 0, 162, 271, 0,1066 16 3, 164, 0, 0, 0, 165, 157, 158, 159, 160,1067 16 1, 0, 162, 0, 0, 163, 164, 0, 0, 275,1068 16 5, 157, 158, 159, 160, 161, 0, 162, 0, 0,1069 16 3, 164, 152, 153, 277, 165, 154, 0, 155, 156,1070 0, 0, 0, 0, 0, 0, 0, 15 2, 153, 0,1071 0, 15 4, 0, 155, 156, 0, 0, 0, 0, 0,1072 0, 0, 15 2, 153, 0, 0, 154, 0, 155, 156,1073 0, 0, 0, 0, 0, 0, 0, 15 2, 153, 0,1074 0, 15 4, 0, 155, 156, 0, 0, 0, 0, 0,1075 0, 0, 15 2, 153, 0, 0, 154, 0, 155, 156,1076 0, 0, 0, 0, 0, 0, 0, 15 2, 153, 0,1077 0, 15 4, 0, 155, 156, 0, 157, 158, 159, 160,1078 16 1, 0, 162, 289, 0, 163, 164, 0, 0, 0,1079 16 5, 157, 158, 159, 160, 161, 0, 162, 0, 0,1080 16 3, 164, 0, 0, 292, 165, 157, 158, 159, 160,1081 16 1, 0, 162, 307, 0, 163, 164, 0, 0, 0,1082 16 5, 157, 158, 159, 160, 161, 0, 162, 0, 0,1083 16 3, 164, 0, 0, 328, 165, 157, 158, 159, 160,1084 16 1, 0, 162, 0, 0, 163, 164, 0, 0, 245,1085 16 5, 157, 158, 159, 160, 161, 336, 162, 0, 0,1086 16 3, 164, 152, 153, 0, 165, 154, 0, 155, 156,1087 0, 0, 0, 0, 0, 0, 0, 15 2, 153, 0,1088 0, 15 4, 0, 155, 156, 0, 0, 0, 0, 0,1089 0, 0, 15 2, 153, 0, 0, 154, 0, 155, 156,1090 0, 0, 0, 0, 0, 0, 0, 15 2, 153, 0,1091 0, 15 4, 0, 155, 156, 0, 0, 0, 0, 0,1092 0, 0, 15 2, 153, 0, 0, 154, 0, 155, 156,1093 0, 0, 0, 0, 0, 0, 0, 15 2, 153, 0,1094 0, 15 4, 0, 155, 156, 0, 157, 158, 159, 160,1095 16 1, 0, 162, 0, 0, 163, 164, 0, 0, 341,1096 16 5, 157, 158, 159, 160, 161, 0, 162, 342, 0,1097 16 3, 164, 0, 0, 0, 165, 157, 158, 159, 160,1098 16 1, 0, 162, 0, 0, 163, 164, 0, 0, 343,1099 16 5, 157, 158, 159, 160, 161, 0, 162, 344, 0,1100 16 3, 164, 0, 0, 0, 165, 157, 158, 159, 160,1101 16 1, 0, 162, 0, 0, 163, 164, 0, 0, 361,1102 16 5, 157, 158, 159, 160, 161, 362, 162, 0, 0,1103 16 3, 164, 152, 153, 0, 165, 154, 0, 155, 156,1104 0, 0, 0, 0, 0, 0, 0, 15 2, 153, 0,1105 0, 15 4, 0, 155, 156, 0, 0, 0, 0, 0,1106 0, 0, 15 2, 153, 0, 0, 154, 0, 155, 156,1107 0, 0, 0, 0, 0, 0, 0, 15 2, 153, 0,1108 0, 15 4, 0, 155, 156, 0, 0, 0, 0, 0,1109 0, 0, 15 2, 153, 0, 0, 154, 0, 155, 156,1110 0, 0, 0, 0, 0, 0, 0, 15 2, 153, 0,1111 0, 15 4, 0, 155, 156, 0, 157, 158, 159, 160,1112 16 1, 0, 162, 363, 0, 163, 164, 0, 0, 0,1113 16 5, 157, 158, 159, 160, 161, 0, 162, 0, 0,1114 16 3, 164, 0, 0, 385, 165, 157, 158, 159, 160,1115 16 1, 0, 162, 0, 0, 163, 164, 0, 0, 386,1116 16 5, 157, 158, 159, 160, 161, 0, 162, 148, 0,1117 16 3, 164, 0, 0, 387, 165, 157, 158, 159, 160,1118 16 1, 0, 162, 148, 0, 163, 164, 0, 0, 388,1119 16 5, 157, 158, 159, 160, 161, 0, 162, 0, 0,1120 16 3, 164, 152, 153, 389, 165, 154, 0, 155, 156,1121 0, 0, 0, 0, 0, 0, 0, 15 2, 153, 0,1122 0, 15 4, 0, 155, 156, 0, 0, 0, 0, 0,1123 0, 0, 15 2, 153, 0, 0, 154, 0, 155, 156,1124 0, 0, 0, -108, 0, 0, 15 2, 0, 0, 0,1125 15 4, -108, -108, 156, 0, 0, 149, 0, -111, 0,1033 -107, 0, 53, 0, 149, 54, 158, 159, 160, 161, 1034 162, 0, 163, 272, 0, 164, 165, 0, 0, 273, 1035 166, 158, 159, 160, 161, 162, 295, 163, 296, 0, 1036 164, 165, 153, 154, 0, 166, 155, 0, 156, 157, 1037 0, 0, 0, 0, 0, 0, 0, 153, 154, 0, 1038 0, 155, 0, 156, 157, 0, 0, 0, 0, 0, 1039 0, 0, 153, 154, 0, 0, 155, 0, 156, 157, 1040 0, 0, 0, 0, 0, 0, 0, 153, 154, 0, 1041 0, 155, 0, 156, 157, 0, 0, 0, 0, 0, 1042 0, 0, 153, 154, 0, 0, 155, 0, 156, 157, 1043 0, 0, 0, 0, 0, 0, 0, 153, 154, 0, 1044 0, 155, 0, 156, 157, 0, 158, 159, 160, 161, 1045 162, 0, 163, 299, 0, 164, 165, 0, 0, 300, 1046 166, 158, 159, 160, 161, 162, 0, 163, 345, 0, 1047 164, 165, 0, 0, 346, 166, 158, 159, 160, 161, 1048 162, 0, 163, 347, 0, 164, 165, 0, 0, 348, 1049 166, 158, 159, 160, 161, 162, 0, 163, 247, 0, 1050 164, 165, 0, 0, 0, 166, 158, 159, 160, 161, 1051 162, 0, 163, 0, 0, 164, 165, 0, 0, 260, 1052 166, 158, 159, 160, 161, 162, 0, 163, 0, 0, 1053 164, 165, 153, 154, 262, 166, 155, 0, 156, 157, 1054 0, 0, 0, 0, 0, 0, 0, 153, 154, 0, 1055 0, 155, 0, 156, 157, 0, 0, 0, 0, 0, 1056 0, 0, 153, 154, 0, 0, 155, 0, 156, 157, 1057 0, 0, 0, 0, 0, 0, 0, 153, 154, 0, 1058 0, 155, 0, 156, 157, 0, 0, 0, 0, 0, 1059 0, 0, 153, 154, 0, 0, 155, 0, 156, 157, 1060 0, 0, 0, 0, 0, 0, 0, 153, 154, 0, 1061 0, 155, 0, 156, 157, 0, 158, 159, 160, 161, 1062 162, 0, 163, 0, 0, 164, 165, 0, 0, 264, 1063 166, 158, 159, 160, 161, 162, 0, 163, 265, 0, 1064 164, 165, 0, 0, 0, 166, 158, 159, 160, 161, 1065 162, 0, 163, 266, 0, 164, 165, 0, 0, 0, 1066 166, 158, 159, 160, 161, 162, 0, 163, 271, 0, 1067 164, 165, 0, 0, 0, 166, 158, 159, 160, 161, 1068 162, 0, 163, 0, 0, 164, 165, 0, 0, 275, 1069 166, 158, 159, 160, 161, 162, 0, 163, 0, 0, 1070 164, 165, 153, 154, 277, 166, 155, 0, 156, 157, 1071 0, 0, 0, 0, 0, 0, 0, 153, 154, 0, 1072 0, 155, 0, 156, 157, 0, 0, 0, 0, 0, 1073 0, 0, 153, 154, 0, 0, 155, 0, 156, 157, 1074 0, 0, 0, 0, 0, 0, 0, 153, 154, 0, 1075 0, 155, 0, 156, 157, 0, 0, 0, 0, 0, 1076 0, 0, 153, 154, 0, 0, 155, 0, 156, 157, 1077 0, 0, 0, 0, 0, 0, 0, 153, 154, 0, 1078 0, 155, 0, 156, 157, 0, 158, 159, 160, 161, 1079 162, 0, 163, 289, 0, 164, 165, 0, 0, 0, 1080 166, 158, 159, 160, 161, 162, 0, 163, 0, 0, 1081 164, 165, 0, 0, 292, 166, 158, 159, 160, 161, 1082 162, 0, 163, 307, 0, 164, 165, 0, 0, 0, 1083 166, 158, 159, 160, 161, 162, 0, 163, 0, 0, 1084 164, 165, 0, 0, 328, 166, 158, 159, 160, 161, 1085 162, 0, 163, 0, 0, 164, 165, 0, 0, 245, 1086 166, 158, 159, 160, 161, 162, 336, 163, 0, 0, 1087 164, 165, 153, 154, 0, 166, 155, 0, 156, 157, 1088 0, 0, 0, 0, 0, 0, 0, 153, 154, 0, 1089 0, 155, 0, 156, 157, 0, 0, 0, 0, 0, 1090 0, 0, 153, 154, 0, 0, 155, 0, 156, 157, 1091 0, 0, 0, 0, 0, 0, 0, 153, 154, 0, 1092 0, 155, 0, 156, 157, 0, 0, 0, 0, 0, 1093 0, 0, 153, 154, 0, 0, 155, 0, 156, 157, 1094 0, 0, 0, 0, 0, 0, 0, 153, 154, 0, 1095 0, 155, 0, 156, 157, 0, 158, 159, 160, 161, 1096 162, 0, 163, 0, 0, 164, 165, 0, 0, 341, 1097 166, 158, 159, 160, 161, 162, 0, 163, 342, 0, 1098 164, 165, 0, 0, 0, 166, 158, 159, 160, 161, 1099 162, 0, 163, 0, 0, 164, 165, 0, 0, 343, 1100 166, 158, 159, 160, 161, 162, 0, 163, 344, 0, 1101 164, 165, 0, 0, 0, 166, 158, 159, 160, 161, 1102 162, 0, 163, 0, 0, 164, 165, 0, 0, 361, 1103 166, 158, 159, 160, 161, 162, 362, 163, 0, 0, 1104 164, 165, 153, 154, 0, 166, 155, 0, 156, 157, 1105 0, 0, 0, 0, 0, 0, 0, 153, 154, 0, 1106 0, 155, 0, 156, 157, 0, 0, 0, 0, 0, 1107 0, 0, 153, 154, 0, 0, 155, 0, 156, 157, 1108 0, 0, 0, 0, 0, 0, 0, 153, 154, 0, 1109 0, 155, 0, 156, 157, 0, 0, 0, 0, 0, 1110 0, 0, 153, 154, 0, 0, 155, 0, 156, 157, 1111 0, 0, 0, 0, 0, 0, 0, 153, 154, 0, 1112 0, 155, 0, 156, 157, 0, 158, 159, 160, 161, 1113 162, 0, 163, 363, 0, 164, 165, 0, 0, 0, 1114 166, 158, 159, 160, 161, 162, 0, 163, 0, 0, 1115 164, 165, 0, 0, 385, 166, 158, 159, 160, 161, 1116 162, 0, 163, 0, 0, 164, 165, 0, 0, 386, 1117 166, 158, 159, 160, 161, 162, 0, 163, 148, 0, 1118 164, 165, 0, 0, 387, 166, 158, 159, 160, 161, 1119 162, 0, 163, 148, 0, 164, 165, 0, 0, 388, 1120 166, 158, 159, 160, 161, 162, 0, 163, 0, 0, 1121 164, 165, 153, 154, 389, 166, 155, 0, 156, 157, 1122 0, 0, 0, 0, 0, 0, 0, 153, 154, 0, 1123 0, 155, 0, 156, 157, 0, 0, 0, 0, 0, 1124 0, 0, 153, 154, 0, 0, 155, 0, 156, 157, 1125 0, 0, 0, -108, 0, 0, 153, 0, 0, 0, 1126 155, -108, -108, 157, 0, 0, 149, 0, -111, 0, 1126 1127 0, 0, 0, 0, 0, 0, -111, -111, 0, 0, 1127 1128 0, 149, 0, 0, 0, 0, 0, 0, 0, 0, 1128 0, 0, 0, 0, 0, 0, 15 7, 158, 159, 160,1129 16 1, 390, 162, 0, 0, 163, 164, 0, 0, 0,1130 16 5, 157, 158, 159, 160, 161, 0, 162, 0, 0,1131 16 3, 164, 0, 0, 0, 165, 157, 158, 159, 160,1132 16 1, 0, 162, 0, 0, 0, 164, 0, 0, 0,1133 16 5, 158, 159, 160, 161, 0, 162, 0, 0, 4,1134 16 4, 0, 0, 0, 165, 5, 6, 90, 91, 5,1135 6, 315, 316, 9, 0, 0, 0, 9, 0, 0,1129 0, 0, 0, 0, 0, 0, 158, 159, 160, 161, 1130 162, 390, 163, 0, 0, 164, 165, 0, 0, 0, 1131 166, 158, 159, 160, 161, 162, 0, 163, 0, 0, 1132 164, 165, 0, 0, 0, 166, 158, 159, 160, 161, 1133 162, 0, 163, 0, 0, 0, 165, 0, 0, 0, 1134 166, 159, 160, 161, 162, 0, 163, 0, 0, 4, 1135 165, 0, 0, 0, 166, 5, 6, 90, 91, 0, 1136 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 1136 1137 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1137 1138 0, 0, 0, 0, 0, 0, 0, 11, 12, 13, 1138 14, 15, 16, 17, 18, 92, 93, 94, 95, 317,1139 318, 319, 320, 0, 0, 0, 0, 30, 0, 31,1139 14, 15, 16, 17, 18, 92, 93, 94, 95, 0, 1140 0, 0, 0, 0, 0, 0, 0, 30, 0, 31, 1140 1141 32, 33, 0, 35, 36, 4, 0, 0, 40, 41, 1141 1142 0, 5, 6, 90, 91, 0, 96, 0, 0, 9, … … 1245 1246 static const yytype_int16 yycheck[] = 1246 1247 { 1247 1, 1, 12, 7, 253, 69, 3, 4, 369, 11, 1248 7, 95, 9, 10, 263, 19, 20, 21, 22, 66, 1249 94, 86, 26, 24, 99, 7, 100, 99, 10, 94, 1250 7, 392, 67, 10, 86, 99, 92, 7, 94, 74, 1251 10, 99, 94, 95, 11, 94, 99, 47, 95, 99, 1252 51, 100, 4, 94, 94, 7, 99, 67, 94, 100, 1253 100, 92, 11, 94, 100, 66, 70, 19, 20, 21, 1254 22, 99, 94, 77, 26, 94, 94, 29, 100, 94, 1255 94, 100, 100, 66, 67, 100, 100, 11, 99, 338, 1256 87, 88, 89, 90, 91, 47, 93, 99, 50, 96, 1257 97, 99, 54, 99, 101, 102, 66, 67, 66, 91, 1258 111, 63, 64, 114, 91, 99, 93, 118, 70, 101, 1259 90, 91, 126, 93, 101, 77, 126, 94, 80, 297, 1260 298, 101, 99, 100, 138, 99, 137, 86, 99, 100, 1261 99, 100, 91, 99, 148, 94, 95, 99, 149, 11, 1262 99, 103, 104, 105, 106, 107, 108, 109, 110, 67, 1263 112, 165, 86, 99, 116, 66, 3, 171, 99, 100, 1264 7, 95, 176, 10, 126, 99, 99, 129, 99, 100, 1265 181, 66, 183, 135, 3, 4, 138, 99, 7, 66, 1266 9, 10, 99, 100, 99, 100, 148, 99, 100, 151, 1267 152, 153, 95, 155, 12, 157, 158, 159, 160, 161, 1268 162, 163, 164, 165, 11, 99, 100, 99, 100, 171, 1269 99, 11, 174, 94, 176, 99, 100, 179, 180, 91, 1270 182, 99, 184, 95, 99, 187, 99, 99, 99, 100, 1271 99, 3, 4, 99, 100, 7, 99, 9, 10, 253, 1272 87, 88, 89, 90, 91, 3, 93, 48, 49, 7, 1273 97, 95, 10, 94, 101, 95, 66, 219, 87, 88, 1274 89, 90, 91, 11, 93, 94, 11, 96, 97, 67, 1275 94, 100, 101, 3, 4, 285, 67, 7, 94, 9, 1276 10, 67, 244, 66, 69, 247, 86, 94, 95, 251, 1277 67, 253, 99, 99, 94, 95, 307, 94, 94, 99, 1278 7, 263, 392, 265, 266, 267, 100, 269, 100, 271, 1279 272, 100, 100, 100, 86, 87, 88, 89, 90, 91, 1280 100, 93, 100, 91, 96, 97, 337, 289, 100, 101, 1281 88, 89, 90, 91, 296, 93, 100, 299, 86, 97, 1282 94, 86, 94, 101, 100, 47, 94, 95, -1, 94, 1283 95, 99, 177, 380, 99, -1, -1, 87, 88, 89, 1284 90, 91, -1, 93, 94, -1, 96, 97, -1, -1, 1285 100, 101, 383, 0, 1, -1, 338, -1, -1, -1, 1286 342, 8, 344, 345, -1, 347, 11, 14, 15, 16, 1248 1, 253, 1, 68, 369, 12, 3, 4, 69, 86, 1249 7, 263, 9, 10, 66, 95, 86, 94, 95, 66, 1250 92, 3, 94, 24, 94, 7, 11, 392, 10, 4, 1251 67, 99, 7, 11, 94, 94, 94, 74, 99, 67, 1252 100, 100, 100, 95, 19, 20, 21, 22, 47, 94, 1253 51, 26, 94, 99, 29, 100, 7, 66, 100, 10, 1254 67, 7, 94, 94, 10, 66, 66, 67, 100, 100, 1255 99, 94, 47, 7, 94, 50, 10, 100, 11, 54, 1256 100, 94, 92, 99, 94, 99, 338, 100, 63, 64, 1257 87, 88, 89, 90, 91, 70, 93, 94, 66, 96, 1258 97, 99, 77, 100, 101, 80, 88, 89, 90, 91, 1259 111, 93, 177, 114, 99, 97, 94, 118, 11, 101, 1260 99, 99, 100, 99, 99, 66, 67, 126, 103, 104, 1261 105, 106, 107, 108, 109, 110, 137, 112, 99, 90, 1262 91, 116, 93, 99, 100, 91, 99, 93, 149, 99, 1263 101, 126, 3, 4, 129, 101, 7, 91, 9, 10, 1264 135, 94, 95, 138, 99, 100, 99, 101, 3, 4, 1265 99, 100, 7, 148, 9, 10, 151, 99, 153, 154, 1266 181, 156, 183, 158, 159, 160, 161, 162, 163, 164, 1267 165, 166, 99, 86, 99, 11, 171, 11, 99, 174, 1268 99, 176, 95, 66, 179, 180, 99, 182, 95, 184, 1269 99, 100, 187, 12, 7, 3, 4, 99, 100, 7, 1270 94, 9, 10, 99, 100, 95, 19, 20, 21, 22, 1271 99, 100, 99, 26, 99, 11, 87, 88, 89, 90, 1272 91, 99, 93, 99, 219, 96, 97, 11, 297, 298, 1273 101, 102, 87, 88, 89, 90, 91, 99, 93, 94, 1274 99, 96, 97, 3, 94, 100, 101, 7, 95, 244, 1275 10, 66, 247, 99, 100, 91, 251, 70, 253, 95, 1276 94, 95, 67, 99, 77, 99, 285, 94, 263, 67, 1277 265, 266, 267, 11, 269, 66, 271, 272, 86, 87, 1278 88, 89, 90, 91, 94, 93, 307, 94, 96, 97, 1279 86, 67, 100, 101, 289, 91, 11, 67, 94, 95, 1280 100, 296, 86, 99, 299, 99, 100, 99, 100, 94, 1281 94, 95, 100, 126, 100, 99, 337, 99, 100, 99, 1282 100, 48, 49, 100, 91, 138, 100, 87, 88, 89, 1283 90, 91, 100, 93, 100, 148, 94, 97, 69, 100, 1284 99, 101, 94, 338, 100, 7, 47, 342, 86, 344, 1285 345, 392, 347, 166, 380, -1, 94, 95, 171, -1, 1286 -1, 99, 383, 176, -1, -1, -1, -1, 363, 364, 1287 -1, 86, -1, 0, 1, 14, 15, 16, 17, 94, 1288 95, 8, -1, 22, 99, -1, 11, 14, 15, 16, 1287 1289 17, -1, 3, 4, -1, 22, 7, -1, 9, 10, 1288 -1, 363, 364, -1, -1, 32, -1, 3, 4, -1,1289 -1, 7, -1, 9, 10, -1, -1, -1, -1, 46,1290 -1, -1, -1, -1, -1, 32, -1, 3, 4, -1, 1291 -1, 7, -1, 9, 10, 54, 55, 56, 57, 46, 1290 1292 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 1291 1293 57, 58, 59, 60, 61, -1, 63, 64, 65, 66, 1292 -1, 68, 69, 70, 71, 72, 73, 74, 75, 76,1294 253, 68, 69, 70, 71, 72, 73, 74, 75, 76, 1293 1295 77, 78, 79, 80, 81, 82, 83, 84, 85, -1, 1294 1296 87, 86, 89, -1, 91, -1, -1, -1, 95, 94, 1295 95, -1, 99, 11, 99, 102, 87, 88, 89, 90,1297 95, -1, 99, -1, 99, 102, 87, 88, 89, 90, 1296 1298 91, -1, 93, 94, -1, 96, 97, -1, -1, 100, 1297 1299 101, 87, 88, 89, 90, 91, 92, 93, 94, -1, … … 1301 1303 -1, -1, 3, 4, -1, -1, 7, -1, 9, 10, 1302 1304 -1, -1, -1, -1, -1, -1, -1, 3, 4, -1, 1303 -1, 7, -1, 9, 10, -1, 94, 95, -1, -1,1304 -1, 99, 3, 4, -1, -1, 7, -1, 9, 10,1305 -1, 7, -1, 9, 10, -1, -1, -1, -1, -1, 1306 -1, -1, 3, 4, -1, -1, 7, -1, 9, 10, 1305 1307 -1, -1, -1, -1, -1, -1, -1, 3, 4, -1, 1306 1308 -1, 7, -1, 9, 10, -1, 87, 88, 89, 90, … … 1395 1397 91, -1, 93, -1, -1, -1, 97, -1, -1, -1, 1396 1398 101, 88, 89, 90, 91, -1, 93, -1, -1, 8, 1397 97, -1, -1, -1, 101, 14, 15, 16, 17, 14,1398 15, 16, 17, 22, -1, -1, -1, 22, -1, -1,1399 97, -1, -1, -1, 101, 14, 15, 16, 17, -1, 1400 -1, -1, -1, 22, -1, -1, -1, -1, -1, -1, 1399 1401 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1400 1402 -1, -1, -1, -1, -1, -1, -1, 46, 47, 48, 1401 49, 50, 51, 52, 53, 54, 55, 56, 57, 54,1402 55, 56, 57, -1, -1, -1, -1, 66, -1, 68,1403 49, 50, 51, 52, 53, 54, 55, 56, 57, -1, 1404 -1, -1, -1, -1, -1, -1, -1, 66, -1, 68, 1403 1405 69, 70, -1, 72, 73, 8, -1, -1, 77, 78, 1404 1406 -1, 14, 15, 16, 17, -1, 85, -1, -1, 22, … … 1525 1527 99, 67, 99, 99, 66, 99, 66, 99, 16, 112, 1526 1528 120, 121, 121, 112, 111, 111, 112, 95, 11, 99, 1527 86, 94, 3, 4, 7, 9, 10, 87, 88, 89,1528 90, 91, 93, 96, 97, 101, 112, 112, 111, 12,1529 86, 94, 95, 127, 99, 110, 94, 110, 112, 99,1529 86, 94, 127, 3, 4, 7, 9, 10, 87, 88, 1530 89, 90, 91, 93, 96, 97, 101, 112, 112, 111, 1531 12, 94, 95, 127, 99, 110, 94, 110, 112, 99, 1530 1532 99, 99, 99, 99, 99, 112, 67, 99, 112, 122, 1531 1533 112, 112, 112, 112, 112, 112, 112, 100, 111, 112, … … 2905 2907 { 2906 2908 if (iiARROW(&(yyval.lv),(yyvsp[(1) - (3)].name),(yyvsp[(3) - (3)].name))) YYERROR; 2907 omFree((ADDRESS)(yyvsp[(3) - (3)].name)) 2909 omFree((ADDRESS)(yyvsp[(3) - (3)].name)); 2908 2910 ;} 2909 2911 break; … … 2932 2934 break; 2933 2935 2934 case 68:2935 2936 /* Line 1464 of yacc.c */2937 #line 674 "grammar.y"2938 {2939 (yyval.lv) = (yyvsp[(1) - (1)].lv);2940 ;}2941 break;2942 2943 case 69:2944 2945 /* Line 1464 of yacc.c */2946 #line 680 "grammar.y"2947 {2948 /*if ($1.typ == eunknown) YYERROR;*/2949 (yyval.lv) = (yyvsp[(1) - (1)].lv);2950 ;}2951 break;2952 2953 case 70:2954 2955 /* Line 1464 of yacc.c */2956 #line 684 "grammar.y"2957 { (yyval.lv) = (yyvsp[(1) - (1)].lv); ;}2958 break;2959 2960 2936 case 71: 2961 2937 2962 2938 /* Line 1464 of yacc.c */ 2963 #line 6 86"grammar.y"2939 #line 679 "grammar.y" 2964 2940 { 2965 2941 if(iiExprArith3(&(yyval.lv),'[',&(yyvsp[(1) - (6)].lv),&(yyvsp[(3) - (6)].lv),&(yyvsp[(5) - (6)].lv))) YYERROR; … … 2970 2946 2971 2947 /* Line 1464 of yacc.c */ 2972 #line 6 90"grammar.y"2948 #line 683 "grammar.y" 2973 2949 { 2974 2950 if(iiExprArith2(&(yyval.lv),&(yyvsp[(1) - (4)].lv),'[',&(yyvsp[(3) - (4)].lv))) YYERROR; … … 2979 2955 2980 2956 /* Line 1464 of yacc.c */ 2981 #line 6 94"grammar.y"2957 #line 687 "grammar.y" 2982 2958 { 2983 2959 if (iiApply(&(yyval.lv), &(yyvsp[(3) - (6)].lv), (yyvsp[(5) - (6)].i), NULL)) YYERROR; … … 2988 2964 2989 2965 /* Line 1464 of yacc.c */ 2990 #line 69 8"grammar.y"2966 #line 691 "grammar.y" 2991 2967 { 2992 2968 if (iiApply(&(yyval.lv), &(yyvsp[(3) - (6)].lv), (yyvsp[(5) - (6)].i), NULL)) YYERROR; … … 2997 2973 2998 2974 /* Line 1464 of yacc.c */ 2999 #line 702"grammar.y"2975 #line 695 "grammar.y" 3000 2976 { 3001 2977 if (iiApply(&(yyval.lv), &(yyvsp[(3) - (6)].lv), (yyvsp[(5) - (6)].i), NULL)) YYERROR; … … 3006 2982 3007 2983 /* Line 1464 of yacc.c */ 3008 #line 706"grammar.y"2984 #line 699 "grammar.y" 3009 2985 { 3010 2986 if (iiApply(&(yyval.lv), &(yyvsp[(3) - (6)].lv), (yyvsp[(5) - (6)].i), NULL)) YYERROR; … … 3015 2991 3016 2992 /* Line 1464 of yacc.c */ 3017 #line 7 10"grammar.y"2993 #line 703 "grammar.y" 3018 2994 { 3019 2995 if (iiApply(&(yyval.lv), &(yyvsp[(3) - (6)].lv), (yyvsp[(5) - (6)].i), NULL)) YYERROR; … … 3024 3000 3025 3001 /* Line 1464 of yacc.c */ 3026 #line 7 14"grammar.y"3002 #line 707 "grammar.y" 3027 3003 { 3028 3004 if (iiApply(&(yyval.lv), &(yyvsp[(3) - (6)].lv), 0, &(yyvsp[(5) - (6)].lv))) YYERROR; … … 3033 3009 3034 3010 /* Line 1464 of yacc.c */ 3035 #line 71 8"grammar.y"3011 #line 711 "grammar.y" 3036 3012 { 3037 3013 (yyval.lv)=(yyvsp[(2) - (3)].lv); … … 3042 3018 3043 3019 /* Line 1464 of yacc.c */ 3044 #line 7 22"grammar.y"3020 #line 715 "grammar.y" 3045 3021 { 3046 3022 #ifdef SIQ … … 3064 3040 3065 3041 /* Line 1464 of yacc.c */ 3066 #line 73 9"grammar.y"3042 #line 732 "grammar.y" 3067 3043 { 3068 3044 iiTestAssume(&(yyvsp[(2) - (5)].lv),&(yyvsp[(4) - (5)].lv)); … … 3075 3051 3076 3052 /* Line 1464 of yacc.c */ 3077 #line 7 45"grammar.y"3053 #line 738 "grammar.y" 3078 3054 { 3079 3055 #ifdef SIQ … … 3086 3062 3087 3063 /* Line 1464 of yacc.c */ 3088 #line 7 51"grammar.y"3064 #line 744 "grammar.y" 3089 3065 { 3090 3066 #ifdef SIQ … … 3101 3077 3102 3078 /* Line 1464 of yacc.c */ 3103 #line 7 63"grammar.y"3079 #line 756 "grammar.y" 3104 3080 { 3105 3081 #ifdef SIQ … … 3112 3088 3113 3089 /* Line 1464 of yacc.c */ 3114 #line 7 71"grammar.y"3090 #line 764 "grammar.y" 3115 3091 { 3116 3092 #ifdef SIQ … … 3123 3099 3124 3100 /* Line 1464 of yacc.c */ 3125 #line 77 9"grammar.y"3101 #line 772 "grammar.y" 3126 3102 { 3127 3103 #ifdef SIQ … … 3134 3110 3135 3111 /* Line 1464 of yacc.c */ 3136 #line 78 8"grammar.y"3112 #line 781 "grammar.y" 3137 3113 { 3138 3114 if(iiExprArith1(&(yyval.lv),&(yyvsp[(1) - (2)].lv),PLUSPLUS)) YYERROR; … … 3143 3119 3144 3120 /* Line 1464 of yacc.c */ 3145 #line 7 92"grammar.y"3121 #line 785 "grammar.y" 3146 3122 { 3147 3123 if(iiExprArith1(&(yyval.lv),&(yyvsp[(1) - (2)].lv),MINUSMINUS)) YYERROR; … … 3152 3128 3153 3129 /* Line 1464 of yacc.c */ 3154 #line 7 96"grammar.y"3130 #line 789 "grammar.y" 3155 3131 { 3156 3132 if(iiExprArith2(&(yyval.lv),&(yyvsp[(1) - (3)].lv),'+',&(yyvsp[(3) - (3)].lv))) YYERROR; … … 3161 3137 3162 3138 /* Line 1464 of yacc.c */ 3163 #line 800"grammar.y"3139 #line 793 "grammar.y" 3164 3140 { 3165 3141 if(iiExprArith2(&(yyval.lv),&(yyvsp[(1) - (3)].lv),'-',&(yyvsp[(3) - (3)].lv))) YYERROR; … … 3170 3146 3171 3147 /* Line 1464 of yacc.c */ 3172 #line 804"grammar.y"3148 #line 797 "grammar.y" 3173 3149 { /* also for *,% */ 3174 3150 if(iiExprArith2(&(yyval.lv),&(yyvsp[(1) - (3)].lv),(yyvsp[(2) - (3)].i),&(yyvsp[(3) - (3)].lv))) YYERROR; … … 3179 3155 3180 3156 /* Line 1464 of yacc.c */ 3181 #line 80 8"grammar.y"3157 #line 801 "grammar.y" 3182 3158 { 3183 3159 if(iiExprArith2(&(yyval.lv),&(yyvsp[(1) - (3)].lv),'^',&(yyvsp[(3) - (3)].lv))) YYERROR; … … 3188 3164 3189 3165 /* Line 1464 of yacc.c */ 3190 #line 8 12"grammar.y"3166 #line 805 "grammar.y" 3191 3167 { /* also for > */ 3192 3168 if(iiExprArith2(&(yyval.lv),&(yyvsp[(1) - (3)].lv),(yyvsp[(2) - (3)].i),&(yyvsp[(3) - (3)].lv))) YYERROR; … … 3197 3173 3198 3174 /* Line 1464 of yacc.c */ 3199 #line 8 16"grammar.y"3175 #line 809 "grammar.y" 3200 3176 { /* also for |*/ 3201 3177 if(iiExprArith2(&(yyval.lv),&(yyvsp[(1) - (3)].lv),(yyvsp[(2) - (3)].i),&(yyvsp[(3) - (3)].lv))) YYERROR; … … 3206 3182 3207 3183 /* Line 1464 of yacc.c */ 3208 #line 8 20"grammar.y"3184 #line 813 "grammar.y" 3209 3185 { 3210 3186 if(iiExprArith2(&(yyval.lv),&(yyvsp[(1) - (3)].lv),NOTEQUAL,&(yyvsp[(3) - (3)].lv))) YYERROR; … … 3215 3191 3216 3192 /* Line 1464 of yacc.c */ 3217 #line 8 24"grammar.y"3193 #line 817 "grammar.y" 3218 3194 { 3219 3195 if(iiExprArith2(&(yyval.lv),&(yyvsp[(1) - (3)].lv),EQUAL_EQUAL,&(yyvsp[(3) - (3)].lv))) YYERROR; … … 3224 3200 3225 3201 /* Line 1464 of yacc.c */ 3226 #line 82 8"grammar.y"3202 #line 821 "grammar.y" 3227 3203 { 3228 3204 if(iiExprArith2(&(yyval.lv),&(yyvsp[(1) - (3)].lv),DOTDOT,&(yyvsp[(3) - (3)].lv))) YYERROR; … … 3233 3209 3234 3210 /* Line 1464 of yacc.c */ 3235 #line 8 32"grammar.y"3211 #line 825 "grammar.y" 3236 3212 { 3237 3213 if(iiExprArith2(&(yyval.lv),&(yyvsp[(1) - (3)].lv),':',&(yyvsp[(3) - (3)].lv))) YYERROR; … … 3242 3218 3243 3219 /* Line 1464 of yacc.c */ 3244 #line 8 36"grammar.y"3220 #line 829 "grammar.y" 3245 3221 { 3246 3222 if (siq>0) … … 3259 3235 3260 3236 /* Line 1464 of yacc.c */ 3261 #line 84 8"grammar.y"3237 #line 841 "grammar.y" 3262 3238 { 3263 3239 if(iiExprArith1(&(yyval.lv),&(yyvsp[(2) - (2)].lv),'-')) YYERROR; … … 3265 3241 break; 3266 3242 3267 case 101:3268 3269 /* Line 1464 of yacc.c */3270 #line 854 "grammar.y"3271 { (yyval.lv) = (yyvsp[(1) - (2)].lv); ;}3272 break;3273 3274 3243 case 102: 3275 3244 3276 3245 /* Line 1464 of yacc.c */ 3277 #line 8 56"grammar.y"3246 #line 849 "grammar.y" 3278 3247 { 3279 3248 if ((yyvsp[(1) - (2)].lv).rtyp==0) … … 3295 3264 3296 3265 /* Line 1464 of yacc.c */ 3297 #line 8 76"grammar.y"3266 #line 869 "grammar.y" 3298 3267 { 3299 3268 if ((yyvsp[(2) - (3)].lv).Typ()!=STRING_CMD) … … 3309 3278 3310 3279 /* Line 1464 of yacc.c */ 3311 #line 88 8"grammar.y"3280 #line 881 "grammar.y" 3312 3281 { 3313 3282 if (iiDeclCommand(&(yyval.lv),&(yyvsp[(2) - (2)].lv),myynest,(yyvsp[(1) - (2)].i),&((yyvsp[(2) - (2)].lv).req_packhdl->idroot))) … … 3319 3288 3320 3289 /* Line 1464 of yacc.c */ 3321 #line 8 93"grammar.y"3290 #line 886 "grammar.y" 3322 3291 { 3323 3292 if (iiDeclCommand(&(yyval.lv),&(yyvsp[(2) - (2)].lv),myynest,(yyvsp[(1) - (2)].i),&((yyvsp[(2) - (2)].lv).req_packhdl->idroot))) … … 3329 3298 3330 3299 /* Line 1464 of yacc.c */ 3331 #line 89 8"grammar.y"3300 #line 891 "grammar.y" 3332 3301 { 3333 3302 if (iiDeclCommand(&(yyval.lv),&(yyvsp[(2) - (2)].lv),myynest,(yyvsp[(1) - (2)].i),&(currRing->idroot), TRUE)) YYERROR; … … 3338 3307 3339 3308 /* Line 1464 of yacc.c */ 3340 #line 902"grammar.y"3309 #line 895 "grammar.y" 3341 3310 { 3342 3311 if (iiDeclCommand(&(yyval.lv),&(yyvsp[(2) - (2)].lv),myynest,(yyvsp[(1) - (2)].i),&(currRing->idroot), TRUE)) YYERROR; … … 3347 3316 3348 3317 /* Line 1464 of yacc.c */ 3349 #line 906"grammar.y"3318 #line 899 "grammar.y" 3350 3319 { 3351 3320 int r; TESTSETINT((yyvsp[(4) - (8)].lv),r); … … 3362 3331 if (IDMATRIX(h)==NULL) YYERROR; 3363 3332 } 3364 else if (( yyvsp[(1) - (8)].i) == INTMAT_CMD)3333 else if (((yyvsp[(1) - (8)].i) == INTMAT_CMD)||((yyvsp[(1) - (8)].i) == BIGINTMAT_CMD)) 3365 3334 { 3366 3335 if (iiDeclCommand(&(yyval.lv),&(yyvsp[(2) - (8)].lv),myynest,(yyvsp[(1) - (8)].i),&((yyvsp[(2) - (8)].lv).req_packhdl->idroot))) … … 3368 3337 v=&(yyval.lv); 3369 3338 h=(idhdl)v->data; 3370 delete IDINTVEC(h); 3371 IDINTVEC(h) = new intvec(r,c,0); 3339 if ((yyvsp[(1) - (8)].i)==INTMAT_CMD) 3340 { 3341 delete IDINTVEC(h); 3342 IDINTVEC(h) = new intvec(r,c,0); 3343 } 3344 else 3345 { 3346 delete IDBIMAT(h); 3347 IDBIMAT(h) = new bigintmat(r, c, coeffs_BIGINT); 3348 } 3372 3349 if (IDINTVEC(h)==NULL) YYERROR; 3373 3350 } 3374 else /* BIGINTMAT_CMD */3375 {3376 if (iiDeclCommand(&(yyval.lv),&(yyvsp[(2) - (8)].lv),myynest,(yyvsp[(1) - (8)].i),&((yyvsp[(2) - (8)].lv).req_packhdl->idroot)))3377 YYERROR;3378 v=&(yyval.lv);3379 h=(idhdl)v->data;3380 delete IDBIMAT(h);3381 IDBIMAT(h) = new bigintmat(r, c, coeffs_BIGINT);3382 if (IDBIMAT(h)==NULL) YYERROR;3383 }3384 3351 ;} 3385 3352 break; … … 3388 3355 3389 3356 /* Line 1464 of yacc.c */ 3390 #line 9 42"grammar.y"3357 #line 933 "grammar.y" 3391 3358 { 3392 3359 if ((yyvsp[(1) - (2)].i) == MATRIX_CMD) … … 3394 3361 if (iiDeclCommand(&(yyval.lv),&(yyvsp[(2) - (2)].lv),myynest,(yyvsp[(1) - (2)].i),&(currRing->idroot), TRUE)) YYERROR; 3395 3362 } 3396 else if (( yyvsp[(1) - (2)].i) == INTMAT_CMD)3363 else if (((yyvsp[(1) - (2)].i) == INTMAT_CMD)||((yyvsp[(1) - (2)].i) == BIGINTMAT_CMD)) 3397 3364 { 3398 3365 if (iiDeclCommand(&(yyval.lv),&(yyvsp[(2) - (2)].lv),myynest,(yyvsp[(1) - (2)].i),&((yyvsp[(2) - (2)].lv).req_packhdl->idroot))) 3399 3366 YYERROR; 3400 leftv v=&(yyval.lv); 3401 idhdl h; 3402 do 3367 if ((yyvsp[(1) - (2)].i) == INTMAT_CMD) 3403 3368 { 3404 h=(idhdl)v->data; 3405 delete IDINTVEC(h); 3406 IDINTVEC(h) = new intvec(1,1,0); 3407 v=v->next; 3408 } while (v!=NULL); 3369 leftv v=&(yyval.lv); 3370 idhdl h; 3371 do 3372 { 3373 h=(idhdl)v->data; 3374 delete IDINTVEC(h); 3375 IDINTVEC(h) = new intvec(1,1,0); 3376 v=v->next; 3377 } while (v!=NULL); 3378 } 3409 3379 } 3410 else /* BIGINTMAT_CMD */3411 {3412 if (iiDeclCommand(&(yyval.lv),&(yyvsp[(2) - (2)].lv),myynest,(yyvsp[(1) - (2)].i),&((yyvsp[(2) - (2)].lv).req_packhdl->idroot)))3413 YYERROR;3414 }3415 3380 ;} 3416 3381 break; … … 3419 3384 3420 3385 /* Line 1464 of yacc.c */ 3421 #line 9 68"grammar.y"3386 #line 957 "grammar.y" 3422 3387 { 3423 3388 int t=(yyvsp[(1) - (3)].lv).Typ(); … … 3445 3410 3446 3411 /* Line 1464 of yacc.c */ 3447 #line 9 89"grammar.y"3412 #line 978 "grammar.y" 3448 3413 { 3449 3414 if (iiDeclCommand(&(yyval.lv),&(yyvsp[(2) - (2)].lv),myynest,(yyvsp[(1) - (2)].i),&((yyvsp[(2) - (2)].lv).req_packhdl->idroot))) … … 3455 3420 3456 3421 /* Line 1464 of yacc.c */ 3457 #line 1002"grammar.y"3422 #line 991 "grammar.y" 3458 3423 { 3459 3424 leftv v = &(yyvsp[(2) - (5)].lv); … … 3471 3436 3472 3437 /* Line 1464 of yacc.c */ 3473 #line 10 16"grammar.y"3438 #line 1005 "grammar.y" 3474 3439 { 3475 3440 // let rInit take care of any errors … … 3481 3446 3482 3447 /* Line 1464 of yacc.c */ 3483 #line 10 24"grammar.y"3448 #line 1013 "grammar.y" 3484 3449 { 3485 3450 memset(&(yyval.lv),0,sizeof((yyval.lv))); … … 3495 3460 3496 3461 /* Line 1464 of yacc.c */ 3497 #line 10 33"grammar.y"3462 #line 1022 "grammar.y" 3498 3463 { 3499 3464 memset(&(yyval.lv),0,sizeof((yyval.lv))); … … 3542 3507 3543 3508 /* Line 1464 of yacc.c */ 3544 #line 10 79"grammar.y"3509 #line 1068 "grammar.y" 3545 3510 { 3546 3511 (yyval.lv) = (yyvsp[(1) - (3)].lv); … … 3553 3518 3554 3519 /* Line 1464 of yacc.c */ 3555 #line 10 89"grammar.y"3520 #line 1078 "grammar.y" 3556 3521 { 3557 3522 (yyval.lv) = (yyvsp[(2) - (3)].lv); … … 3562 3527 3563 3528 /* Line 1464 of yacc.c */ 3564 #line 10 95"grammar.y"3529 #line 1084 "grammar.y" 3565 3530 { 3566 3531 expected_parms = TRUE; … … 3568 3533 break; 3569 3534 3570 case 124: 3571 3572 /* Line 1464 of yacc.c */ 3573 #line 1102 "grammar.y" 3574 { (yyval.i) = (yyvsp[(1) - (1)].i); ;} 3575 break; 3576 3577 case 125: 3578 3579 /* Line 1464 of yacc.c */ 3580 #line 1104 "grammar.y" 3581 { (yyval.i) = (yyvsp[(1) - (1)].i); ;} 3582 break; 3583 3584 case 126: 3535 case 127: 3536 3537 /* Line 1464 of yacc.c */ 3538 #line 1101 "grammar.y" 3539 { newFile((yyvsp[(2) - (2)].name)); omFree((yyvsp[(2) - (2)].name)); ;} 3540 break; 3541 3542 case 128: 3585 3543 3586 3544 /* Line 1464 of yacc.c */ 3587 3545 #line 1106 "grammar.y" 3588 { (yyval.i) = (yyvsp[(1) - (1)].i); ;}3589 break;3590 3591 case 127:3592 3593 /* Line 1464 of yacc.c */3594 #line 1115 "grammar.y"3595 { newFile((yyvsp[(2) - (2)].name)); omFree((yyvsp[(2) - (2)].name)); ;}3596 break;3597 3598 case 128:3599 3600 /* Line 1464 of yacc.c */3601 #line 1120 "grammar.y"3602 3546 { 3603 3547 feHelp((yyvsp[(2) - (3)].name)); … … 3609 3553 3610 3554 /* Line 1464 of yacc.c */ 3611 #line 11 25"grammar.y"3555 #line 1111 "grammar.y" 3612 3556 { 3613 3557 feHelp(NULL); … … 3618 3562 3619 3563 /* Line 1464 of yacc.c */ 3620 #line 11 32"grammar.y"3564 #line 1118 "grammar.y" 3621 3565 { 3622 3566 singular_example((yyvsp[(2) - (3)].name)); … … 3628 3572 3629 3573 /* Line 1464 of yacc.c */ 3630 #line 11 40"grammar.y"3574 #line 1126 "grammar.y" 3631 3575 { 3632 3576 if (basePack!=(yyvsp[(2) - (2)].lv).req_packhdl) … … 3642 3586 3643 3587 /* Line 1464 of yacc.c */ 3644 #line 11 52"grammar.y"3588 #line 1138 "grammar.y" 3645 3589 { 3646 3590 leftv v=&(yyvsp[(2) - (2)].lv); … … 3664 3608 3665 3609 /* Line 1464 of yacc.c */ 3666 #line 11 69"grammar.y"3610 #line 1155 "grammar.y" 3667 3611 { 3668 3612 leftv v=&(yyvsp[(3) - (3)].lv); … … 3686 3630 3687 3631 /* Line 1464 of yacc.c */ 3688 #line 11 89"grammar.y"3632 #line 1175 "grammar.y" 3689 3633 { 3690 3634 list_cmd((yyvsp[(3) - (4)].i),NULL,"// ",TRUE); … … 3695 3639 3696 3640 /* Line 1464 of yacc.c */ 3697 #line 11 93"grammar.y"3641 #line 1179 "grammar.y" 3698 3642 { 3699 3643 list_cmd((yyvsp[(3) - (4)].i),NULL,"// ",TRUE); … … 3704 3648 3705 3649 /* Line 1464 of yacc.c */ 3706 #line 11 97"grammar.y"3650 #line 1183 "grammar.y" 3707 3651 { 3708 3652 if ((yyvsp[(3) - (4)].i)==QRING_CMD) (yyvsp[(3) - (4)].i)=RING_CMD; … … 3714 3658 3715 3659 /* Line 1464 of yacc.c */ 3716 #line 1 202"grammar.y"3660 #line 1188 "grammar.y" 3717 3661 { 3718 3662 list_cmd((yyvsp[(3) - (4)].i),NULL,"// ",TRUE); … … 3723 3667 3724 3668 /* Line 1464 of yacc.c */ 3725 #line 1 206"grammar.y"3669 #line 1192 "grammar.y" 3726 3670 { 3727 3671 list_cmd(RING_CMD,NULL,"// ",TRUE); … … 3732 3676 3733 3677 /* Line 1464 of yacc.c */ 3734 #line 1 210"grammar.y"3678 #line 1196 "grammar.y" 3735 3679 { 3736 3680 list_cmd((yyvsp[(3) - (4)].i),NULL,"// ",TRUE); … … 3741 3685 3742 3686 /* Line 1464 of yacc.c */ 3743 #line 12 14"grammar.y"3687 #line 1200 "grammar.y" 3744 3688 { 3745 3689 list_cmd(PROC_CMD,NULL,"// ",TRUE); … … 3750 3694 3751 3695 /* Line 1464 of yacc.c */ 3752 #line 12 18"grammar.y"3696 #line 1204 "grammar.y" 3753 3697 { 3754 3698 list_cmd(0,(yyvsp[(3) - (4)].lv).Fullname(),"// ",TRUE); … … 3760 3704 3761 3705 /* Line 1464 of yacc.c */ 3762 #line 12 23"grammar.y"3706 #line 1209 "grammar.y" 3763 3707 { 3764 3708 if((yyvsp[(3) - (6)].lv).Typ() == PACKAGE_CMD) … … 3771 3715 3772 3716 /* Line 1464 of yacc.c */ 3773 #line 12 29"grammar.y"3717 #line 1215 "grammar.y" 3774 3718 { 3775 3719 if((yyvsp[(3) - (6)].lv).Typ() == PACKAGE_CMD) … … 3782 3726 3783 3727 /* Line 1464 of yacc.c */ 3784 #line 12 35"grammar.y"3728 #line 1221 "grammar.y" 3785 3729 { 3786 3730 if((yyvsp[(3) - (6)].lv).Typ() == PACKAGE_CMD) … … 3793 3737 3794 3738 /* Line 1464 of yacc.c */ 3795 #line 12 41"grammar.y"3739 #line 1227 "grammar.y" 3796 3740 { 3797 3741 if((yyvsp[(3) - (6)].lv).Typ() == PACKAGE_CMD) … … 3804 3748 3805 3749 /* Line 1464 of yacc.c */ 3806 #line 12 47"grammar.y"3750 #line 1233 "grammar.y" 3807 3751 { 3808 3752 if((yyvsp[(3) - (6)].lv).Typ() == PACKAGE_CMD) … … 3815 3759 3816 3760 /* Line 1464 of yacc.c */ 3817 #line 12 53"grammar.y"3761 #line 1239 "grammar.y" 3818 3762 { 3819 3763 if((yyvsp[(3) - (6)].lv).Typ() == PACKAGE_CMD) … … 3826 3770 3827 3771 /* Line 1464 of yacc.c */ 3828 #line 12 59"grammar.y"3772 #line 1245 "grammar.y" 3829 3773 { 3830 3774 if((yyvsp[(3) - (6)].lv).Typ() == PACKAGE_CMD) … … 3837 3781 3838 3782 /* Line 1464 of yacc.c */ 3839 #line 12 71"grammar.y"3783 #line 1257 "grammar.y" 3840 3784 { 3841 3785 list_cmd(-1,NULL,"// ",TRUE); … … 3846 3790 3847 3791 /* Line 1464 of yacc.c */ 3848 #line 12 77"grammar.y"3792 #line 1263 "grammar.y" 3849 3793 { yyInRingConstruction = TRUE; ;} 3850 3794 break; … … 3853 3797 3854 3798 /* Line 1464 of yacc.c */ 3855 #line 12 86"grammar.y"3799 #line 1272 "grammar.y" 3856 3800 { 3857 3801 const char *ring_name = (yyvsp[(2) - (8)].lv).name; … … 3891 3835 3892 3836 /* Line 1464 of yacc.c */ 3893 #line 13 19"grammar.y"3837 #line 1305 "grammar.y" 3894 3838 { 3895 3839 const char *ring_name = (yyvsp[(2) - (2)].lv).name; … … 3903 3847 3904 3848 /* Line 1464 of yacc.c */ 3905 #line 13 26"grammar.y"3849 #line 1312 "grammar.y" 3906 3850 { 3907 3851 yyInRingConstruction = FALSE; … … 3913 3857 3914 3858 /* Line 1464 of yacc.c */ 3915 #line 13 31"grammar.y"3859 #line 1317 "grammar.y" 3916 3860 { 3917 3861 yyInRingConstruction = FALSE; … … 3928 3872 3929 3873 /* Line 1464 of yacc.c */ 3930 #line 13 44"grammar.y"3874 #line 1330 "grammar.y" 3931 3875 { 3932 3876 if (((yyvsp[(1) - (2)].i)!=LIB_CMD)||(jjLOAD((yyvsp[(2) - (2)].name),TRUE))) YYERROR; 3933 3877 omFree((yyvsp[(2) - (2)].name)); 3934 3878 ;} 3935 3879 break; … … 3938 3882 3939 3883 /* Line 1464 of yacc.c */ 3940 #line 13 54"grammar.y"3884 #line 1340 "grammar.y" 3941 3885 { 3942 3886 if (((yyvsp[(1) - (2)].i)==KEEPRING_CMD) && (myynest==0)) … … 4008 3952 4009 3953 /* Line 1464 of yacc.c */ 4010 #line 14 22"grammar.y"3954 #line 1408 "grammar.y" 4011 3955 { 4012 3956 type_cmd(&((yyvsp[(2) - (2)].lv))); … … 4017 3961 4018 3962 /* Line 1464 of yacc.c */ 4019 #line 14 26"grammar.y"3963 #line 1412 "grammar.y" 4020 3964 { 4021 3965 //Print("typ is %d, rtyp:%d\n",$1.Typ(),$1.rtyp); … … 4045 3989 4046 3990 /* Line 1464 of yacc.c */ 4047 #line 14 55"grammar.y"3991 #line 1441 "grammar.y" 4048 3992 { 4049 3993 int i; TESTSETINT((yyvsp[(3) - (5)].lv),i); … … 4063 4007 4064 4008 /* Line 1464 of yacc.c */ 4065 #line 14 68"grammar.y"4009 #line 1454 "grammar.y" 4066 4010 { 4067 4011 if (currentVoice->ifsw==1) … … 4085 4029 4086 4030 /* Line 1464 of yacc.c */ 4087 #line 14 85"grammar.y"4031 #line 1471 "grammar.y" 4088 4032 { 4089 4033 int i; TESTSETINT((yyvsp[(3) - (5)].lv),i); … … 4099 4043 4100 4044 /* Line 1464 of yacc.c */ 4101 #line 14 94"grammar.y"4045 #line 1480 "grammar.y" 4102 4046 { 4103 4047 if (exitBuffer(BT_break)) YYERROR; … … 4109 4053 4110 4054 /* Line 1464 of yacc.c */ 4111 #line 14 99"grammar.y"4055 #line 1485 "grammar.y" 4112 4056 { 4113 4057 if (contBuffer(BT_break)) YYERROR; … … 4119 4063 4120 4064 /* Line 1464 of yacc.c */ 4121 #line 1 507"grammar.y"4065 #line 1493 "grammar.y" 4122 4066 { 4123 4067 /* -> if(!$2) break; $3; continue;*/ … … 4133 4077 4134 4078 /* Line 1464 of yacc.c */ 4135 #line 15 19"grammar.y"4079 #line 1505 "grammar.y" 4136 4080 { 4137 4081 /* $2 */ … … 4154 4098 4155 4099 /* Line 1464 of yacc.c */ 4156 #line 15 38"grammar.y"4100 #line 1524 "grammar.y" 4157 4101 { 4158 4102 idhdl h = enterid((yyvsp[(2) - (3)].name),myynest,PROC_CMD,&IDROOT,TRUE); … … 4169 4113 4170 4114 /* Line 1464 of yacc.c */ 4171 #line 15 48"grammar.y"4115 #line 1534 "grammar.y" 4172 4116 { 4173 4117 idhdl h = enterid((yyvsp[(1) - (3)].name),myynest,PROC_CMD,&IDROOT,TRUE); … … 4193 4137 4194 4138 /* Line 1464 of yacc.c */ 4195 #line 15 67"grammar.y"4139 #line 1553 "grammar.y" 4196 4140 { 4197 4141 omFree((ADDRESS)(yyvsp[(3) - (4)].name)); … … 4218 4162 4219 4163 /* Line 1464 of yacc.c */ 4220 #line 15 90"grammar.y"4164 #line 1576 "grammar.y" 4221 4165 { 4222 4166 // decl. of type proc p(int i) … … 4229 4173 4230 4174 /* Line 1464 of yacc.c */ 4231 #line 15 96"grammar.y"4175 #line 1582 "grammar.y" 4232 4176 { 4233 4177 // decl. of type proc p(i) … … 4243 4187 4244 4188 /* Line 1464 of yacc.c */ 4245 #line 1 608"grammar.y"4189 #line 1594 "grammar.y" 4246 4190 { 4247 4191 iiRETURNEXPR.Copy(&(yyvsp[(3) - (4)].lv)); … … 4254 4198 4255 4199 /* Line 1464 of yacc.c */ 4256 #line 16 14"grammar.y"4200 #line 1600 "grammar.y" 4257 4201 { 4258 4202 if ((yyvsp[(1) - (3)].i)==RETURN) … … 4268 4212 4269 4213 /* Line 1464 of yacc.c */ 4270 #line 42 69"grammar.cc"4214 #line 4213 "grammar.cc" 4271 4215 default: break; 4272 4216 } -
Singular/grammar.y
ra718906 raa7c1c2 654 654 { 655 655 if (iiARROW(&$$,$1,$3)) YYERROR; 656 omFree((ADDRESS)$3) 656 omFree((ADDRESS)$3); 657 657 } 658 658 | '(' exprlist ')' { $$ = $2; } … … 672 672 } 673 673 | expr 674 {675 $$ = $1;676 }677 674 ; 678 675 679 676 expr: expr_arithmetic 680 { 681 /*if ($1.typ == eunknown) YYERROR;*/ 682 $$ = $1; 683 } 684 | elemexpr { $$ = $1; } 677 | elemexpr 685 678 | expr '[' expr ',' expr ']' 686 679 { … … 852 845 853 846 left_value: 854 declare_ip_variable cmdeq { $$ = $1; }855 | exprlist '='847 declare_ip_variable cmdeq 848 | exprlist cmdeq 856 849 { 857 850 if ($1.rtyp==0) … … 918 911 if (IDMATRIX(h)==NULL) YYERROR; 919 912 } 920 else if ( $1 == INTMAT_CMD)913 else if (($1 == INTMAT_CMD)||($1 == BIGINTMAT_CMD)) 921 914 { 922 915 if (iiDeclCommand(&$$,&$2,myynest,$1,&($2.req_packhdl->idroot))) … … 924 917 v=&$$; 925 918 h=(idhdl)v->data; 926 delete IDINTVEC(h); 927 IDINTVEC(h) = new intvec(r,c,0); 919 if ($1==INTMAT_CMD) 920 { 921 delete IDINTVEC(h); 922 IDINTVEC(h) = new intvec(r,c,0); 923 } 924 else 925 { 926 delete IDBIMAT(h); 927 IDBIMAT(h) = new bigintmat(r, c, coeffs_BIGINT); 928 } 928 929 if (IDINTVEC(h)==NULL) YYERROR; 929 930 } 930 else /* BIGINTMAT_CMD */ 931 } 932 | mat_cmd elemexpr 933 { 934 if ($1 == MATRIX_CMD) 935 { 936 if (iiDeclCommand(&$$,&$2,myynest,$1,&(currRing->idroot), TRUE)) YYERROR; 937 } 938 else if (($1 == INTMAT_CMD)||($1 == BIGINTMAT_CMD)) 931 939 { 932 940 if (iiDeclCommand(&$$,&$2,myynest,$1,&($2.req_packhdl->idroot))) 933 941 YYERROR; 934 v=&$$; 935 h=(idhdl)v->data; 936 delete IDBIMAT(h); 937 IDBIMAT(h) = new bigintmat(r, c, coeffs_BIGINT); 938 if (IDBIMAT(h)==NULL) YYERROR; 939 } 940 } 941 | mat_cmd elemexpr 942 { 943 if ($1 == MATRIX_CMD) 944 { 945 if (iiDeclCommand(&$$,&$2,myynest,$1,&(currRing->idroot), TRUE)) YYERROR; 946 } 947 else if ($1 == INTMAT_CMD) 948 { 949 if (iiDeclCommand(&$$,&$2,myynest,$1,&($2.req_packhdl->idroot))) 950 YYERROR; 951 leftv v=&$$; 952 idhdl h; 953 do 942 if ($1 == INTMAT_CMD) 954 943 { 955 h=(idhdl)v->data;956 delete IDINTVEC(h);957 IDINTVEC(h) = new intvec(1,1,0);958 v=v->next;959 } while (v!=NULL);960 }961 else /* BIGINTMAT_CMD */962 {963 if (iiDeclCommand(&$$,&$2,myynest,$1,&($2.req_packhdl->idroot)))964 YYERROR;944 leftv v=&$$; 945 idhdl h; 946 do 947 { 948 h=(idhdl)v->data; 949 delete IDINTVEC(h); 950 IDINTVEC(h) = new intvec(1,1,0); 951 v=v->next; 952 } while (v!=NULL); 953 } 965 954 } 966 955 } … … 1100 1089 1101 1090 mat_cmd: MATRIX_CMD 1102 { $$ = $1; }1103 1091 | INTMAT_CMD 1104 { $$ = $1; }1105 1092 | BIGINTMAT_CMD 1106 { $$ = $1; }1107 1093 ; 1108 1094 … … 1344 1330 { 1345 1331 if (($1!=LIB_CMD)||(jjLOAD($2,TRUE))) YYERROR; 1346 1332 omFree($2); 1347 1333 } 1348 1334 ; -
Singular/iparith.cc
ra718906 raa7c1c2 1469 1469 static BOOLEAN jjINDEX_V(leftv res, leftv u, leftv v) 1470 1470 { 1471 poly p=(poly)u->CopyD(VECTOR_CMD); 1472 poly r=p; // pointer to the beginning of component i 1473 poly o=NULL; 1471 poly p=(poly)u->Data(); 1474 1472 int i=(int)(long)v->Data(); 1475 while (p!=NULL) 1476 { 1477 if (pGetComp(p)!=i) 1478 { 1479 if (r==p) r=pNext(p); 1480 if (o!=NULL) 1481 { 1482 if (pNext(o)!=NULL) pLmDelete(&pNext(o)); 1483 p=pNext(o); 1484 } 1485 else 1486 pLmDelete(&p); 1487 } 1488 else 1489 { 1490 pSetComp(p, 0); 1491 p_SetmComp(p, currRing); 1492 o=p; 1493 p=pNext(o); 1494 } 1495 } 1496 res->data=(char *)r; 1473 res->data=(char *)p_Vec2Poly(p,i,currRing); 1497 1474 return FALSE; 1498 1475 } … … 6267 6244 } 6268 6245 return FALSE; 6246 } 6247 static BOOLEAN jjSUBST_Bu(leftv res, leftv u, leftv v,leftv w) 6248 { 6249 // generic conversion from polyBucket to poly: 6250 // force this to be the first try everytime 6251 poly p; int l; 6252 sBucket_pt bu=(sBucket_pt)w->CopyD(); 6253 sBucketDestroyAdd(bu,&p,&l); 6254 sleftv tmpw; 6255 tmpw.Init(); 6256 tmpw.rtyp=POLY_CMD; 6257 tmpw.data=p; 6258 return iiExprArith3(res, iiOp, u, v, &tmpw); 6269 6259 } 6270 6260 static BOOLEAN jjSUBST_P(leftv res, leftv u, leftv v,leftv w) -
Singular/misc_ip.cc
ra718906 raa7c1c2 807 807 #endif 808 808 #ifdef HAVE_NTL 809 #include <NTL/version.h>810 809 StringAppend("NTL(%s),",NTL_VERSION); 811 810 #endif -
Singular/table.h
ra718906 raa7c1c2 851 851 ,{D(jjSTD_HILB_W), STD_CMD, IDEAL_CMD, IDEAL_CMD, INTVEC_CMD, INTVEC_CMD, ALLOW_PLURAL |NO_RING} 852 852 ,{D(jjSTD_HILB_W), STD_CMD, MODUL_CMD, MODUL_CMD, INTVEC_CMD, INTVEC_CMD, ALLOW_PLURAL |NO_RING} 853 ,{D(jjSUBST_Bu), SUBST_CMD, ANY_TYPE, DEF_CMD, POLY_CMD, BUCKET_CMD , ALLOW_PLURAL |ALLOW_RING} 853 854 ,{D(jjSUBST_P), SUBST_CMD, POLY_CMD, POLY_CMD, POLY_CMD, POLY_CMD , ALLOW_PLURAL |ALLOW_RING} 854 855 ,{D(jjSUBST_P), SUBST_CMD, VECTOR_CMD, VECTOR_CMD, POLY_CMD, POLY_CMD , ALLOW_PLURAL |ALLOW_RING} -
Tst/New/stdZtests.res.gz.uu
ra718906 raa7c1c2 1 1 begin 640 stdZtests.res.gz 2 M'XL("&XP/%@``W-T9%IT97-T<RYR97,`[%QM<QLY<O[N7S&U]X728"2\`W-; 3 M=BIWFTO)M96*U_OI4NLMV:)EVK+D%>DSJ5\?O'0#C1F2DI/+MU39(F<`/`"Z 4 MGVXT0`"O?_WIXC^ZKA,ONI\O_M+]L%EOSFY6;W_X\=EK2)$ONO#R]]7M:K,X 5 M^?%9_.Q>O.C6FZN_;Y;KS?KL=OGM;+VYW)02ZD57ONNSC/OE?O7Y:OEN@FU( 6 M3GO6G9^_7MU>?[VYO.]^O;]\U_W)*EO2W5G-Z\^Z^Y"SNW^^NMTLKY?W;+%A 7 ME^PM>\>NV)*]9]?L`UNQCR?LVWHAV'#LWTEMSOBB6UTM+V^ZU>W%<WPK^%FG 8 M6'D29]WUAUZ^7_7+C_6M/.NNPMMWJ_XM>:O"V_?A[75_2=X&D5PM>_DVO%W5 9 MM^:L>Q??ON\O/Y06"?NBNUE>7BV"M!>A42>AL;__E_CM^;ME^)2_/;^*GRI\ 10 MO@^?.GQ^")_FM^?7\=/^]EP5)/>B^[2ZN>GN*[BOTA=CE/Z_KS8?OK[M_O5J 11 MU?U)C9@F>96\%"CY\/]YMP#QG[#%ENW80_B\62_4"?MKE:J4*-67H<0@MP^J 12 MW\K=`U,/X6$WJ.U.ULP*,U_'W+';+PF4?M']\/=OR]5F^>?`(OA64DTI6PI? 13 MT](HS/@R?TG)2:#J(0LTM"Y+-#919J':K=K)IV;#RH*\[Y=77]\M%R]9K8;G 14 MXKQD\ZB6V^O:T+$J1O&98DH=2E3%*/F(8JZ^%'Q5A'R1-&).MV]4+[@^W9[N 15 MWJA!JO`A3Q\&(7TMI!LU"N%S[M.'WO#T-91X(X?\$`KK\73'1/A;TX26\7LH 16 M7#6NJM9B:Y+6+JK2E&T(,66$*F+N%A<L(%1!8PY?<T1-=(=4H<8]JM"\JD(3 17 M<>L@[KLOF]7=[2*`O_Y+;9$FWD]K4L(\9CE77R:6HVVK)W>Z[8.R'MB@;9#J 18 M0Z^"YI@4I]M!5X%J=U2@VE<K*>G7-,-X4*0@L$3\(C?#]\C-B"H%(V<4+F[) 19 MJ"HAHY].81-8LU_^QM*47R]7-R3--0(UB92[^)=UP002;<-#+U@'E.VC;<B8 20 M4$'\4?F:\1'Y6HYNZ`(EN\N2E68KLW"%-,G!!*]BMLF_F)C\H+-7-]ODAUS\ 21 M%E_YZ)!TJ4!@!?]G-<CBW")#'B&(57L(8G4EB#65!-9^MYE8=X@+UA_F@ATG 22 M7-@F-KC$@D@(ZT^1$T*..;D?/0LA0/9[X='/Z>'X47HX\0@]G)S1(U2OA1HY 23 MYS#ZZ)%OLY"EU4)POGN8JM*$_#OY`-HTNZ3LH$[!G=\EW0:5"N&T=-PZ)90? 24 MY2YJ>OSM^>BWNYA=\/1=YL$O-D3L$D&$3-]E`A4J/:A4L]"QR$['"D1D5"R= 25 M'D(SPOB8OH9F;`$H\@IQ0LVA8$21/+[.B%*D05;FASCTZH?B/IR:4_W_I750 26 M6OI[S-:9/6;K;#5;YPZ-@8Y$EF[\;H/VO#'-&$@$6],\F9QP;%`ZV:IB,7:) 27 M!BH]L4`OCEJ@EX]8H%=S"S1R]%ID01D^CMH]9'&I7>82,FD')*J1H-=[./J_ 28 MP3/?HT5O]VC1NZH?[V>C<YES^;$ZYI&W>N3'8OY1$`V6ER$.6%A_+M5)4-DB 29 M!(/G0H7O48$+J\^5.XFQ8K^PYMR)DQQ&!HTOQ'G(!7Z6+09Y[B`Q%!/G8\X: 30 MQ^M:OZ+!ZD*=FX@0(J:%=N=:EP(!3?/S8.4GX-^E3%]41=(-F29<&DW+I2F5 31 M1GML.C.ZXQ.6T1,B5@H=G,,X(9UQ5N,<1>*LY6#"]J%\8IV/1G\Y8W"C3XNK 32 M!1=S!@HN"P,%5S,&NI)6(VC!'XN@:WPH>!'\ZG\<Z05:S!W)ZJ0F/Q))"S[N 33 MU=\_-2+[YT=W880L#F;UJ(,18I]Z!5&OF*MW+&DZIOWG_=W;F^7G[O-JT]VL 34 MN\NWR_ONTW)UVWTA"5=K]M.:W7P)6BZE32P=2JSO;OZQO/IS%XO<K5>W/POQ 35 M2R3*W>VR6W^X^WISU6TN/RV[S8=E][>KY77(N-X$?71W[[LO/W_^Z^<*:2O? 36 MQ*'Q39"5$R&JCQ22?^_JB)#44W:B=\GIA9%-Q\E>\EE"1V:R81Q$'@+CS+NR 37 M=+*^$G-'A,IG)@+]!Y=\JY#H5L,D/'O!"J2.C9M"ZD?H3M9?]DS5A;2MMYNZ 38 M.R$/S^7W,D\^<68O)(;ZZW_[X^OE36@TN\[P`K,H/LD2`#-BS;*/Z(H071TA 39 MNDI$#ZW=A$E(]^%RTP'IE[?=M^7M;??Y\K9;?6[IFZG9W:X^?]YT<85UT_WM 40 MI^5UP:S3)J$(;Y7[;A:J.E'Z`69*/Y#4\<`$2^@V4@O<RT-V(!OPBPW"Y$]_ 41 M2CQMXJ5!)IJ<%(D-650F+V&G/AK5A6#B$7;&=9DGA$W)9Q;F:/TH<[293^=S 42 M]!T\KH!910SL>)Y(!'AETKAK8MB>';)+CCM&^C&,1^0]H9O0-703VE>EZ]D" 43 MKBZ],'4!5YCO7L`-L6JK9%C@8R(OZ@6]@M,!3Y42@[_9O=%]>M&/^75%5*W+ 44 MBEXOSJ@C61)(^E-\5Z833U68B=,R^B@MS%P[0J)Z7)K"J3*1TG'"M]V!;N0V 45 MZS&H1X>WJ*`=#)C"\JW*,\"0G%0;9X!Z"U.[4),/[W<P`0QY]`[F?W)KJI;C 46 M>M63PWE15[#V^ECCR1(W=+>DC<=7I-N*[)Y5/6'KJIZPCRTXSXEDFW5GEY<P 47 M8=TECG!A5M?;'(83LMAFX=GD6*Y7;<0O[-%E9&'MC`<E&@8#%3I8(V9WQY6" 48 MV?Q1;=AQI@V#:8X?T`:F[QMM'!EMW&RTD25J=B1J=@>CYMU"G)WI$[:-G^JD 49 MB9\=67J.<4E0R").U1;ZI!=A/KX0)T%5\9&%B`*3!IE3',M?4J$^?HON('ZW 50 MS&%V=3+8]'VP^4FQF#,&Y=(VU5FHC^<*H;R()0I6SJLX>=`^EXO#2TIDZ0TD 51 MQ[4^BZT,J5+#ZUY:Z!EDCZZKX)5629)'T#8D($`=`D5JTN!U*=0V/#:E=HMB 52 M1KAMQ;8@,JBD1_S>:S9@*K205MUCU22/JGF",*3TH(TLP\%)II2=-C2D5G6' 53 M\9'V`412VA&'=NMI=3IWIL>"?:ADJ(VHG:S]MT2EJ9%)1*,2")`+N=$3))4% 54 MI!*;>"9OKRSF`.R0F-"Q*N.Q(1DVU!-&\"P-:21K.A.1Z7,11ERJRC917@VA 55 M:CG3N:1J%IJ:$1$K\JD?/=0CD4QLD),&<2KLW`B::<ZIC%L[X7,*MO:-;%H7 56 M::)IEZ&*2MAD5QY-Z3'K\+2?2!_XS*5IPW5IWH1O4`LT%FTC6K*A?L@U3@P5 57 M/&ID!S0P*'H@@.&5X:2=T6^8QG$8;'`OG08SPR+%=XQMY9QFFPB(DPX'1TQ- 58 MS&LH.!#1Q(B:ZYE',=2E-!6E)A.GXL`L!ZR[+]4&O\%98S34\K&5*,16(&QB 59 M;`,UME(FRA.:L+I@+X9(++Z!CA.C0RA/Z1QQ6X]#ZH1^5_.&2OI8X]10 60 M8K4HFCEY^U8U?5'-S-R&QMPHI"(HT;84M&^PP-4@&L["VYGOB!F('S9T@(Z% 61 M0%C4C`7I3N0J:52F&6F4`<ON"W(?6R);0R-M)WXK6Y[5C1-7K1>WZ,8MQX'` 62 M@/UYJ>*84*!5\<')P1F+YLI++N+.'35X&P(A3,DRB3)0!OV$"5UJ>YY^7Y"2 63 MNC@40'+K'/VZPY@E-(..T%FPA21,3NVR5YZ2@5JEH$8)_HE1-360;\IH.W,A 64 M"M4T"%D+#D*IC-D4R3Z]DM6V>8JN):K6TS9K6;-/6%^[(U+X4>FE<62:]FTH 65 M_*'#87S(E<SJ(%4TJ0U"30,[J,,9\S/]1"E5PVC-#!OB&\H,B@R[`X1,K/%* 66 M.4E3B31,52AU3QI:2^2`I`JPU"$:+@RTS_OI)%I\@?@M5%-:D'I47TO,_9RA 67 M,>S8Q@D-94K4/R6:+HQJR3UGH2:00Q&?LK2P(N$P&YI!+[+>-#4U[*&94?MJ 68 M)"(9FM!B$+()B\'7-'6*:3N*`4,751NN0*4.;1EF167T40X]!"V5_,\L?":Y 69 M2D0';8SAFJ==T9*4F,2-I)M!!+%<U3$Z1]:P$.`GHDR-;Y@*?21!2^RC<,4N 70 M*$B<_M.921P,<MTD6Z4;;3,)W;+W!H/VDMI%*03!'K5N[&7UX]7KUT=1@EC9 71 M#)%-OC*#GCJA#$#@2W6MUR_/42+S&$U21'#_U1QP?#VE4P[T)':6M1",@#>C 72 MCI]$O*1VIF93$+&'%(H(NG$9A!3@-A`^!&YL+KUA'E4WRLKD)Z(9B2O(PTU1 73 M$<="%N<;6!I[VJ#E)8B2JVF$I9&]EDU()*!8XY\AYVSZ1JE`C;*(<FS,JYVR 74 MT1DOG<WW&%-BG-YC$X.00Z#4S%#I7&I0)3:G*HQR%I-A'P;,M"(3&^/I,%F[ 75 MY"1];/QX'BJ15UAA&1\:8XT[(Q>J%.EC=99.(7NMZ+2L3#)$TZ;>6MYT`]4_ 76 M&%BV"?5R[!&?C+'%7*C.XF1AJC-#AQ#5+'L$5)1P.WZCRB+E.5UI4;`$TR-0 77 MGUHV,SH4`#9L$D`W01B=B!KPS#6<[K&1O>1Q,M7(,/T:625:R!\2J,)L"?2E 78 MR13I1]X.*(5:<T<_[JE"D.=F@D.M((3S=8;A89Y@))`TS%TF*LT_<-7GOI%] 79 M#$X:DU.6SE\R8?#=$/LWB^`QOB'^_VD^6,\,A[AQ^A0@Q30TZ:F=!<Y1AU1S 80 MQ:%FW.=.Z_I/,W6/\3$XB%3IU"N6W(6"C9<TS5)PG=C.XK,TV^%MNSPZ;]8$ 81 MM]#;\:`?+=-_T4H$:V^"4B!]VXO8:S=;_&H6MF,#%?6C9<D#QF2(Y":2:3.W 82 MC.CWB#='=Y43S;@S"7N!KVX6V==HL3Y//(G%'#V-[LK,ODPOZ8B3)8I/(U@> 83 MA'T*WB1:1R\PXVMV7FW,(QQ5F:)D"M;'@=1[/,H47YU,.@(+`$T14EL9!8K, 84 ML!LQH\>%-2U]\0IL$M7F-CO3:ETU(I..#@Q&[QL82@N4:\):.D:4&;0@K._+ 85 M"M3IK@X>=&:PK9X^:BH+M"S'[+/)<:JU9HHF]@A@4J3\3D2H0F<XL*AA)_4P 86 M2ZV;-;:>?F&<-JOU'90X;,8,.Z5_/Y+ZVU\5%%6?PLG5W!_9J?O!3*I))]/& 87 MME%9>)->N4D[FS78TG*8J2GJ>5695$]['W^MG>BG-8N&-2G6F\#@N.EFBF[= 88 MC"H^)<?'Q3!Y"TI9WP[-PT2J&900OOW)!(9G-C3DZ<DX4!2IZ/)ZM(CJ=:3/ 89 MGI\U38F"::*&INXTTR2^9,1YIIOU<)!\MK2$+0<OXZFT1ER-<)5/!*7X=("` 90 M@;-*I31EJL$4@DPEDVQ^:HR-8LMODW5)9#X(-<#5,]A'&#,S3,*AYN<(+,AF 91 M9C>,U/1;JT.UI(?Z8[FK.Q1F>X2%PST9=4O&"#L/`A)L0`EP>0/*+K^+.[]# 92 M&PK&2/8C'-RZ`7N74FF>=Z[PO&N%YSTK/.]7X;!7A<,^%0Y[5#CL3^%P-('# 93 ML00.)Q(X'$?@<!:!PSD$#H<0.!Q`X'#V('T"G@0\"7@2\"3@2<"3@*<`3P&> 94 MPHX"G@(\!7@*\!3@*<!3@*<!3P.>!CR-D@,\#7@:\#3@:<#3@&<`SP">`3P# 95 M>`95`7@&\`S@&<`S@&<!SP*>!3P+>!;P+.H6\"S@6<"S@.<`SP&>`SP'>`[P 96 M'.`Y)`O@.<!S@.<!SP.>!SP/>![P/.!YP//(/L#S@#<"W@AX(^"-@#<"W@AX 97 M(^"-@#<BG0N?D=`<&<V1TAPYS9'4'%G-D=8<><V1V!R1JZD@<C&68BW%7(J] 98 M%(,I%E-,!FU&H-$(6:P0D=%N!!J.0,L1:#H";4>@\0BT'H'F(]!^A"H&CLAH 99 M0@)M2*`1";0B@68DT(X$&I+0=+N2W[==S)/M8GYV"%36PO40J/"'#X%^8]L_ 100 MV/93W%GV92%/6/@KFOUEWC0;%</P]BD,Z379-KL.PVCX+>Y/_!37K6JF>D0T 101 MYHK5WZ^7[S;@=S%7V?@5G/U%^-_FS2,`R]O!.E*,N/&7#(N&]//S[O2T8JW6 102 MW>U=W/%[>W5Y?]6]O5ROUL_V[D`;ZS8R+,TN*N+%=V'MVW(VDBUGXVS+F2[; 103 M&$>RY6Q\RE%G$?>;1342!8[-@6>9=WRZ9K_GZ*@2;=K4'C(^]);%WY^&N(07 104 MIE[,YY2V[-&3NV(<9WL$)2\G8R3GQW<82RZ.[0:47,YV`UH+)S?L:`/^`YS> 105 MD'A`,9_3B?N$"X@ZOHD^!'7I:HY%NY&^FYV+E]RT&?,.^GT9@U+6JX=EK.;Y 106 M<_C:[HV7W,VI(WD])2'Y_'X)CVFB;D^6HMV>W'`G4B8%HMM%V@5H3C*3-.60 107 M%&6W\JL`L,T1:8K98@E6L@4NP]LT:Z)).B>E<IJ\-_$]_*XN$AP<HPC?!E%; 108 M$`3V"N+`5Z1A049_I+[]<1]27]6$0LO+U.(`)FMB.:;\,?*=Y>0D@EXF<:2G 109 M$/07'R9E8>KERTB2/[[>;5;+V\WB\O0C^WCR8]!$]R\E<V!MR/;CL_`G'05+ 110 M%914F5D2$I$8DPQ[#G=+60]W2YD.Z:R7U^\OO]YLUN5UNN[E[E,ZVW.[_+IL 111 MCCZ47/72%RG]0:^2F2$S/?;L/):R/>P=?S1(RQ?I,T7T)6LY"9)'B;@6(4_B 112 M#O:<4\:%U/19)DL$I3Z^D2E3A3UZ?$&J1XXO2*6..A>E'_$+:KX1/DNA9+`S 113 M]Y3[GCU4T^=G<**!=OP9[)^OO8>WT7U5@>![K-4]T5W%$RI/<E?[KO&0Y!H/ 114 M&:_Q2,R[O?M6WLG*,ZT>Y5FF6#-VR7)4!((/T7#LC0+NR"P&7&^,*17"4.H) 115 MS>+]'DB['O+GXJ20/4HL<AO(?F+IHWO8I=XS*&(7,C.@IYD3M85%Q8;/SR3H 116 M7-35'DV+JU)</)$A1CZ1(6:?RS+$91DS9XBI!ZRD.7S`ZAA#ZL4A^3H7V$P; 117 M*<`TT2TLFLY]2+U:)/'#$I\DY*"`<5K5]Z6H/7HKA;2/W$HAK3S*$CL_,B_Q 118 M#!3M6=:R$+1[V7&0%Y4Z5L^I@ZS;1QVPLE+</)$Z\73(DZAC]\4YEL0YMIX& 119 ME2Y=W;2Z3<=.;Y??VL-]W^[N/ZV[]>>[N\T'UD&N\'UYGXZMQO.JZ^[]W?WR 120 M'\O[@B@(^N'S-\=(Z-J[GY(J0@X%DH]'\(K'451U??%7S+=D-5,_YMJKHB1X 121 M0M3Z9(B,TZ\*6!UFA3MZM$<Z^PAWW=$S4]+Y^1$Q048^RMP9;96"UN:!#IYT 122 MP9Z?`)+H+25Q=Y@_3J.?Q%@OGLC8>-O%C+&^WE$EO9X[.U]/EDI_^$*>8SSS 123 M[55+<0,)'<P:"M5"GA)'MBQ1/7$EM<AXE!PC/ZK[4<QU#]-BTMJ#0]LXG]*I 124 MJEDD"F963]3MJ)^HVW'/#2URK#>TR-'-=3O60Z-R/'PW2VA_5FNSQ*+XY,"O 125 M[%%+-8MHK-\6JP?[U_&49\TMC^E/\:-AK^)ZS_'.DFCFHX>IT:QHK5J78O9I 126 M>E+</4U/BN^YY$_Q>LF?$K-+_K0K:=7G*X$^_Q=8;HHW7V[)N3TEZBGG;5I_ 127 M"NJ)ET9N2P9-JL5UFM<-W,VZPMG'X'!`_(6]KJ4\J6-^+AFOEU'D8DDUN5B2 128 M=*ZV9G+3@6-A)I>&GWBKQV#[>"5A/$A:"QQGC]3?<2)6R3W6IF2U-B7=K*MC 129 M2?.DJ]]](Y*JD]*TJ,%V#[*O-A3GEGEEX=4OLW4'%:>67^YN=FEUX:&^!G=T 130 M68^FIFX_E`SMN5OVP+:U<!F2\PI#76+H+D]?LNYE1^JW[0*#25^:FO9$54JA 131 MT;SZI;XC-J-G-F.*JLA-C4H?C9/R8G+KXW03(F&(WL-D#(_.A#(ZOPG3M%JV 132 M$9KP6%BCQ\F_PJ:)(2M3P#`3R%%/7U>B59T-7OR>9+Q_+5II7)\+V<);5=[O 133 MDZHFICF_,D#B@IXB5P:H>F4`,<S%);MJ;MD]?*^NJA<(Q'MUT_6Y*Q;OR_T8 134 M_O8RW8X+7U:U4+7=3.G_KNY8>R.WC=_O5RA)@?/=2CF1G*&D7*Y%@A0'&\B' 135 MX%`4_9([G[VVU?AQ6*^;71?][^7P-:3$7>]="Q0-DJPECBAR.!K.BS.4_I9; 136 M^=,U]^O+@](Y*,H&\.K5JWCY9*[!9%X9B:2)),DLMWUL=*TWVX;^ZK<,EUJ< 137 MJS>3S0V'0TZ9J])1?$4:6S*5IT_C[YI*>BC?26J;A<!M#=NF8R#8-P_]1$:R 138 M`%;(9Z%(HTKGL=O(]]0\AFP>PZ81L#5"YR,;4U66FW$V#3IR?\`TNH)$K4BM 139 M2J;1[4MEFDPBFT&'V0SZS:*K&VWFH9B@.KUW!@>E+5!=21[IAFF":-6SU4SU 140 MUFI6Q?S<'Q\NJV\T]+&=+6BJCQ:T-#WWQJ4;2%-RF_^4^1EX!CTPJSB)J>,4 141 M*22<A%N13E*M7T;[O1%"UXDQ)()U'HR56`/X:Z)MNL"6"&^(KYK:*N,+?@WZ 142 M+[?QL%/+3+A)&?/*W37K5+6QT='9G>3%0A=&;,'@19.-R*KB2O.MT(5*!B_3 143 MY^/$!U%`5#*>(MK\*0.WO4W?P%W+?*D:Y4%S5#C=/W3!3RM:]V8=$3VD?/^D 144 M9D_G/D?GVM%_@W&485:I%M!D4VYF4UIH"*OD4ZLU=G'@Y90L$DB?[V`0Z/O" 145 M1HID/7R[;B."_2TZ&LM@&.>/LZ\T4?C4,!=!XQ>:*'YJHOB5I&V8J'J]RT=F 146 M16VA74H?(VPKAM_KX8"VD-=6NX7I?7I6V'@O@K19Z<AQ@/%QE63"O^1$^)_5 147 MQQ/Y3P-80="'EK$,[1S+*K8QEJ$M8_EH0[$+L6=*MW=_=;=:&Y"VXMNY&DUF 148 M,8-P@W9[]I\.-#"H0:W_9[>V`Z0:YE!%3Q$(."RM&H@2GD2")]'MH+)T]IQY 149 M[/;.91=+<##DC3:#,S?+A$(K3Z.&&746/>;_=64Q9>V-+`6`%-D>.J-4^80O 150 M#J2:):JCO?'[/[;55U^5<24+A@K=>BCI:7<C(S@6<L;N@R^(5B`Y51A,G*?% 151 MI2`G:8$05<8'+(H;LN&T%MF&(!E23"FLQ`C4C%K+6%9S+)=Q2XJJBTHX3@(4 152 MCHE01(0IY`$;`N_81"A=0'L!K*!9@6+-"M1<LXI,"%BS`O@/-2N`+]"L`/9I 153 M5@"14@,&3O_N72ZCWRGA<G0\]GQT+/:4?K6O.M+Y*B2](=3S2*&`7Z"P`:?` 154 MX_$E5`U?JBT`9`$!N_0WP,QM-B%D#,;CF-TU$HW>^N1BVF;X(S*R&Y0,P3W* 155 M-86>GLBG'\`*CDM(')?@')=5];>'Y?/[ZL>'R]C`WDM@[R5]YSLD\RFA9;[+ 156 M>-.0>1"14F=1S"V2"IF@#>%'>\A4RHVGFS=)8#60DCO/N@RV_`#-X#[];`Z: 157 M1YZ"[F*Y/KLZ6M5IWYD!Y[B6+'P"YY@[D=4TFS/$%',G,BS@.I4?[=38I93= 158 M2]T+7GR)W::%9+CK'=^-C_T.S_:)T&2>_:^.:Z8O0L?Z(G1.7ZR.;R^H8M32 159 MS8&V\NK^YM0\MMR<WGRZ7D9XUA^A4R6V:-;7ZLX^=O">,<_^1DKVK!?;Q4;6 160 ML."-*?$@CG[AQN3QR/7'Z*2;</Q$L1YK!IM^H*Q8<^=LLH2^#3CQAKSJ=[-% 161 M6,?O\GJ\&6]/+7ZBZ[<BW^^WU5\#T,W=^</UDA2=\>9F>3Z>KB/Z>K9X0B]W 162 MBIWL*8`^=P3;A*M-S\W9=S#4ULJ^2-JY`$NT2[[;/C)6.=IVK_D2R%'HN.C[ 163 M:(%OI$N(2DJ;89PZPA8,%]`G&!X\AM.M5T<A8$B0-)21E`E$G$6^^N47,KR# 164 M58"X'3*[NX'AIBP4&81+1B*XW6#'+^?]]M'RN.UCE3(Y"G3]9#I?'Q$`&7;U 165 MIF[K2AO:?F8ZK+I-O3$R5(1/<%.SS1P&1@^V)?2TL971@^TN]#`%83M##\N" 166 MV.[$#;89;MCBC>TD0)L;<@]^SGB1\[#OI31L><]_:YG[XO(D-I(6ECSW_J0F 167 M*)(A72B<K]5@?XDK.FXHU,:QW&[C)"`!F]BC*"X()KG1T>5&SQ<$A]C*,=4H 168 M<,='33R1:1;%I&:4+9TA1.U2\RZ0$ZNBR$*IZ?,W3*`>YH'3*`[$L!CFW[)! 169 MN_8%!Z@.BNJDOS)8[,'_#59`VOHH"GM;>82*83#BB^JUT`/V+J&N$3&586!M 170 MU_:=,"JD=K<I*Z_J6QP&V75=JY3R\(/AZ$,/_HK.<TB4_H+8C>J4Z%"W0@KS 171 MK^PY;:^2O:+K9^YDE!%CH96=,AM"VX:J<&;P73]T0POACIN#R_>KB9UAUZ)" 172 MLP_)>+\C@Y1"<T=*:$-V8#.%AHK,F,&$6P-U(`T2[24=&>E[-$JJ$&J@=T(L 173 M#8*23P,0!3NQZ3")X7]Q6BR,6LQ&??)_,.J"&P`E!]:@A,*WW<=6#K%!N3?$ 174 MIN"B1%+MYZHZRG[.D8]$\MBPDRGG6G["E)78P915'KF1R^@XB5>>L&SV+>]G 175 M*-;/G'-ER[9?[&+++K3*<N809X4ASC1PZ)=)V#.J@N4$%>N8J/K",NK8RO%^ 176 M"/NJ/Q1BI!"RV@]-WUA>[5/?USZXIIDD3T?8&S&#,`_%]-&VS"?@($,H0L'` 177 MA\`&/L/0/C>2`2$/@J5CW2[EORM004;XA:QM<O`MI9LS@H[`4*Z'\K)2.3;! 178 MW>T-_T)L/R.Y.J)7-WVE`I>;O/:RL7GO$.[752@7-]"`%DDB<B1=OCR6PPH0 179 M!&@HX!ZY7BZB/4"1DZ6(C7QN`O'I<Q,QTFL:[X4X.3BA%])YF!KI8Y15+;5- 180 MXD.QFRKG-SH[2P&PD$G<'T/M=1S@_M!C+(4>!VUV&H.'A8!B@-CHPX63CERR 181 M0@J%'7S4!H1HU]D[C*8"$B'S[!F-J>U"B&AC19GPO'M&4YJAW(FG1=OY7F"A 182 ME18AP!;SJ3Q1-R"`[:I#&]H+*A7J1&?HGJQI\Y,EFI^FW(W<Z<6J(=CE<5SD 183 M/GQL-I0&X'&QM6)H4H$+N[U!7-C-E]2OS6,$P:E'H]J!K:ZT&W3);M`=?@AI 184 M91&RFGY17?9%Q32[SOY%AC&;;Q/M/G#D<W`EGU2_-Y`?^T)`*P9259%X>GF8 185 M;1W[@LD1>S8Y8N]-CEGA[N^J;SH1U9B>C8_8=SM,.V2ZPX+I+K7>(>G_-I3M 186 MRCRMK(]5>C>R%!P"@#8U5N;K;;)KFU(FN8;D%7%YWD9#)Y)9P;(![<R5G7W) 187 M`OP(Z@@G/)PS9P:X*931K=U8%V$.BS`8!E(.R&8?L5!HCP"M4Y>\#*]93SSZ 188 M2,=Q$],ELCWBK:$8+Y"]Y6D/P09&S8$8.`;>ZVOKERQ@N<'%YYG-7-6^CTA$ 189 M0RS4=/2V3E]PB!$3AYFA4;=L:-2M,S3^O+RY6VUI#K_%%C8IZG8>DK).G-VZ 190 MS4YOR3J).="M$T*KD>\8;'T<+^GFS9L;^^:C]@4W&V1<W*V.QC?B=35^+]K6 191 M_"P6+V*[82+_C!=&@@R>L..Y(*TI_K=R+9'='Z?M%"+A$'1\S'?-9_FO>$'& 192 MIH;':3]87Q?MX[)JXTIIP:Q.BSZ/^`D?=@Q-UDGI,[VW])G;)++M05LO[.WZ 193 M'\LSLTN0V;83;=]KJ(7N^LZ(X`R9U1_2C1./J\;:*])2,7I_!3-=<,).#+TZ 194 M.EXG808SN(-V7RT+GD(MV5.HY3#5+@R*96"=6K&S4*NG*C>Q%4B3;E;<>S7I 195 M93M*(FN5?00-E>/A]`E:8:X(&MR#+=FD&$3O40FUVF?%TXH5@Q/KS<]5PHH! 196 M$Y$_3[M047FN$^^-OSB]OC^[^BH\12=`?WCW[B\___FHK=WSOJ:7Z:2V7;TP 197 MKTW>`_.M%!YCX_SDAU`3&HF:V#$;ME$^!KNV#(6'&B4WW#'3*)O0PD,B!33+ 198 M<;I>K\:/5)7LZ_'^W8]?UPD3(CTMM)^4VN-JW$[QF*+Q]]5=/(ZMH2`L:F!A 199 M4:,W,)^<WOYV1R[(Y7C_:5Q>QW8V,6N4+`I$2>"QC@9-%]=EB'1)'B0+=[0' 200 M/G)7TK.LD'!!\>[=!JM%]2@WVX%^MT*8GXW:#G'\F'F/SL>+BZ.+FGPE[J]M 201 M_(N<&X9$_D30M^OQ8ERNJ@_C!SJ[]W"_=$W+U>IN5=V=G3VLS,BIR5Q^7-(Y 202 MOLJ][WJ\7=)+OS//'OC6#ZYONQ35>OMI69TOSPQ+MNZB;]V=YU?+ZT]N'J^? 203 MQZEEEO;<[:51L_O:4W`;&1=VLTT7$[9%GM_U_?H]%25\(`GW]1]>/_LWN<N; 204 %DTN&```` 2 M'XL("/28%UL"`W-T9%IT97-T<RYR97,`[%QM<QLWDOZ>7S&5_4)I9B2@\3J; 3 MLJ]N-[M7=J6NSG$^[56<HBU:IBU+CDBO2?[ZPTL#:,P,*2FW]^VJ;)$S`!X` 4 MW4\W&B"`U[_\^.(_FZ;ASYN?7ORE^7Z[V5[<K-]^_\-WKS$%GC?NY6_KV_5V 5 M<?;#=_ZS>?Z\V6RO_K%=;;:;B]O5MXO-=KG-)<3S)G^7%Q'WR_WZ\]7JW0A; 6 MD9SZHKF\?+V^O?YZL[QO?KE?OFO^I(7.Z>:BY+47S;W+V=P_6]]N5]>K^VZQ 7 M[9;=V^Y==]6MNO?==?>A6W<?S[IOFP7O^E/_SDISAN?-^FJUO&G6MR^>I;>< 8 M732BRT_\HKG^T,+[=;OZ6-["17/EWKY;MV_)6^'>OG=OK]LE>>M$<K5JX:U[ 9 MNRYOU47SSK]]WRX_Y!9Q_;RY62VO%D[:"]>H,]?8W_Z;__KLW<I]PJ_/KORG 10 M<)_OW:=TGQ_<I_KUV;7_U+\^$QG)/&\^K6]NFOL";HOT^>"E_Q_K[8>O;YM_ 11 MOUHW?Q)#2@-6)`\\2=[]?]8L4/QGW6+7[;N#^[S9+,19]]<B58`DU9>N1`^[ 12 M@VAWL#]TXN`>]KW8[:%D%BGSM<_MN_V20,GGS??_^+9:;U=_=BS";SE5Y;*Y 13 M\#4MG83I7\8O(3D(5!RB0%WKHD1]$R$*5>_$'AZ;+57FY'V_NOKZ;K5XV95J 14 M6"S.<C:;U')[71HZ%,4(-E%,KD/PHA@!#RCFZDO&%UG(+X)&U/GNC6@YD^>[ 15 M\_T;T8-P'W!^Z#G84DA6:N3<QMSGAU:Q\-65>`-]?'"%Y7"^[[C[6]*X!/_= 16 M%2X:%T5KOC5!:R^*TH2N"#%FA,AB;A8O.H=0!)URV)+#:Z(YI@HQS*A"LJ(* 17 M2<0MG;COOFS7=[<+!_[Z+Z5%DG@_*4D)]9#E7'T968[4M9[,^:YURCITO=1. 18 MJH=6.,UUP,]WO2P"E>:D0*4M5I+3KVF&X:A(46"!^%ENBLW(3?$B!043"F>W 19 MI$21D)*/I[!RK)F7O](TY9?E^H:DF4J@*I!R[_]VC3.!0%OWT/*N0<JVWC;` 20 M)Q00>U*^:GA`OIHE-_0B278?)0MJ!U&X'%1P,,ZKJ%WP+\HG'V3TZFH7_)#Q 21 MW_PKZQV2S!7P5,'_60V0G9MGR`,$T6*&(%H6@FA52*#UD\U$FV-<T/8X%_0P 22 MXL(NL,$$%GA":'N>.,%AB,GM8#L7`D2_YQ[ME!Z&G:2'X0_0P\"$'JYZR<7` 23 M&,/11PYL%X4,6G+.V/XP5J5R^?=P0&VJ?5"V4R=GQNZ#;IU*.3<2#--&<&$' 24 MV'M-#[\^&^QN[[-S%KY#'/Q\0_@^$(1#^`X!E(OP($+-7/HB>^DKX)Y1OG1X 25 M<,UPXV/XZIJQ0R#/JX3C:G8%/0HP_SHB`@^#+,0'/_3*0W8?1DRI_O_2.BHM 26 M^12S-6K&;(TN9FO,L3'0D,C2#$\V:,LJT_2!A+,UR8+)<=/U0@9;%9V/7;R! 27 M@B46:/E)"[3P@`5:,;5`!8.5/`I*L6&0YA#%)?:12XE)>R11B02MG.'H_P9/ 28 M/46+5L]HT9JB'VLGHW.><]FA..:!U7IDIV+^@1,-YI<N#EAH>PGBS*ELX8+! 29 M2R[<=Z_`A9:7PISY6+%=:'5I^%D,(YW&%_S2Y4(_VRUZN#28Z(KQRR%F]>-U 30 MJ5_08'4A+I5'<!'30II+*7,!AR;9I;/R,_3O`.&+*$BR(M.(2X.JN32FTJ!/ 31 M36<&<WK",EA"Q$*AHW,8P\$HHV6:HT":M1Q-V!WR9ZKSP>@O9G1N]'%Q-6=\ 32 MRD#.(#.0,S%AH,EI)8+F3#TZ/N0L"W[]AR,]1XNI(UF?E>0'(FG.AEG]_4LC 33 MLG]]=.=&R.Q@U@\Z&,[GU,N)>KDXNK3`_5K(Y>5_W=^]O5E];CZOM\W-IEF^ 34 M7=TWGU;KV^8+2;C:=#]NNILO3LNYM/*E78G-W<T_5U=_;GR1N\WZ]B?.?_9$ 35 MN;M=-9L/=U]OKIKM\M.JV7Y8-7^_6EV[C)NMTT=S][[Y\M/GOWXND+KPC1\; 36 MWSA9.>&\^$@.[*FK(QRHIVQX:X+3<R.;]).]X+.X],SL^J'G<0CT,^_"TM'Z 37 MBL_M$0J?.^[HWYO@6SDDM^HFX=$+%B!Q:MSD(!^@.UE_F9FJ<]"UMQN[.P[F 38 M21-/#H^<V7-(H?[F;[]_7=ZX1G?7$9ZG+(*-LCC`B%BRS!%=$**+$T07@>BN 39 MM5LW"6D^++<-DGYUVWQ;W=XVGY>WS?IS3=](S>9V_?GSMO$KK-OF[S^NKC-F 40 MF39Q07@KS)-9*,I$Z7N<*7U/4H<C$RPNZTC-<2\.V8YLR*^NYRI^VG/B:0,O 41 M56*BBDF>V)A%1/(2=LJ349T+)AY@IU^7>438%'QF9HZ4#S)'JNET/D;?SN-R 42 MG%7XP([%B82#%RJ,N\J'[=$AF^"X?:3OP_B$/!.Z<5E"-RYM4;J<+.#*W`M5 43 M%G"Y>O("KHM5:R7C`E_'XZ*>TRLZ'?14(='YF_T;V887[1!?%T11NRSO]?R, 44 MVI,E@(0_V7=%.K%0A1HY+25/TD*IF=ET4H\)4SB1)U+23_AV>]0-[*(>G7JD 45 M>YL4M,<!DVNV$W$&Z)*#:OT,4.YP:N=JLN[]'B>`+H_<X_P/=JIHV:]7/3J< 46 MYV4%:];'*DN6N+&[.6TXO2)=5Z1G5O6X+JMZ7,.3B:2K=6<3ES!QW<6/<&Y6 47 MU^H8AA.RZ&KA6<58KA5UQ,_UR65DKO6$!SD:1@/ETEECRFY.*R5ELR>UH8>) 48 M-E1*,^R(-E+ZW&ACR&AC)J,-Y*C9D*C9'(V:]PM^<2'/NIW_%&=5_&S(TK./ 49 M2YQ"%GZJMI!G+7?S\04_<ZKRCYV+*%)2#S'%=/%+*-3Z;]X=^.^Z,RF[..MU 50 M^-[K^"0ZG],'Y:"KZC36QV*%6)[[$ADKYA6,/$@;R_GA)21VX0TF^[4^G5KI 51 M4D'BZQ8T]@RS>]>5\7*K@.3AM`T!"%%[1Y&2U%N9"]4-]TTIW:*8'FY7L#6* 52 M#"MI$WYK9=>G5&PAK;I-59,\HN1QP@"PJ(THP]Y`)X0>-]2E%G6[\9'V`462 53 MV^&'=FUI=3)VIDT%6U=)7QI1.EGZKXE*0R.#B`;!$T`L9`9+D$04D`AL8I&\ 54 MK=`I!V*[Q(">JE(V-23"NGK<"!ZE`0JZJC,>F3YG8?BEJF@3^57OJH:)SH&J 55 MF4MJ1G+*IW:P6`\D,G4]C!K$J+!C(VBF*:<B;NF$C2FIM6^@:IVGB:1=QBH* 56 M88-=V61*#UF'I?U,],'/6)HV7.;FC?B&M6!CDVUX2U;4#QD8VZ]7\"`3.["! 57 M3M$]`72O%).UWU"5XU"0/8>1:&:I2/8=0UTYH]E&`F+4?Q@M*P>"!7LB&A]1 58 M,SGQ*(JZE*JBT&3B5`R:99_J;G.USF^PKC(::OFIE4F(M4"ZD;'UU-AR&2]/ 59 M'#:2T)S5.7M10&V%HT^F'H77I(T@'K?V.*1.['<Q;ZRD]36.#<57FT0S)6]; 60 MJZ;-JIF86U^9&X44!,7;EL#V]1JYZD3#.O=VXCM\!N*'%1V@?:'DB8D9<](= 61 MSU72J$@STBB%EMUFY-:W!&I#(VTG?BM:GI:5$Q>U%]?)C6N6!@*%]F=!^#$A 62 M0XOL@X.#4SJ9*\NYB#LWU."U"X2*0V<H`Z$@L\%QN^IY^'T!@+JX)(#@UEGR 63 MZR;%+*X9=(2.@LTDZ6!LEZVPE`S4*CDU2O1/'553!?DFC[83%R*2FGH.U)<( 64 M$3&K(M&G%[+J.D_6-2356MIF"27[B/6E.SR$'X5>,HU,X[[UF3]T./0/L9)) 65 M':2**K5"*&EH!V4XZ^Q$/UY*Q3!J,TL-L15E>D&&W1Y#IJ[R2C%)4HE43!5) 66 MZE;2<3>5B`%)$6"N@U=<Z&F?Y^G$:WR>\&NHJC0G]8BVE)CZ.45CV*&.$RK* 67 M[(X1369&U>2>LE`2R#Z+3VA:6)!PN.NK0<^S7E4U5>RAF9/VQ4!$TE>A1<^A 68 M"HO1UU1U\G$[L@%C%T4=KF"EQIY7LZ(\^@B3/`0M%?S/)'PFN7)$AVWTX9J% 69 MBJ2DQ"AN)-UT(O#EBHZ3<^PJ%B+\2)2A\153L8\D:/%]Y";;!07QTW\Z,_&# 70 M0:R;9"MTHVTFH5OTWFC0%JIX-Q7"8(]:=^IE\>/%ZY='GH-8J`/!*K371P:) 71 M"$#@<W6UU\_/7B+3&`VJJ#6Z?W$V`A#5E"-Y$CW)F@E&P*M1QXXB7E)[)^R4 72 M2E-2B&,N@Y`"W4:"=X%;-Y5>/XVJ*V5%\A/1#$!-JU(12X5TFF^DTJFG%5I< 73 M@LBYJD9H&ME+J$(BCL4J_YP&Q?'TC5*!&F46Y5"95SUE8[5W*.:68LH4I[>I 74 MB4[(+E#BD[E7=E(Y-J<J]'+FHV$?!\RP(N,;8^DP6;IDH.(:]>-QJ$R\2A7F 75 M\:$R5K\S,H^NGG.N.DVGD*T4=%J6)QF\#@FU9E4WDOI[A<LVKEZ6>L1&8VPV 76 M%ZHS/UD8ZTS1(414RQX.-4FX'K^3RCSEF:T\HDY]9ZGSK)L:71)`:M@H@*Z" 77 M,#H15>B92SC=ID:VP/QDJI)A^#621$Q9AJ*E"M,YT`<5*=(.K!Y0,K6FCGZ8 78 MJ8*3YVJ"PZJU%U-F&!;G"0J0I&[N,E)I_(&+#A>L7H>1E<D)3><OD3#I7>_[ 79 M-XG@4WQ#_/_C?+"<&`YQX_3)0?)Q:-)2.W.<HPZ)KN^T)!(B[I2/(JOB7@4Z 80 MB%#IV"OFW)F"E9=4>F[=9"8^"[,=5K?+LKR41(-;[.UPU(]RLNJPF['"*BBE 81 MBQYD0,ZA6]5^70_R@OK1O.2!8S)&<B/)U)EK1K0SXHW17>%$->Z,PE[DJ['3 82 MN1P;Q>%L9F$X!:JBFJS4(5<UXD2)IJ<!+0_#/H%O`JV]%YCP-3JO.N;A1D_< 83 M:![8&;-C!U\<Q-2CU!W!!8"J"*DMCP)99JD;/J--"VL2;%DY&$6U9>&.ZE14 84 M(@-#!P8EYP:&W`)AH)Y.LNG:%&=T/4(H&,75]<Q@5SR]UU04:%Z.F;/)8:RU 85 M:HK&9P0P*I)_)QH%SGGN'$-X/9YHZ2I@KFP]_,(X;E;M.RAQN@DS])C^[4#J 86 MKW]5$%1](DVNIOY(L\E*#TZZJW0R;:P;%84WZI4Y8J9URW&F)JCG%7E2#5-; 87 M&>N''5_G#;'>"":-F^9\'BA[HNQ38GR<#9/5H&^J9?XZ0F+C.D1%^/HG$QR> 88 MN[XB3TO&@:Q(09?7O460GV]L]/R=J:,&BBI&=8>9)O$E0YIGFJE=`YLNMC%% 89 M(WY+I36DU0A3^$10LD]'"!PXBU1R4\8:#"&(GK/YL3%6BLV_398ED>D@5`$7 90 MSZ`?8,S$,`F'JI\C4L%N8G;]0$V_MKJDEO!0?BPW98?"9(\P-VE/1MF2,>#. 91 M`X>$&U`<7-R`LH_O_,YOUX:,,9#]""\?V+L42K.X<X7%72LL[EEA<;\*P[TJ 92 M#/>I,-RCPG!_"L.C"0R/)3`\D<#P.`+#LP@,SR$P/(3`\``"P[,'X1/Q`/$` 93 M\0#Q`/$`\0#Q!.()Q!.IHX@G$$\@GD`\@7@"\03B2<23B"<13R;)(9Y$/(EX 94 M$O$DXDG$4XBG$$\AGD(\E52!>`KQ%.(IQ%.(IQ%/(YY&/(UX&O%TTBWB:<33 95 MB*<1SR">03R#>`;Q#.(9Q#.)+(AG$,\@GD4\BW@6\2SB6<2SB&<1SR;V(9Y% 96 MO`'Q!L0;$&]`O`'Q!L0;$&]`O"'1.?,Y$9HE1K-$:98XS1*I66(U2[1FB=<L 97 M$9LEY&(J"3D;2[:6;"[97K+!9(O))I-LAB>CX9"M,"$GN^')<'BR')Y,AR?; 98 MX<EX>+(>GLR')_OA(AMX0DXFQ),-\61$/%D13V;$DQWQ9$A<TNU*=FZ[F"7; 99 MQ>SD$"B4PN40*+?'#X%^ZW:_=[M/?F?9EP6<=>XOK_:7656?&SK??7)#>DG6 100 MU:Y#-QI^\_L3/_EUJY*I'!'UN7SU]YO5NRWZW90K;_QRSOZ%^U_GC2-`%[># 101 M-:08<>,ONU34I5]>-N?G!6N]:6[O_([?VZOE_57S=KE9;^9WH`UE&UDJW;TH 102 MB"^>A#6WY6P@6\Z&R98SF;<Q#F3+V?"8H\[<[S?S:B0*'*H#SQ!W?)IJO^=@ 103 MJ!)UV-3N,AY:W?G?GWJ_A.>F7IV-*779DR=W^3!,]@@"RR=C@+'3.XR!\5.[ 104 M`8'!9#>@UGAR0P_:X1_P]`:D`XKQG([?)YQ!Q.E-]"ZH"U=S+.J-],WD7#PP 105 M56>,.^CG,CJE;-:'E:_FV3/\6N^-!V:FU`%63DD`F]XO85,:+]N3@=?;DRON 106 M>,J$0'07=P&JL\@D23D$/.]6?N4`=C$B#3&;+]'E;([+^#;,FFB2C$FAG"3O 107 ME7^/OZOS`(?'*-RWGI<6.(&]PCCP%6F8D]'OH6^_W[O45R4ATW(96NS`H"3F 108 M8\H?/=^[F!Q$T$(7=^WX'9QN1I++0&;J\J4GR>]?[[;KU>UVL3S_V'T\^\%I 109 MHOFWG-FQUF7[X3OW)QP%"Q7D5(@L<8F)&*,,,X>[`<KA;H!P2&>SNGZ__'JS 110 MW>37X;J7NT_A;,_MZNNJ.OJ0<Y5+7P#L4:\2F0&1'C,[CP'JP][^1X.P?!$^ 111 M0T2?L^:3('&4\&L1<.9WL,><X!=2PV>>+!&4\O@&0J8">_+X`H@'CB^`$">= 112 MBY`/^`4QW0@?I9`SZ(E[BGV/'JKJ<SK10#N>]L^7WN-;[[Z*0-+[5*MYI+OR 113 M)U0>Y:[FKO$`<HT'^&L\`O-N[[[E=U!X)L6#/(L4J\8NR$=%,/C@%<?>".0. 114 M1#&D]4:?4B`4I1Z7G;_?(]&NQ?RQ."FD3Q*+W`8R3RQY<@\[R)E!,74!C]?' 115 MGN)U.+F%6<6*3<\D2#R`47HT+BYR<?Y(ABAX)$/4G,M2Q&4I-66(*@>L0)D_ 116 MQ)!R<4B\S@4WTWH*=)+H%A=-ISZD7"T2^*&)3^+0"V2<%.5]+JI/WDH!^H%; 117 M*4##299H,<,2/`-%>X8G+3CM7G0<Y$6ACI93ZB36S5$'K2P75X^DCC\=\BCJ 118 MZ+DX1Y,X1Y?3H&#"U4WKVW#L]';UK3[<]^WN_M.FV7R^N]M^Z!K,Y;ZO[L.Q 119 M57]>==.\O[M?_7-UGQ$Y08<_1$)3W_T45.%R")2\/X*7/8Z@JFNSO^IL358U 120 M]F.FOBH*T!,FK8^&2#_]*H#%81:XDT=[P.@'N&M.GID"8Z='Q#@9^2AS)[05 121 M`EL;!SI\DAE[>@((DK<$XNY2?C^-?A1C+7\D8_UM%Q/&VG)'%5@Y=7:VG"P% 122 MJ_\0SZP9'1KL.!W,*@J50I82!VJ6B!9F')L=3I)C8"=U/_"I[G%:K(Z/3=D_ 123 M#=,IG2B:341)F<4C=3O(1^IVF+FA!89R0PL,9JK;H1P:A6$XI=NHUFJ)1;#1 124 M@5]HDY9*%EY9O\Y6C_8O_2G/DAM.Z4^PDV&O8'+F>&=.5-/10Y5HEM=6+7,Q 125 M_3@]"68>IR?!9B[Y$ZQ<\B?XY)(_:7):\?F")Y__,RXW^9LO=^3<GN#EE/,N 126 MK#\Y]?A+(W<Y@R35IG6:UQ7<S:;`Z8?@TH#X<_>ZE+*DCNFYY'2]C"`72XK1 127 MQ9*D<Z4UHYL.3.=F<F'X\;=Z]+KU5Q+Z@Z2EP&GV@'S"B5@!,]8FH%B;`#/I 128 MZI#3+.GJDV]$$F52&A8UNOT!VF)#?FX95Q9>_3Q9=Q!^:OGE[F8?5A<.Y36Z 129 MHV4YFAJZ?<@9ZG.WW:';E<*J7F$H2PS-\OQEU[QL2/VZ7F!0X4M5TTQ4)40R 130 MFE<_EW?$9N3$9E16%;FI44AXR,>-EI&%K$*D%**W.!E+1V=<&1G?N&E:*5L) 131 MC=M46":/$W^%#1/#+D\!W4P@1CUM68D693;XXK<@X_FU:"'3^IS+YMZ*_'Y. 132 MJI*8YO3*`$@+>H)<&2#*E0'$,!?+[JJZ9??XO;JB7"#@[]4-U^>N.W]?[D?W 133 MMX5P.RY^69="Q78CI?WUMR6UF*Y[W_U/==?Z([=MQ+_GKU"2`CYGI5A\#$G% 134 M<8L$*8P[(!\"HRCZ)?;9WCNKN8>QM]?L7M'_O1R^AI2XNK7;#VV09$_BB!)' 135 MU'!>_,WE47`.`M$`GCU[E@X?Q1K,QE5,D1Q($MUR^X=.M6JW[_`OLR>ZW./< 136 MO)@L;C`<L\M<U+;B"[38LJ$\OAO_T%#R3?E>4]NM&.Q;N>\T$<FE<2@X;ARJ 137 M-@Y=CL-\]CB&8AS#KF-R;Y7.!W*FB@*;<38,W')_Q#!T1:,6:%9EP]!+4*;9 138 M((H1:"A&8'8KW7;*CD/0A-)J<03ZN!'4]!$]3`&BA2&OF3#.:]8D?.ZW]Y?- 139 MUTJ:U$X>-&%$#9Y[Y^$&<DAN^Y^P/P.-P$@2%6<).DZ@04(@W`)MDF;[3?+? 140 M6R5TFSE#$ID.9&3$6L)?,VO3)[8D>COYFJFO,MW@5YY[\@JGL3"Y9R:>1,2\ 141 M>G?=-C=M7'9T<2:[,5.5)W9D\FE7/)$SQ86B4[$+D3T\SZ]/`Q]8A5'9\U39 142 M%G89^.5M>@?JFI>OJA.!M&2%M_UC%W2UP/?>;1.CAUSNG[44Z5P*=&[]_.\@ 143 M/64<56X%=,60N]F05DK&MQ2@U3KW<N1L6F24`>]@8!#Z@HZS['V$=M4G!H=3 144 MN#66R""-'V9?:6;PB6&N@J8O-#/\Q,3PJVG;<F+J&8]'YE1MICRDCU6V!=$O 145 M1CAD7\&U5?[%F`#/*G<ABL`=*AT&#B!=+C(D_$L"PO^D/N0QXE'V%45?]L1E 146 MV<^Y+%(;<5GV=2Z?[#!W(?6,<'MW'VXW6TO2-W2Z-*/1+689;MGN]O[CA@8B 147 MM:P-_QRV=B2:AB55-5(DF3P.5DVR&I]8QB>F#\RR?/2$/'9SZ]'%,AX,9:-# 148 M<*9FGLW0)LQ1*XRT8X_]?]LX3CE_(VD!DK-B#9W-5/Y(+$YR,0.JP[7Q^S_V 149 MS9=?UGG%*XX*U0<JOHNU!!(Y5#!CE^@KJI7D!!4F)\'3ZJO`(&EE(HI"#C@6 150 M=^C#Z1VS[80D2C:=835!(&:SM<YE(8Y#(I5HJ/JLA-,L0>$4)PI+-!4<L"'* 151 MCEVB4A6V5\@JEI449%E),;>LDA"29%E)^1]:5E)^AF4EY9)E)66:J9$#YW\/ 152 M(9<QK)3R<@S51D8O8L]'GVWJJH[H4(7$V(GZ/LU0"9]AL$F"P*/GRV:U_%QK 153 M0<HB(>"0_2:A")M-)C)$YW%"=TV31NT#N)AR"'\XC=P"Q6-RC_!-L2=^U,)4 154 M"US*+'`I?>"R:?YVOWYRU_QX?YD:*'HI*7J)W_D!S7PZT8K893IIIWE4D?)@ 155 M4<(6R95,J>S$3_Z0J99K<KTTW16-W#GJLG3E!W`$=_EG<]0X2@BZB_7VW8>3 156 M39OW73AP3EM.RJ<DC+DS/D-SE@EB[HS'%[C-]4<W-`HI%>?R\$)07U*W>2$9 157 MZGHY]SM>:S*ER5[[7WVNF;TH-=F+4GM[L3F]N<"*46L_!ES*F[OK<WO9>G=^ 158 M_?%JG>C)?I1:U,2B?;_.=@ZY@W?$>8HW(MBS6NU7.][*%2U,601Q#"]NS"Y/ 159 M4G],0;J)Q,\,Z[$ELND'2H8U=4XN2VGZR)/@R&M^MTN$"_RNK\;K\>;<\2>% 160 M?AN,_7[;_#427=^^O[]:HZ$S7E^OWX_GV\0^0QY/:?A!M9,B!=*(:4H48C50 161 M<_$=#*WSLJ^R=BK`DOR2K_8/Q%7*MEUT7TH,%'HI^CIYX#ON`5'1:+."4R7: 162 MBN-"FHS#0^!POO2JI`0,&9,&_KA"1"CRS2^_H.-=.@.(VF7A=[<TU%2D(DOF 163 MP4@8M5ONA-=YMW]P,F[_T.1"#A-=/]K.MR=(@(Y=M6O[ME%V;G]A.VSTKMU9 164 M'2K19[QIR6<N!V(/]#7V]*F5V`/](?;0#()^QA[2!:$_R!OH"]Z0QQOZ28(V 165 M->@%&'T@'/;%F08]K?DOG7!?79ZE1K3"LNM>G[5(A3JD3X4+M1K<+TK%D.XF 166 M=E[DZEWJB%7?`V20Z.`AT<OW`$-JI51J8'#@6T912%,5V*14E*N8P5CK$7E7 167 M0'BJP(H,:OSJ[;??#O-\:6!',I8-\T_8<EN%.@-8_D1H'HXL\XP,?TNG%^U# 168 M\H0[+;PFR=@P6*U%&,74`,;CZ%K-4EBYU>O>:&8M1^5/(QBO,#T,`]=:]T*( 169 M0#]803X8&8YP&P<''@Y0R@@MF`;5,\[LO]P06J_@1N!QV!!EM5?9<RWL.M#W 170 ML1B<?7AM!CWT,I[Q8_`POPJE&.@>!-CEAZ?S&OU0`NP9SF4?08'M$#JL+6,? 171 M)IX:L`-NF>@.<:>(,6!M4\;$@/>4J2((<-H$@!/7:TO_NYO$XE.SV5.?_1\\ 172 M=<7[#YSR:8#+RK=M4BMEU@!7GQB9!+3HYQ8Z<#,7Q"<LNVPX*(M+XSZ3Q8(= 173 MD,6"+Q1$`;%4OQ$HI+PL4%QXN13&3EH_/22-?4:5$\@QO0IB>FGJM.(C`4'6 174 M)`A3>7,JM5)F'\A^.;PSS88"R4I?:N?$<P"Y;T,:33>!20>YF!L#<IYT&?)J 175 M233(HUR>("NN/)#DRK,R[%-S%D":*6Q\+`/I2E&@NWW%6P<#OD=@.:O2,(B% 176 M>1"!%0NO,>IN,=$+H/\$&'6`8%B&F@0>A;P-6K"][Q#/MTTL##?@`ZTRR'%` 177 MJ[W^+.*3GD56>`]4&1?`;94HIR5+C;1#`L`<F:IG#Z:970"3+1)JQ7TLJ>-# 178 M3/SDRL'U8):F*$6,*G9-2+GB9IZL!VHQ1`#+2<902S(^E&T'E=1A*5-C2`S. 179 M.O*PA)CT.H3\#`D4["GO86T2R4$6,3QK&_4Z)H-V3GN!/##4*004*L-UBO4Z 180 M]")72B@64VFA'(HZZAM6>A%1'E3%>`*560?ZT>HU/[E)\]-4NF'@O%H?!'29 181 ML86!PH=NAQO^'U9[IWEFM;9`+Z9K@9:'LBT?$@E,8Q?-`6[IVFJ@L]5`'[_= 182 M:.,8LIE^4;KXHA*@;D32W'ED37#K0$3;RCXILYBR#Z:2N@H9KD`DX\=YT<%4 183 MG(M@R+D()C@7BQ+=WS5?:Y8L%T-N1C#Z@!,'G73PM%J9.QN="4EK'^S5PD53 184 M>0@8<T;!?G`@6$54MRN.'7A,=BRS6Z37\S*Y-`$="$X,*.^8U.XF*QF>H$UT 185 M+-"9`"CMZ:94UHKVS[J*8UC%AR$BX8D<SHBC`K?99YL'WR-N=?A39I=;?3-S 186 M4@)Y'E[:&1-TL)<T["%ZN["9]O3%;/=@HFV_(9W*/URZGL3,AS;TD2;1D$HR 187 MG;QL\QL<XZZ$8>925#VY%%7O78H_KZ]O-WL<PV^IA9R'JI\GGVRSL+;JBWU: 188 MO,VR"U3O]<YFI#.66V_'2SQY_>+:W?FD?TK-EAD7MYN3\05[WHS?L[ZW/ZO5 189 MT]1NA<@_TX'5(&/,ZW2N.RO,]&U\2Q+WIWD[)D-X!IV>TEG[6?XK':!;J:/G 190 M=!]LJ(#V=MWTZ4TI1J).,5/F]L0/.R4AJZS(F>*/*+_3Y4&Y>.O-]A_K=W:5 191 M0`>M9KTQ2K9,::.M"DZ41:4AU7GUN.F<BR(O"J.6:Y6I2KAUXM)5*<0Z22B8 192 MT1VU^BI>B0DJ3C%!Q8>I=6%9S*/H5(+"@DH\5J.)'#\*S;'JVJO0%#M0_%B) 193 MR69%K-W44RM,@1)PW<YA$I10"U:@$DO^.B5,!K'0S$`6&B+,5/X28*'!0EQG 194 M(>Y^<7YU]^[#E_$JW.OYPZM7?_GYSR=]6U3OLIVTKJNG]K;9?22K%0>*C?,] 195 M'DQ,YDBRQ$[)A0W\(7JP>2PQU`F^HXYICI+7+%[$<D+[.LZWV\WX%NN/?37> 196 MO?KQJS830FBGQ?:S6GMZ&S=3/N9L_'USFS9>*UE1%I4D95%!<"6?G=_\=HO! 197 MQO5X]W%<7Z5V<B8KX*0*)$W@H4T^3)_!92?I&F-%CNYD@3Y)5[2SG))P@9GM 198 M>@?-JGG@N_V`OWO&[,].[(?T_%#$B=Z/%Q<G%RU&1?Q?^_07AC'L%/D34M]L 199 MQXMQO6G>C&]PE][]W=HWK3>;VTUS^^[=_<8^.3;9P[=KW+'7^/M=C3=KO.EW 200 M]MHC[_K&]^U>1;/=?UPW[]?OK$AV@:%O_9DG']97'_TXGC])0RM\ZF6`2X&B 201 H0'7<Y)0$%^C9H@N9V,(8[_9N^QK+#]ZCAOO\#\^_^#?;><1=-88````` 205 202 ` 206 203 end -
Tst/New/stdZtests.stat
ra718906 raa7c1c2 1 1 >> tst_memory_0 :: 1 480339567:4100, 64 bit:4.1.0:x86_64-Linux:nepomuck:10490242 1 >> tst_memory_1 :: 1 480339567:4100, 64 bit:4.1.0:x86_64-Linux:nepomuck:79708163 1 >> tst_memory_2 :: 1 480339567:4100, 64 bit:4.1.0:x86_64-Linux:nepomuck:90071044 1 >> tst_timer_1 :: 1 480339567:4100, 64 bit:4.1.0:x86_64-Linux:nepomuck:6331 1 >> tst_memory_0 :: 1528273140:4112, 64 bit:4.1.1:x86_64-Linux:nepomuck:986872 2 1 >> tst_memory_1 :: 1528273140:4112, 64 bit:4.1.1:x86_64-Linux:nepomuck:8536064 3 1 >> tst_memory_2 :: 1528273140:4112, 64 bit:4.1.1:x86_64-Linux:nepomuck:8859648 4 1 >> tst_timer_1 :: 1528273140:4112, 64 bit:4.1.1:x86_64-Linux:nepomuck:653 -
Tst/Short/ok_s.lst
ra718906 raa7c1c2 2 2 abusalem 3 3 branchTo 4 bug_bucket 4 5 bug_curvepar 5 6 bug_ecart … … 105 106 gcd_univar_p_s 106 107 gcd_univar_p_alpha_s 108 homalg 107 109 modular_s 108 110 modstd_s -
factory/cf_factory.cc
ra718906 raa7c1c2 30 30 CFFactory::basic ( long value ) 31 31 { 32 if ( currenttype == IntegerDomain ) 32 switch(currenttype) 33 { 34 case IntegerDomain: 33 35 if (LIKELY( value >= MINIMMEDIATE && value <= MAXIMMEDIATE )) 34 36 return int2imm( value ); … … 40 42 // else 41 43 // return new InternalRational( value ); 42 else if ( currenttype == FiniteFieldDomain )44 case FiniteFieldDomain: 43 45 return int2imm_p( ff_norm( value ) ); 44 else if ( currenttype == GaloisFieldDomain )46 case GaloisFieldDomain: 45 47 return int2imm_gf( gf_int2gf( value ) ); 46 else { 47 ASSERT( 0, "illegal basic domain!" ); 48 return 0; 49 } 48 default: { 49 ASSERT( 0, "illegal basic domain!" ); 50 return 0; 51 } 52 } 50 53 } 51 54 -
factory/int_poly.cc
ra718906 raa7c1c2 30 30 #include "variable.h" 31 31 #include "imm.h" 32 33 #ifdef __GNUC__ 34 #define LIKELY(X) (__builtin_expect(!!(X), 1)) 35 #define UNLIKELY(X) (__builtin_expect(!!(X), 0)) 36 #else 37 #define LIKELY(X) (X) 38 #define UNLIKELY(X) (X) 39 #endif 32 40 33 41 #ifdef HAVE_OMALLOC … … 2155 2163 { 2156 2164 theCursor->coeff += aCursor->coeff * coeff; 2157 if ( theCursor->coeff.isZero())2165 if(UNLIKELY(( theCursor->coeff.isZero() ))) 2158 2166 { 2159 2167 if ( predCursor ) -
kernel/GBEngine/kInline.h
rdb48f3e raa7c1c2 26 26 #include "kernel/polys.h" 27 27 28 #include "kernel/GBEngine/shiftgb.h" 28 29 29 30 #define HAVE_TAIL_BIN -
kernel/GBEngine/kspoly.cc
rdb48f3e raa7c1c2 20 20 #include "kernel/polys.h" 21 21 #endif 22 #include "kernel/GBEngine/shiftgb.h" 22 23 23 24 #ifdef KDEBUG … … 123 124 } 124 125 126 poly lmRight; 127 if (tailRing->isLPring) { 128 k_SplitFrame(p2, lm, lmRight, tailRing); 129 } 130 125 131 // take care of coef buisness 126 132 if (! n_IsOne(pGetCoeff(p2), tailRing->cf)) … … 142 148 143 149 // and finally, 144 PR->Tail_Minus_mm_Mult_qq(lm, t2, pLength(t2) /*PW->GetpLength() - 1*/, spNoether); 150 if (tailRing->isLPring) { 151 PR->Tail_Minus_mm_Mult_qq(lm, tailRing->p_Procs->pp_Mult_mm(t2, lmRight, tailRing), pLength(t2), spNoether); 152 } else { 153 PR->Tail_Minus_mm_Mult_qq(lm, t2, pLength(t2) /*PW->GetpLength() - 1*/, spNoether); 154 } 145 155 assume(PW->GetpLength() == pLength(PW->p != NULL ? PW->p : PW->t_p)); 146 156 PR->LmDeleteAndIter(); … … 255 265 } 256 266 267 poly lmRight; 268 if (tailRing->isLPring) { 269 k_SplitFrame(p2, lm, lmRight, tailRing); 270 } 271 257 272 // take care of coef buisness 258 273 if (! n_IsOne(pGetCoeff(p2), tailRing)) … … 274 289 275 290 // and finally, 276 PR->Tail_Minus_mm_Mult_qq(lm, t2, pLength(t2) /*PW->GetpLength() - 1*/, spNoether); 291 if (tailRing->isLPring) { 292 PR->Tail_Minus_mm_Mult_qq(lm, tailRing->p_Procs->pp_Mult_mm(t2, lmRight, tailRing), pLength(t2), spNoether); 293 } else { 294 PR->Tail_Minus_mm_Mult_qq(lm, t2, pLength(t2) /*PW->GetpLength() - 1*/, spNoether); 295 } 277 296 assume(PW->GetpLength() == pLength(PW->p != NULL ? PW->p : PW->t_p)); 278 297 PR->LmDeleteAndIter(); … … 461 480 } 462 481 482 poly lmRight; 483 if (tailRing->isLPring) { 484 k_SplitFrame(p2, lm, lmRight, tailRing); 485 } 486 463 487 // take care of coef buisness 464 488 if (! n_IsOne(pGetCoeff(p2), tailRing->cf)) … … 480 504 481 505 // and finally, 482 PR->Tail_Minus_mm_Mult_qq(lm, t2, PW->GetpLength() - 1, spNoether); 506 if (tailRing->isLPring) { 507 PR->Tail_Minus_mm_Mult_qq(lm, tailRing->p_Procs->pp_Mult_mm(t2, lmRight, tailRing), pLength(t2), spNoether); 508 } else { 509 PR->Tail_Minus_mm_Mult_qq(lm, t2, PW->GetpLength() - 1, spNoether); 510 } 483 511 assume(PW->GetpLength() == pLength(PW->p != NULL ? PW->p : PW->t_p)); 484 512 PR->LmDeleteAndIter(); … … 699 727 } 700 728 } 729 730 poly lmRight; 731 if (tailRing->isLPring) { 732 k_SplitFrame(p2, lm, lmRight, tailRing); 733 } 734 701 735 // take care of coef buisness 702 736 if(rField_is_Ring(currRing)) … … 725 759 726 760 // and finally, 727 PR->Tail_Minus_mm_Mult_qq(lm, t2, PW->GetpLength() - 1, spNoether); 761 if (tailRing->isLPring) { 762 PR->Tail_Minus_mm_Mult_qq(lm, tailRing->p_Procs->pp_Mult_mm(t2, lmRight, tailRing), pLength(t2), spNoether); 763 } else { 764 PR->Tail_Minus_mm_Mult_qq(lm, t2, PW->GetpLength() - 1, spNoether); 765 } 728 766 assume(PW->GetpLength() == pLength(PW->p != NULL ? PW->p : PW->t_p)); 729 767 PR->LmDeleteAndIter(); … … 802 840 k_GetLeadTerms(p1, p2, currRing, m1, m2, tailRing); 803 841 842 poly m12, m22; 843 if (tailRing->isLPring) 844 { 845 k_SplitFrame(p1, m1, m12, tailRing); 846 k_SplitFrame(p1, m2, m22, tailRing); 847 // manually free the coeffs, because pSetCoeff0 is used in the next step 848 n_Delete(&(m1->coef), tailRing->cf); 849 n_Delete(&(m2->coef), tailRing->cf); 850 } 851 804 852 pSetCoeff0(m1, lc2); 805 853 pSetCoeff0(m2, lc1); // and now, m1 * LT(p1) == m2 * LT(p2) … … 833 881 } 834 882 else 835 a2 = tailRing->p_Procs->pp_Mult_mm(a2, m2, tailRing); 883 if (tailRing->isLPring) { 884 // m2*a2*m22 885 a2 = tailRing->p_Procs->pp_Mult_mm(tailRing->p_Procs->pp_mm_Mult(a2, m2, tailRing), m22, tailRing); 886 } else { 887 a2 = tailRing->p_Procs->pp_Mult_mm(a2, m2, tailRing); 888 } 836 889 #ifdef HAVE_RINGS 837 890 if (!(rField_is_Domain(currRing))) l2 = pLength(a2); … … 840 893 Pair->SetLmTail(m2, a2, l2, use_buckets, tailRing); 841 894 842 // get m2*a2 - m1*a1 843 Pair->Tail_Minus_mm_Mult_qq(m1, a1, l1, spNoether); 895 if (tailRing->isLPring) { 896 // get m2*a2*m22 - m1*a1*m12 897 Pair->Tail_Minus_mm_Mult_qq(m1, tailRing->p_Procs->pp_Mult_mm(a1, m12, tailRing), l1, spNoether); 898 } else { 899 // get m2*a2 - m1*a1 900 Pair->Tail_Minus_mm_Mult_qq(m1, a1, l1, spNoether); 901 } 844 902 845 903 // Clean-up time 846 904 Pair->LmDeleteAndIter(); 847 905 p_LmDelete(m1, tailRing); 906 if (tailRing->isLPring) { 907 p_LmDelete(m12, tailRing); 908 p_LmDelete(m22, tailRing); 909 // m2 is already deleted 910 } 848 911 849 912 if (co != 0) -
kernel/GBEngine/kstd2.cc
ra718906 raa7c1c2 2227 2227 } 2228 2228 else if (TEST_OPT_PROT) PrintLn(); 2229 if (!errorreported)2230 {2231 if(rField_is_Ring_Z(currRing))2232 {2233 for(int i = 0;i<=strat->sl;i++)2234 {2235 if(!nGreaterZero(pGetCoeff(strat->S[i])))2236 {2237 strat->S[i] = pNeg(strat->S[i]);2238 }2239 }2240 finalReduceByMon(strat);2241 for(int i = 0;i<=strat->sl;i++)2242 {2243 if(!nGreaterZero(pGetCoeff(strat->S[i])))2244 {2245 strat->S[i] = pNeg(strat->S[i]);2246 }2247 }2248 }2249 else if (rField_is_Ring(currRing))2250 finalReduceByMon(strat);2251 }2252 2229 /* release temp data-------------------------------- */ 2253 2230 exitBuchMora(strat); 2231 /* postprocessing for GB over ZZ --------------------*/ 2232 if (!errorreported) 2233 { 2234 if(rField_is_Ring_Z(currRing)) 2235 { 2236 for(int i = 0;i<=strat->sl;i++) 2237 { 2238 if(!nGreaterZero(pGetCoeff(strat->S[i]))) 2239 { 2240 strat->S[i] = pNeg(strat->S[i]); 2241 } 2242 } 2243 finalReduceByMon(strat); 2244 for(int i = 0;i<IDELEMS(strat->Shdl);i++) 2245 { 2246 if(!nGreaterZero(pGetCoeff(strat->Shdl->m[i]))) 2247 { 2248 strat->S[i] = pNeg(strat->Shdl->m[i]); 2249 } 2250 } 2251 } 2252 //else if (rField_is_Ring(currRing)) 2253 // finalReduceByMon(strat); 2254 } 2254 2255 // if (TEST_OPT_WEIGHTM) 2255 2256 // { … … 2263 2264 if ((TEST_OPT_PROT) || (TEST_OPT_DEBUG)) messageStat(hilbcount,strat); 2264 2265 SI_RESTORE_OPT1(save); 2266 /* postprocessing for GB over Q-rings ------------------*/ 2265 2267 if ((Q!=NULL)&&(!errorreported)) updateResult(strat->Shdl,Q,strat); 2266 2268 -
kernel/GBEngine/kutil.cc
ra718906 raa7c1c2 10971 10971 void finalReduceByMon(kStrategy strat) 10972 10972 { 10973 assume(strat->tl<0); /* can only be called with no elements in T: 10974 i.e. after exitBuchMora */ 10975 /* do not use strat->S, strat->sl as they may be out of sync*/ 10973 10976 if(!nCoeff_is_Ring_Z(currRing->cf)) 10974 10977 return; 10975 10978 poly p,pp; 10976 for(int j = 0; j< =strat->sl; j++)10977 { 10978 if((strat->S [j]!=NULL)&&(pNext(strat->S[j]) == NULL))10979 { 10980 for(int i = 0; i< =strat->sl; i++)10981 { 10982 if((i != j) && (strat->S [i] != NULL))10983 { 10984 p = strat->S [i];10985 if(pLmDivisibleBy(strat->S[j], p))10979 for(int j = 0; j<IDELEMS(strat->Shdl); j++) 10980 { 10981 if((strat->Shdl->m[j]!=NULL)&&(pNext(strat->Shdl->m[j]) == NULL)) 10982 { 10983 for(int i = 0; i<IDELEMS(strat->Shdl); i++) 10984 { 10985 if((i != j) && (strat->Shdl->m[i] != NULL)) 10986 { 10987 p = strat->Shdl->m[i]; 10988 while((p!=NULL) && pLmDivisibleBy(strat->Shdl->m[j], p)) 10986 10989 { 10987 number dummy = n_IntMod(p->coef, strat->S[j]->coef, currRing->cf); 10988 p_SetCoeff(p,dummy,currRing); 10990 number dummy = n_IntMod(p->coef, strat->Shdl->m[j]->coef, currRing->cf); 10991 if (!nEqual(dummy,p->coef)) 10992 { 10993 if (nIsZero(dummy)) 10994 { 10995 nDelete(&dummy); 10996 pLmDelete(&strat->Shdl->m[i]); 10997 p=strat->Shdl->m[i]; 10998 } 10999 else 11000 { 11001 p_SetCoeff(p,dummy,currRing); 11002 break; 11003 } 11004 } 11005 else 11006 { 11007 nDelete(&dummy); 11008 break; 11009 } 10989 11010 } 10990 pp = pNext(p); 10991 if((pp == NULL) && (nIsZero(p->coef))) 11011 if (p!=NULL) 10992 11012 { 10993 deleteInS(i, strat); 10994 } 10995 else 10996 { 11013 pp = pNext(p); 10997 11014 while(pp != NULL) 10998 11015 { 10999 if(pLmDivisibleBy(strat->S [j], pp))11016 if(pLmDivisibleBy(strat->Shdl->m[j], pp)) 11000 11017 { 11001 number dummy = n_IntMod(pp->coef, strat->S[j]->coef, currRing->cf); 11002 p_SetCoeff(pp,dummy,currRing); 11003 if(nIsZero(pp->coef)) 11018 number dummy = n_IntMod(pp->coef, strat->Shdl->m[j]->coef, currRing->cf); 11019 if (!nEqual(dummy,pp->coef)) 11004 11020 { 11005 pLmDelete(&pNext(p)); 11006 pp = pNext(p); 11021 p_SetCoeff(pp,dummy,currRing); 11022 if(nIsZero(pp->coef)) 11023 { 11024 pLmDelete(&pNext(p)); 11025 pp = pNext(p); 11026 } 11027 else 11028 { 11029 p = pp; 11030 pp = pNext(p); 11031 } 11007 11032 } 11008 11033 else 11009 11034 { 11035 nDelete(&dummy); 11010 11036 p = pp; 11011 11037 pp = pNext(p); … … 11019 11045 } 11020 11046 } 11021 if(strat->S[i]!= NULL && nIsZero(pGetCoeff(strat->S[i])))11022 {11023 if(pNext(strat->S[i]) == NULL)11024 strat->S[i]=NULL;11025 else11026 strat->S[i]=pNext(strat->S[i]);11027 }11028 11047 } 11029 11048 } … … 11031 11050 } 11032 11051 } 11033 //idSkipZeroes(strat->Shdl);11052 idSkipZeroes(strat->Shdl); 11034 11053 } 11035 11054 #endif -
kernel/GBEngine/shiftgb.cc
rdb48f3e raa7c1c2 78 78 79 79 /* assume sh and uptodeg agree TODO check */ 80 assume(sh>=0);81 80 82 81 if (sh == 0) return(p); /* the zero shift */ … … 99 98 /* p is a monomial from the ring r */ 100 99 101 if (sh == 0) return(p); /* the zero shift */ 102 103 assume(sh>=0); 100 if (sh == 0 || p == NULL || p_LmIsConstant(p,r)) return(p); 101 104 102 int L = p_mLastVblock(p,lV,r); 103 assume(L+sh>=1); 105 104 assume(L+sh<=uptodeg); 106 105 … … 118 117 { 119 118 assume(j + (sh*lV)<=r->N); 119 assume(j + (sh*lV)>=1); 120 120 s[j + (sh*lV)] = e[j]; /* actually 1 */ 121 121 } … … 175 175 /* for a monomial p, returns the number of the last block */ 176 176 /* where a nonzero exponent is sitting */ 177 if (p _LmIsConstant(p,r))177 if (p == NULL || p_LmIsConstant(p,r)) 178 178 { 179 179 return(0); … … 190 190 } 191 191 192 int p FirstVblock(poly p, int lV)192 int p_FirstVblock(poly p, int lV, const ring r) 193 193 { 194 194 /* returns the number of maximal block */ 195 195 /* appearing among the monomials of p */ 196 196 /* the 0th block is the 1st one */ 197 poly q = p; //p_Copy(p,currRing); /* need it ? */ 198 int ans = 0; 197 if (p == NULL) { 198 return 0; 199 } 200 poly q = p; 201 int ans = p_mFirstVblock(q,lV,r); 199 202 int ansnew = 0; 200 203 while (q!=NULL) 201 204 { 202 ansnew = pmFirstVblock(q,lV); 203 ans = si_min(ans,ansnew); 205 ansnew = p_mFirstVblock(q,lV,r); 206 if (ansnew > 0) { // don't count constants 207 ans = si_min(ans,ansnew); 208 } 204 209 pIter(q); 205 210 } … … 208 213 } 209 214 210 int p mFirstVblock(poly p, int lV)211 { 212 if (p IsConstantPoly(p))213 { 214 return( int(0));215 int p_mFirstVblock(poly p, int lV, const ring r) 216 { 217 if (p == NULL || p_LmIsConstant(p,r)) 218 { 219 return(0); 215 220 } 216 221 /* for a monomial p, returns the number of the first block */ 217 222 /* where a nonzero exponent is sitting */ 218 int *e=(int *)omAlloc0(( currRing->N+1)*sizeof(int));219 p_GetExpV(p,e, currRing);223 int *e=(int *)omAlloc0((r->N+1)*sizeof(int)); 224 p_GetExpV(p,e,r); 220 225 int j,b; 221 226 j = 1; 222 while ( (!e[j]) && (j<=currRing->N-1) ) j++; 223 if (j==currRing->N + 1) 224 { 225 #ifdef PDEBUG 226 PrintS("pmFirstVblock: unexpected zero exponent vector\n"); 227 #endif 228 return(j); 229 } 230 b = (int)(j/lV)+1; /* the number of the block, 1<= N <= currRing->N */ 227 while ( (!e[j]) && (j<=r->N-1) ) j++; 228 freeT(e, r->N); 229 assume(j <= r->N); 230 b = (int)(j+lV-1)/lV; /* the number of the block, 1<= b <= r->N */ 231 231 return (b); 232 232 } … … 396 396 /* r->N is a multiple of lV */ 397 397 398 if (p==NULL) return p; 398 399 int *e = (int *)omAlloc0((r->N+1)*sizeof(int)); 399 400 int b = (int)((r->N +lV-1)/lV); /* the number of blocks */ … … 464 465 465 466 #endif 467 468 // splits a frame (e.g. x(1)*y(5)) m1 into m1 and m2 (e.g. m1=x(1) and m2=y(1)) according to p 469 void k_SplitFrame(const poly p, poly &m1, poly &m2, const ring r) { 470 int lV = r->isLPring; 471 int uptodeg = r->N/lV; 472 473 number m1Coeff = pGetCoeff(m1); 474 475 int hole = lV * p_mFirstVblock(p, lV, r); 476 m2 = p_GetExp_k_n(m1, 1, hole, r); 477 m1 = p_GetExp_k_n(m1, hole, r->N, r); 478 479 p_LPshift(m2, 1 - p_mFirstVblock(m2, lV, r), uptodeg, lV, r); 480 p_SetCoeff(m1, m1Coeff, r); 481 } -
kernel/GBEngine/shiftgb.h
rdb48f3e raa7c1c2 32 32 #define pmLastVblock(p,lV) p_mLastVblock(p,lV,currRing) 33 33 34 int pFirstVblock(poly p, int lV); 35 int pmFirstVblock(poly p, int lV); 34 int p_FirstVblock(poly p, int lV, const ring r); 35 int p_mFirstVblock(poly p, int lV, const ring r); 36 37 //int pLastVblock(poly p, int lV); 38 #define pFirstVblock(p,lV) p_FirstVblock(p,lV,currRing) 39 //int pmLastVblock(poly p, int lV); 40 #define pmFirstVblock(p,lV) p_mFirstVblock(p,lV,currRing) 36 41 37 42 int isInV(poly p, int lV); … … 41 46 int itoInsert(poly p, int uptodeg, int lV, const ring r); 42 47 48 void k_SplitFrame(const poly p, poly &m1, poly &m2, const ring r); 43 49 #endif 44 50 #endif -
libpolys/coeffs/modulop.cc
ra718906 raa7c1c2 344 344 { 345 345 if (setChar) setCharacteristic( r->ch ); 346 CanonicalForm term(npInt( n,r )); 347 return term; 346 return CanonicalForm(npInt( n,r )); 348 347 } 349 348 -
libpolys/polys/Makefile.am
rdb48f3e raa7c1c2 33 33 kbuckets.cc sbuckets.cc weight.cc weight0.c simpleideals.cc matpol.cc \ 34 34 sparsmat.cc \ 35 shiftop.cc \ 35 36 ${USE_P_PROCS_STATIC_CC} ${USE_P_PROCS_DYNAMIC_CC} mod_raw.cc \ 36 37 ext_fields/algext.cc ext_fields/transext.cc \ … … 45 46 kbuckets.h sbuckets.h simpleideals.h weight.h matpol.h \ 46 47 sparsmat.h clapsing.h clapconv.h coeffrings.h flintconv.h\ 48 shiftop.h \ 47 49 ext_fields/algext.h ext_fields/transext.h mod_raw.h 48 50 -
libpolys/polys/clapconv.cc
ra718906 raa7c1c2 94 94 while ( p!=NULL ) 95 95 { 96 CanonicalForm term; 97 term=r->cf->convSingNFactoryN(pGetCoeff( p ),setChar, r->cf); 96 CanonicalForm term=r->cf->convSingNFactoryN(pGetCoeff( p ),setChar, r->cf); 98 97 if (errorreported) break; 99 98 setChar=FALSE; … … 101 100 { 102 101 if ( (e = p_GetExp( p, i, r)) != 0 ) 103 term *= power( Variable( i ), e );102 term *= CanonicalForm( Variable( i ), e ); 104 103 } 105 104 result += term; -
libpolys/polys/ext_fields/transext.cc
ra718906 raa7c1c2 1484 1484 if (nCoeff_is_Zp(ntCoeffs)) 1485 1485 { 1486 NUM (f) = p_Div_nn (NUM (f), p_GetCoeff (DEN(f),ntRing), ntRing); 1486 number d=p_GetCoeff (DEN(f),ntRing); 1487 BOOLEAN d_not_1=FALSE; 1488 if (!n_IsOne(d,ntCoeffs)) 1489 { 1490 NUM (f) = p_Div_nn (NUM (f), d, ntRing); 1491 d_not_1=TRUE; 1492 } 1487 1493 if (p_IsConstant (DEN (f), ntRing)) 1488 1494 { … … 1490 1496 DEN (f) = NULL; 1491 1497 } 1492 else 1493 { 1494 p_Norm (DEN (f),ntRing);1498 else if (d_not_1) 1499 { 1500 DEN (f) = p_Div_nn (DEN (f), d, ntRing); 1495 1501 } 1496 1502 } else if (nCoeff_is_Q(ntCoeffs)) handleNestedFractionsOverQ(f, cf); … … 2547 2553 cf->cfChineseRemainder = ntChineseRemainder; 2548 2554 cf->cfInt = ntInt; 2549 cf->cfInpNeg = ntNeg;2550 2555 cf->cfAdd = ntAdd; 2556 cf->cfInpNeg = ntNeg; 2551 2557 cf->cfSub = ntSub; 2552 2558 cf->cfMult = ntMult; -
libpolys/polys/kbuckets.cc
rdb48f3e raa7c1c2 724 724 { 725 725 pSetCoeff0(m, n_InpNeg(pGetCoeff(m),r->cf)); 726 p1= pp_Mult_mm(p,m,r);726 p1=r->p_Procs->pp_mm_Mult(p,m,r); 727 727 pSetCoeff0(m, n_InpNeg(pGetCoeff(m),r->cf)); 728 728 l1=pLength(p1); … … 766 766 else 767 767 { 768 p1 = r->p_Procs->pp_ Mult_mm(p1, m, r);768 p1 = r->p_Procs->pp_mm_Mult(p1, m, r); 769 769 } 770 770 pSetCoeff0(m, n_InpNeg(pGetCoeff(m),r->cf)); -
libpolys/polys/matpol.cc
ra718906 raa7c1c2 1775 1775 return res; 1776 1776 } 1777 1777 // -------------------------------------------------------------------------- 1778 /**************************************** 1779 * Computer Algebra System SINGULAR * 1780 ****************************************/ 1781 1782 /* 1783 * ABSTRACT: basic operation for sparse matrices: 1784 * type: ideal (of column vectors) 1785 * nrows: I->rank, ncols: IDELEMS(I) 1786 */ 1787 1788 ideal sm_Add(ideal a, ideal b, const ring R) 1789 { 1790 assume(IDELEMS(a)==IDELEMS(b)); 1791 assume(a->rank==b->rank); 1792 ideal c=idInit(IDELEMS(a),a->rank); 1793 for (int k=IDELEMS(a)-1; k>=0; k--) 1794 c->m[k] = p_Add_q(p_Copy(a->m[k], R), p_Copy(b->m[k], R), R); 1795 return c; 1796 } 1797 1798 ideal sm_Sub(ideal a, ideal b, const ring R) 1799 { 1800 assume(IDELEMS(a)==IDELEMS(b)); 1801 assume(a->rank==b->rank); 1802 ideal c=idInit(IDELEMS(a),a->rank); 1803 for (int k=IDELEMS(a)-1; k>=0; k--) 1804 c->m[k] = p_Sub(p_Copy(a->m[k], R), p_Copy(b->m[k], R), R); 1805 return c; 1806 } 1807 1808 #define SMATELEM(A,i,j,R) p_Vec2Poly(A->m[j],i+1,R) 1809 ideal sm_Mult(ideal a, ideal b, const ring R) 1810 { 1811 int i, j, k; 1812 int m = a->rank; 1813 int p = IDELEMS(a); 1814 int q = IDELEMS(b); 1815 1816 assume (IDELEMS(a)==b->rank); 1817 ideal c = idInit(m,q); 1818 1819 for (i=0; i<m; i++) 1820 { 1821 for (k=0; k<p; k++) 1822 { 1823 poly aik; 1824 if ((aik=SMATELEM(a,i,k,R))!=NULL) 1825 { 1826 for (j=0; j<q; j++) 1827 { 1828 poly bkj; 1829 if ((bkj=SMATELEM(b,k,j,R))!=NULL) 1830 { 1831 poly s = p_Mult_q(p_Copy(aik,R) /*SMATELEM(a,i,k)*/, bkj/*SMATELEM(b,k,j)*/, R); 1832 if (s!=NULL) p_SetComp(s,i+1,R); 1833 c->m[j]=p_Add_q(c->m[j],s, R); 1834 } 1835 } 1836 p_Delete(&aik,R); 1837 } 1838 } 1839 } 1840 for(i=m-1;i>=0;i--) p_Normalize(c->m[i], R); 1841 return c; 1842 } 1843 1844 ideal sm_Transp(ideal a, const ring R) 1845 { 1846 int i, j, r = a->rank, c = IDELEMS(a); 1847 poly *p; 1848 ideal b = idInit(c,r); 1849 poly *m=(poly*)omAlloc0(r*sizeof(poly)); 1850 for(i=0;i<c;i++) 1851 { 1852 p_Vec2Polys(a->m[i],&m,&r,R);// m has A[1..r,i+1] 1853 if (r>a->rank) Print("wrong rang (%d,%ld) in sm_Transp\n",r,a->rank); 1854 for(j=0;j<r;j++) 1855 { 1856 // m[j] is A[j+1,i] 1857 p_SetCompP(m[j],i+1,R); 1858 b->m[j]=p_Add_q(b->m[j],m[j],R); 1859 } 1860 } 1861 omFreeSize(m,a->rank*sizeof(poly)); 1862 return b; 1863 } 1864 1865 /*2 1866 *returns the trace of matrix a 1867 */ 1868 poly sm_Trace ( ideal a, const ring R) 1869 { 1870 int i; 1871 int n = (IDELEMS(a)<a->rank) ? IDELEMS(a) : a->rank; 1872 poly t = NULL; 1873 1874 for (i=0; i<=n; i++) 1875 t = p_Add_q(t, p_Copy(SMATELEM(a,i,i,R), R), R); 1876 return t; 1877 } 1878 1879 int sm_Compare(ideal a, ideal b, const ring R) 1880 { 1881 if (IDELEMS(a)<IDELEMS(b)) return -1; 1882 else if (IDELEMS(a)>IDELEMS(b)) return 1; 1883 if ((a->rank)<(b->rank)) return -1; 1884 else if ((a->rank)<(b->rank)) return 1; 1885 1886 unsigned ii=IDELEMS(a)-1; 1887 unsigned j=0; 1888 int r=0; 1889 while (j<=ii) 1890 { 1891 r=p_Compare(a->m[j],b->m[j],R); 1892 if (r!=0) return r; 1893 j++; 1894 } 1895 return r; 1896 } 1897 -
libpolys/polys/matpol.h
ra718906 raa7c1c2 95 95 96 96 ideal mp_Tensor(ideal A, ideal B, const ring r); 97 // ------------------------------------------------------- 98 ideal sm_Add(ideal a, ideal b, const ring R); 99 ideal sm_Sub(ideal a, ideal b, const ring R); 100 ideal sm_Mult(ideal a, ideal b, const ring R); 101 ideal sm_Transp(ideal a, const ring R); 102 poly sm_Trace ( ideal a, const ring R); 103 int sm_Compare(ideal a, ideal b, const ring R); 97 104 #endif/* MATPOL_H */ -
libpolys/polys/monomials/p_polys.cc
ra718906 raa7c1c2 3547 3547 } 3548 3548 3549 poly p_Vec2Poly(poly v, int k, const ring r) 3550 { 3551 poly h; 3552 poly res=NULL; 3553 3554 while (v!=NULL) 3555 { 3556 if (__p_GetComp(v,r)==k) 3557 { 3558 h=p_Head(v,r); 3559 p_SetComp(h,0,r); 3560 pNext(h)=res;res=h; 3561 } 3562 pIter(v); 3563 } 3564 if (res!=NULL) res=pReverse(res); 3565 return res; 3566 } 3567 3549 3568 /// julia: vector to already allocated array (len=p_MaxComp(v,r)) 3550 3569 void p_Vec2Array(poly v, poly *p, int len, const ring r) -
libpolys/polys/monomials/p_polys.h
ra718906 raa7c1c2 97 97 98 98 void p_Vec2Polys(poly v, poly**p, int *len, const ring r); 99 poly p_Vec2Poly(poly v, int k, const ring r); 99 100 100 101 /// julia: vector to already allocated array (len=p_MaxComp(v,r)) … … 881 882 882 883 // copys monomials of p, allocates new monomials from bin, 883 // deletes monom oals of p884 // deletes monomials of p 884 885 static inline poly p_ShallowCopyDelete(poly p, const ring r, omBin bin) 885 886 { … … 1653 1654 { 1654 1655 if (p2==NULL) 1656 { 1657 if (p1==NULL) return 0; 1655 1658 return 1; 1659 } 1656 1660 if (p1==NULL) 1657 1661 return -1; 1658 1662 return p_LmCmp(p1,p2,r); 1663 } 1664 1665 static inline int p_CmpPolys(poly p1, poly p2, ring r) 1666 { 1667 if (p2==NULL) 1668 { 1669 if (p1==NULL) return 0; 1670 return 1; 1671 } 1672 if (p1==NULL) 1673 return -1; 1674 return p_ComparePolys(p1,p2,r); 1659 1675 } 1660 1676 -
libpolys/polys/monomials/ring.cc
ra718906 raa7c1c2 1887 1887 (rHasSimpleOrderAA(r) && 1888 1888 (rOrder_is_DegOrdering((rRingOrder_t)r->order[1]) || 1889 1889 ((r->order[1]!=0) && 1890 1890 rOrder_is_DegOrdering((rRingOrder_t)r->order[2])))))); 1891 1891 } … … 2978 2978 { 2979 2979 r->VectorOut = (r->order[0] == ringorder_c); 2980 r->CanShortOut = TRUE; 2981 { 2980 if (rIsNCRing(r)) 2981 r->CanShortOut=FALSE; 2982 else 2983 { 2984 r->CanShortOut = TRUE; 2982 2985 int i; 2983 2986 if (rParameter(r)!=NULL) -
libpolys/polys/templates/p_Procs_Set.h
rdb48f3e raa7c1c2 16 16 #include "reporter/reporter.h" 17 17 #include "misc/auxiliary.h" 18 #include "shiftop.h" 18 19 19 20 // extract p_Procs properties from a ring … … 165 166 } 166 167 #endif 167 _p_procs->p_mm_Mult=_p_procs->p_Mult_mm; 168 _p_procs->pp_mm_Mult=_p_procs->pp_Mult_mm; 168 if (r->isLPring) { 169 _p_procs->pp_Mult_mm = shift_pp_Mult_mm; 170 _p_procs->p_Mult_mm = shift_p_Mult_mm; 171 _p_procs->p_mm_Mult = shift_p_mm_Mult; 172 _p_procs->pp_mm_Mult = shift_pp_mm_Mult; 173 _p_procs->p_Minus_mm_Mult_qq = shift_p_Minus_mm_Mult_qq; 174 // Unsupported 175 _p_procs->pp_Mult_mm_Noether = shift_pp_Mult_mm_Noether_STUB; 176 _p_procs->pp_Mult_Coeff_mm_DivSelect = shift_pp_Mult_Coeff_mm_DivSelect_STUB; 177 _p_procs->pp_Mult_Coeff_mm_DivSelectMult = shift_pp_Mult_Coeff_mm_DivSelectMult_STUB; 178 } else { 179 _p_procs->p_mm_Mult=_p_procs->p_Mult_mm; 180 _p_procs->pp_mm_Mult=_p_procs->pp_Mult_mm; 181 } 169 182 CheckProc(p_Copy); 170 183 CheckProc(p_Delete);
Note: See TracChangeset
for help on using the changeset viewer.