Changeset 36ebfa in git
- Timestamp:
- Sep 12, 2012, 1:14:59 PM (10 years ago)
- Branches:
- (u'jengelh-datetime', 'ceac47cbc86fe4a15902392bdbb9bd2ae0ea02c6')(u'spielwiese', 'ad2543eab51733612ba7d118afc77edca719600e')
- Children:
- 2ed48b369bc0d2a3c22dd1fc1ff4b91704e73ec6d2f30f8ec6d1db506b36602c98b98bf5f86b1c47
- Parents:
- a497a11b6125be1576a34c48429ba326cafa35e2d1fbbf7c96369bd83b0fd1a804e99dfb09dd9e5d
- Files:
-
- 1 added
- 44 edited
Legend:
- Unmodified
- Added
- Removed
-
CMakeLists.txt
rd1fbbf r36ebfa 119 119 #endif (${CMAKE_BUILD_TYPE} MATCHES "Release") 120 120 121 #set(CMAKE_CXX_FLAGS "-W -Wall -Wextra -W no-non-virtual-dtor")121 #set(CMAKE_CXX_FLAGS "-W -Wall -Wextra -Winline -Wno-non-virtual-dtor") 122 122 set(CMAKE_C_FLAGS "-w -pipe ") 123 123 set(CMAKE_CXX_FLAGS "-w -pipe ") #--no-rtti -
Singular/Makefile.am
rd1fbbf r36ebfa 29 29 libSingulardir = $(libdir)/singular 30 30 31 libSingular_la_CFLAGS = -O3 -fomit-frame-pointer -Wextra -W all -Wno-long-long ${PIPE} $(WARNCFLAGS)32 libSingular_g_la_CFLAGS = -g -Wextra -W all -Wno-long-long -pedantic ${PIPE} $(WARNCFLAGS)33 34 libSingular_la_CXXFLAGS = -O3 -fomit-frame-pointer -Wextra -W all -Wno-long-long ${PIPE} $(CXXTEMPLFLAGS) $(WARNCFLAGS)35 libSingular_g_la_CXXFLAGS = -g -Wextra -W all -Wno-long-long -pedantic ${PIPE} $(CXXTEMPLFLAGS) $(WARNCFLAGS)31 libSingular_la_CFLAGS = -O3 -fomit-frame-pointer -Wextra -Winline -Wall -Wno-long-long ${PIPE} $(WARNCFLAGS) 32 libSingular_g_la_CFLAGS = -g -Wextra -Winline -Wall -Wno-long-long -pedantic ${PIPE} $(WARNCFLAGS) 33 34 libSingular_la_CXXFLAGS = -O3 -fomit-frame-pointer -Wextra -Winline -Wall -Wno-long-long ${PIPE} $(CXXTEMPLFLAGS) $(WARNCFLAGS) 35 libSingular_g_la_CXXFLAGS = -g -Wextra -Winline -Wall -Wno-long-long -pedantic ${PIPE} $(CXXTEMPLFLAGS) $(WARNCFLAGS) 36 36 # -fdiagnostics-show-option 37 37 … … 174 174 gentable1_SOURCES = gentable.cc grammar.h tok.h table.h 175 175 gentable1_CFLAGS = -O3 -fomit-frame-pointer ${PIPE} 176 gentable1_CXXFLAGS = -O3 -fomit-frame-pointer -Wextra -W all -Wno-long-long ${PIPE} $(CXXTEMPLFLAGS)176 gentable1_CXXFLAGS = -O3 -fomit-frame-pointer -Wextra -Winline -Wall -Wno-long-long ${PIPE} $(CXXTEMPLFLAGS) 177 177 gentable1_CPPFLAGS = ${AM_CPPFLAGS} -DHAVE_CONFIG_H -DNDEBUG -DOM_NDEBUG 178 178 179 179 feOptGen_SOURCES = feOptGen.cc feOptGen.h 180 feOptGen_CXXFLAGS = -O3 -fomit-frame-pointer -Wextra -W all -Wno-long-long ${PIPE} $(CXXTEMPLFLAGS)180 feOptGen_CXXFLAGS = -O3 -fomit-frame-pointer -Wextra -Winline -Wall -Wno-long-long ${PIPE} $(CXXTEMPLFLAGS) 181 181 feOptGen_CPPFLAGS = ${AM_CPPFLAGS} -DHAVE_CONFIG_H -DNDEBUG -DOM_NDEBUG 182 182 183 183 feOptES_SOURCES = feOptGen.cc feOptGen.h 184 feOptES_CXXFLAGS = -O3 -fomit-frame-pointer -Wextra -W all -Wno-long-long ${PIPE} $(CXXTEMPLFLAGS)184 feOptES_CXXFLAGS = -O3 -fomit-frame-pointer -Wextra -Winline -Wall -Wno-long-long ${PIPE} $(CXXTEMPLFLAGS) 185 185 feOptES_CPPFLAGS = ${AM_CPPFLAGS} -DHAVE_CONFIG_H -DNDEBUG -DOM_NDEBUG -DESINGULAR 186 186 187 187 feOptTS_SOURCES = feOptGen.cc feOptGen.h 188 feOptTS_CXXFLAGS = -O3 -fomit-frame-pointer -Wextra -W all -Wno-long-long ${PIPE} $(CXXTEMPLFLAGS)188 feOptTS_CXXFLAGS = -O3 -fomit-frame-pointer -Wextra -Winline -Wall -Wno-long-long ${PIPE} $(CXXTEMPLFLAGS) 189 189 feOptTS_CPPFLAGS = ${AM_CPPFLAGS} -DHAVE_CONFIG_H -DNDEBUG -DOM_NDEBUG -DTSINGULAR 190 190 … … 212 212 Singularg_CFLAGS = -g ${PIPE} 213 213 214 Singular_CXXFLAGS = -O3 -fomit-frame-pointer -Wextra -W all -Wno-long-long ${PIPE} $(CXXTEMPLFLAGS)215 Singularg_CXXFLAGS = -g -Wextra -W all -Wno-long-long -pedantic ${PIPE} $(CXXTEMPLFLAGS)214 Singular_CXXFLAGS = -O3 -fomit-frame-pointer -Wextra -Winline -Wall -Wno-long-long ${PIPE} $(CXXTEMPLFLAGS) 215 Singularg_CXXFLAGS = -g -Wextra -Winline -Wall -Wno-long-long -pedantic ${PIPE} $(CXXTEMPLFLAGS) 216 216 217 217 nodist_Singular_SOURCES = libSingular.la … … 234 234 Singulardg_CFLAGS = -g ${PIPE} 235 235 236 Singulard_CXXFLAGS = -O3 -fomit-frame-pointer -Wextra -W all -Wno-long-long ${PIPE} $(CXXTEMPLFLAGS)237 Singulardg_CXXFLAGS = -g -Wextra -W all -Wno-long-long -pedantic ${PIPE} $(CXXTEMPLFLAGS)236 Singulard_CXXFLAGS = -O3 -fomit-frame-pointer -Wextra -Winline -Wall -Wno-long-long ${PIPE} $(CXXTEMPLFLAGS) 237 Singulardg_CXXFLAGS = -g -Wextra -Winline -Wall -Wno-long-long -pedantic ${PIPE} $(CXXTEMPLFLAGS) 238 238 239 239 Singulard_SOURCES = tesths.cc fegetopt.c fegetopt.h utils.cc utils.h … … 256 256 257 257 ESingular_CFLAGS = -O3 -fomit-frame-pointer ${PIPE} 258 ESingular_CXXFLAGS = -O3 -fomit-frame-pointer -Wextra -W all -Wno-long-long ${PIPE} $(CXXTEMPLFLAGS)258 ESingular_CXXFLAGS = -O3 -fomit-frame-pointer -Wextra -Winline -Wall -Wno-long-long ${PIPE} $(CXXTEMPLFLAGS) 259 259 ESingular_CPPFLAGS = ${AM_CPPFLAGS} -DHAVE_CONFIG_H -DNDEBUG -DOM_NDEBUG -DESINGULAR -DPROTO 260 260 ESingular_LDFLAGS = -static ${AMLDFLAGS} … … 266 266 267 267 TSingular_CFLAGS = -O3 -fomit-frame-pointer ${PIPE} 268 TSingular_CXXFLAGS = -O3 -fomit-frame-pointer -Wextra -W all -Wno-long-long ${PIPE} $(CXXTEMPLFLAGS)268 TSingular_CXXFLAGS = -O3 -fomit-frame-pointer -Wextra -Winline -Wall -Wno-long-long ${PIPE} $(CXXTEMPLFLAGS) 269 269 TSingular_CPPFLAGS = ${AM_CPPFLAGS} -DHAVE_CONFIG_H -DNDEBUG -DOM_NDEBUG -DTSINGULAR -DPROTO 270 270 TSingular_LDFLAGS = -static ${AMLDFLAGS} … … 278 278 libparse_CPPFLAGS = ${AM_CPPFLAGS} -DHAVE_CONFIG_H -DNDEBUG -DOM_NDEBUG -DSTANDALONE_PARSER 279 279 libparse_CFLAGS = -O3 -fomit-frame-pointer ${PIPE} 280 libparse_CXXFLAGS = -O3 -fomit-frame-pointer -Wextra -W all -Wno-long-long ${PIPE} $(CXXTEMPLFLAGS)280 libparse_CXXFLAGS = -O3 -fomit-frame-pointer -Wextra -Winline -Wall -Wno-long-long ${PIPE} $(CXXTEMPLFLAGS) 281 281 282 282 libparse_SOURCES = libparse.cc fegetopt.c fegetopt.h utils.cc utils.h … … 325 325 test_s_g_CFLAGS = ${PIPE} 326 326 327 test_s_r_CXXFLAGS = -O3 -fomit-frame-pointer -Wextra -W all -Wno-long-long ${PIPE} $(CXXTEMPLFLAGS)328 test_s_g_CXXFLAGS = -g -Wextra -W all -Wno-long-long -pedantic ${PIPE} $(CXXTEMPLFLAGS)327 test_s_r_CXXFLAGS = -O3 -fomit-frame-pointer -Wextra -Winline -Wall -Wno-long-long ${PIPE} $(CXXTEMPLFLAGS) 328 test_s_g_CXXFLAGS = -g -Wextra -Winline -Wall -Wno-long-long -pedantic ${PIPE} $(CXXTEMPLFLAGS) 329 329 330 330 test_s_r_SOURCES = test.cc … … 346 346 test_d_g_CFLAGS = ${PIPE} 347 347 348 test_d_r_CXXFLAGS = -O3 -fomit-frame-pointer -Wextra -W all -Wno-long-long ${PIPE} $(CXXTEMPLFLAGS)349 test_d_g_CXXFLAGS = -g -Wextra -W all -Wno-long-long -pedantic ${PIPE} $(CXXTEMPLFLAGS)348 test_d_r_CXXFLAGS = -O3 -fomit-frame-pointer -Wextra -Winline -Wall -Wno-long-long ${PIPE} $(CXXTEMPLFLAGS) 349 test_d_g_CXXFLAGS = -g -Wextra -Winline -Wall -Wno-long-long -pedantic ${PIPE} $(CXXTEMPLFLAGS) 350 350 351 351 test_d_r_SOURCES = test.cc -
Singular/blackbox.cc
ra497a1 r36ebfa 61 61 { 62 62 assume( bb->Typ() > MAX_TOK ); // it IS a blackbox type, right?! 63 63 64 64 if( op > 127 ) 65 65 Werror("'%s' of type %s(%d) for op %s(%d) not implemented", … … 108 108 } 109 109 110 BOOLEAN blackbox_default_Check(blackbox * b, void *d)110 BOOLEAN blackbox_default_Check(blackbox *,leftv,leftv) 111 111 { 112 112 return FALSE; … … 149 149 if (bb->blackbox_Op3==NULL) bb->blackbox_Op3=blackbox_default_Op3; 150 150 if (bb->blackbox_OpM==NULL) bb->blackbox_OpM=blackbox_default_OpM; 151 if (bb->blackbox_Check ==NULL) bb->blackbox_Check=blackbox_default_Check;151 if (bb->blackbox_CheckAssign==NULL) bb->blackbox_CheckAssign=blackbox_default_Check; 152 152 if (bb->blackbox_serialize==NULL) bb->blackbox_serialize=blackbox_default_serialize; 153 153 if (bb->blackbox_deserialize==NULL) bb->blackbox_deserialize=blackbox_default_deserialize; -
Singular/blackbox.h
ra497a1 r36ebfa 39 39 /// interpreter: operations with undefined number of operands 40 40 BOOLEAN (*blackbox_OpM)(int op,leftv l, leftv r); 41 /// check internal structure42 BOOLEAN (*blackbox_Check )(blackbox *b,void *d);41 /// is an assign of r to l (part of b) impossible? 42 BOOLEAN (*blackbox_CheckAssign)(blackbox *b,leftv l, leftv r); 43 43 /// serialize 44 44 BOOLEAN (*blackbox_serialize)(blackbox *b,void *d, si_link f); -
Singular/countedref.cc
ra497a1 r36ebfa 26 26 #include "ipshell.h" 27 27 28 class CountedRefEnv {29 typedef CountedRefEnv self;30 31 public:32 33 static int& ref_id() {34 static int g_ref_id = 0;35 return g_ref_id;36 }37 38 static int& sh_id() {39 static int g_sh_id = 0;40 return g_sh_id;41 }42 };43 28 44 29 /// Overloading ring destruction … … 198 183 } 199 184 185 /// We use the function pointer as a marker of reference types 186 /// for CountedRef::is_ref(leftv), see the latter for details 187 BOOLEAN countedref_CheckAssign(blackbox *b, leftv L, leftv R) 188 { 189 return FALSE; 190 } 191 200 192 201 193 class CountedRef { … … 213 205 214 206 /// Check whether argument is already a reference type 207 /// @note We check for the function pointer @c countedref_CheckAssign here, 208 /// that we (ab-)use as a unique marker. This avoids to check a bunch of 209 /// of runtime-varying @c typ IDs for identifying reference-like types. 215 210 static BOOLEAN is_ref(leftv arg) { 216 211 int typ = arg->Typ(); 217 return ((typ==CountedRefEnv::ref_id()) ||(typ==CountedRefEnv::sh_id()) ); 218 // return ((typ > MAX_TOK) && 219 // (getBlackboxStuff(typ)->blackbox_Init == countedref_Init)); 212 return ((typ > MAX_TOK) && 213 (getBlackboxStuff(typ)->blackbox_CheckAssign == countedref_CheckAssign)); 220 214 } 221 215 … … 681 675 } 682 676 683 void countedref_ init()677 void countedref_reference_load() 684 678 { 685 679 blackbox *bbx = (blackbox*)omAlloc0(sizeof(blackbox)); 680 bbx->blackbox_CheckAssign = countedref_CheckAssign; 686 681 bbx->blackbox_destroy = countedref_destroy; 687 682 bbx->blackbox_String = countedref_String; … … 697 692 bbx->blackbox_deserialize = countedref_deserialize; 698 693 bbx->data = omAlloc0(newstruct_desc_size()); 699 CountedRefEnv::ref_id()=setBlackboxStuff(bbx, "reference"); 700 701 /// The @c shared type is "inherited" from @c reference. 702 /// It just uses another constructor (to make its own copy of the). 703 blackbox *bbxshared = 704 (blackbox*)memcpy(omAlloc(sizeof(blackbox)), bbx, sizeof(blackbox)); 694 setBlackboxStuff(bbx, "reference"); 695 } 696 697 void countedref_shared_load() 698 { 699 blackbox *bbxshared = (blackbox*)omAlloc0(sizeof(blackbox)); 700 bbxshared->blackbox_String = countedref_String; 701 bbxshared->blackbox_Print = countedref_Print; 702 bbxshared->blackbox_Copy = countedref_Copy; 703 bbxshared->blackbox_Op3 = countedref_Op3; 704 bbxshared->blackbox_OpM = countedref_OpM; 705 bbxshared->blackbox_serialize = countedref_serialize; 706 bbxshared->blackbox_deserialize = countedref_deserialize; 707 708 bbxshared->blackbox_CheckAssign = countedref_CheckAssign; 705 709 bbxshared->blackbox_Assign = countedref_AssignShared; 706 710 bbxshared->blackbox_destroy = countedref_destroyShared; … … 709 713 bbxshared->blackbox_Init = countedref_InitShared; 710 714 bbxshared->data = omAlloc0(newstruct_desc_size()); 711 CountedRefEnv::sh_id()=setBlackboxStuff(bbxshared, "shared"); 712 } 713 714 #ifdef HAVE_DYNAMIC_COUNTEDREF 715 extern "C" { void mod_init() { countedref_init(); } } 716 #endif 717 715 setBlackboxStuff(bbxshared, "shared"); 716 } 717 718 -
Singular/countedref.h
ra497a1 r36ebfa 444 444 }; 445 445 446 /// Initialize @c blackbox types 'reference' and 'shared' 447 void countedref_init(); 446 /// Initialize @c blackbox types 'reference' and 'shared', or both 447 void countedref_reference_load(); 448 void countedref_shared_load(); 449 450 inline void 451 countedref_init() 452 { 453 countedref_reference_load(); 454 countedref_shared_load(); 455 } 448 456 449 457 -
Singular/extra.cc
ra497a1 r36ebfa 2927 2927 else 2928 2928 #endif 2929 2930 /*==== countedref: reference and shared ====*/ 2931 if (strcmp(sys_cmd, "shared") == 0) 2932 { 2933 #ifndef SI_COUNTEDREF_AUTOLOAD 2934 void countedref_shared_load(); 2935 countedref_shared_load(); 2936 #endif 2937 res->rtyp = NONE; 2938 return FALSE; 2939 } 2940 else if (strcmp(sys_cmd, "reference") == 0) 2941 { 2942 #ifndef SI_COUNTEDREF_AUTOLOAD 2943 void countedref_reference_load(); 2944 countedref_reference_load(); 2945 #endif 2946 res->rtyp = NONE; 2947 return FALSE; 2948 } 2949 else 2950 2951 2929 2952 /*==================== DLL =================*/ 2930 2953 #ifdef ix86_Win -
Singular/ipassign.cc
ra497a1 r36ebfa 1510 1510 { 1511 1511 bb=getBlackboxStuff(bt); 1512 like_lists=BB_LIKE_LIST(bb); 1512 like_lists=BB_LIKE_LIST(bb); // bb like a list 1513 1513 } 1514 1514 else if (((l->rtyp==IDHDL) && (IDTYP((idhdl)l->data)==LIST_CMD)) 1515 1515 || (l->rtyp==LIST_CMD)) 1516 1516 { 1517 like_lists=2; 1517 like_lists=2; // bb in a list 1518 1518 } 1519 1519 if(like_lists) 1520 1520 { 1521 1521 if (TEST_V_ALLWARN) PrintS("assign list[..]=...or similiar\n"); 1522 if (like_lists==1) 1523 { 1524 // check blackbox/newtype type: 1525 if(bb->blackbox_CheckAssign(bb,l,r)) return TRUE; 1526 } 1522 1527 b=jiAssign_list(l,r); 1523 1528 if((!b) && (like_lists==2)) … … 1538 1543 omFreeBin((ADDRESS)l->e, sSubexpr_bin); 1539 1544 l->e=h; 1540 }1541 if ((!b) && (like_lists==1))1542 {1543 // check blackbox/newtype type:1544 if(bb->blackbox_Check(bb,l->Data())) return TRUE;1545 1545 } 1546 1546 return b; -
Singular/newstruct.cc
ra497a1 r36ebfa 39 39 }; 40 40 41 int newstruct_desc_size() 41 int newstruct_desc_size() 42 42 { 43 43 return sizeof(newstruct_desc_s); … … 441 441 } 442 442 newstruct_proc p=nt->procs; 443 443 444 444 while((p!=NULL) &&( (p->t!=op) || (p->args!=4) )) p=p->next; 445 445 … … 510 510 } 511 511 512 BOOLEAN newstruct_Check(blackbox *b, void *d) 512 BOOLEAN newstruct_CheckAssign(blackbox *b, leftv L, leftv R) 513 { 514 int lt=L->Typ(); 515 int rt=R->Typ(); 516 if ((lt!=DEF_CMD)&&(lt!=rt)) 517 { 518 Werror("can not assign %s(%d) to member of type %s(%d)", 519 Tok2Cmdname(rt),rt, 520 Tok2Cmdname(lt),lt); 521 return TRUE; 522 } 523 return FALSE; 524 } 525 526 /* check internal structure: 527 * BOOLEAN newstruct_Check(blackbox *b, void *d) 513 528 { 514 529 newstruct_desc n=(newstruct_desc)b->data; … … 529 544 return FALSE; 530 545 } 546 */ 531 547 532 548 BOOLEAN newstruct_serialize(blackbox *b, void *d, si_link f) … … 598 614 //b->blackbox_Op3=blackbox_default_Op3; 599 615 b->blackbox_OpM=newstruct_OpM; 600 b->blackbox_Check =newstruct_Check;616 b->blackbox_CheckAssign=newstruct_CheckAssign; 601 617 b->blackbox_serialize=newstruct_serialize; 602 618 b->blackbox_deserialize=newstruct_deserialize; -
Singular/tesths.cc
ra497a1 r36ebfa 170 170 pyobject_setup(); 171 171 #endif 172 #ifdef SI_COUNTEDREF_AUTOLOAD 172 173 countedref_init(); 174 #endif 173 175 #ifdef HAVE_FANS 174 176 bbcone_setup(); -
Tst/Short/countedref_s.res.gz.uu
ra497a1 r36ebfa 1 1 begin 644 countedref_s.res.gz 2 M'XL(" *.82%```V-O=6YT961R969?<RYR97,`S7W_<^,X<N_O_BL85ZK.7NN\2 M'XL("$5E2E```V-O=6YT961R969?<RYR97,`S7W_<^,X<N_O_BL85ZK.7NN\ 3 3 M!$B`Q/BD5Y>D4I6J5TDJR6];E[%LTV/MR))&DF?LN<K__KH!$OT!2<GVOIM] 4 4 M;VK7(H%&H]%H-+H;7_B?__5/__*O69:I6?;SS]D_+Y;-A^QV_;3:-W?;YO[C 5 5 M[G*_VY_\9PND+QGHOYK=?I?=K[<9033;9G7;9//57;9[F&^;N^QNOI]G^Y=- 6 6 MLXOEBLOL?__+/V2GA.MRN;@YO8HYY2RCQ(^+U6)_=GYUPK_9;)92L&J^7>[V 7 M<R'#S++X;" _EN8+G&IZ=/*L<GA4\AZ9)@QZ>'IZFJHJ4*FK#8K7//J\_KY/T8 M 4HA1YK*/@<$%UGHF[_;;Q>K3&>>?2U[%!(QGU;[J+E55,</-#I71T$X-[=349 M 3H;T:&)B(6W0Y66/0*E/$^.A?8N'139ML740%C!1BQ@FK:H&`#<"4.2S6#_E10 M )?472@H7U!"&RK;3?/(\N=M$&@IH34&M63T]WC3;$6S4&L_6008THF@;<1&:11 M 690Q@QHRGN%"QD^A:;IV74Z9"]Y2!;P_*4TP>2Q=ZIGGZ(7**3V25!9M;;UD12 M $+[22"^7,"K**@CN^N;7;*I<9%-98V=N?#8#"8"7KOF>.N/FC/,GV2F3=CHY13 M _?*M^?+M5*3-@+09Q8+\LG]8KSYNGU9GIW?-??;XLMDRKW^:;S_MSC]D_BWC14 M %\3BQV!;85L"<HMA+E%T_[2Z_;B:/S:(J`1RB"V?%\MEYANPP08:Z&=3O8*=15 M 7FY>_KQZ^;?]0[/]UUY]]=M)`UUD<RZV7.S"T)Z$/T$:.Q`8NI;8PYS_]H7_16 M (_Y?G<!;A`+IM^7(8+=F-AQUEEAQ>C<GE'?SF%8%49QRI:$^TJ7_*[NFUEV?17 M L6([)XFY#H/U.EOLLM5ZG^V>-IOUEG1W`&Z>-\TMO852#,^_1_(>YS%[NZ4I18 M 9GU[^[3E:66QRNCUIJ%YI\D"B<O%JB$R/V37*9W7L0DDXZ</BV9+M/-/3'>S19 M (6.J?(0Q%:B<BCJ`Y[7U?:<:X_B)(,#]J@P#;]4\K;XW#RMJ(`R_*M&E]*2R20 M :0<I0+8'I`D)PPH$=1(/,$HLIFD.:-J*I.Z,<R>,@_\4K/'<2=;^WP'6.8]Y21 M AIPJ&U'5((6U?BLJ8@7+=K;D?T2W%W15350A\EV70RZ$`E<G-%/^]!.E4?/(22 M +&!-S]D__13+!@X*2T`Z.TYZ">6*_]_)9VU(/I'.*)UUZ-VNW_X_)=\&\ELJ23 M A?AJUDX'-+3H)Z:#V-6@[%Q^&9K/K.`_Q=7)+^HO'Y@8&F^_Z/:Q.&%A.@%!24 M <C`$G9\B&`65G<IH<L5OQAXD\&/SO-_.;_<LVOJ\ZPS(B#W@Q3'R_VU,=.6'25 M !%E;2V2F,P,BU-^>"#,D0B$1,!TZ,*4=S6[=0([#>*)E$#N'@WA)CV$0=P`J26 M %\-'Y:1+&`3Z)W://HE09`:=,AAGG5YE)]US!"@`9:MHF^6>*PZ04CGQEG+(27 M ;(HIU-`6:EH(7`48Z\-$%D*D-Y#^,;HJ'S[LFOUBWSR><=F)GHBB4^QWO(Y128 M >2^LWP+V34YWGQ>;[-N6T)]>_1QAIO75B>3$`L4H&F+3R(A5RLS>0IKU4^G#29 M PD^E#XN87D4U/V6Q2!I-NF"Y]#1$YK//XM.FT8=2.N>TL?IIZ!8=)1VPJ`/%30 M WDQ\+N"Y1$=L,]]ZP5@B-]B7X8RKDSC9*_9>.`W\.Z6K0[2I,>)J(,Y%<X&131 M CI@+JH"!4<@DJ\2YR<B[.7N>O$R^GT^6F[%)469$!9Z/8L]GLUZ^9!MJ^O/%32 M R\7WV*3"`)A-.!7&[D9`85`4-"@V7DX\NL@U=GBZYS)O"?]":`+E@>XN'SJO33 M U!T^K\7^HZ."--A=L]HO[LE@\\KN?KM^S+QRHT'.V$_>I?>H(E)\OJ;K6#=P34 M JA1O0;$318/8NY];$>22!6.DZ26Q)S!YPVP6J>DY5YN.L1M@!;"-_:>NVB]235 M K5$1_51)JH:"1=)]L1H!+@%8/$1E;&!^=A%*_89.>%<?&-OV0:PP]H4!&3,U36 M D/6[T%4C73W"H(=L/BH85LWZ]'H)N:@B!/66]S^[_"Z=)##&+[H1?O?:"+=E37 M *Q'WTV=]\:(OONN+='!;&-S6MCK@>3-]%HA.:%\VTQ=)K=O4[YLI8$NF]OL@38 M 7M((=IDD^YD>I\\B>^P[2>X+Y[Y`KL;<[YS['7*)/;NG&S(U[B?/$^JKSV>,39 M X)SYM"'^%]3PXGN$+B,TS[S$S<T!0#,*R)@'H&(.J:JZ_`V=574L;56P-,[U40 M O)YJ*BVO`T\K+TE1T]2J%9<OTTZMCM;_!>JO=8?I!RO86@?+LI*QP][?:-M;41 M C\^W^,<.[;HUNKDJH<O\7CPQ0YZ`1-4D4:OFVVZ_?2)+_/3Q)3QQF(E-V<7$42 M 6[2_2N1(@6.EV+'JBG"T-`9@E0OATZ=+#LV"&0-.E`I.E(=*0H**O:A0&,*A43 M BCVD`"Z`,),XV[IDK3CO@I)(X2N`]\&R'>I"Y[JDRX4X=3K/^Y`Z5Y<]6G0N44 M -J#.D^EPUQI^79,ZH-">8/QU:>9RF&9'TJ@A+5H.W':IU#4MG(H^C&;W(%#Z45 M ZS0_65"!+D>)V:=A$4(K:`JO-P2[FOZL[_GOKO.^.A>,;.TH'QH6(G2Z$+%<46 M =SZ9H))B%HI1ZP(P6;OC#EK?XM6JAO(.RB=FO_8F/F1!-[-!GU#6U=O]>A+X47 M 7<=WY]^+^![)T:3SXLAXE&;"$H=F[^!Q1Z(F/<C>`"7]*OZ@9F<`.B`,UJX'48 M 'G?">%T!:EEVTEJB'[K(TPY9T4/LD(`ZXH-5#LV.0(#V/4+TD2!%IA;%+$%!49 M ,"3G-"?<K9O=Z@^D0+ZMMY]CJ??H+\+](82>CB/WP23V0#<\^^R;YU9S7B^N50 M (Y4@F$4BF/P4?/:T'F%%&_]<[KT^JR0#>,Y^2>"1B$YH<O3L-/LH*;/[D"T@51 M K-%H7J/I$ZNSJ?2'0.J.3MU3O+HLCM>LI&K@$RSFZ+*G8+>[YDO?U=9E!06\52 M AF4PR099A,4:S8LU'#Z^76]>@HYHFQ%+@K>AV=MH(3M9E%"Y9E>C]7=;H!&753 M 5QL#^&R,+*EJ&K5:*<UBWZ!=5MX]J`K"3PD4Z"!>8&'0X^JKC%1;GC`)GN.)54 M TFL6QB"ONZ08J^,80=78LB="O@T!6P<"#+'!&R=J2$/*Q*QM-3M(@G)C-`!'55 M K.>(YR'QV?DXKE1?^=B+<H0#=#(L>^CJ2/NA\AA2U;`(HBMQKG5%0MU)B+?H56 M &2O/8-RG$0CF(S:[I?==U_O5I)XXZ7U8Z-!5Z'TW1FL]0FH-PYU7.;@L\]Y$57 M [&Q$'\)HQC!"XVMH?&VBK&N99.K!`D]!"B:!J,(J!Z4TCYO]BT<BM4';(=JN58 M .=KNO<X$EU,1URO6[_SK?+&<WRP;GB`Z*_AVO6(%_SY#F"IMUS^*:`EK!TK%59 M %<*8$@<X:#<V07%WR=0#0SA/<P0=(/Y,(/PK^<3HD"`&FJNBPN(LJBY@B/GU60 M K*T.Q@L'NX\4*B#67;"U&BH5-5EP:-N3F*864$S$IF##%(>,K]-OE-E'$`M%61 M _3)V]AI#"Q_@INRW&7E%+I&0@B/9P&G==D9$S3'L/L6Z-\H+U3)!OT9`+%"T62 M !5JS,J:7DHZ^3,%1;2D@"SZ%LD>J!GT&=5?0>C'P"N423A3H$Q1L\/I4]`D*63 M MG4[V$)@M<!*M6"R%AI$0AMXMHD;N>>=6:TCV?J1/3>R`&NU8&M5BF3B%10Z64 M B5#L@T\'^1"X+CAPO6^=-QDH1:%G'F/K_%0Q'9I50+/8-&RYN=_M'I+:0,)Y65 M 0P[GL^N:27<7-8!PX'VD9K;MN"CGN,1V*2`N77!<VO/NZWR)#6)+KB5PX?G!66 M `));)KDT+!;@N!:E@0JHTUH8V!%0E-`S;,*%\B"Y'#'VY9)40ZT*E$A+#33'67 M B%-9F*AKN6U>,1@+<VEAI!7+_^`V+K&-1I3L,M#/0)(-W<3[:5J8H(!(A"=D68 M 0$)5T&-LM`54W9`D<-$'1@8%FVO+P(-70=FO].1WD,9&0!>A9"HJK-]BE.W669 M CPU9Q3=/GSZQ4W.[?GR<K^YV$0J$UIH@*W<W5^VO:`";S.UW-\&^)L@(4`T`70 M M(=`P;'U`*CHH0'E7+%R)O>W>3SSH).PD_)<//&"3;L49#=_;"8!-6_EB(#Z71 M "*!.((LCD-SE>80L#T'J!`Q&2V7[35HN/C??%KM1FJL^_AYP2G?]"G210+LQ72 M Z!$BV*@\")@04`_Z`B"3RNM!9W20"=2@(SJHA+VU>)H%VZ5ID=,P>Y^F5@9;73 M JB-P?2C0877=Q\Q[X0C^[B:"]%BJ1V`<3#5.]5$VJZ?'9CO?-^?9=-K')9G`74 M (S?@Y&$<AU`,V`PH_BY%41S"`7T`X=2"PZFMCGUL'I-80N'$&Z8\UA7T([DU75 M YA9>\9+]1<^B=)WHBC(774$P0TU1YB*='B`,U8!/12!]`$@G4,4!*-0.95Z.76 M 0:7"6^8&FF#3)LCP[5-9S0X#II361R"+!-(-(0<5J_P`4%*I4@>@D@J5'H/R77 M &B!R1Q7C,`D+(51<*I.R<'3TE\K.AE!]F`JPUBE6/ZIA=#$#XEB7!H)TZIYT78 M C@[2@&9L?)6ZQ])#Y0\5UP>+_QT6/S"\2S#>RW0W"A4*E@",W9+CSZ/C(TPM79 M L>>T/2*=Z314@J5?ZCI8-D\WS?-FV^QVB_5J%S,=A%EXCY<8I24;^JTSR89S80 M E\JF%25PB-['LV2S5^GM_M;_(Q""Z/O(I8];>WS1`XOV;`GAXA)\`JY#HX=581 M @E=0LE?0UM;2`W`UP+G+?LW1.2LA]EN6/AC$S4(`#0!%0IH/V_CZ8[W!(_!982 M JI144%^P3;\LJP%EI50,32A=I$P`#)!NDK`UXVQ7?WKT<617<L4=+<VP>XJ883 M US8JK1W:Q#'=0?>#EH#='J419[HT*(1&`G"EA:;Q=OA6&DUP7PCV7$"A?]B684 M )R@.YC%"@2EG77HEB<8G@J=P`EO0.B`>>XS)Q(9;:(R%QG#(E</J]#^U)R6`85 M `ZY=`(FS!Z.##72?`\YG64'3*B]Z!N-'906CII)1X_O*!E8)GR#&6B8QUN6R86 M FOH2`EJ'_K8<'T=Z0%77>9#(*MES&W,50(HO6M;%<`5\]Q`7P"5D48*Y6K*Y87 M VH*&7W+P:H&$AM72,(9AA3N$I]:%A,4T%XJA;2Y'+&Z:)>4YH,H)2>2CA.AF88 M R=%-+GB5Q!M*L/Y*MOZ&C-#,"98AXHFP`O;HEKRHW@''MO'YH"X?E(9SV`R_89 M ""$$&XY9"H)+8NTT@`F$FHW4I8"I4K')I?V&5^019/<@`1G#]IX@ZV<:P")&90 M ,:]>Y`28$BQU!Y_:@R!)-2!SEX-:NPG6H+T68:B"UEB93ON9N63*W&N\02?\91 M 9D9E";Y(&1MU/E%67PP;<3T*7<Q#GN6]/&"9DKG%J#@4TD;Q\0*EI%I@DI+%92 M !`-G"0V?)>SW9VPU&DWO9AYP#XPGX\\CME[-"\\H&#,S;#?Y"8'S(%1EV%!J93 M TUASM64ENX(::N!.5^(\'2$<#XU5#)6<*?)9K`*31?>90A^J)NH34Q1CU=2"94 M KX1J(!GZO;"@SPG/O_USB_!C&*U=S5*G=RH'D(4`U%)I(77*.@@TIS>7&3"I95 M 3"D[74RIX;G@/9_K6QJWF^7\MN%I,5L^[";A8-/#[CS[*[_SXO3#[BK[GUBP96 M !.1^8T$H+_1,R(B*RM.4%N"]\NQS.IHTIH1&8[),#<;DXQVJXEQOC'H+DV")97 MW 9ABC*YH<1B#$@#)(`%L@4EM&1SD,F!\&3:^QF@36\V84:FW7;;-1VF!M7/#98 M :^<A"N'ASCU@EP>CG&.JK_Z+P`8G,]D9;=A"8UJEA!*JX)R"-X<(\'QD`R7Y99 M /W$'I;'^`,-5GPY9-XJ`?G\)M7/IN3BMKQ**V>9+".M35ZG^*8.8HV4F^<I.100 M !HY=#KQ^_4HSQQB;JG*$^%B#DQH,(^G#07[+54Q*(M=?B80>76Q7><)BBNN(101 M `0K:O#H'CW$@A+5G#2MQU._U*%L&O4EYTINP-&]@:=[4!IYAVJPK>*Z['<"Z102 M =][<@+EHV%R$;:\BFK#_TK@X$V2;CVQL"2X')#H@D6W$4'W1KQY,0L,F(:/\103 M T;M;J2+>-L\U7<>ZP7KPYF:W6UY.BEE8'+>\.!YH)3Z=Q%0-$'*BQ\*:N,V[104 M (]T^!!)B0!R*D6HL1D+EZ"D0<BR2:O/7(ZD6EL2M>B62:OOQO;%(JNV']T8C105 M J;8?X!N-I%KUADBJ5>;U`*;M1_Y&`YA6C<171Z@:B:T.J0+&@N5IM8)M3-OQ106 M ?0U6@_AH'P'8OG&'@=7EK'^AQ+'=_58;J,KZJEA)P:"W8&5:7?>H8:D_2@_P107 M H8C'JHBVEU=W_ENP.ZW?0LH5_UB50/7PAE&JZ#K67``5Y=CY&0N6JRWL.SD$108 M FT!M(=$76V`HB7](&<?C+[;,N\%-7'R.R'@'0$M@]D6`-0#_8`;Z8VI=99&)109 M ?M?!D'&RW2!MA1EM1=2'<.+'EA6@>!$4HL=MZ49[S>2_'U=,/L85,]I;1H^V110 M R(`<FG$Y9/NY/2E%?T%:3'^#'LL2PPA$L(62;N"]#2/DN0[R1_/,A2UWP#"_111 M S778;JN&Q',4=4B\/Z]&D"Q`[R;_7=3;HJ6>JA+ZR]^)=[8<\@Z4%._0'>/C112 M B!#842&POY<0V*$05&!^5>*-VTK#<Q%WCDZR[00HAQ"SA1`S+QB-3<7L-HS?113 M T&2KJC7I42^SS]";X[J<X#O\:(95SD]@PJXZ;\G\T1)?Y[YFKDDJ5[]+HVO5114 M ;S2,_G@FQ?K+7,`_?3XZ,7/`?BCYM>D<N1^N0OSANZXN:9K]?5AJ^RRM1EE:115 M OXNE+LJB:!B7C_'9J=]);)T:BBVL?5A>^SCUUU/Q557\&W-`E;!KZV]N^O8E116 M W&A%#S'/`EP%*F?WL-[NH]H1I0-.J'7M6N^:S^4=N6RDRO-9!\BG("3L6^5B117 M 1U>Y?@5=UVD2_ZU@5W?%'NS/9+7_^W:^7]S.EUGS/'_<+)O=A^QV?OO01#CB118 M 1W/[L):X5L7^+*P0[;[X`KQ`U&V8Y:WZLDQ4P5TF55ZWX55?Z.[C[LL3E3EK119 M D834<-ITOOUT+L6(>W_M7MC!S;+%?79&,+Q_(N>8[+;9/VU7V5E^+D'9BL\P120 M 9A">>VK(5?.57'HJ?R$,,5!4J;)#W/J%OL0D>UJ17W/.E70HJ-A_:ZHG$L@+121 M '%FD@2^7\Z!R(K+B32A"E[A3%>PM.5VL=OOY<NF9*7P]HS\)OR:9!)(KO[>D122 M Y5_(EBP-U<@6`7^O9>NR`A[6D[Y\X`U!,*#D&T!FPT[3_72_>&RV`E/-LO;$123 M \*^3SY.59-!0\'>.Y;FD\0YBJF%ZEG]8"1V\>I'QA9YG&9]>RZ_HYT\K^GMQ124 M <2Y"P/N\Z=]G7L\.,K0`%`5G1F[S0L4;,)IC&*L48_TFC.X(QE(E&-FW>QUC125 M 61S#:%*,]DT8JV,878+1O*EGS+&>,6G/F#?UC#G6,R;M&?.FGC''>L:F/6/?126 M U#/V6,_8M&?LFWK&'NL9F_8,V-(5V-(5V-)5U=X9RR.6U]3\R,W^*`.<3>K^127 M @*ZZ)<U;OE&)QNF%$B*JM!W*MV,Z:$@5&D(8?EGPAJBSQ7]K0)*VI,[?A+,6128 M (0MX([XZE;"Z?!L^<Q!?*E]U_39\[A`^ETJ7TV_"YXJ#^%+9<F_K$U?U\44Y129 M <4F'U/F;.J3.#W5(G1<IOC=U2)T?ZI`ZKU)\;^J0.C_4(;5*.J16;^J06AWJ130 M D%J9%)]8C;62-9P:SF[5L+^AABASS5'F;LCJD2%;PP1?PY5C-9S0JN&$5JW]131 M Z6VO`01'U:5I20/BX.:`FD._8/O=W-W%+5)WSY/6O'A8?'KHGI=KN)FWYD@P132 M E<GN%O-/DBB+9]^;[7J:2PX?LR/02\8XY4S)*MLLJJ"78]H<HL@KUY@!'5'X133 M -O.EX6>+:9YT<00A%JRF&LJ[66NZ/LP7J[.69#93.PB^;RP*",_O@[;R_`W$134 M 46%^DB!]S7.X-)GR):>ZE!8G&>XR&IX,(.SFF3C*(:SKUP9$A6.0/:U?<P`2135 M F-/Q)HLMY57]V-(P`W/5/!@\<WIT.*##^DM=?7T@R'"U<&UE17*Q;[;3A(/6136 M WR;X[6&Q;+R9S1#,PW,8F[8,YTZ[/"EL)(/-6\YG1@N`'Q]"*XQ7VWDN_D+E137 M C]2U9T`DUNXUS:[UL!O>*4(6_$5[C7BD]X)'3M2Z=:7`4UGLU71(7%4D('D`138 M (7$0"!CJ?M9E7R;E4LQF*B/-83HE8J=,\$4&C21:SBGE-/N0Q9ORZS#),CS_139 M N4C`\W."/@=8UH>1I7XZ[<25RI[S)1Y8/#1)A*=&X7$QUN^YKE/9@&7M.EPK140 M E"(6JZ-V,`)X:3M5:CEJ-=[WXU6:WPF4Z#,^Y\W@7OA%4_CCW9S"+`=]QB=F141 M 0KH?W9!1=QD\N"%=W$27R[S@_&IU5$7YF:<!-)'C\,!?XTMQ*51>Q51S7!6Y142 MO #J@BAS/I6.JR"EU0!4YGB[_)[Y(P,4I$P(1_]3,;_>+K_-]DYW>+N>['4<E143 M 3K-O\Y=)MI]_;K+]>LT7JWS*SA[GJQ>^^6-!TA/1\-%CX9SC)>">5G.\X,M]144 M Z'=N##=GS&&OC6,'_9@&=!ITO=-^^#"&:=LCOC>E^3I8"SX5=XXXGIPC7[0=145 M 48U.BQ)R>J"$<K]!+55!3K]'!76%@D<=L(VH'Q><ZI`_U#VN$-WCBJ.ZQQ6H146 M >UQY4/?DH\K'E8>43S[4/JY$[>/*=VH?5X+V<7"NP1F9L)Q)=<V@]V&Z=<;/147 M 3<E(A)LP'4^L?L&#;R,A(XJW8_HPZ#4_^QN7?32*[UOF6"C#OBM.ZOS=E[TJ148 M KF/U53#0;G+1`W`TVO%,?D:9OC]AN%G1RXP5HI;.*LRJI[+!U+%GS<A8S'H7149 M T3B>YSF/>B,+>5`.](<%YO'LW>'#G:^.%\1:9+A5U<'%-*X])7'6(3A/SL,[150 M ]K"[;)80)DJ,0P=7U#AVNH&,N%'-5060H7-)A_:$M2QF!!;T2^;,`2Q5S;JU151 M ,2$#&E0E-^U,R9&);UHN&W-UWMN*2,`3AA'YK=5@2URR9]358ENZ&H2=][4Q152 M TY;=[N)"<)ITP:$X&<;"75@C4;#3U]75:[0`"^`2&B=G)X2<N#?6N=Z61S-&153 M CM,M.4:2BE?(@<4%!R=K'9RL72X+Z`]700&_38>7`0A&(.`FV)S-`B&@&!!`154 M $$>;UJT3P&WGL.N-7HK8A81\&H^.44Z)8'RA$-'H:RI/7JFLA,KL[#7Z\2KT155 M <%7,+^5?X`KB/$>&^+O-&<(?,H,;U=6;^,"TEP,J_0TQ@0LE<0&NLLQ5\1:T156 M K(PZO**8J#0R4<%%ECE;-$$5:Z@,><$1!,IM]<SUQVM`ZSIM%;+/>_DZ[^7+157 M YEC*A-LY<ZVQ$@<H1/*AEE[?:6R>-I=]A46)%B&J>*(.(.JX/A]&7\QPL\&(158 M +NB?0!2]J]PY5UI08#L+N+P]+PI\*4?(QEO+\P+'<N]X&^7*[L[E<O>RNITF159 M B.H9J,A0N(#KY`C"I8V`BR@+_RX748+$PED'>@D7ZYU)17XPARM7)A8J*_4[160 M *LN26R\!U`^#-E5CJ@4"DV\F)!.%5WA,6XV4F;\19370@,('EQ;22]`SZB^1161 M EH1+[^F28[0`/TQ8]R7Y^!OC12EG2[6U_<2N_!M8E8Q9S$JY9#CGW6[H6]\\162 M =R<)X4PE@9&>H+SL9OT,B3C&#)XDFJ9P?H#QF49HM=\TS==?#I;E*=-U!?[$163 M N3,I9G'46+_']W*17G](Z3@_6K^L.HJK#"0<N-E+X+"95NZ0X,-HIP_-<L.,164 M :M/^M&WN9Y/L\O+R_$/6/.\;ZK6[C#_MM5^L5_/E8O^2?@KQ9[RHSI>FZE-D165 M 87]X%)T_MI^HR];W@F:7;=;DW?A;5=<'\,"E!`'/TVKQY:GIT#%9[8Z/%\8S166 M CB2*88?D]J&Y_;S+OCTT_*FS4"I[F-.\V#2KC.,$G\*G9U(\+>.D4=X[VV7[167 M !Y+UQ8J(>9PSR[+'9K>;?VJ&"+J;)SH$\]O]$SGXG"Q\(3)>QEJB9MTN=W[3168 M LW-"L(\?J@QLN(6MG.N;7YO;_4[$`.=Y.,M-+ZX=P7PI-US-I'+V4'S,*L/)169 M O!+W*]P3EBVN!!N?Y^'3!-F25P1/B9L?B,#/IU?9>M.LSI8*1@U[+_[#+F?L170 M ('QY6O,3#ZZ%OW2&_YZ?(SS._>S6?)LO]O>+;7=E-"&?\&E?V+E/<#;$:.;;171 M 3PM__^O\KD<%<88SK_#LD-RC)7!U-$\8?,0T)QB7PN@1F!HU`GQZC%Z\UX^7172 M "S(2Y`"[0K?+]:Y)FU`C8VJT^6J;=NX$S9VZ&NO?.KF1*W:QY+NW]S!'5_L]173 M S+/RH&OQ_O:<(ZUOZ5IVE4:[=A"*\Q#RY8"<?:C0Y]#!''N%SAOVG+/IU8]=174 M [\AI+H(AGH[T$&S<HA<:<0LXOJW\%Z3Z]"C8G44OLH1Q,[_]S$-_VGUQ3BZX175 M 4\F'H_R7HSKHT0^&86T&"]I!;?[4;/<"A^%4\F4I_VDI*8(Q$Z70J_)?C!+`176 M J15\[%8-J;9C1*ONZR,"'[.0$:I,J?*6R#]0PA]%TF^VZ\_-ZIV?02#,9*4`177 M ZFNI$QGJ?:\?0X`]2`#V"[MVG2(`;\%_KZK5`?@]!?_-JN1@0*($DJ]4^<]4178 M A<L<H;-UV%"?7?BLC%?)_ORT7],D2<WYPUW3(:?A^0?YO"R5*[MRY=6)5I).179 M ["Q;;$FZ14K`XE9:/NS6WB<^*2<&QDI["RA\)$T%_^X72OT+QXAB,C:WZ$S>180 M +90[]+F;"%#.#GVORG^PJAUMS_YR"E@TH5P;2IX]^P/&?&HH9E6'L^K#63@,181 M RQPX!D?8E?]^%77:/[*YQ"W;D9&1-??W:%:HLKMQ\_9AOOK4/#9"-Q_AD52X182 M W#D"X``I;;L.L6M:O8]W_$PZ/>_/RK>N.Z\3Q5"Z4B6*.WM;$5-'Q22#,Y+*183 M ?Z%*"`3MV`%`=)Y>5,J.N\5]H&^??9UO%W.V!<G`#<Q8K[XV6[Z$2HI#-,!_184 M UDHNI>$2H\?]E/^\E<\G4[6%"P4`A&>MD#MT\XX>,*.R[3<@S@+2\_<CJ-IS185 M X0,$Q^Y;IG(U<M:%!;O(VOW#?!],C+NFV2R[I3G24_0>IV/_S:HP#B<\;E*]186 M 9KL/"O&R?#[)NC&9X:!DOTL&)2F7%_H?!J8M^@,3\L#F4O[(OO_NTB;00M;.187 M "_5E]IV[L_,9J(WW\\5R%S1\@+_F^J\G[1$P>N"/F9Y[N,%'4-,2^'/^?PM)188 M :GF[>!983\4[9R++IQ+>S@69J/S-4UVYJ+3ZI:G<I_7Z[L1*N0K*>3$\4([]189 M /RQ7_\9R[K>5JU"/5'+'5S?JO?!V?V#T>U^J578O5Y%[[3T@=]EZQ5]*8Q5'190 M KO)^^R(%>Q'DES@8GR6`_"S#N"HQ[JE]W//[55H=>[KD5K+/+.J_,H<J^BX5191 M ?8>*;(Q-AEJ>KT0J/C6K9DM.['RY;[8K<J:_RA<_J^J=+:IYX3O[XV_\)WC\192 97=O[C[O]?/^T.R.3_N]/_@]RP8`[4X(`````7 M<R'#S++X;"^SW<MNWSR>G49J3L^E@FH6\P-]F%D#(G<9GU4.SPJ>0_NEU0]/ 8 M#T]3546$BAJZ6.VSS^O/ZR2]E(J4N>QC8'"!M;XG=OOM8O7IC/.%8%4Q`>-9 9 MM:^Z2U55S'"S0V4TM%-#.S6UDR$]FIA82!MT>=DC4.K3U#O0OL7#(INVV#H( 10 M"YBH10R35@7]HMT(0)'/8OV4E]1?*"E<4$,8*MM.\\GSY&X3:2B@-06U9O7T 11 M>--L1[!1:SQ;!QG0B*)MQ$5H9E'&#&K(>(8+&3^%ING:=3EE+GA+%?#^I#3! 12 MY+%TJ6>>HQ<JI_1(4EFTM?620?A*([U<6GBN@N"N;W[-ILI%-I4U=N;&9S.0 13 M`'CIFN^I,V[..'^2G3)IIY/3+]^:+]]@M!F0-J-8D%_V#^O5Q^W3ZNSTKKG/ 14 M'E\V6^;U3_/MI]WYA\R_9?R"6/P8;"ML2T!N,<PEBNZ?5K<?5_-'U`RF!'*( 15 M+9\7RV7F&[#!!AKH9U.]@IU>;E[^O'KYM_U#L_W77GWUVTD#761S+K9<[,+0 16 MGH0_01H[$!BZEMC#G/_VA?\C_E^=P%N$`NFWY<A@MV8V''666'%Z-R>4=_.8 17 M5@51G'*EH3[2I?\KNZ;679^Q8CLGB;D.@_4Z6^RRU7J?[9XVF_66%'P`;IXW 18 MS2V]A5(,S[]'\A[G,7N[I7EH?7O[M.6Y9['*Z/6FH<FIR0*)R\6J(3(_9-<I 19 MG=>Q"23CIP^+9DNT\T],=[,A8ZI\A#$5J)R*.H`GO_5]IQKC^(D@P/VJ#`-O 20 MU3RMOC</*VH@#+\JT:7TI+)I!RE`M@>D"0G#"@1U$@\P2BRF:0YHVHJD[HQS 21 M)XR#_Q2L\=Q)UO[?`=8YCWF&G"H;4=4@A;5^*RIB!<MVMN1_1+<7=%5-5"'R 22 M79=#+H0"5R<T4_[T$Z51\\AV8$W/V3_]%,L&#@I+0#H[3GH)Y8K_W\EG;4@^ 23 MD<XHG77HW:[?_C\EWP;R6RJ%^&K63@<TM.@GIH/8U:#L7'X9FL^LX#_%U<DO 24 MZB\?F!@:;[_H]K$X86$Z`4%R,`2=GR(8!96=RFARQ6_&'B3P8_.\W\YO]RS: 25 M^KSK#,B(/>#%,?+_;4QTY8<$65M+9*8S`R+4WYX(,R1"(1$P';H*>HYFMVX@ 26 MQV$\T3*(G<-!O*3',(@[`)6+X:-RTB4,`OT3NT>?1"@R@TX9C+-.K[*3[CD" 27 M%("R5;3-<L\5!TBIG'A+.60VQ11J:`LU+02N`HSU82(+(=(;2/\8_9D/'W;- 28 M?L'^")>=Z(DH.L5^Q^L8E7?5^BU@W^1T]WFQR;YM"?WIU<\19EI?G4A.+%", 29 MHB$VC8Q8I<SL+:19/Y4^+/Q4^K"(Z554\U,6BZ31I`N62T]#9#[[+#YM>H 30 MI7-.&ZN?AF[14=(!BSI0[,W$YP*>2W3$-O.M%XPE<H-]&<ZX.HF3O6+OA=/` 31 MOU.Z.D2;&B.N!N)<-!<8Z8BYH`H8&(5,LDJ<FXR\F[/GR<OD^_EDN1F;%&5& 32 M5.#Y*/9\-NOE2[:AIC]?O%Q\CTTJ#(#9A%-A[&X$%`9%08-BX^7$HXM<8X>G 33 M>R[SEO`OA"90'NCN\J'S2MWA\UKL/SHJ2(/=-:O]XIX,-J_L[K?KQ\PK-QKD 34 MC/WD77J/*B+%YVNZCG4#ITKQ%A0[432(O?NY%4$N63!&FEX2>P*3-\QFD9J> 35 M<[7I&+L!5@#;V'_JJOTBU1H5T4^5I&HH6"3=%ZL1X!*`Q4-4Q@;F9Q>AU&_H 36 MA'?U@;%M'\0*8U\8D#%3`UF_"UTUTM4C#'K(YJ."8=6L3Z^7D(LJ0E!O>?^S 37 MR^_220)C_*(;X7>OC7!;MA)Q/WW6%R_ZXKN^2`>WA<%M;:L#GC?39X'HA/9E 38 M,WV1U+I-_;Z9`K9D:K\/XB6-8)=)LI_I<?HLLL>^D^2^<.X+Y&K,_<ZYWR&7 39 MV+-[NB%3XW[R/*&^^GS&",Z93QOB?T$-+[Y'Z#)"\\Q+W-P<`#2C@(QY`"KF 40 MD*JJR]_0657'TE8%2^-<S^NIIM+R.O"T\I(4-4VM6G'Y,NW4ZFC]7Z#^6G>8 41 M?K""K76P+"L9.^S]C;:]]?A\BW_LT*Y;HYNK$KK,[\43,^0)2%1-$K5JONWV 42 MVR>RQ$\?7\(3AYG8E%U,O$7[JT2.%#A6BAVKK@A'2V,`5KD0/GVZY-`LF#'@ 43 M1*G@1'FH)"2HV(L*A2$<JMA#"N`""#.)LZU+UHKS+BB)%+X">!\LVZ$N=*Y+ 44 MNER(4Z?SO`^I<W79HT7G8@/J/)D.=ZWAUS6I`PKM"<9?EV8NAVEV)(T:TJ+E 45 MP&V72EW3PJGHPVAV#P*EOT[SDP45Z'*4F'T:%B&T@J;P>D.PJ^G/^I[_[CKO 46 MJW/!R-:.\J%A(4*G"Q'+=>>3"2HI9J$8M2X`D[4[[J#U+5ZM:BCOH'QB]FMO 47 MXD,6=#,;]`EE7;W=KR>!WW5\=_Z]B.^1'$TZ+XZ,1VDF+'%H]@X>=R1JTH/L 48 M#5#2K^(/:G8&H`/"8.UZX'$GC-<5H*ZES]DL`C 51 M$9W0Y.C9:?914F;W(5M`6*/1O$;3)U9G4^D/@=0=G;JG>'59'*]92=7`)UC, 52 MT65/P6YWS9>^JZW+"@IX#<M@D@VR"(LUFA=K.'Q\N]Z\!!W1-B.6!&]#L[?1 53 M0G:R**%RS:Y&Z^^V0",NKS8&\-D865+5-&JU4IK%OD&[]KQ[4!6$GQ(HT$&\ 54 MP,*@Q]57&:FV/&$2/,<3I=<LC$%>=TDQ5L<Q@JJQ94^$?!L"M@X$&&*#-T[4 55 MD(:4B5G;:G:0!.7&:`".6,\1ST/BL_-Q7*F^\K$7Y0@'Z&18]M#5D?9#Y3&D 56 MJF$11%?B7.N*A+J3$&_1,U:>P;A/(Q#,1VQV2^^[KO>K23UQTONPT*&KT/MN 57 MC-9ZA-0:ACNO<G!9YKV)V-F(/H31C&&$QM?0^-I$6=<RR=2#!9Z"%$P"4855 58 M#DII'C?[%X]$:H.V0[1=<[3=>YT)+J<BKE>LW_G7^6(YOUDV/$%T5O#M>L4* 59 M_GV&,%7:KG\4T1+6#I2**X0Q)0YPT&YL@N(6E*D'AG">Y@@Z0/R90/A7\HG1 60 M(4$,-%=%A<595%W`$//K65L=C!<.=A\I5$"LNV!K-50J:K+@T+8G,4TMH)B( 61 M3<&&*0X97Z??3;./(!:*^F7L[#6&%C[`3=EO,_**7"(A!4>R@=.Z[8R(FF/8 62 M?8IU;Y07JF6"?HV`6*!H"[1F94PO)1U]F8*CVE)`%GP*98]4#?H,ZJZ@]6+@ 63 M%<HEG"C0)RC8X/6IZ!,4;.MVL(7`:H&5:L%D+32(A#;P;!,W<L_;MUI'LO4C 64 M>VYD`=9JP=:J%,G$*RAT$J'8!Y\.\B%P77#@>M\Z;S)0BD+//,;6^:EB.C2K 65 M@&:Q:=AR<[_;/22U@83SAAS.9]<UD^XN:@#AP/M(S6S;<5'.<8GM4D!<NN"X 66 MM.?=U_D2&\267$O@PO.#`22W3')I6"S`<2U*`Q50I[4PL".@**%GV(0+Y4%R 67 M.6+LRR6IAEH5*)&6&FB.$:>R,%'7<MN\8C`6YM+"2"N6_\%M7&(;C2C99:"? 68 M@20;NHGWT[0P00&1"$_(@(2JH,?8:`NHNB%)X*(/C`P*-M>6@0>O@K)?Z<GO 69 M((V-@"Y"R5146+_%*-NM'QNRBF^>/GUBI^9V_?@X7]WM(A0(K35!5NYNKMI? 70 MT0`VF=OO;H)]39`1H!H`:`^!@F/K`5#10P/*N<KCGDD/.@G;+<_%$R_8M$M! 71 M=O/'9A)0\U:."*B/`.H$LC@"R5V>1\CR$*1.P&"T5+;?I.7B<_-ML1NEN>KC 72 M[P&G=->O0!<)M!N#'B&"C<J#@`D!]:`O`#*IO!YT1@>90`TZHH-*V%N+IUFP 73 M79H6.0VS]VEJ9;"E.@+7AP(=5M=]S+P7CN#O;B)(CZ5Z!,;!5.-4'V6S>GIL 74 MMO-]<YY-IWU<D@D\<@-.'L9Q",6`S8#B[U(4Q2$<T`<03BTXG-KJV,?F,8DE 75 M%$Z\8<IC74$_DEMC;N$5+]E?]"Q*UXFN*'/1%00SU!1E+M+I`<)0#?A4!-(' 76 M@'0"51R`0NU0YN485"J\96Z@"39M@@S?/I75[#!@2FE]!+)((-T0<E"QR@\` 77 M)94J=0`JJ5#I,2BO`2)W5#$.D[`00L6E,BD+1T=_J>QL"-6'J0!KG6+UHQI& 78 M%S,@CG5I($BG[DGGZ"`-:,;&5ZE[+#U4_E!Q?;#XWV'Q`\.[!..]3'>C4*%@ 79 M"<#8+3G^/#H^PM02>T[;(]*93D,E6/JEKH-E\W33/&^VS6ZW6*]V,=-!F(7W 80 M>(E16K*AWSJ3;#AWJ6Q:40*'Z'T\2S9[E=[N;_T_`B&(OH]<^KBUQQ<]L&C/ 81 MEA`N+L$GX#HT>E@E>`4E>P5M;2T]`%<#G+OLUQR=LQ)BOV7I@T'<+`30`%`D 82 MI/FPC:\_UAL\`I^E2DD%]07;],NR&E!62L70A-)%R@3``.DF"5LSSG;UIT<? 83 M1W8E5]S1T@R[IXAY;:/2VJ%-'-,==#]H"=CM41IQIDN#0F@D`%=::!IOAV^E 84 MT03WA6#/!13ZAVUY@N)@'B,4F'+6I5>2:'PB>`HGL`6M`^*QQYA,;+B%QEAH 85 M#(=<.:Q._U-[4@(XX-H%D#A[,#K80/<YX'R6%32M\J)G,'Y45C!J*ADUOJ]L 86 M8)7P"6*L91)C72ZKJ2\AH'7H;\OQ<:0'5'6=!XFLDCVW,5<!I/BB95T,5\!W 87 M#W$!7$(6)9BK)9NK+6CX)0>O%DAH6"T-8QA6N$-X:EU(6$QSH1C:YG+$XJ99 88 M4IX#JIR01#Y*B&Z6'-WD@E=)O*$$ZZ]DZV_(",V<8!DBG@@K8(]NR8OJ'7!L 89 M&Y\/ZO)!:3B'S?"+$$*PX9BE(+@DUDX#F$"HV4A="I@J%9M<VF]X11Y!=@\2 90 MD#%L[PFR?J8!+&(4\^I%3H`IP5)W\*D]"))4`S)W.:BUFV`-VFL1ABIHC97I 91 MM)^92Z;,O<8;=,)O9E26X(N4L5'G$V7UQ;`1UZ/0Q3SD6=[+`Y8IF5N,BD,A 92 M;10?+U!*J@4F*5E,,'"6T/!9PGY_QE:CT?1NY@'WP'@R_CQBZ]6\\(R",3/# 93 M=I.?$#@/0E6&#:4VC3576U:R*ZBA!NYT)<[3$<+QT%C%4,F9(I_%*C!9=)\I 94 M]*%JHCXQ13%632WX2J@&DJ'?"POZG/#\VS^W"#^&T=K5+'5ZIW(`60A`+946 95 M4J>L@T!S>G.9`9/*E++3Q90:G@O>\[F^I7&[6<YO&YX6L^7#;A(.-CWLSK._ 96 M\CLO3C_LKK+_B05+0.XW%H3R0L^$C*BH/$UI`=XKSSZGHTEC2F@T)LO48$P^ 97 MWJ$JSO7&J+<P"9;8C2G&Z(H6AS$H`9`,$L`6F-26P4$N`\:78>-KC#:QU8P9 98 ME7K;9=M\E!98.S>\=AZB$![NW`-V>3#*.:;ZZK\(;'`RDYW1ABTTIE5***$* 99 MSBEX<X@`ST<V4)+_$W=0&NL/,%SUZ9!UHPCH]Y=0.Y>>B]/Z*J&8;;Z$L#YU 100 ME>J?,H@Y6F:2K^QDX-CEP.O7KS1SC+&I*D>(CS4XJ<$PDCX<Y+=<Q:0D<OV5 101 M2.C1Q7:5)RRFN(X8H*#-JW/P&`="6'O6L!)'_5Z/LF70FY0GO0E+\P:6YDUM 102 MX!FFS;J"Y[K;`:Q[Y\T-F(N&S478]BJB"?LOC8LS0;;YR,:6X')`H@,2V48, 103 MU1?]ZL$D-&P2,LH?O;N5*N)M\US3=:P;K`=O;G:[Y>6DF(7%<<N+XX%6XM-) 104 M3-4`(2=Z+*R)V[P[TNU#("$&Q*$8J<9B)%2.G@(AQR*I-G\]DFIA2=RJ5R*I 105 MMA_?&XNDVGYX;S22:OL!OM%(JE5OB*1:95X/8-I^Y&\T@&G52'QUA*J1V.J0 106 M*F`L6)Y6*]C&M!W?UV`UB(_V$8#M&W<86%W.^A=*'-O=;[6!JJROBI44#'H+ 107 M5J;5=8\:EOJC]``?BGBLBFA[>77GOP6[T_HMI%SQCU4)5`]O&*6*KF/-!5!1 108 MCIV?L6"YVL*^DT.P"=06$GVQ!8:2^(>4<3S^8LN\&]S$Q>>(C'<`M`1F7P18 109 M`_`/9J`_IM95%IGH=QT,&2?;#=)6F-%61'T()WYL60&*%T$A>MR6;K373/[[ 110 M<<7D8UPQH[UE]&B+#,BA&9=#MI_;DU+T%Z3%]#?HL2PQC$`$6RCI!M[;,$*> 111 MZR!_-,]<V'('#//;7(?MMFI(/$=1A\3[\VH$R0+T;O+?1;TM6NJI*J&__)UX 112 M9\LA[T!)\0[=,3Z."($=%0+[>PF!'0I!!>97)=ZXK30\%W'GZ"3;3H!R"#%; 113 M"#'S@M'85,QNP_@-3;:J6I,>]3+[#+TYKLL)OL./9ECE_`0F[*KSELP?+?%U 114 M[FOFFJ1R];LTNE;]1L/HCV=2K+_,!?S3YZ,3,P?LAY)?F\Z1^^$JQ!^^Z^J2 115 MIMG?AZ6VS])JE*7UNUCJHBR*AG'Y&)^=^IW$UJFAV,+:A^6UCU-_/15?5<6_ 116 M,0=4";NV_N:F;U_"C5;T$/,LP%6@<G8/Z^T^JAU1.N"$6M>N]:[Y7-Z1RT:J 117 M/)]U@'P*0L*^52YV=)7K5]!UG2;QWPIV=5?LP?Y,5ON_;^?[Q>U\F37/\\?- 118 MLME]R&[GMP]-A"-^-+</:XEK5>S/P@K1[HLOP`M$W899WJHORT05W&52Y74; 119 M7O6%[C[NOCQ1F;,624@-ITWGVT_G4HRX]]?NA1W<+%O<9V<$P_LG<H[);IO] 120 MTW:5G>7G$I2M^`QC!N&YIX9<-5_)I:?R%\(0`T65*CO$K5_H2TRRIQ7Y->=< 121 M28>"BOVWIGHB@;S`D44:^'(Y#RHG(BO>A")TB3M5P=Z2T\5JMY\OEYZ9PM<S 122 M^I/P:Y))(+GR>TM:_H5LR=)0C6P1\)=?MBXKX&$]Z<L'WA`$`TJ^`60V[#3= 123 M3_>+QV8K,-4L:T\,_SKY/%E)!@T%?^=8GDL:[R"F&J9G^8>5T,&K%QG?^GF6 124 M\>FU_(I^_K2BOQ<7YR($O,^;_GWF]>P@0PM`47!FY#8O5+P!HSF&L4HQUF_" 125 MZ(Y@+%6"D7V[US&6Q3&,)L5HWX2Q.H;1)1C-FWK&'.L9D_:,>5//F&,]8]*> 126 M,6_J&7.L9VS:,_9-/6./]8Q->\:^J6?LL9ZQ:<^`+5V!+5V!+5U5[9VQ/&)Y 127 M3<V/W.R/,L#9I.X/Z*I;TKSE&Y5HG%XH(:)*VZ%\.Z:#AE2A(83AEP5OB#I; 128 M_+<&)&E+ZOQ-.&L1LH`WXJM3":O+M^$S!_&E\E77;\/G#N%SJ70Y_29\KCB( 129 M+Y4M][8^<54?7Y03EW1(G;^I0^K\4(?4>9'B>U.'U/FA#JGS*L7WI@ZI\T,= 130 M4JND0VKUI@ZIU:$.J95)\8G56"M9PZGA[%8-^QMJB#+7'&7NAJP>&;(U3/`U 131 M7#E6PPFM&DYHU=J?WO8:0'!479J6-"`.;@ZH.?0+MM_-W5W<(G7W/&G-BX?% 132 MIX?N>;F&FWEKC@13F>QN,?\DB;)X]KW9KJ>YY/`Q.P*]9(Q3SI2LLLVB"GHY 133 MILTABKQRC1G0$85O,]\L?K:8YDD71Q!BP6JJH;R;M:;KPWRQ.FM)9C.U@^#[ 134 MQJ*`\/P^:"O/WT`<%>8G"=+7/(=+DRE?<JI+:7&2X2ZCX<D`PFZ>B:,<PKI^ 135 M;4!4.`;9T_HU!R"!.1UOLMA27M6/+0TS,%?-@\$SIT>'`SJLO]35UP>"#%<+ 136 MUU96)!?[9CM-.&C];8+?'A;+QIO9#,$\/(>Q:<MP[K3+D\)&,MB\Y7QFM`#X 137 M\2&TPGBUG>?B+U3^2%U[!D1B[5[3[%H/N^&=(F3!7[37B$=Z+WCD1*U;5PH\ 138 ME<5>38?$544"D@<0$@>!@*'N9UWV95(NQ6RF,M(<IE,B=LH$7V302*+EG%). 139 MLP]9O$Z_#I,LP_.?BP0\/R?H<X!E?1A9ZJ?33ERI[#E?XH'%0Y-$>&H4'A=C 140 M_9[K.I4-6-:NP[5"*6*Q.FH'(X"7ME.EEJ-6XWT_7J7YG4")/N-SW@SNA5\T 141 MA3_>S2G,<M!G?&(FI/O1#1EUE\&#&]+%372YS`O.KU9'592?>1I`$SD.#_PU 142 MOA270N553#7'59'+JP.JR/%<.J:*G%('5)'CZ?)_XHL$7)PR(1#Q3\W\=K_X 143 M.M\WV>GM<K[;<53B-/LV?YED^_GG)MNOUWRQRJ?L['&^>N&;/Q8D/1$-'ST6 144 MSCE>`NYI-<<+OMR'?N?&<'/&'/;:.';0CVE`IT'7.^V'#V.8MCWB>U.:KX.U 145 MX%-QYXCCR3GR1=L1U>BT*"&G!THH]QO44A7D]'M44%<H>-0!VXCZ<<&I#OE# 146 MW>,*T3VN.*I[7(&ZQY4'=4\^JGQ<>4CYY$/MXTK4/JY\I_9Q)6@?!^<:G)$) 147 MRYE4UPQZ'Z9;9_S<E(Q$N`G3\<3J%SSX-A(RHG@[I@^#7O.SOW'91Z/XOF6. 148 MA3+LN^*DSM]]V:OB.E9?!0/M)A<]`$>C'<_D9Y3I^Q.&FQ6]S%@A:NFLPJQZ 149 M*AM,'7O6C(S%K'<1C>-YGO.H-[*0!^5`?UA@'L_>'3[<^>IX0:Q%AEM5'5Q, 150 MX]I3$F<=@O/D/+QC#[O+9@EAHL0X='!%C6.G&\B(&]5<50`9.I=T:$]8RV)& 151 M8$&_9,X<P%+5K%L;$S*@055RT\Z4')GXIN6R,5?GO:V(!#QA&)'?6@VVQ"5[ 152 M1ETMMJ6K0=AY7QLS;=GM+BX$ITD7'(J382S<A342!3M]75V]1@NP`"ZA<7)V 153 M0LB)>V.=ZVUY-&/D.-V28R2I>(4<6%QP<++6P<G:Y;*`_G`5%/#;='@9@&`$ 154 M`FZ"S=DL$`**`0$$<;1IW3H!W'8.N][HI8A=2,BG\>@8Y90(QA<*$8V^IO+D 155 ME<I*J,S.7J,?KT(/5\7\4OX%KB#.<V2(O]N<(?PA,[A17;V)#TQ[.:#2WQ`3 156 MN%`2%^`JRUP5;T'+RJC#*XJ)2B,3%5QDF;-%$U2QALJ0%QQ!H-Q6SUQ_O`:T 157 MKM-6(?N\EZ_S7KYLCJ5,N)TSUQHK<8!")!]JZ?6=QN9I<]E76)1H$:**)^H` 158 MHH[K\V'TQ0PW&XSH@OX)1-&[RIUSI04%MK.`R]OSHL"7<H1LO+4\+W`L]XZW 159 M4:[L[EPN=R^KVVF"J)Z!B@R%"[A.CB!<V@BXB++P[W(1)4@LG'6@EW"QWIE4 160 MY`=SN')E8J&R4K^CLBRY]1)`_3!H4S6F6B`P^69",E%XA<>TU4B9^1M15@,- 161 M*'QP:2&]!#VC_A)I2;CTGBXY1@OPPX1U7Y*/OS%>E'*V5%O;3^S*OX%5R9C% 162 MK)1+AG/>[8:^]<US=Y(0SE02&.D)RLMNUL^0B&/,X$FB:0KG!QB?:816^TW3 163 M?/WE8%F>,EU7X$^<.Y-B%D>-]7M\+Q?I]8>4CO.C]<NJH[C*0,*!F[T$#IMI 164 MY0X)/HQV^M`L-\RH-NU/V^9^-LDN+R_//V3-\[ZA7KO+^-->^\5Z-5\N]B_I 165 M]Q)_QHOJ?&FJ/D46]H='T?EC^XFZ;'TO:';99DW>C;]5=7T`#UQ*$/`\K19? 166 MGIH.'9/5[OAX83SC2*(8=DAN'YK;S[OLVT/#GSH+I;*'.<V+3;/*.$[P*7QZ 167 M)L73,DX:Y;VS7;9_(%E?K(B8QSFS+'ML=KOYIV:(H+MYHD,PO]T_D8//R<(7 168 M(N-EK"5JUNURYS<].R<$^_@UR\"&6]C*N;[YM;G=[T0,<)Z'L]STXMH1S)=R 169 MP]5,*F</Q<>L,IS,*W&_PCUAV>)*L/%Y'CY-D"UY1?"4N/F!"/Q\>I6M-\WJ 170 M;*E@U+#WXC_L<L8.PI>G-3_QX%KX2V?X[_DYPN/<SV[-M_EB?[_8=E=&$_() 171 MG_:%G?L$9T.,9K[]M/#WO\[O>E009SCS"L\.R3U:`E='\X3!1TQS@G$IC!Z! 172 MJ5$CP*?'Z,5[_7BY("-!#K`K=+M<[YJT"34RID:;K[9IYT[0W*FKL?ZMDQNY 173 M8A=+OGM[#W-TM=_#/"L/NA;O;\\YTOJ6KF57:;1K!Z$X#R%?#LC9API]#AW, 174 ML5?HO&'/.9M>_=CUCISF(ACBZ4@/P<8M>J$1MX#CV\I_0:I/CX+=6?0B2Q@W 175 M\]O///2GW1?GY(([E7PXRG\YJH,>_6`8UF:PH!W4YD_-=B]P&$XE7Y;RGY:2 176 M(A@S40J]*O_%*`&<6L'';M60:CM&M.J^/B+P,0L9H<J4*F^)_`,E_%$D_6:[ 177 M_MRLWOD9!,),5@J@OI8ZD:'>]_HQ!-B#!&"_L&O7*0+P%OSWJEH=@-]3\-^L 178 M2@X&)$H@^4J5_TQ5N,P1.EN'#?79A<_*>)7LST_[-4V2U)P_W#4=<AJ>?Y#/ 179 MRU*YLBM77IUH)>G$SK+%EJ1;I`0L;J7EPV[M?>*3<F)@K+2W@,)'TE3P[WZA 180 MU+]PC"@F8W.+SN3=0KE#G[N)`.7LT/>J_`>KVM'V["^G@$43RK6AY-FS/V#, 181 MIX9B5G4XJSZ<A<.PS(%C<(1=^>]74:?](YM+W+(=&1E9<W^/9H4JNQLW;Q_F 182 MJT_-8R-T\Q$>287+G2,`#I#2MNL0NZ;5^WC'SZ33\_ZL?.NZ\SI1#*4K5:*X 183 ML[<5,7543#(X(ZG\%ZJ$0-".'0!$Y^E%I>RX6]P'^O;9U_EV,6=;D`S<P(SU 184 MZFNSY4NHI#A$`_QGK>12&BXQ>MQ/^<];^7PR55NX4`!`>-8*N4,W[^@!,RK; 185 M?@/B+"`]?S^"JCT7/D!P[+YE*E<C9UU8L(NLW3_,]\'$N&N:S;);FB,]1>]Q 186 M.O;?K`KC<,+C)M5KMON@$"_+YY.L&Y,9#DKVNV10DG)YH?]A8-JB/S`A#VPN 187 MY8_L^^\N;0(M9.V\4%]FW[D[.Y^!VG@_7RQW0<,'^&NN_WK2'@&C!_Z8Z;F' 188 M&WP$-2V!/^?_MY"DEK>+9X'U5+QS)K)\*N'M7)")RM\\U96+2JM?FLI]6J_O 189 M3JR4JZ"<%\,#Y=C_PW+U;RSG?ENY"O5()7=\=:/>"V_W!T:_]Z5:9?=R%;G7 190 MW@-REZU7_*4T5G'D*N^W+U*P%T%^B8/Q60+(SS*,JQ+CGMK'/;]?I=6QITMN 191 M)?O,HOXK<ZBB[U+1=ZC(QMADJ.7Y2J3B4[-JMN3$SI?[9KLB9_JK?/&SJM[9 192 EHIH7OK,__L9_@L??M;W_N-O/]T^[,S+I__[D_P"@,6XR>((````` 193 193 ` 194 194 end -
Tst/Short/countedref_s.stat
ra497a1 r36ebfa 1 1 >> tst_memory_0 :: 134 6934951:3150:3-1-5:x86_64-Linux:lts035:19187362 1 >> tst_memory_1 :: 134 6934951:3150:3-1-5:x86_64-Linux:lts035:41946163 1 >> tst_memory_2 :: 134 6934951:3150:3-1-5:x86_64-Linux:lts035:41987204 1 >> tst_timer_1 :: 134 6934951:3150:3-1-5:x86_64-Linux:lts035:781 1 >> tst_memory_0 :: 1347052869:3150:3-1-5:x86_64-Linux:lts035:709280 2 1 >> tst_memory_1 :: 1347052869:3150:3-1-5:x86_64-Linux:lts035:2245824 3 1 >> tst_memory_2 :: 1347052869:3150:3-1-5:x86_64-Linux:lts035:2278624 4 1 >> tst_timer_1 :: 1347052869:3150:3-1-5:x86_64-Linux:lts035:13 -
Tst/Short/countedref_s.tst
ra497a1 r36ebfa 4 4 tst_init(); 5 5 6 7 6 system("reference"); 7 system("shared"); 8 8 9 9 -
configure.ac
ra497a1 r36ebfa 132 132 AM_CONDITIONAL(WANT_DEBUG, test x"${ENABLE_DEBUG}" == xyes) 133 133 134 AC_ARG_ENABLE(countedref, AS_HELP_STRING([--enable-countedref], [Enable autoloading of reference counted types]), 135 [if test "x$enableval" = "xyes"; then 136 ENABLE_COUNTEDREF_AUTOLOAD=yes 137 fi], ENABLE_COUNTEDREF_AUTOLOAD=no) 138 139 if test x"${ENABLE_COUNTEDREF_AUTOLOAD}" == xyes; then 140 AC_DEFINE([SI_COUNTEDREF_AUTOLOAD],1,[Enable autoloading of reference counted types]) 141 AC_SUBST(SI_COUNTEDREF_AUTOLOAD) 142 fi 143 134 144 AC_CONFIG_SUBDIRS([findexec]) 135 145 AC_CONFIG_SUBDIRS([omalloc]) -
dyn_modules/bigintm/Makefile.am
rd1fbbf r36ebfa 15 15 ## --no-exceptions 16 16 17 DEBUGCXXFLAGS = -g -Wextra -W all -pedantic -Wno-long-long ${CXXTEMPLFLAGS}17 DEBUGCXXFLAGS = -g -Wextra -Winline -Wall -pedantic -Wno-long-long ${CXXTEMPLFLAGS} 18 18 19 19 NODEBUGCFLAGS = -O3 -w -fomit-frame-pointer ${PIPE} -
dyn_modules/bigintm/SConstruct
rd1fbbf r36ebfa 37 37 SHLIBSUFFIX = ".sog", 38 38 CPPPATH = SING_INCLUDES, 39 CXXFLAGS = "-g -Wextra -W all -pedantic -Wno-long-long " + CXXTEMPLFLAGS,39 CXXFLAGS = "-g -Wextra -Winline -Wall -pedantic -Wno-long-long " + CXXTEMPLFLAGS, 40 40 LDMODULEFLAGS = BUNDLETEMPFLAGS, 41 41 LIBS=[]) -
dyn_modules/syzextra/Makefile.am
rd1fbbf r36ebfa 15 15 ## --no-exceptions 16 16 17 DEBUGCXXFLAGS = -g -Wextra -W all -pedantic -Wno-long-long ${CXXTEMPLFLAGS}17 DEBUGCXXFLAGS = -g -Wextra -Winline -Wall -pedantic -Wno-long-long ${CXXTEMPLFLAGS} 18 18 19 19 NODEBUGCFLAGS = -O3 -w -fomit-frame-pointer ${PIPE} -
dyn_modules/syzextra/SConstruct
rd1fbbf r36ebfa 37 37 SHLIBSUFFIX = ".sog", 38 38 CPPPATH = SING_INCLUDES, 39 CXXFLAGS = "-g -Wextra -W all -pedantic -Wno-long-long " + CXXTEMPLFLAGS,39 CXXFLAGS = "-g -Wextra -Winline -Wall -pedantic -Wno-long-long " + CXXTEMPLFLAGS, 40 40 LDMODULEFLAGS = BUNDLETEMPFLAGS, 41 41 LIBS=[]) -
factory/CMakeLists.txt
rd1fbbf r36ebfa 74 74 if (${CMAKE_CXX_COMPILER_ID} MATCHES "GNU") 75 75 76 #set(CMAKE_CXX_FLAGS "-W -Wall -Wextra -W no-non-virtual-dtor")76 #set(CMAKE_CXX_FLAGS "-W -Wall -Wextra -Winline -Wno-non-virtual-dtor") 77 77 set(CMAKE_CXX_FLAGS "-w --no-rtti -pipe ") 78 78 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-implicit-templates") -
factory/Makefile.am
rd1fbbf r36ebfa 20 20 libfactory_la_LIBADD = ${abs_builddir}/libfac/libfac.la $(FLINT_LIBS) ${GMP_LIBS} ${NTL_LIBS} 21 21 libfactory_la_LDFLAGS = -release ${PACKAGE_VERSION} 22 libfactory_g_la_CXXFLAGS = -g -Wextra -W all -pedantic -Wno-long-long ${CXXTEMPLFLAGS}22 libfactory_g_la_CXXFLAGS = -g -Wextra -Winline -Wall -pedantic -Wno-long-long ${CXXTEMPLFLAGS} 23 23 libfactory_g_la_LIBADD = ${abs_builddir}/libfac/libfac_g.la $(FLINT_LIBS) ${GMP_LIBS} ${NTL_LIBS} 24 24 libfactory_g_la_LDFLAGS = -release ${PACKAGE_VERSION} … … 312 312 313 313 test_s_g_SOURCES = $(TESTSSOURCES) 314 test_s_g_CFLAGS = -g -Wextra -W all -pedantic -Wno-long-long -fomit-frame-pointer314 test_s_g_CFLAGS = -g -Wextra -Winline -Wall -pedantic -Wno-long-long -fomit-frame-pointer 315 315 #ftmpl_inst.o 316 316 test_s_g_LDADD = -lfactory_g $(FLINT_LIBS) $(GMP_LIBS) $(NTL_LIBS) $(TESTADDLIBDEBUG) … … 325 325 326 326 test_d_g_SOURCES = $(TESTSSOURCES) 327 test_d_g_CFLAGS = -g -Wextra -W all -pedantic -Wno-long-long -fomit-frame-pointer327 test_d_g_CFLAGS = -g -Wextra -Winline -Wall -pedantic -Wno-long-long -fomit-frame-pointer 328 328 #ftmpl_inst.o 329 329 test_d_g_LDADD = -lfactory_g $(FLINT_LIBS) $(GMP_LIBS) $(NTL_LIBS) $(TESTADDLIBDEBUG) -
factory/libfac/CMakeLists.txt
rd1fbbf r36ebfa 35 35 if (${CMAKE_CXX_COMPILER_ID} MATCHES "GNU") 36 36 37 #set(CMAKE_CXX_FLAGS "-W -Wall -Wextra -W no-non-virtual-dtor")37 #set(CMAKE_CXX_FLAGS "-W -Wall -Wextra -Winline -Wno-non-virtual-dtor") 38 38 set(CMAKE_CXX_FLAGS "-w --no-rtti -pipe ") 39 39 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-implicit-templates") -
factory/libfac/Makefile.am
rd1fbbf r36ebfa 13 13 14 14 libfac_la_CXXFLAGS = -O3 -fomit-frame-pointer ${PIPE} ${CXXTEMPLFLAGS} 15 libfac_g_la_CXXFLAGS = -g -Wextra -W all -pedantic -Wno-long-long ${PIPE} ${CXXTEMPLFLAGS}15 libfac_g_la_CXXFLAGS = -g -Wextra -Winline -Wall -pedantic -Wno-long-long ${PIPE} ${CXXTEMPLFLAGS} 16 16 # -fdiagnostics-show-option 17 17 -
findexec/Makefile.am
rd1fbbf r36ebfa 18 18 libfindexec_la_CXXFLAGS = -O3 -fomit-frame-pointer ${PIPE} ${CXXTEMPLFLAGS} 19 19 ## --no-rtti 20 libfindexec_g_la_CXXFLAGS = -g -Wextra -W all -pedantic -Wno-long-long ${PIPE} ${CXXTEMPLFLAGS}20 libfindexec_g_la_CXXFLAGS = -g -Wextra -Winline -Wall -pedantic -Wno-long-long ${PIPE} ${CXXTEMPLFLAGS} 21 21 # -fdiagnostics-show-option 22 22 -
kernel/Makefile.am
rd1fbbf r36ebfa 21 21 libkerneldir = $(libdir)/singular 22 22 23 libkernel_la_CFLAGS = -O3 -fomit-frame-pointer -Wextra -W all -Wno-long-long ${PIPE}24 libkernel_g_la_CFLAGS = -g -Wextra -W all -Wno-long-long -pedantic ${PIPE}23 libkernel_la_CFLAGS = -O3 -fomit-frame-pointer -Wextra -Winline -Wall -Wno-long-long ${PIPE} 24 libkernel_g_la_CFLAGS = -g -Wextra -Winline -Wall -Wno-long-long -pedantic ${PIPE} 25 25 ## -pedantic 26 26 27 libkernel_la_CXXFLAGS = -O3 -fomit-frame-pointer -Wextra -W all -Wno-long-long ${PIPE} $(CXXTEMPLFLAGS)28 libkernel_g_la_CXXFLAGS = -g -Wextra -W all -Wno-long-long -pedantic ${PIPE} $(CXXTEMPLFLAGS)27 libkernel_la_CXXFLAGS = -O3 -fomit-frame-pointer -Wextra -Winline -Wall -Wno-long-long ${PIPE} $(CXXTEMPLFLAGS) 28 libkernel_g_la_CXXFLAGS = -g -Wextra -Winline -Wall -Wno-long-long -pedantic ${PIPE} $(CXXTEMPLFLAGS) 29 29 # -fdiagnostics-show-option 30 30 … … 103 103 test_s_g_CFLAGS = ${PIPE} 104 104 105 test_s_r_CXXFLAGS = -O3 -fomit-frame-pointer -Wextra -W all -Wno-long-long ${PIPE} $(CXXTEMPLFLAGS)106 test_s_g_CXXFLAGS = -g -Wextra -W all -Wno-long-long -pedantic ${PIPE} $(CXXTEMPLFLAGS)105 test_s_r_CXXFLAGS = -O3 -fomit-frame-pointer -Wextra -Winline -Wall -Wno-long-long ${PIPE} $(CXXTEMPLFLAGS) 106 test_s_g_CXXFLAGS = -g -Wextra -Winline -Wall -Wno-long-long -pedantic ${PIPE} $(CXXTEMPLFLAGS) 107 107 108 108 testsources = test.cc … … 123 123 test_d_g_CFLAGS = ${PIPE} 124 124 125 test_d_r_CXXFLAGS = -O3 -fomit-frame-pointer -Wextra -W all -Wno-long-long ${PIPE} $(CXXTEMPLFLAGS)126 test_d_g_CXXFLAGS = -g -Wextra -W all -Wno-long-long -pedantic ${PIPE} $(CXXTEMPLFLAGS)125 test_d_r_CXXFLAGS = -O3 -fomit-frame-pointer -Wextra -Winline -Wall -Wno-long-long ${PIPE} $(CXXTEMPLFLAGS) 126 test_d_g_CXXFLAGS = -g -Wextra -Winline -Wall -Wno-long-long -pedantic ${PIPE} $(CXXTEMPLFLAGS) 127 127 128 128 test_d_r_SOURCES = $(testsources) -
kernel/kInline.h
rd1fbbf r36ebfa 22 22 23 23 #include <polys/monomials/p_polys.h> 24 #include <polys/templates/p_Procs.h>25 24 #include <polys/kbuckets.h> 26 25 … … 311 310 { 312 311 if (t_p != NULL) 313 { t_p = tailRing->p_Procs->p_Mult_nn(t_p, n, tailRing);312 { t_p = p_Mult_nn(t_p, n, tailRing); 314 313 if (p != NULL) pSetCoeff0(p, pGetCoeff(t_p)); 315 314 } … … 583 582 poly _p = (t_p != NULL ? t_p : p); 584 583 assume(_p != NULL); 585 pNext(_p) = tailRing->p_Procs->p_Mult_nn(pNext(_p), n, tailRing);584 pNext(_p) = p_Mult_nn(pNext(_p), n, tailRing); 586 585 } 587 586 } … … 598 597 poly _p = (t_p != NULL ? t_p : p); 599 598 assume(_p != NULL); 600 int shorter; 601 pNext(_p) = tailRing->p_Procs->p_Minus_mm_Mult_qq(pNext(_p), m, q,602 shorter,spNoether,603 604 pLength += lq - shorter;599 600 pNext(_p) = p_Minus_mm_Mult_qq( pNext(_p), m, q, pLength, lq, 601 spNoether, last, tailRing ); 602 // tailRing->p_Procs->p_Minus_mm_Mult_qq(pNext(_p), m, q, shorter,spNoether, tailRing, last); 603 // pLength += lq - shorter; 605 604 } 606 605 } -
libpolys/coeffs/Enumerator.h
rd1fbbf r36ebfa 22 22 /** @class IBaseEnumerator 23 23 * 24 * Base enumerator interface for simple iteration over a generic non-empty collection. 25 * 26 * Abstract API of enumerators for non-empty enumerable collections of standalone 27 * objects. Inspired by IEnumerator from C#. Usage parrten can be as 28 * follows: 24 * Base enumerator interface for simple iteration over a generic collection. 25 * 26 * Abstract API of enumerators for enumerable collections of standalone objects. 27 * Just like IEnumerator from C#. Usage pattern can be as follows: 29 28 * 30 29 * @code 31 * IBaseEnumerator itr = ...; 32 * itr.Reset(); // goes to the first element (must exist) 33 * do 30 * IBaseEnumerator& itr = ...; 31 * itr.Reset(); // goes to the "-1" element 32 * // NOTE: itr is not useable here! 33 * while( itr.MoveNext() ) 34 34 * { 35 35 * do something custom with itr... 36 36 * } 37 * while( itr.MoveNext() )38 37 * @endcode 39 38 * 40 * Note that the first element must exist and available directly after Reset() call.39 * Note that the Reset() 41 40 * 42 41 * @sa IEnumerator … … 51 50 virtual bool MoveNext() = 0; 52 51 53 /// Sets the enumerator to its initial position, which is at the first element in the collection. 52 /// Sets the enumerator to its initial position: -1, 53 /// which is before the first element in the collection. 54 54 virtual void Reset() = 0; 55 // virtual ~IEnumerator() {} // TODO: needed? 55 56 virtual ~IBaseEnumerator() {} // TODO: needed? 57 58 private: 59 IBaseEnumerator(const IBaseEnumerator&); 60 void operator=(const IBaseEnumerator&); 61 62 protected: 63 IBaseEnumerator(){} 64 65 /// Current position is inside the collection (not -1 or past the end) 66 virtual bool IsValid() const = 0; 56 67 }; 57 68 … … 78 89 /// Gets the current element in the collection (read only). 79 90 virtual const_reference Current() const = 0; 91 92 virtual ~IAccessor() {} // TODO: needed? 93 80 94 }; 81 95 82 96 /** @class IEnumerator 83 97 * 84 * Templated enumerator interface for simple iteration over a generic non-emptycollection of T's.85 * 86 * Abstract API of enumerators for non-emptyenumerable collections of standalone87 * objects . Inspired by IEnumerator from C#. Usage parrten can be as98 * Templated enumerator interface for simple iteration over a generic collection of T's. 99 * 100 * Abstract API of enumerators for generic enumerable collections of standalone 101 * objects of type T. Inspired by IEnumerator from C#. Usage parrten can be as 88 102 * follows: 89 103 * 90 104 * @code 91 * IEnumerator<T> itr = ...; 92 * itr.Reset(); // goes to the first element (must exist) 93 * do 105 * IEnumerator<T>& itr = ...; 106 * 107 * itr.Reset(); // goes before the first element, thus no itr.Current() is available here! 108 * 109 * while( itr.MoveNext() ) 94 110 * { 95 111 * use/change itr.Current()... 96 112 * } 97 * while( itr.MoveNext() )98 113 * @endcode 99 114 * -
libpolys/coeffs/Makefile.am
rd1fbbf r36ebfa 17 17 18 18 libcoeffs_la_CXXFLAGS = -O3 -fomit-frame-pointer ${PIPE} ${CXXTEMPLFLAGS} 19 libcoeffs_g_la_CXXFLAGS = -g -Wextra -W all -pedantic -Wno-long-long ${PIPE} ${CXXTEMPLFLAGS}19 libcoeffs_g_la_CXXFLAGS = -g -Wextra -Winline -Wall -pedantic -Wno-long-long ${PIPE} ${CXXTEMPLFLAGS} 20 20 # -fdiagnostics-show-option 21 21 … … 87 87 test_s_r_CXXFLAGS = -O3 -fomit-frame-pointer ${PIPE} ${CXXTEMPLFLAGS} 88 88 # -fimplicit-templates 89 test_s_g_CXXFLAGS = -g -Wextra -W all -pedantic -Wno-long-long ${PIPE} ${CXXTEMPLFLAGS}89 test_s_g_CXXFLAGS = -g -Wextra -Winline -Wall -pedantic -Wno-long-long ${PIPE} ${CXXTEMPLFLAGS} 90 90 # -fimplicit-templates 91 91 # -fdiagnostics-show-option 92 92 test_d_r_CXXFLAGS = -O3 -fomit-frame-pointer ${PIPE} ${CXXTEMPLFLAGS} 93 test_d_g_CXXFLAGS = -g -Wextra -W all -pedantic -Wno-long-long ${PIPE} ${CXXTEMPLFLAGS}93 test_d_g_CXXFLAGS = -g -Wextra -Winline -Wall -pedantic -Wno-long-long ${PIPE} ${CXXTEMPLFLAGS} 94 94 95 95 -
libpolys/coeffs/longrat.cc
rd1fbbf r36ebfa 2645 2645 assume(cf != NULL); 2646 2646 assume(getCoeffType(cf) == ID); 2647 2648 numberCollectionEnumerator.Reset(); 2649 2650 if( !numberCollectionEnumerator.MoveNext() ) // empty zero polynomial? 2651 { 2652 c = n_Init(1, cf); 2653 return; 2654 } 2655 2647 2656 // all coeffs are given by integers!!! 2648 2657 … … 2651 2660 int s1,s; 2652 2661 s=2147483647; // max. int 2653 numberCollectionEnumerator.Reset(); 2662 2663 2654 2664 int lc_is_pos=nlGreaterZero(numberCollectionEnumerator.Current(),cf); 2665 2666 int normalcount = 0; 2655 2667 do 2656 2668 { 2657 cand1= numberCollectionEnumerator.Current(); 2658 if (SR_HDL(cand1)&SR_INT) { cand=cand1;break;} 2659 assume(cand1->s==3); // all coeffs should be integers 2669 number& n = numberCollectionEnumerator.Current(); 2670 nlNormalize(n, cf); ++normalcount; 2671 cand1 = n; 2672 2673 if (SR_HDL(cand1)&SR_INT) { cand=cand1; break; } 2674 assume(cand1->s==3); // all coeffs should be integers // ==0?!! after printing 2660 2675 s1=mpz_size1(cand1->z); 2661 2676 if (s>s1) … … 2666 2681 } while (numberCollectionEnumerator.MoveNext() ); 2667 2682 2683 // assume( nlGreaterZero(cand,cf) ); // cand may be a negative integer! 2684 2668 2685 cand=nlCopy(cand,cf); 2669 2686 // part 2: compute gcd(cand,all coeffs) 2687 2670 2688 numberCollectionEnumerator.Reset(); 2671 do 2672 { 2673 nlNormalize(numberCollectionEnumerator.Current(),cf); 2674 nlInpGcd(cand,numberCollectionEnumerator.Current(),cf); 2689 2690 while (numberCollectionEnumerator.MoveNext() ) 2691 { 2692 number& n = numberCollectionEnumerator.Current(); 2693 2694 if( (--normalcount) <= 0) 2695 nlNormalize(n, cf); 2696 2697 nlInpGcd(cand, n, cf); 2698 2699 assume( nlGreaterZero(cand,cf) ); 2700 2675 2701 if(nlIsOne(cand,cf)) 2676 2702 { 2677 c=cand; 2703 c = cand; 2704 2678 2705 if(!lc_is_pos) 2679 2706 { 2680 2707 // make the leading coeff positive 2681 c =nlNeg(c,cf);2708 c = nlNeg(c, cf); 2682 2709 numberCollectionEnumerator.Reset(); 2683 do 2710 2711 while (numberCollectionEnumerator.MoveNext() ) 2684 2712 { 2685 numberCollectionEnumerator.Current()=nlNeg(numberCollectionEnumerator.Current(),cf); 2686 } while (numberCollectionEnumerator.MoveNext() ); 2713 number& nn = numberCollectionEnumerator.Current(); 2714 nn = nlNeg(nn, cf); 2715 } 2687 2716 } 2688 2717 return; 2689 2718 } 2690 } while (numberCollectionEnumerator.MoveNext() );2719 } 2691 2720 2692 2721 // part3: all coeffs = all coeffs / cand 2693 if (!lc_is_pos) cand=nlNeg(cand,cf); 2694 c=cand; 2722 if (!lc_is_pos) 2723 cand = nlNeg(cand,cf); 2724 2725 c = cand; 2695 2726 numberCollectionEnumerator.Reset(); 2696 do 2697 { 2698 number t=nlIntDiv(numberCollectionEnumerator.Current(),cand,cf); 2699 nlDelete(&numberCollectionEnumerator.Current(),cf); 2700 numberCollectionEnumerator.Current()=t; 2701 } while (numberCollectionEnumerator.MoveNext() ); 2702 2727 2728 while (numberCollectionEnumerator.MoveNext() ) 2729 { 2730 number& n = numberCollectionEnumerator.Current(); 2731 number t=nlIntDiv(n, cand, cf); // simple integer exact division, no ratios to remain 2732 nlDelete(&n, cf); 2733 n = t; 2734 } 2703 2735 } 2704 2736 … … 2707 2739 assume(cf != NULL); 2708 2740 assume(getCoeffType(cf) == ID); 2741 2742 numberCollectionEnumerator.Reset(); 2743 2744 if( !numberCollectionEnumerator.MoveNext() ) // empty zero polynomial? 2745 { 2746 c = n_Init(1, cf); 2747 return; 2748 } 2749 2709 2750 // all coeffs are given by integers after returning from this routine 2710 2751 … … 2712 2753 number cand; 2713 2754 cand=ALLOC_RNUMBER(); 2714 2755 #if defined(LDEBUG) 2715 2756 cand->debug=123456; 2716 2757 #endif 2717 2758 cand->s=3; 2718 2759 2719 2760 int s=0; 2720 mpz_t tmp; 2721 mpz_init(tmp); 2722 numberCollectionEnumerator.Reset(); 2761 // mpz_t tmp; mpz_init(tmp); // tmp = GMP int 2762 2723 2763 int lc_is_pos=nlGreaterZero(numberCollectionEnumerator.Current(),cf); 2764 2724 2765 do 2725 2766 { … … 2730 2771 nlNormalize(cand1, cf); 2731 2772 if ((!(SR_HDL(cand1)&SR_INT)) // not a short int 2732 && (cand1->s==1)) // and is rational2773 && (cand1->s==1)) // and is a normalised rational 2733 2774 { 2734 2775 if (s==0) // first denom, we meet 2735 2776 { 2736 mpz_init_set(cand->z, cand1->n);2777 mpz_init_set(cand->z, cand1->n); // cand->z = cand1->n 2737 2778 s=1; 2738 2779 } 2739 2780 else // we have already something 2740 2781 { 2741 mpz_gcd(tmp,cand->z,cand1->n); 2742 if (mpz_cmp_si(tmp,1)!=0) 2743 { 2744 mpz_divexact(cand->z,cand->z,tmp); 2745 } 2746 mpz_mul(cand->z,cand->z,cand1->n); 2782 mpz_lcm(cand->z, cand->z, cand1->n); 2783 /* 2784 mpz_gcd(tmp,cand->z,cand1->n); // tmp = GCD( cand->z, cand1->n ) 2785 2786 if (mpz_cmp_si(tmp,1)!=0) 2787 mpz_divexact(cand->z,cand->z,tmp); // cand->z /= tmp 2788 2789 mpz_mul(cand->z,cand->z,cand1->n); // cand->z *= cand1->n 2790 */ 2747 2791 } 2748 2792 } 2749 2793 } 2750 } while (numberCollectionEnumerator.MoveNext() ); 2794 } 2795 while (numberCollectionEnumerator.MoveNext() ); 2796 2751 2797 2752 2798 if (s==0) // nothing to do, all coeffs are already integers 2753 2799 { 2754 mpz_clear(tmp);2800 // mpz_clear(tmp); 2755 2801 FREE_RNUMBER(cand); 2756 2802 if (lc_is_pos) … … 2760 2806 // make the leading coeff positive 2761 2807 c=nlInit(-1,cf); 2808 2809 // TODO: incorporate the following into the loop below? 2762 2810 numberCollectionEnumerator.Reset(); 2763 do 2764 { 2765 numberCollectionEnumerator.Current()=nlNeg(numberCollectionEnumerator.Current(),cf); 2766 } while (numberCollectionEnumerator.MoveNext() ); 2811 while (numberCollectionEnumerator.MoveNext() ) 2812 { 2813 number& n = numberCollectionEnumerator.Current(); 2814 n = nlNeg(n, cf); 2815 } 2767 2816 } 2768 2817 return; 2769 2818 } 2770 cand=nlShort3(cand); 2819 2820 cand = nlShort3(cand); 2771 2821 2772 2822 // part2: all coeffs = all coeffs * cand 2773 2823 // make the lead coeff positive 2774 2824 numberCollectionEnumerator.Reset(); 2775 if (!nlGreaterZero(numberCollectionEnumerator.Current(),cf))2776 {2777 cand =nlNeg(cand,cf);2778 }2825 2826 if (!lc_is_pos) 2827 cand = nlNeg(cand, cf); 2828 2779 2829 c = cand; 2780 do 2830 2831 while (numberCollectionEnumerator.MoveNext() ) 2781 2832 { 2782 2833 number &n = numberCollectionEnumerator.Current(); 2783 2834 n_InpMult(n, cand, cf); 2784 } while (numberCollectionEnumerator.MoveNext() );2835 } 2785 2836 2786 2837 } -
libpolys/coeffs/numbers.cc
rd1fbbf r36ebfa 131 131 assume(!( nCoeff_is_Q(r) || nCoeff_is_Q_a(r) )); 132 132 // all coeffs are given by integers!!! 133 assume( nCoeff_is_Ring(r) || nCoeff_is_Zp(r) || nCoeff_is_numeric(r) || nCoeff_is_GF(r) || nCoeff_is_Zp_a(r) );134 133 135 134 numberCollectionEnumerator.Reset(); 135 136 if( !numberCollectionEnumerator.MoveNext() ) // empty zero polynomial? 137 { 138 c = n_Init(1, r); 139 return; 140 } 141 142 number &curr = numberCollectionEnumerator.Current(); 136 143 137 144 #ifdef HAVE_RINGS … … 141 148 if (nCoeff_has_Units(r)) 142 149 { 143 c = n_GetUnit( numberCollectionEnumerator.Current(), r);150 c = n_GetUnit(curr, r); 144 151 145 152 if (!n_IsOne(c, r)) … … 147 154 number inv = n_Invers(c, r); 148 155 149 do 156 n_InpMult(curr, inv, r); 157 158 while( numberCollectionEnumerator.MoveNext() ) 150 159 { 151 n_InpMult(numberCollectionEnumerator.Current(), inv, r); 160 number &n = numberCollectionEnumerator.Current(); 161 n_Normalize(n, r); // ? 162 n_InpMult(n, inv, r); // TODO: either this or directly divide!!!? 152 163 } 153 while( numberCollectionEnumerator.MoveNext() );154 164 155 165 n_Delete(&inv, r); … … 162 172 163 173 assume(!nCoeff_is_Ring(r)); 164 165 c = numberCollectionEnumerator.Current(); 174 assume(nCoeff_is_Zp(r) || nCoeff_is_numeric(r) || nCoeff_is_GF(r) || nCoeff_is_Zp_a(r)); 175 176 c = curr; 166 177 167 178 n_Normalize(c, r); … … 169 180 if (!n_IsOne(c, r)) 170 181 { 171 numberCollectionEnumerator.Current()= n_Init(1, r); // ???182 curr = n_Init(1, r); // ??? 172 183 173 184 number inv = n_Invers(c, r); … … 177 188 number &n = numberCollectionEnumerator.Current(); 178 189 n_Normalize(n, r); // ? 179 n_InpMult(n, inv, r); 190 n_InpMult(n, inv, r); // TODO: either this or directly divide!!!? 180 191 } 181 192 -
libpolys/misc/Makefile.am
rd1fbbf r36ebfa 17 17 18 18 libmisc_la_CXXFLAGS = -O3 -fomit-frame-pointer ${PIPE} ${CXXTEMPLFLAGS} 19 libmisc_g_la_CXXFLAGS = -g -Wextra -W all -pedantic -Wno-long-long ${PIPE} ${CXXTEMPLFLAGS}19 libmisc_g_la_CXXFLAGS = -g -Wextra -Winline -Wall -pedantic -Wno-long-long ${PIPE} ${CXXTEMPLFLAGS} 20 20 # -fdiagnostics-show-option 21 21 -
libpolys/polys/Makefile.am
rd1fbbf r36ebfa 1 1 CXXTEMPLFLAGS = ## -fno-implicit-templates 2 2 3 DEBUGCXXFLAGS = -g -Wextra -W all -pedantic -Wno-long-long3 DEBUGCXXFLAGS = -g -Wextra -Winline -Wall -pedantic -Wno-long-long 4 4 5 5 NODEBUGCFLAGS = -O3 -w -fomit-frame-pointer … … 48 48 ext_fields/algext.cc ext_fields/transext.cc \ 49 49 clapsing.cc clapconv.cc \ 50 nc/old.gring.cc 50 nc/old.gring.cc PolyEnumerator.cc 51 51 52 52 LIBPOLYSHEADERS = monomials/ring.h monomials/monomials.h \ -
libpolys/polys/PolyEnumerator.h
rd1fbbf r36ebfa 19 19 #include <coeffs/Enumerator.h> 20 20 #include <polys/monomials/monomials.h> 21 #include <reporter/reporter.h> // for assume etc. 21 22 22 23 /** @class CBasePolyEnumerator 23 24 * 24 * Base polynomial enumerator for simple iteration over terms of 25 * (non-zero) polynomials. 25 * Base polynomial enumerator for simple iteration over terms of polynomials. 26 26 * 27 * Note that the first element must exist directly after Reset() call.28 * Moreover, it doesn't inherit from IAccessor and thus doesn't29 * override Current().27 * Note that the first element desn't exist directly after Reset() call. 28 * 29 * The class doesn't inherit from IAccessor and thus doesn't override Current(). 30 30 * 31 31 * @sa IBaseEnumerator, @sa CPolyCoeffsEnumerator … … 34 34 { 35 35 private: 36 const poly m_poly; 36 const poly m_poly; ///< essentially immutable original iterable object 37 38 static const spolyrec m_prevposition_struct; ///< tag for "-1" position 37 39 38 40 protected: 39 poly m_position; 41 poly m_position; ///< current position in the iterable object 42 43 virtual bool IsValid() const 44 { 45 // not -1 or past the end position? 46 return (m_position != NULL) && (m_position != &m_prevposition_struct); 47 } 40 48 41 inline void Iterate() 49 public: 50 CBasePolyEnumerator(poly p): 51 IBaseEnumerator(), m_poly(p), m_position(const_cast<poly>(&m_prevposition_struct)) 42 52 { 43 if( m_position != NULL ) 44 pIter( m_position ); 45 } 46 public: 47 CBasePolyEnumerator(poly p): m_poly(p), m_position(p) { assume(p != NULL); } 53 assume( !IsValid() ); 54 } 48 55 49 56 /// Sets the position marker to the leading term. 50 virtual void Reset() { assume(m_poly!= NULL); m_position = m_poly; } 57 virtual void Reset() 58 { 59 m_position = const_cast<poly>(&m_prevposition_struct); 60 assume( !IsValid() ); 61 } 51 62 52 63 /// Advances the position to the next term of the polynomial. 53 64 /// returns true if the position marker was successfully advanced to the 54 /// next term ;65 /// next term which can be used; 55 66 /// false if the position marker has passed the end of the 56 67 /// polynomial. … … 58 69 { 59 70 assume( m_position != NULL ); 60 Iterate(); 61 return (m_position != NULL); 71 72 { 73 const poly p_next = pNext(m_position); 74 75 if (p_next != NULL) // not the last term? 76 { 77 m_position = p_next; 78 assume( IsValid() ); 79 return true; 80 } 81 } 82 83 if (m_position == &m_prevposition_struct) // -1 position? 84 { 85 assume( !IsValid() ); 86 m_position = m_poly; 87 return (m_position != NULL); 88 } 89 90 // else: past the end (or an empty polynomial) 91 m_position = NULL; 92 assume( !IsValid() ); 93 return false; 62 94 } 63 95 }; … … 71 103 * 72 104 * This is a polynomial enumerator for simple iteration over 73 * coefficients of (non-zero)polynomials.105 * coefficients of polynomials. 74 106 * 75 107 * It is required to inherit this class from IEnumerator<number> for … … 90 122 virtual IPolyCoeffsEnumerator::reference Current() 91 123 { 92 assume( m_position != NULL);124 assume( IsValid() ); 93 125 return pGetCoeff(m_position); 94 126 } … … 97 129 virtual IPolyCoeffsEnumerator::const_reference Current() const 98 130 { 99 assume( m_position != NULL);131 assume( IsValid() ); 100 132 return pGetCoeff(m_position); 101 133 } -
libpolys/polys/monomials/monomials.h
rd1fbbf r36ebfa 9 9 10 10 #include <omalloc/omalloc.h> 11 #include <reporter/reporter.h> // for assume etc. 11 12 12 13 struct snumber; -
libpolys/polys/monomials/p_polys.cc
rd1fbbf r36ebfa 2023 2023 static number p_InitContent(poly ph, const ring r); 2024 2024 2025 #define CLEARENUMERATORS 0 2026 2025 2027 void p_Content(poly ph, const ring r) 2026 2028 { 2027 #if 02028 if( ph != NULL)2029 #if CLEARENUMERATORS 2030 if( (ph != NULL) && nCoeff_is_Q(r->cf) ) 2029 2031 { 2030 2032 CPolyCoeffsEnumerator itr(ph); 2031 2033 n_ClearContent(itr, r->cf); 2032 // return; 2033 } 2034 #endif 2035 2036 2034 2035 assume( n_GreaterZero(pGetCoeff(ph),r->cf) ); 2036 2037 return; 2038 } 2039 #endif 2040 2037 2041 #ifdef HAVE_RINGS 2038 2042 if (rField_is_Ring(r)) … … 2053 2057 pIter(h); 2054 2058 } 2059 assume( n_GreaterZero(pGetCoeff(ph),r->cf) ); 2055 2060 } 2056 2061 n_Delete(&k,r->cf); … … 2069 2074 else 2070 2075 { 2076 #if CLEARENUMERATORS 2077 if( (ph != NULL) && nCoeff_is_Q(r->cf) ) 2078 { 2079 CPolyCoeffsEnumerator itr(ph); 2080 n_ClearContent(itr, r->cf); 2081 assume( n_GreaterZero(pGetCoeff(ph),r->cf) ); 2082 return; 2083 } 2084 #endif 2085 2071 2086 n_Normalize(pGetCoeff(ph),r->cf); 2072 2087 if(!n_GreaterZero(pGetCoeff(ph),r->cf)) ph = p_Neg(ph,r); … … 2441 2456 poly p_Cleardenom(poly ph, const ring r) 2442 2457 { 2458 const coeffs C = r->cf; 2459 2443 2460 poly start=ph; 2444 2461 2445 #if 02446 if( ph != NULL)2462 #if CLEARENUMERATORS 2463 if( (ph != NULL) && nCoeff_is_Q(C) ) 2447 2464 { 2448 2465 CPolyCoeffsEnumerator itr(ph); 2449 n_ClearDenominators(itr, r->cf); 2450 // return start; 2451 } 2452 #endif 2453 2466 n_ClearDenominators(itr, C); 2467 n_ClearContent(itr, C); // divide out the content 2468 2469 assume( n_GreaterZero(pGetCoeff(ph),C) ); 2470 2471 return start; 2472 } 2473 #endif 2474 2454 2475 number d, h; 2455 2476 poly p; … … 2459 2480 { 2460 2481 p_Content(ph,r); 2482 assume( n_GreaterZero(pGetCoeff(ph),C) ); 2461 2483 return start; 2462 2484 } 2463 2485 #endif 2464 if (rField_is_Zp(r) && TEST_OPT_INTSTRATEGY) return start; 2486 2487 if (rField_is_Zp(r) && TEST_OPT_INTSTRATEGY) 2488 { 2489 assume( n_GreaterZero(pGetCoeff(ph),C) ); 2490 return start; 2491 } 2465 2492 p = ph; 2493 2494 assume(p != NULL); 2495 2466 2496 if(pNext(p)==NULL) 2467 2497 { … … 2479 2509 else 2480 2510 p_SetCoeff(p,n_Init(1,r->cf),r); 2481 } 2482 else 2511 2512 assume( n_GreaterZero(pGetCoeff(ph),C) ); 2513 2514 return start; 2515 } 2516 2517 #if CLEARENUMERATORS 2518 if( (ph != NULL) && nCoeff_is_Q(C) ) 2519 { 2520 CPolyCoeffsEnumerator itr(ph); 2521 n_ClearDenominators(itr, C); 2522 n_ClearContent(itr, C); // divide out the content 2523 2524 assume( n_GreaterZero(pGetCoeff(ph),C) ); 2525 2526 return start; 2527 } 2528 #endif 2529 2530 if(1) 2483 2531 { 2484 2532 h = n_Init(1,r->cf); … … 2571 2619 #endif 2572 2620 } 2621 2622 assume( n_GreaterZero(pGetCoeff(ph),C) ); 2623 2573 2624 return start; 2574 2625 } … … 2576 2627 void p_Cleardenom_n(poly ph,const ring r,number &c) 2577 2628 { 2578 #if 0 2579 if( ph != NULL ) 2580 { 2581 CPolyCoeffsEnumerator itr(ph); 2582 n_ClearDenominators(itr, c, r->cf); 2583 // return; 2584 } 2585 #endif 2586 2629 const coeffs C = r->cf; 2587 2630 number d, h; 2588 2631 poly p; 2589 2632 2590 2633 p = ph; 2634 2635 assume(ph != NULL); 2636 2637 2638 2639 #if CLEARENUMERATORS 2640 if( (ph != NULL) && nCoeff_is_Q(C) ) 2641 { 2642 CPolyCoeffsEnumerator itr(ph); 2643 n_ClearDenominators(itr, d, C); // multiply with common denom. d 2644 n_ClearContent(itr, h, C); // divide by the content h 2645 2646 c = n_Div(d, h, C); // d/h 2647 2648 n_Delete(&d, C); 2649 n_Delete(&h, C); 2650 2651 assume( n_GreaterZero(pGetCoeff(ph),C) ); 2652 2653 return; 2654 } 2655 #endif 2656 2591 2657 if(pNext(p)==NULL) 2592 2658 { 2593 c=n_Invers(pGetCoeff(p),r->cf); 2594 p_SetCoeff(p,n_Init(1,r->cf),r); 2595 } 2596 else 2659 c=n_Invers(pGetCoeff(p), C); 2660 p_SetCoeff(p, n_Init(1, C), r); 2661 2662 assume( n_GreaterZero(pGetCoeff(ph),C) ); 2663 2664 return; 2665 } 2666 2667 #if CLEARENUMERATORS 2668 if( (ph != NULL) && nCoeff_is_Q(C) ) 2669 { 2670 CPolyCoeffsEnumerator itr(ph); 2671 n_ClearDenominators(itr, d, C); // multiply with common denom. d 2672 n_ClearContent(itr, h, C); // divide by the content h 2673 2674 c = n_Div(d, h, C); // d/h 2675 2676 n_Delete(&d, C); 2677 n_Delete(&h, C); 2678 2679 assume( n_GreaterZero(pGetCoeff(ph),C) ); 2680 2681 return; 2682 } 2683 #endif 2684 2685 2686 2687 2688 if(1) 2597 2689 { 2598 2690 h = n_Init(1,r->cf); … … 2676 2768 } 2677 2769 } 2770 2771 assume( n_GreaterZero(pGetCoeff(ph),C) ); 2678 2772 } 2679 2773 … … 3978 4072 * respect syzComp 3979 4073 */ 3980 poly p_Last( poly a, int &l, const ring r)3981 { 3982 if ( a== NULL)4074 poly p_Last(const poly p, int &l, const ring r) 4075 { 4076 if (p == NULL) 3983 4077 { 3984 4078 l = 0; … … 3986 4080 } 3987 4081 l = 1; 4082 poly a = p; 3988 4083 if (! rIsSyzIndexRing(r)) 3989 4084 { 3990 while (pNext(a)!=NULL) 3991 { 3992 pIter(a); 4085 poly next = pNext(a); 4086 while (next!=NULL) 4087 { 4088 a = next; 4089 next = pNext(a); 3993 4090 l++; 3994 4091 } -
libpolys/polys/monomials/p_polys.h
rd1fbbf r36ebfa 185 185 return l; 186 186 } 187 188 // returns the length of a polynomial (numbers of monomials) and the last mon. 189 // respect syzComp 190 poly p_Last(const poly a, int &l, const ring r); 191 192 /*----------------------------------------------------*/ 187 193 188 194 void p_Norm(poly p1, const ring r); … … 958 964 } 959 965 960 // return p - m*Copy(q), destroys p; const: p,m 961 static inline poly p_Minus_mm_Mult_qq(poly p, poly m, poly q, const ring r) 962 { 966 // like p_Minus_mm_Mult_qq, except that if lp == pLength(lp) lq == pLength(lq) 967 // then result = p-m*q, lp == pLength(result), last == pLast(result) 968 static inline poly p_Minus_mm_Mult_qq(poly p, const poly m, const poly q, int &lp, int lq, 969 const poly spNoether, poly& last, const ring r) 970 { 971 int l; 963 972 #ifdef HAVE_PLURAL 964 973 if (rIsPluralRing(r)) 965 974 { 975 p = nc_p_Minus_mm_Mult_qq(p, m, q, lp, lq, spNoether, r); 976 last = p_Last(p, l, r); 977 assume( lp == l ); 978 assume( lp == pLength(p) ); 979 return p; 980 } 981 #endif 982 983 int shorter; 984 const poly res = r->p_Procs->p_Minus_mm_Mult_qq(p, m, q, shorter, spNoether, r, last); 985 lp = (lp + lq) - shorter; 986 assume( last == p_Last(res, l, r) ); 987 assume( lp == l ); 988 assume( lp == pLength(res) ); 989 return res; 990 } 991 992 993 // like p_Minus_mm_Mult_qq (above) but without last 994 static inline poly p_Minus_mm_Mult_qq(poly p, const poly m, const poly q, int &lp, int lq, 995 const poly spNoether, const ring r) 996 { 997 #ifdef HAVE_PLURAL 998 if (rIsPluralRing(r)) 999 { 1000 p = nc_p_Minus_mm_Mult_qq(p, m, q, lp, lq, spNoether, r); 1001 assume( lp == pLength(p) ); 1002 return p; 1003 } 1004 #endif 1005 1006 int shorter; poly last; 1007 const poly res = r->p_Procs->p_Minus_mm_Mult_qq(p, m, q, shorter, spNoether, r, last); 1008 lp += lq - shorter; 1009 assume( lp == pLength(res) ); 1010 return res; 1011 } 1012 1013 // return p - m*Copy(q), destroys p; const: p,m 1014 static inline poly p_Minus_mm_Mult_qq(poly p, const poly m, const poly q, const ring r) 1015 { 1016 #ifdef HAVE_PLURAL 1017 if (rIsPluralRing(r)) 1018 { 966 1019 int lp, lq = 0; 967 1020 return nc_p_Minus_mm_Mult_qq(p, m, q, lp, lq, NULL, r); … … 975 1028 } 976 1029 977 // like p_Minus_mm_Mult_qq, except that if lp == pLength(lp) lq == pLength(lq)978 // then lp == pLength(p -m*q)979 static inline poly p_Minus_mm_Mult_qq(poly p, poly m, poly q, int &lp, int lq,980 poly spNoether, const ring r)981 {982 #ifdef HAVE_PLURAL983 if (rIsPluralRing(r))984 return nc_p_Minus_mm_Mult_qq(p, m, q, lp, lq, spNoether, r);985 #endif986 987 int shorter;988 poly last,res;989 res = r->p_Procs->p_Minus_mm_Mult_qq(p, m, q, shorter, spNoether, r, last);990 lp = (lp + lq) - shorter;991 return res;992 }993 1030 994 1031 // returns p*Coeff(m) for such monomials pm of p, for which m is divisble by pm … … 1925 1962 1926 1963 /*----------------------------------------------------*/ 1927 // returns the length of a polynomial (numbers of monomials) and the last mon.1928 // respect syzComp1929 poly p_Last(poly a, int &l, const ring r);1930 1931 1964 /// shifts components of the vector p by i 1932 1965 void p_Shift (poly * p,int i, const ring r); -
libpolys/reporter/Makefile.am
rd1fbbf r36ebfa 17 17 18 18 libreporter_la_CXXFLAGS = -O3 -fomit-frame-pointer ${PIPE} ${CXXTEMPLFLAGS} 19 libreporter_g_la_CXXFLAGS = -g -Wextra -W all -pedantic -Wno-long-long ${PIPE} ${CXXTEMPLFLAGS}19 libreporter_g_la_CXXFLAGS = -g -Wextra -Winline -Wall -pedantic -Wno-long-long ${PIPE} ${CXXTEMPLFLAGS} 20 20 # -fdiagnostics-show-option 21 21 -
libpolys/tests/Makefile.am
rd1fbbf r36ebfa 70 70 71 71 ### -pedantic 72 DEBUGCFLAGS = $(AM_CFLAGS) -g -Wextra -W all -Wno-long-long ${PIPE}72 DEBUGCFLAGS = $(AM_CFLAGS) -g -Wextra -Winline -Wall -Wno-long-long ${PIPE} 73 73 DEBUGCXXFLAGS = $(AM_CXXFLAGS) ${DEBUGCFLAGS} ${CXXTEMPLFLAGS} 74 74 DEBUGCPPFLAGS = ${AM_CPPFLAGS} -DHAVE_CONFIG_H -
ntl/CMakeLists.txt
rd1fbbf r36ebfa 39 39 set(CMAKE_C_FLAGS "-O2 -fomit-frame-pointer") 40 40 set(CMAKE_CXX_FLAGS "-O2 -fomit-frame-pointer -fno-rtti") 41 set(CMAKE_CXX_FLAGS "-W -Wall -Wextra -W no-non-virtual-dtor -Wno-unknown-pragma")41 set(CMAKE_CXX_FLAGS "-W -Wall -Wextra -Winline -Wno-non-virtual-dtor -Wno-unknown-pragma") 42 42 43 43 link_libraries(m) -
numeric/Makefile.am
rd1fbbf r36ebfa 14 14 15 15 libnumeric_la_CXXFLAGS = -O3 -fomit-frame-pointer ${PIPE} ${CXXTEMPLFLAGS} 16 libnumeric_g_la_CXXFLAGS = -g -Wextra -W all -pedantic -Wno-long-long ${PIPE} ${CXXTEMPLFLAGS}16 libnumeric_g_la_CXXFLAGS = -g -Wextra -Winline -Wall -pedantic -Wno-long-long ${PIPE} ${CXXTEMPLFLAGS} 17 17 # -fdiagnostics-show-option 18 18 -
omalloc/CMakeLists.txt
rd1fbbf r36ebfa 66 66 set(CMAKE_C_FLAGS_DEBUG "-O0 -g -Wreturn-type -fno-omit-frame-pointer") 67 67 set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -fno-inline-functions") 68 set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -W -Wall -Wextra ")68 set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -W -Wall -Wextra -Winline") 69 69 set(CMAKE_CXX_FLAGS_DEBUG "-O0 -g -Wreturn-type -fno-omit-frame-pointer") 70 70 set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -fno-inline-functions") 71 set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -W -Wall -Wextra ")71 set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -W -Wall -Wextra -Winline") 72 72 73 73 set(CMAKE_C_FLAGS_PROFILE "${CMAKE_C_FLAGS_DEBUG} -Werror -pedantic") -
omalloc/Makefile.am
rd1fbbf r36ebfa 90 90 omtTest_s_g_SOURCES = $(OMTTESTSSOURCES) 91 91 omtTest_s_g_CPPFLAGS= ${AM_CPPFLAGS} -DHAVE_CONFIG_H 92 omtTest_s_g_CFLAGS = -g -Wextra -W all -pedantic -Wno-long-long ${PIPE}92 omtTest_s_g_CFLAGS = -g -Wextra -Winline -Wall -pedantic -Wno-long-long ${PIPE} 93 93 omtTest_s_g_LDADD = libomalloc_g.la 94 94 omtTest_s_g_LDFLAGS = -L${abs_top_builddir}/omalloc -L${abs_top_builddir}/../omalloc -static … … 109 109 omtTest_d_g_SOURCES = $(OMTTESTSSOURCES) 110 110 omtTest_d_g_CPPFLAGS= ${AM_CPPFLAGS} -DHAVE_CONFIG_H 111 omtTest_d_g_CFLAGS = -g -Wextra -W all -pedantic -Wno-long-long ${PIPE}111 omtTest_d_g_CFLAGS = -g -Wextra -Winline -Wall -pedantic -Wno-long-long ${PIPE} 112 112 omtTest_d_g_LDADD = libomalloc_g.la 113 113 omtTest_d_g_LDFLAGS = -L${abs_top_builddir}/omalloc -L${abs_top_builddir}/../omalloc -
standalone.test/mk
rd1fbbf r36ebfa 14 14 # /mnt/DATA/GITHUB/w/GAP/libsing/spielwiese/TARGET/bin" 15 15 16 LIBPOLYSCFLAGS="`sh $P/libsingular-config --cflagsg` -g -Wextra -W all -Wno-long-long -O0 --no-exceptions"16 LIBPOLYSCFLAGS="`sh $P/libsingular-config --cflagsg` -g -Wextra -Winline -Wall -Wno-long-long -O0 --no-exceptions" 17 17 LIBPOLYSLIBS=`sh $P/libsingular-config --libsg` 18 18 LIBPOLYSPREFIX="`sh $P/libsingular-config --prefix`" … … 25 25 echo "executing '$CMD':" 26 26 $CMD 27 28 CMD="g++ - g -Wextra -Wall -Wno-long-long -O0 --no-exceptions -rdynamic$NAME.o -o $NAME $LIBPOLYSLIBS"27 # -rdynamic 28 CMD="g++ -static -g -Wextra -Winline -Wall -Wno-long-long -O0 --no-exceptions $NAME.o -o $NAME $LIBPOLYSLIBS" 29 29 echo "executing '$CMD':" 30 30 $CMD -
xalloc/Makefile.am
rd1fbbf r36ebfa 22 22 23 23 libomalloc_la_CFLAGS = -O3 ${PIPE} 24 libomalloc_g_la_CFLAGS = -g -Wextra -W all -pedantic -Wno-long-long ${PIPE}24 libomalloc_g_la_CFLAGS = -g -Wextra -Winline -Wall -pedantic -Wno-long-long ${PIPE} 25 25 26 26 libomalloc_la_CXXFLAGS = -O3 ${PIPE} 27 libomalloc_g_la_CXXFLAGS= -g -Wextra -W all -pedantic -Wno-long-long ${PIPE}27 libomalloc_g_la_CXXFLAGS= -g -Wextra -Winline -Wall -pedantic -Wno-long-long ${PIPE} 28 28 29 29 libomalloc_la_CPPFLAGS = ${AM_CPPFLAGS} -DHAVE_CONFIG_H -DNDEBUG -DOM_NDEBUG
Note: See TracChangeset
for help on using the changeset viewer.