Changeset 3e7db4 in git
- Timestamp:
- Dec 11, 2012, 7:33:39 PM (10 years ago)
- Branches:
- (u'spielwiese', '828514cf6e480e4bafc26df99217bf2a1ed1ef45')
- Children:
- 14e634edb64741be0fbc04c9c89e8523cb0c1cc521dbb4186f3a2c56539d8f92abe1ee9e0fa0ae2c
- Parents:
- dcf88ff0bb046d73a7bde65e033fc58cbb5f4a97c9050082385152a64066f7540914cae34d990a43
- Files:
-
- 4 added
- 139 edited
Legend:
- Unmodified
- Added
- Removed
-
.gdbinit
rc90500 r3e7db4 1 1 break dErrorBreak 2 2 break dReportError 3 3 break omReportError 4 4 5 5 6 6 ### http://sourceware.org/gdb/onlinedocs/gdb/Define.html#Define 7 7 8 # print poly 8 # print poly ring 9 9 define pp 10 if $argc > 0 11 print $arg0 12 if $arg0 != 0 13 print *$arg0 10 14 11 if $argc > 0 12 print $arg0 13 if $arg0 != 0 14 print *$arg0 15 16 if $argc == 2 17 call p_Write($arg0, $arg1) 18 end 15 if $argc == 2 16 call p_Write($arg0, $arg1) 17 else 18 call p_Write($arg0, currRing) 19 end 20 end 19 21 end 20 22 end 21 22 23 end24 23 24 run 25 backtrace -
IntegerProgramming/binomial.cc
rc90500 r3e7db4 1847 1847 1848 1848 exponent_vector[i]*=-1; 1849 1849 return *this; 1850 1850 } 1851 1851 -
Makefile.am
rc90500 r3e7db4 37 37 38 38 bin_SCRIPTS = libsingular-config 39 -
Singular/Cache.h
rc90500 r3e7db4 4 4 #include <string> 5 5 #include <list> 6 #include <assert.h> 7 8 using namespace std;6 7 // #include <assert.h> 8 // using namespace std; 9 9 10 10 /*! \class Cache … … 75 75 * as long as the pair <c>key(_rank(i)) --> value(_rank(i))</c>. 76 76 */ 77 77 std::list<int> _rank; 78 78 79 79 /** … … 83 83 * in KeyClass. 84 84 */ 85 list<KeyClass> _key;85 std::list<KeyClass> _key; 86 86 87 87 /** … … 91 91 * argument \c _key[i]). 92 92 */ 93 list<ValueClass> _value;93 std::list<ValueClass> _value; 94 94 95 95 /** 96 96 * container for the weights of all cached values 97 97 */ 98 list<int> _weights;98 std::list<int> _weights; 99 99 100 100 /** … … 104 104 * const, as the user would expect for these methods. 105 105 */ 106 mutable typename list<KeyClass>::const_iterator _itKey;106 mutable typename std::list<KeyClass>::const_iterator _itKey; 107 107 108 108 /** … … 112 112 * const, as the user would expect for these methods. 113 113 */ 114 mutable typename list<ValueClass>::const_iterator _itValue;114 mutable typename std::list<ValueClass>::const_iterator _itValue; 115 115 116 116 /** … … 314 314 * string 315 315 */ 316 316 std::string toString () const; 317 317 318 318 /** … … 324 324 }; 325 325 326 #include <CacheImplementation.h>326 #include "CacheImplementation.h" 327 327 328 328 #endif -
Singular/CacheImplementation.h
rc90500 r3e7db4 1 1 #ifndef CACHE_IMPLEMENTATION_H 2 2 #define CACHE_IMPLEMENTATION_H 3 4 #include <reporter/reporter.h> 3 5 4 6 #include <cstdio> // for sprintf … … 53 55 { 54 56 _itKey = _key.end(); // referring to past-the-end element in the list 55 typenamelist<KeyClass>::const_iterator itKey;57 typename std::list<KeyClass>::const_iterator itKey; 56 58 _itValue = _value.begin(); 57 59 /* As _key is a sorted list, the following could actually be implemented … … 80 82 thus, getValue has been called although hasKey 81 83 produced no match */ 82 ass ert(false);84 assume(false); 83 85 84 86 return *_itValue; … … 123 125 erasing the last entry which is only implemented for forward 124 126 iterators by std::list. */ 125 list<int>::iterator itRank;127 std::list<int>::iterator itRank; 126 128 for (itRank = _rank.begin(); itRank != _rank.end(); itRank++) { } 127 129 itRank--; /* Now, this forward iterator points to the last list entry. */ … … 132 134 /* now delete entries in _key and _value with index deleteIndex */ 133 135 int k = 0; 134 typename list<KeyClass>::iterator itKey;135 typename list<ValueClass>::iterator itValue = _value.begin();136 typename list<int>::iterator itWeights = _weights.begin();136 typename std::list<KeyClass>::iterator itKey; 137 typename std::list<ValueClass>::iterator itValue = _value.begin(); 138 typename std::list<int>::iterator itWeights = _weights.begin(); 137 139 for (itKey = _key.begin(); itKey != _key.end(); itKey++) 138 140 { … … 176 178 keyWasContained == false */ 177 179 int k = 0; 178 typename list<KeyClass>::iterator itKey;180 typename std::list<KeyClass>::iterator itKey; 179 181 // itOldValue will later only be used in the case keyWasContained == true: */ 180 typename list<ValueClass>::iterator itOldValue = _value.begin();182 typename std::list<ValueClass>::iterator itOldValue = _value.begin(); 181 183 /* itOldWeights will later only be used in the case 182 184 keyWasContained == true */ 183 typename list<int>::iterator itOldWeights = _weights.begin();185 typename std::list<int>::iterator itOldWeights = _weights.begin(); 184 186 for (itKey = _key.begin(); itKey != _key.end(); itKey++) 185 187 { … … 203 205 int newWeight = value.getWeight(); 204 206 k = 0; 205 typename list<ValueClass>::iterator itValue = _value.begin();207 typename std::list<ValueClass>::iterator itValue = _value.begin(); 206 208 for (itValue = _value.begin(); itValue != _value.end(); itValue++) 207 209 { … … 229 231 _rank[oldIndexInRank] == oldIndexInKey, i.e. 230 232 _key[_rank[oldIndexInRank]] == key: */ 231 list<int>::iterator itRank;233 std::list<int>::iterator itRank; 232 234 k = 0; 233 235 for (itRank = _rank.begin(); itRank != _rank.end(); itRank++) … … 306 308 Let's make room for the assignment 307 309 _rank[newIndexInRank] := newIndexInKey: */ 308 list<int>::iterator itRank;310 std::list<int>::iterator itRank; 309 311 for (itRank = _rank.begin(); itRank != _rank.end(); itRank++) 310 312 { … … 323 325 /* let's insert new key and new value at index newIndexInKey: */ 324 326 itValue = _value.begin(); 325 typename list<int>::iterator itWeights = _weights.begin();327 typename std::list<int>::iterator itWeights = _weights.begin(); 326 328 k = 0; 327 329 for (itKey = _key.begin(); itKey != _key.end(); itKey++) … … 344 346 new (key, value)-pair */ 345 347 346 ass ert(_rank.size() == _key.size());347 ass ert(_rank.size() == _value.size());348 assume(_rank.size() == _key.size()); 349 assume(_rank.size() == _value.size()); 348 350 return !result; /* true iff the new (key --> value) pair is 349 351 actually in the cache now */ … … 351 353 352 354 template<class KeyClass, class ValueClass> 353 st ring Cache<KeyClass, ValueClass>::toString() const355 std::string Cache<KeyClass, ValueClass>::toString() const 354 356 { 355 357 char h[10]; 356 st ring s = "Cache:";358 std::string s = "Cache:"; 357 359 s += "\n entries: "; 358 360 sprintf(h, "%d", getNumberOfEntries()); s += h; … … 371 373 int k = 1; 372 374 s += "\n (key --> value) pairs in ascending order of keys:"; 373 typename list<KeyClass>::const_iterator itKey;374 typename list<ValueClass>::const_iterator itValue = _value.begin();375 typename std::list<KeyClass>::const_iterator itKey; 376 typename std::list<ValueClass>::const_iterator itValue = _value.begin(); 375 377 for (itKey = _key.begin(); itKey != _key.end(); itKey++) 376 378 { … … 385 387 } 386 388 s += "\n (key --> value) pairs in descending order of ranks:"; 387 list<int>::const_iterator itRank;389 std::list<int>::const_iterator itRank; 388 390 int r = 1; 389 391 for (itRank = _rank.begin(); itRank != _rank.end(); itRank++) … … 413 415 void Cache<KeyClass, ValueClass>::print() const 414 416 { 415 cout << this->toString();417 PrintS(this->toString().c_str()); 416 418 } 417 419 -
Singular/Makefile.am
rc90500 r3e7db4 88 88 links/ssiLink.cc\ 89 89 subexpr.cc\ 90 pyobject_setup.cc\ 90 91 walk.cc\ 91 92 walk_ip.cc\ … … 207 208 endif 208 209 209 AMLDFLAGS = -L${ abs_top_builddir}/Singular -L${abs_top_builddir}/numeric -L${abs_top_builddir}/kernel -L${abs_top_builddir}/libpolys/polys -L${top_builddir}/libpolys/coeffs -L${top_builddir}/libpolys/reporter -L${top_builddir}/libpolys/misc $(USE_FACTORY) -L${abs_top_builddir}/omalloc -L${abs_top_builddir}/findexec210 AMLDFLAGS = -L${top_builddir}/Singular -L${top_builddir}/numeric -L${top_builddir}/kernel -L${top_builddir}/libpolys/polys -L${top_builddir}/libpolys/coeffs -L${top_builddir}/libpolys/reporter -L${top_builddir}/libpolys/misc $(USE_FACTORY) -L${top_builddir}/omalloc -L${top_builddir}/findexec 210 211 211 212 Singular_CFLAGS = -O3 -fomit-frame-pointer ${PIPE} … … 221 222 Singularg_SOURCES = tesths.cc fegetopt.c fegetopt.h utils.cc utils.h 222 223 223 Singular_LDADD = libSingular.la ${ abs_top_builddir}/numeric/libnumeric.la ${abs_top_builddir}/kernel/libkernel.la ${abs_top_builddir}/libpolys/polys/libpolys.la -lcoeffs -lreporter -lmisc $(FACTORY_LIBS) -lomalloc -lfindexec $(FLINT_LIBS) $(NTL_LIBS) $(GMP_LIBS) ${USEPPROCSDYNAMICLDFLAGS} ${USEPPROCSDYNAMICLD}224 Singularg_LDADD = libSingular_g.la ${ abs_top_builddir}/numeric/libnumeric_g.la ${abs_top_builddir}/kernel/libkernel_g.la ${abs_top_builddir}/libpolys/polys/libpolys_g.la -lcoeffs_g -lreporter_g -lmisc_g $(FACTORY_LIBS) -lomalloc_g -lfindexec_g $(FLINT_LIBS) $(NTL_LIBS) $(GMP_LIBS) ${USEPPROCSDYNAMICLDFLAGS} ${USEPPROCSDYNAMICLD}224 Singular_LDADD = libSingular.la ${top_builddir}/numeric/libnumeric.la ${top_builddir}/kernel/libkernel.la ${top_builddir}/libpolys/polys/libpolys.la -lcoeffs -lreporter -lmisc $(FACTORY_LIBS) -lomalloc -lfindexec $(FLINT_LIBS) $(NTL_LIBS) $(GMP_LIBS) ${USEPPROCSDYNAMICLDFLAGS} ${USEPPROCSDYNAMICLD} 225 Singularg_LDADD = libSingular_g.la ${top_builddir}/numeric/libnumeric_g.la ${top_builddir}/kernel/libkernel_g.la ${top_builddir}/libpolys/polys/libpolys_g.la -lcoeffs_g -lreporter_g -lmisc_g $(FACTORY_LIBS) -lomalloc_g -lfindexec_g $(FLINT_LIBS) $(NTL_LIBS) $(GMP_LIBS) ${USEPPROCSDYNAMICLDFLAGS} ${USEPPROCSDYNAMICLD} 225 226 226 227 Singular_CPPFLAGS = ${AM_CPPFLAGS} -DHAVE_CONFIG_H -DNDEBUG -DOM_NDEBUG … … 310 311 ########################### TEST ######################### 311 312 312 TESTS_ENVIRONMENT = SINGULARPATH='${ abs_top_builddir}/Singular/LIB:${abs_top_srcdir}/Singular/LIB:${abs_top_builddir}/libpolys/polys/.libs:${abs_top_builddir}/factory/gftables'313 TESTS_ENVIRONMENT += SINGULAR_ROOT_DIR='${ abs_top_builddir}'313 TESTS_ENVIRONMENT = SINGULARPATH='${top_builddir}/Singular/LIB:${top_srcdir}/Singular/LIB:${top_builddir}/libpolys/polys/.libs:${top_builddir}/factory/gftables' 314 TESTS_ENVIRONMENT += SINGULAR_ROOT_DIR='${top_builddir}' 314 315 315 316 if WANT_DEBUG … … 370 371 371 372 feOpt.inc: feOptGen 372 ${ abs_builddir}/feOptGen373 ${builddir}/feOptGen 373 374 374 375 feOptES.inc: feOptES 375 ${ abs_builddir}/feOptES376 ${builddir}/feOptES 376 377 377 378 feOptTS.inc: feOptTS 378 ${ abs_builddir}/feOptTS379 ${builddir}/feOptTS 379 380 380 381 plural_cmd.inc iparith.inc: gentable1 381 ${ abs_builddir}/gentable1382 ${builddir}/gentable1 382 383 383 384 # # fake rule to fix parallel make http://www.gnu.org/s/hello/manual/automake/Multiple-Outputs.html … … 385 386 386 387 387 gftables: ${abs_top_srcdir}/factory/gftables 388 ln -snf ${abs_top_srcdir}/factory/gftables ${abs_builddir}/gftables 389 390 MOD: ${abs_top_builddir}/libpolys/polys/.libs 391 ln -snf ${abs_top_builddir}/libpolys/polys/.libs/ ${abs_builddir}/MOD 388 gftables: ${top_srcdir}/factory/gftables 389 ln -snf ${top_srcdir}/factory/gftables ${builddir}/gftables 390 391 MOD: ${top_builddir}/libpolys/polys/.libs 392 ln -snf ${top_builddir}/libpolys/polys/.libs/ ${builddir}/MOD 393 394 if PYTHON_USE 395 moduledir = $(bindir)/MOD 396 module_LTLIBRARIES = pyobject.la 397 pyobject_la_SOURCES = pyobject.cc 398 399 pyobject_la_CPPFLAGS = ${AM_CPPFLAGS} ${NODEBUGDEFS} 400 pyobject_g_la_CPPFLAGS = ${AM_CPPFLAGS} 401 402 pyobject_la_CXXFLAGS = ${NODEBUGCXXFLAGS} @PYTHON_CSPEC@ 403 pyobject_g_la_CXXFLAGS = ${DEBUGCXXFLAGS} @PYTHON_CSPEC@ 404 405 pyobject_la_LDFLAGS = -export-dynamic -shared -module -avoid-version \ 406 ${AMLDFLAGS} @PYTHON_LSPEC@ 407 endif -
Singular/Minor.cc
rc90500 r3e7db4 1 #include <iostream>2 3 1 #include "config.h" 4 2 #include <kernel/mod2.h> 3 4 #include "Minor.h" 5 5 6 #include <kernel/structs.h> 6 7 #include <kernel/polys.h> 7 #include <Minor.h>8 8 #include <kernel/febase.h> 9 9 10 using namespace std; 10 11 11 12 void MinorKey::reset() … … 114 115 void MinorKey::print() const 115 116 { 116 cout << this->toString();117 PrintS(this->toString().c_str()); 117 118 } 118 119 … … 145 146 } 146 147 /* We should never reach this line of code. */ 147 assert(false); 148 assume(false); 149 return -1; 148 150 } 149 151 … … 176 178 } 177 179 /* We should never reach this line of code. */ 178 assert(false); 180 assume(false); 181 return -1; 179 182 } 180 183 … … 198 201 } 199 202 } 200 return;201 203 } 202 204 … … 220 222 } 221 223 } 222 return;223 224 } 224 225 … … 251 252 } 252 253 /* We should never reach this line of code. */ 253 assert(false); 254 assume(false); 255 return -1; 254 256 } 255 257 … … 282 284 } 283 285 /* We should never reach this line of code. */ 284 assert(false); 286 assume(false); 287 return -1; 285 288 } 286 289 … … 439 442 bool MinorKey::operator==(const MinorKey& mk) const 440 443 { 441 ass ert(false);444 assume(false); 442 445 return this->compare(mk) == 0; 443 446 } … … 447 450 bool MinorKey::operator<(const MinorKey& mk) const 448 451 { 449 ass ert(false);452 assume(false); 450 453 return this->compare(mk) == -1; 451 454 } … … 833 836 int MinorValue::getWeight () const 834 837 { 835 ass ert(false); /* must be overridden in derived classes */838 assume(false); /* must be overridden in derived classes */ 836 839 return 0; 837 840 } … … 841 844 bool MinorValue::operator==(const MinorValue& mv) const 842 845 { 843 ass ert(false);846 assume(false); 844 847 return (this == &mv); /* compare addresses of both objects */ 845 848 } … … 847 850 string MinorValue::toString () const 848 851 { 849 ass ert(false); /* must be overridden in derived classes */852 assume(false); /* must be overridden in derived classes */ 850 853 return ""; 851 854 } … … 855 858 bool MinorValue::operator<(const MinorValue& mv) const 856 859 { 857 ass ert(false);860 assume(false); 858 861 return (this < &mv); /* compare addresses of both objects */ 859 862 } … … 896 899 void MinorValue::print() const 897 900 { 898 cout << this->toString();901 PrintS(this->toString().c_str()); 899 902 } 900 903 -
Singular/Minor.h
rc90500 r3e7db4 2 2 #define MINOR_H 3 3 4 #include <assert.h>4 // #include <assert.h> 5 5 #include <string> 6 6 7 #include <kernel/polys.h> 8 9 using namespace std; 7 struct spolyrec; typedef struct spolyrec polyrec; typedef polyrec* poly; 8 struct ip_sring; typedef struct ip_sring* ring; typedef struct ip_sring const* const_ring; 9 10 struct sip_sideal; typedef struct sip_sideal * ideal; 11 12 // using namespace std; 10 13 11 14 /*! \class MinorKey … … 391 394 * string 392 395 */ 393 396 std::string toString () const; 394 397 395 398 /** … … 683 686 * string 684 687 */ 685 virtualstring toString () const;688 virtual std::string toString () const; 686 689 687 690 /** … … 771 774 * string 772 775 */ 773 776 std::string toString () const; 774 777 }; 775 778 … … 858 861 * string 859 862 */ 860 863 std::string toString () const; 861 864 }; 862 865 -
Singular/MinorInterface.cc
rc90500 r3e7db4 1 #include "config.h" 2 #include <kernel/mod2.h> 3 1 4 // include before anything to avoid clashes with stdio.h included elsewhere 2 #include <cstdio> 3 4 #include <MinorInterface.h> 5 #include <MinorProcessor.h> 5 // #include <cstdio> 6 7 #include "MinorInterface.h" 8 #include "MinorProcessor.h" 9 10 #include <polys/simpleideals.h> 6 11 7 12 #include <kernel/polys.h> 8 13 #include <kernel/structs.h> 9 10 #include "config.h" 11 #include <kernel/mod2.h> 14 #include <kernel/kstd1.h> 12 15 #include <kernel/ideals.h> 13 #include <kernel/kstd1.h> 16 17 using namespace std; 14 18 15 19 bool currRingIsOverIntegralDomain () … … 172 176 #if (defined COUNT_AND_PRINT_OPERATIONS) && (COUNT_AND_PRINT_OPERATIONS > 1) 173 177 qqq++; 174 printf("after %d", qqq);178 Print("after %d", qqq); 175 179 printCounters ("-th minor", false); 176 180 #endif … … 401 405 #if (defined COUNT_AND_PRINT_OPERATIONS) && (COUNT_AND_PRINT_OPERATIONS > 1) 402 406 qqq++; 403 printf("after %d", qqq);407 Print("after %d", qqq); 404 408 printCounters ("-th minor", false); 405 409 #endif -
Singular/MinorInterface.h
rc90500 r3e7db4 3 3 4 4 5 #include <polys/simpleideals.h> 6 #include <kernel/polys.h> 5 struct spolyrec; typedef struct spolyrec polyrec; typedef polyrec* poly; 6 struct ip_sring; typedef struct ip_sring* ring; typedef struct ip_sring const* const_ring; 7 8 struct sip_sideal; typedef struct sip_sideal * ideal; 9 10 class ip_smatrix; typedef ip_smatrix * matrix; 7 11 8 12 /* all computations are module char, if char <> 0; -
Singular/MinorProcessor.cc
rc90500 r3e7db4 1 #include <MinorProcessor.h>2 3 1 #include "config.h" 4 2 #include <kernel/mod2.h> 3 4 #include "MinorProcessor.h" 5 6 #include <polys/kbuckets.h> 7 5 8 #include <kernel/structs.h> 6 9 #include <kernel/polys.h> 7 10 #include <kernel/febase.h> 8 11 #include <kernel/kstd1.h> 9 #include <polys/kbuckets.h> 12 13 #include <kernel/ideals.h> 14 15 using namespace std; 10 16 11 17 #ifdef COUNT_AND_PRINT_OPERATIONS … … 213 219 { 214 220 /* This is a non-recursive implementation. */ 215 ass ert( (i >= 0) && (j >= 0) && (i >= j));221 assume( (i >= 0) && (j >= 0) && (i >= j)); 216 222 if (j == 0 || i == j) return 1; 217 223 int result = 1; … … 227 233 { 228 234 /* This is a non-recursive implementation. */ 229 ass ert(i >= 0);235 assume(i >= 0); 230 236 int result = 1; 231 237 for (int j = 1; j <= i; j++) result *= j; … … 444 450 const ideal& iSB) 445 451 { 446 ass ert(k > 0); /* k is the minor's dimension; the minor must be at least452 assume(k > 0); /* k is the minor's dimension; the minor must be at least 447 453 1x1 */ 448 454 /* The method works by recursion, and using Lapace's Theorem along the … … 561 567 const ideal& iSB) 562 568 { 563 ass ert(k > 0); /* k is the minor's dimension; the minor must be at least569 assume(k > 0); /* k is the minor's dimension; the minor must be at least 564 570 1x1 */ 565 571 int *theRows=new int[k]; mk.getAbsoluteRowIndices(theRows); … … 652 658 const int characteristic, const ideal& iSB) 653 659 { 654 ass ert(k > 0); /* k is the minor's dimension; the minor must be at least660 assume(k > 0); /* k is the minor's dimension; the minor must be at least 655 661 1x1 */ 656 662 /* The method works by recursion, and using Lapace's Theorem along … … 944 950 const ideal& iSB) 945 951 { 946 ass ert(k > 0); /* k is the minor's dimension; the minor must be at least952 assume(k > 0); /* k is the minor's dimension; the minor must be at least 947 953 1x1 */ 948 954 /* The method works by recursion, and using Lapace's Theorem along the … … 1081 1087 const ideal& iSB) 1082 1088 { 1083 ass ert(k > 0); /* k is the minor's dimension; the minor must be at least1089 assume(k > 0); /* k is the minor's dimension; the minor must be at least 1084 1090 1x1 */ 1085 1091 /* The method works by recursion, and using Lapace's Theorem along … … 1384 1390 const ideal& iSB) 1385 1391 { 1386 ass ert(k > 0); /* k is the minor's dimension; the minor must be at least1392 assume(k > 0); /* k is the minor's dimension; the minor must be at least 1387 1393 1x1 */ 1388 1394 int *theRows=new int[k]; mk.getAbsoluteRowIndices(theRows); -
Singular/MinorProcessor.h
rc90500 r3e7db4 2 2 #define MINOR_PROCESSOR_H 3 3 4 #include <Cache.h> 5 #include <Minor.h> 6 #include <assert.h> 4 #include "Cache.h" 5 #include "Minor.h" 6 7 struct spolyrec; typedef struct spolyrec polyrec; typedef polyrec* poly; 8 struct ip_sring; typedef struct ip_sring* ring; typedef struct ip_sring const* const_ring; 9 10 struct sip_sideal; typedef struct sip_sideal * ideal; 11 12 // #include <assert.h> 7 13 #include <string> 8 14 … … 279 285 * string 280 286 */ 281 virtualstring toString () const;287 virtual std::string toString () const; 282 288 283 289 /** … … 546 552 * string 547 553 */ 548 554 std::string toString () const; 549 555 }; 550 556 … … 760 766 * string 761 767 */ 762 768 std::string toString () const; 763 769 }; 764 770 -
Singular/blackbox.h
rc90500 r3e7db4 58 58 59 59 /// default procedure blackboxDefaultOp3, to be called as "default:" branch 60 BOOLEAN blackbox DefaultOp3(int op,leftv l, leftv r1,leftv r2, leftv r3);60 BOOLEAN blackbox_default_Op3(int op,leftv l, leftv r1,leftv r2, leftv r3); 61 61 62 62 /// default procedure blackboxDefaultOpM, to be called as "default:" branch … … 70 70 /// return the name to the type given by t (r/o) 71 71 const char * getBlackboxName(const int t); 72 /// used by scanner: returns ROOTDECL for known types (and the type number in t) 72 /// used by scanner: returns ROOT_DECL for known types 73 /// (and the type number in @c tok) 73 74 int blackboxIsCmd(const char *n, int & tok); 74 75 /// define a new type -
Singular/countedref.cc
rc90500 r3e7db4 555 555 CountedRefShared ref = CountedRefShared::cast(head); 556 556 557 if ( (op == LINK_CMD))557 if (op == LINK_CMD) 558 558 { 559 559 if (ref.dereference(head)) return TRUE; … … 696 696 void countedref_reference_load() 697 697 { 698 int tok; 699 if (blackboxIsCmd("reference", tok) == ROOT_DECL) 700 return; 701 698 702 blackbox *bbx = (blackbox*)omAlloc0(sizeof(blackbox)); 699 703 bbx->blackbox_CheckAssign = countedref_CheckAssign; … … 716 720 void countedref_shared_load() 717 721 { 722 int tok; 723 if (blackboxIsCmd("shared", tok) == ROOT_DECL) 724 return; 725 718 726 blackbox *bbxshared = (blackbox*)omAlloc0(sizeof(blackbox)); 719 727 bbxshared->blackbox_String = countedref_String; -
Singular/countedref.h
rc90500 r3e7db4 312 312 /// @name Pointer-style access 313 313 //@{ 314 const leftv operator->() const { return m_data; } 314 /*const*/ leftv operator->() const { return m_data; } 315 /*^ warning: 'const' type qualifier on return type has no effect!!! */ 315 316 leftv operator->() { return m_data; } 316 317 //@] -
Singular/extra.cc
rdcf88ff r3e7db4 336 336 if(strcmp(sys_cmd,"sh")==0) 337 337 { 338 if (feOptValue(FE_OPT_NO_SHELL)) { 339 WerrorS("shell execution is disallowed in restricted mode"); 340 return TRUE; 341 } 338 342 res->rtyp=INT_CMD; 339 343 if (h==NULL) res->data = (void *)(long) system("sh"); -
Singular/feOptGen.cc
rdcf88ff r3e7db4 3 3 ****************************************/ 4 4 /* 5 * ABSTRACT: Implementation of option bu isness5 * ABSTRACT: Implementation of option business 6 6 */ 7 7 -
Singular/feOptTab.h
rdcf88ff r3e7db4 130 130 0, "Suppress all output", feOptBool, 0, 0}, 131 131 132 {"no-shell", no_argument, LONG_OPTION_RETURN, 133 0, "Restricted mode: prohibit shell escape commands and links", feOptBool, 0, 0}, 134 132 135 {"min-time", required_argument, LONG_OPTION_RETURN, 133 136 "SECS", "Do not display times smaller than SECS (in seconds)", feOptString, (void*) "0.5", 0}, -
Singular/iparith.cc
rc90500 r3e7db4 206 206 207 207 /*============= proc =======================*/ 208 static BOOLEAN jjLOAD(leftv res, leftv v, BOOLEAN autoexport = FALSE);209 208 static int iiTabIndex(const jjValCmdTab dArithTab, const int len, const int op); 210 209 static Subexpr jjMakeSub(leftv e); … … 1557 1556 int typ; 1558 1557 BOOLEAN t=FALSE; 1558 idhdl tmp_proc=NULL; 1559 1559 if ((u->rtyp!=IDHDL)||(u->e!=NULL)) 1560 1560 { 1561 idrec tmp_proc;1562 tmp_proc .id="_auto";1563 tmp_proc .typ=PROC_CMD;1564 tmp_proc .data.pinf=(procinfo *)u->Data();1565 tmp_proc .ref=1;1566 d=u->data; u->data=(void *) &tmp_proc;1561 tmp_proc=(idhdl)omAlloc0(sizeof(idrec)); 1562 tmp_proc->id="_auto"; 1563 tmp_proc->typ=PROC_CMD; 1564 tmp_proc->data.pinf=(procinfo *)u->Data(); 1565 tmp_proc->ref=1; 1566 d=u->data; u->data=(void *)tmp_proc; 1567 1567 e=u->e; u->e=NULL; 1568 1568 t=TRUE; 1569 1569 typ=u->rtyp; u->rtyp=IDHDL; 1570 1570 } 1571 leftvsl;1571 BOOLEAN sl; 1572 1572 if (u->req_packhdl==currPack) 1573 1573 sl = iiMake_proc((idhdl)u->data,NULL,v); … … 1579 1579 u->data=d; 1580 1580 u->e=e; 1581 } 1582 if (sl==NULL) 1583 { 1584 return TRUE; 1585 } 1586 else 1587 { 1588 memcpy(res,sl,sizeof(sleftv)); 1589 } 1581 omFreeSize(tmp_proc,sizeof(idrec)); 1582 } 1583 if (sl) return TRUE; 1584 memcpy(res,&iiRETURNEXPR,sizeof(sleftv)); 1590 1585 iiRETURNEXPR.Init(); 1591 1586 return FALSE; … … 2512 2507 static BOOLEAN jjLOAD2(leftv res, leftv, leftv v) 2513 2508 { 2514 return jjLOAD( res, v,TRUE);2509 return jjLOAD((char*)v->Data(),TRUE); 2515 2510 } 2516 2511 static BOOLEAN jjLOAD_E(leftv res, leftv v, leftv u) … … 2518 2513 char * s=(char *)u->Data(); 2519 2514 if(strcmp(s, "with")==0) 2520 return jjLOAD( res, v, TRUE);2515 return jjLOAD((char*)v->Data(), TRUE); 2521 2516 WerrorS("invalid second argument"); 2522 2517 WerrorS("load(\"libname\" [,\"with\"]);"); … … 4379 4374 static BOOLEAN jjLOAD1(leftv res, leftv v) 4380 4375 { 4381 return jjLOAD( res, v,FALSE);4376 return jjLOAD((char*)v->Data(),FALSE); 4382 4377 } 4383 4378 static BOOLEAN jjLISTRING(leftv res, leftv v) … … 5155 5150 return FALSE; 5156 5151 } 5157 static BOOLEAN jjLOAD(leftv, leftv v, BOOLEAN autoexport) 5158 { 5159 char * s=(char *)v->CopyD(); 5152 5153 BOOLEAN jjLOAD(char *s, BOOLEAN autoexport) 5154 { 5160 5155 char libnamebuf[256]; 5161 5156 lib_types LT = type_of_LIB(s, libnamebuf); -
Singular/ipid.cc
rc90500 r3e7db4 194 194 IDLEV(h) = level; 195 195 IDNEXT(h) = this; 196 BOOLEAN at_start=(this==IDROOT); 196 197 h->id_i=iiS2I(s); 197 198 if (init) … … 221 222 } 222 223 // -------------------------------------------------------- 224 if (at_start) 225 IDNEXT(h) = IDROOT; 223 226 return h; 224 227 } -
Singular/iplib.cc
rc90500 r3e7db4 426 426 } 427 427 } 428 sleftv *iiMake_proc(idhdl pn, package pack, sleftv* sl)428 BOOLEAN iiMake_proc(idhdl pn, package pack, sleftv* sl) 429 429 { 430 430 int err; … … 434 434 Werror("'%s::%s()' is a local procedure and cannot be accessed by an user.", 435 435 pi->libname, pi->procname); 436 return NULL;436 return TRUE; 437 437 } 438 438 iiCheckNest(); … … 601 601 procstack->pop(); 602 602 if (err) 603 return NULL;604 return &iiRETURNEXPR;603 return TRUE; 604 return FALSE; 605 605 } 606 606 -
Singular/ipshell.cc
rc90500 r3e7db4 5044 5044 { 5045 5045 #ifdef HAVE_RINGS 5046 unsigned int ringtype = 0;5046 //unsigned int ringtype = 0; 5047 5047 int_number modBase = NULL; 5048 5048 unsigned int modExponent = 1; … … 5212 5212 /* this branch should be active for modExponent = 2..32 resp. 2..64, 5213 5213 depending on the size of a long on the respective platform */ 5214 ringtype = 1; // Use Z/2^ch5214 //ringtype = 1; // Use Z/2^ch 5215 5215 cf=nInitChar(n_Z2m,(void*)(long)modExponent); 5216 5216 } 5217 5217 else 5218 5218 { 5219 ringtype = 3;5220 cf=nInitChar(n_Z n,(void*)(long)modBase);5219 //ringtype = 3; 5220 cf=nInitChar(n_Zpn,(void*)(long)modBase); 5221 5221 } 5222 5222 } … … 5224 5224 else if (cf == NULL) 5225 5225 { 5226 ringtype = 2;5226 //ringtype = 2; 5227 5227 const int ch = mpz_get_ui(modBase); 5228 5228 cf=nInitChar(n_Zn,(void*)(long)ch); … … 5261 5261 // pn=pn->next; 5262 5262 5263 int l;5264 5263 /*every entry in the new ring is initialized to 0*/ 5265 5264 … … 5274 5273 * q q : GF(q=p^n) *names TRUE 5275 5274 */ 5276 l = 0;5277 5278 5275 if (cf==NULL) 5279 5276 { … … 5286 5283 5287 5284 R->cf = cf; 5288 5289 #ifdef HAVE_RINGS5290 // the following should have beed set already into cf, right?!5291 // R->cf->ringtype = ringtype;5292 // R->cf->modBase = modBase;5293 // R->cf->modExponent = modExponent;5294 #endif5295 5285 5296 5286 /* names and number of variables-------------------------------------*/ -
Singular/ipshell.h
rc90500 r3e7db4 68 68 if no, returns FALSE 69 69 */ 70 /// load lib/module given in v 71 BOOLEAN jjLOAD(char *s, BOOLEAN autoexport = FALSE); 70 72 BOOLEAN iiLocateLib(const char* lib, char* where); 71 73 leftv iiMap(map theMap, const char * what); … … 192 194 int iiDeclCommand(leftv sy, leftv name, int lev, int t, idhdl* root, 193 195 BOOLEAN isring = FALSE, BOOLEAN init_b=TRUE); 194 sleftv *iiMake_proc(idhdl pn, package pack, sleftv* sl);196 BOOLEAN iiMake_proc(idhdl pn, package pack, sleftv* sl); 195 197 // from misc.cc: 196 198 char * showOption(); -
Singular/links/ndbm.cc
rc90500 r3e7db4 291 291 #endif 292 292 } 293 if (((short *)db->dbm_pagbuf)[0] != 0) 293 short tmp; 294 memcpy(&tmp, db->dbm_pagbuf, sizeof(short)); 295 if (tmp != 0) 294 296 { 295 297 item = makdatum(db->dbm_pagbuf, db->dbm_keyptr); -
Singular/links/silink.cc
rdcf88ff r3e7db4 31 31 #include <Singular/links/ssiLink.h> 32 32 #include <Singular/links/pipeLink.h> 33 #include "feOpt.h" 33 34 34 35 // #ifdef HAVE_DBM … … 196 197 197 198 if (l->m == NULL) slInit(l, ((char*)"")); 199 200 if (feOptValue(FE_OPT_NO_SHELL)) {WerrorS("no links allowed");return TRUE;} 198 201 199 202 const char *c="_";; -
Singular/minpoly.cc
rc90500 r3e7db4 7 7 8 8 #include<cmath> 9 #include <cstdlib> 9 10 #include "config.h" 10 11 #include<kernel/mod2.h> … … 385 386 } 386 387 } 388 abort(); 387 389 } 388 390 -
Singular/misc_ip.cc
rc90500 r3e7db4 1117 1117 type = nRegister(n_transExt, ntInitChar); 1118 1118 assume(type == n_transExt); 1119 1120 (void)type; 1119 1121 } 1120 1122 #endif -
Singular/newstruct.cc
rc90500 r3e7db4 57 57 if (p!=NULL) 58 58 { 59 leftvsl;59 BOOLEAN sl; 60 60 sleftv tmp; 61 61 memset(&tmp,0,sizeof(tmp)); … … 70 70 sl=iiMake_proc(&hh,NULL,&tmp); 71 71 72 if ( sl->Typ() == STRING_CMD)73 { 74 char *res = omStrDup((char*) sl->Data());75 sl->CleanUp();72 if ((!sl)&& (iiRETURNEXPR.Typ() == STRING_CMD)) 73 { 74 char *res = omStrDup((char*)iiRETURNEXPR.CopyD()); 75 iiRETURNEXPR.CleanUp(); 76 76 iiRETURNEXPR.Init(); 77 77 return res; 78 78 } 79 sl->CleanUp();79 iiRETURNEXPR.CleanUp(); 80 80 iiRETURNEXPR.Init(); 81 81 } … … 177 177 if (p!=NULL) 178 178 { 179 BOOLEAN sl; 179 180 idrec hh; 180 181 memset(&hh,0,sizeof(hh)); … … 185 186 memset(&tmp,0,sizeof(sleftv)); 186 187 tmp.Copy(r); 187 leftvsl = iiMake_proc(&hh, NULL, &tmp);188 if ( sl != NULL)189 { 190 if ( sl->Typ() == op)191 { 192 l->Copy( sl);188 sl = iiMake_proc(&hh, NULL, &tmp); 189 if (!sl) 190 { 191 if (iiRETURNEXPR.Typ() == op) 192 { 193 l->Copy(&iiRETURNEXPR); 193 194 iiRETURNEXPR.Init(); 194 195 return FALSE; 195 196 } 196 sl->CleanUp();197 iiRETURNEXPR.CleanUp(); 197 198 iiRETURNEXPR.Init(); 198 199 } 199 200 } 200 201 return TRUE; 202 } 203 204 void lClean_newstruct(lists l) 205 { 206 if (l->nr>=0) 207 { 208 int i; 209 ring r=NULL; 210 for(i=l->nr;i>=0;i--) 211 { 212 if ((i>0) && (l->m[i-1].rtyp==RING_CMD)) 213 r=(ring)(l->m[i-1].data); 214 else 215 r=NULL; 216 l->m[i].CleanUp(r); 217 } 218 omFreeSize((ADDRESS)l->m, (l->nr+1)*sizeof(sleftv)); 219 l->nr=-1; 220 } 221 omFreeBin((ADDRESS)l,slists_bin); 201 222 } 202 223 … … 242 263 { 243 264 lists n1=(lists)l->Data(); 244 n1->Clean(); n1=NULL;265 lClean_newstruct(n1); 245 266 } 246 267 lists n2=(lists)r->Data(); … … 258 279 } 259 280 260 else if(l->Typ() > MAX_TOK)281 else 261 282 { 262 283 assume(l->Typ() > MAX_TOK); … … 280 301 if (p!=NULL) 281 302 { 282 leftvsl;303 BOOLEAN sl; 283 304 sleftv tmp; 284 305 memset(&tmp,0,sizeof(sleftv)); … … 290 311 hh.data.pinf=p->p; 291 312 sl=iiMake_proc(&hh,NULL,&tmp); 292 if (sl ==NULL) return TRUE;313 if (sl) return TRUE; 293 314 else 294 315 { 295 res->Copy( sl);316 res->Copy(&iiRETURNEXPR); 296 317 iiRETURNEXPR.Init(); 297 318 return FALSE; … … 409 430 if (p!=NULL) 410 431 { 411 leftvsl;432 BOOLEAN sl; 412 433 sleftv tmp; 413 434 memset(&tmp,0,sizeof(sleftv)); … … 421 442 hh.data.pinf=p->p; 422 443 sl=iiMake_proc(&hh,NULL,&tmp); 423 if (sl ==NULL) return TRUE;444 if (sl) return TRUE; 424 445 else 425 446 { 426 res->Copy( sl);447 res->Copy(&iiRETURNEXPR); 427 448 iiRETURNEXPR.Init(); 428 449 return FALSE; … … 455 476 if (p!=NULL) 456 477 { 457 leftvsl;478 BOOLEAN sl; 458 479 sleftv tmp; 459 480 memset(&tmp,0,sizeof(sleftv)); … … 465 486 hh.data.pinf=p->p; 466 487 sl=iiMake_proc(&hh,NULL,&tmp); 467 if (sl ==NULL) return TRUE;488 if (sl) return TRUE; 468 489 else 469 490 { 470 res->Copy( sl);491 res->Copy(&iiRETURNEXPR); 471 492 iiRETURNEXPR.Init(); 472 493 return FALSE; … … 474 495 } 475 496 return blackbox_default_OpM(op,res,args); 476 }477 478 void lClean_newstruct(lists l)479 {480 if (l->nr>=0)481 {482 int i;483 ring r=NULL;484 for(i=l->nr;i>=0;i--)485 {486 if ((i>0) && (l->m[i-1].rtyp==RING_CMD))487 r=(ring)(l->m[i-1].data);488 else489 r=NULL;490 l->m[i].CleanUp(r);491 }492 omFreeSize((ADDRESS)l->m, (l->nr+1)*sizeof(sleftv));493 l->nr=-1;494 }495 omFreeBin((ADDRESS)l,slists_bin);496 497 } 497 498 … … 593 594 if (p!=NULL) 594 595 { 595 leftvsl;596 BOOLEAN sl; 596 597 sleftv tmp; 597 598 memset(&tmp,0,sizeof(tmp)); … … 604 605 hh.data.pinf=p->p; 605 606 sl=iiMake_proc(&hh,NULL,&tmp); 606 if ( sl!=NULL) sl->CleanUp();607 if (!sl) iiRETURNEXPR.CleanUp(); 607 608 iiRETURNEXPR.Init(); 608 609 } … … 745 746 return scanNewstructFromString(s,res); 746 747 } 747 748 748 void newstructShow(newstruct_desc d) 749 749 { -
Singular/pyobject.cc
rc90500 r3e7db4 15 15 #include "config.h" 16 16 #include <kernel/mod2.h> 17 //#include <misc/auxiliary.h> 18 //#include "newstruct.h" 19 20 #include <Python.h> 21 22 #include <Singular/ipid.h> 23 #include <Singular/blackbox.h> 24 #include <Singular/lists.h> 25 #include <Singular/ipid.h> 26 #include <Singular/ipshell.h> 27 #include <Singular/newstruct.h> 28 29 17 30 #include <misc/auxiliary.h> 18 #include "newstruct.h"19 31 20 32 #include <omalloc/omalloc.h> 21 33 22 34 #include <kernel/febase.h> 23 #include < kernel/intvec.h>35 #include <misc/intvec.h> 24 36 25 37 #include "subexpr.h" … … 27 39 #include "ipid.h" 28 40 #include "blackbox.h" 29 30 #include <Python.h> 41 #include "ipshell.h" 42 43 44 45 46 //#include <Python.h> 31 47 // #include <iterator> // std::distance 32 48 // #include <stdio.h> … … 48 64 /// Initialize unique (singleton) python interpreter instance, 49 65 /// and set Singular type identifier 50 static void init(id_type num 66 static void init(id_type num) { instance().m_id = num; } 51 67 52 68 /// Get Singular type identitfier … … 587 603 return FALSE; 588 604 589 return blackbox DefaultOp3(op, res, arg1, arg2, arg3);605 return blackbox_default_Op3(op, res, arg1, arg2, arg3); 590 606 } 591 607 … … 686 702 687 703 688 // forward declaration 689 int iiAddCproc(char *libname, char *procname, BOOLEAN pstatic, 690 BOOLEAN(*func)(leftv res, leftv v)); 691 692 #define ADD_C_PROC(name) iiAddCproc("", (char*)#name, FALSE, name); 693 694 695 void pyobject_init() 696 { 697 blackbox *b = (blackbox*)omAlloc0(sizeof(blackbox)); 698 b->blackbox_destroy = pyobject_destroy; 699 b->blackbox_String = pyobject_String; 700 b->blackbox_Init = pyobject_Init; 701 b->blackbox_Copy = pyobject_Copy; 702 b->blackbox_Assign = pyobject_Assign; 703 b->blackbox_Op1 = pyobject_Op1; 704 b->blackbox_Op2 = pyobject_Op2; 705 b->blackbox_Op3 = pyobject_Op3; 706 b->blackbox_OpM = pyobject_OpM; 707 b->data = omAlloc0(newstruct_desc_size()); 708 709 PythonInterpreter::init(setBlackboxStuff(b,"pyobject")); 710 711 ADD_C_PROC(python_import); 712 ADD_C_PROC(python_eval); 713 ADD_C_PROC(python_run); 714 } 715 716 extern "C" { void mod_init() { pyobject_init(); } } 717 704 705 blackbox* pyobject_blackbox(int& tok) { 706 if(blackboxIsCmd("pyobject", tok) != ROOT_DECL) 707 { 708 tok = setBlackboxStuff((blackbox*)omAlloc0(sizeof(blackbox)), 709 "pyobject"); 710 } 711 return getBlackboxStuff(tok); 712 } 713 714 715 716 #define PYOBJECT_ADD_C_PROC(name) \ 717 add_C_proc((currPack->libname? currPack->libname: ""), (char*)#name, FALSE, name); 718 719 typedef BOOLEAN (*func_type)(leftv, leftv); 720 void pyobject_init(int (*add_C_proc)(const char*, const char*, BOOLEAN, 721 func_type) ) 722 { 723 int tok = -1; 724 blackbox* bbx = pyobject_blackbox(tok); 725 if (bbx->blackbox_Init != pyobject_Init) 726 { 727 bbx->blackbox_destroy = pyobject_destroy; 728 bbx->blackbox_String = pyobject_String; 729 bbx->blackbox_Init = pyobject_Init; 730 bbx->blackbox_Copy = pyobject_Copy; 731 bbx->blackbox_Assign = pyobject_Assign; 732 bbx->blackbox_Op1 = pyobject_Op1; 733 bbx->blackbox_Op2 = pyobject_Op2; 734 bbx->blackbox_Op3 = pyobject_Op3; 735 bbx->blackbox_OpM = pyobject_OpM; 736 bbx->data = omAlloc0(newstruct_desc_size()); 737 738 PythonInterpreter::init(tok); 739 740 PYOBJECT_ADD_C_PROC(python_import); 741 PYOBJECT_ADD_C_PROC(python_eval); 742 PYOBJECT_ADD_C_PROC(python_run); 743 } 744 } 745 #undef PYOBJECT_ADD_C_PROC 746 747 #ifndef EMBED_PYTHON 748 extern "C" { 749 void mod_init(SModulFunctions* psModulFunctions) 750 { 751 pyobject_init(psModulFunctions->iiAddCproc); 752 } 753 } 754 #endif -
Singular/pyobject_setup.cc
rc90500 r3e7db4 16 16 #include <kernel/mod2.h> 17 17 #include <kernel/febase.h> 18 #include <Singular/blackbox.h> 19 #include <Singular/ipshell.h> 18 20 19 21 /* whether pyobject module is linked statically or dynamically */ 22 23 #ifdef EMBED_PYTHON // Case: we include the pyobject interface in the binary 24 20 25 #ifdef HAVE_PYTHON 26 #include "pyobject.cc" 27 static BOOLEAN pyobject_load() 28 { 29 pyobject_init(iiAddCproc); 30 return FALSE; 31 } 21 32 22 #if defined(HAVE_STATIC) 23 #ifdef HAVE_STATIC_PYTHON 24 #define HAVE_STATIC_PYOBJECT 25 #endif 26 #else 27 #ifdef EMBED_PYTHON 28 #define HAVE_STATIC_PYOBJECT 29 #else 30 #define HAVE_DYNAMIC_PYOBJECT 31 #endif 32 #endif 33 #else // Forced embedding, but no (development version of) python available! 34 static BOOLEAN pyobject_load() { return TRUE; } 33 35 #endif 34 36 35 # ifdef HAVE_STATIC_PYOBJECT // Case: link pyobject interface statically 36 #include "pyobject.cc" 37 void pyobject_setup() { pyobject_init(); } 37 38 # else // Case: pyobject may be loaded from a dynamic module (prefered variant) 39 // Note: we do not need python at compile time. 40 static BOOLEAN pyobject_load() 41 { 42 return jjLOAD("pyobject.so", TRUE); 43 } 44 #endif 38 45 39 46 40 # elif defined(HAVE_DYNAMIC_PYOBJECT) // Case: pyobject is dynamic module (prefered variant)41 47 42 // forward declaration for Singular/iplib.cc 43 void* binary_module_function(const char* lib, const char* func); 44 void pyobject_setup() 48 /// blackbox support - initialization via autoloading 49 void* pyobject_autoload(blackbox* bbx) 45 50 { 46 void* fktn = binary_module_function("pyobject", "mod_init"); 47 if (fktn) (* reinterpret_cast<void (*)()>(fktn) )(); 48 else Werror("python related functions are not available"); 51 assume(bbx != NULL); 52 return (pyobject_load()? NULL: bbx->blackbox_Init(bbx)); 49 53 } 50 54 51 #else // Case: no python 52 void pyobject_setup() { } 55 void pyobject_default_destroy(blackbox *b, void *d) 56 { 57 Werror("Python-based functionality not available!"); 58 } 53 59 54 #endif // HAVE_PYTHON 60 // Setting up an empty blackbox type, which can be filled with pyobject 61 void pyobject_setup() 62 { 63 blackbox *bbx = (blackbox*)omAlloc0(sizeof(blackbox)); 64 bbx->blackbox_Init = pyobject_autoload; 65 bbx->blackbox_destroy = pyobject_default_destroy; 66 setBlackboxStuff(bbx, "pyobject"); 67 } 55 68 69 /// Explicitely load, if not loaded already 70 BOOLEAN pyobject_ensure() { 71 72 int tok = -1; 73 blackbox* bbx = (blackboxIsCmd("pyobject", tok) == ROOT_DECL? 74 getBlackboxStuff(tok): (blackbox*)NULL); 75 if (bbx == NULL) return TRUE; 76 return (bbx->blackbox_Init == pyobject_autoload? pyobject_load(): FALSE); 77 } 78 79 80 -
Singular/pyobject_setup.h
rc90500 r3e7db4 17 17 #define SINGULAR_PYOBJECT_SETUP_H 18 18 19 /// initialize blackbox support for @c pyobject; functionilty os autoloaded on demand 19 20 void pyobject_setup(); 20 21 22 /// force leading of pyobject functionality 23 BOOLEAN pyobject_ensure(); 24 21 25 #endif -
Singular/subexpr.cc
rc90500 r3e7db4 1647 1647 if(!nok) 1648 1648 { 1649 leftv r=iiMake_proc(h,req_packhdl,&d->arg2); 1650 if (r!=NULL) 1651 memcpy(this,r,sizeof(sleftv)); 1652 else 1653 nok=TRUE; 1649 nok=iiMake_proc(h,req_packhdl,&d->arg2); 1650 if (!nok) 1651 memcpy(this,&iiRETURNEXPR,sizeof(sleftv)); 1654 1652 } 1655 1653 } -
Singular/test.cc
rc90500 r3e7db4 337 337 else 338 338 { 339 leftv res=iiMake_proc(datetime,NULL,NULL); 340 if (res==NULL) { printf("datetime return an error\n"); errorreported = 0; } 341 else printf("datetime returned type %d, >>%s<<\n",res->Typ(),(char *)res->Data()); 339 const BOOLEAN res=iiMake_proc(datetime,NULL,NULL); 340 if (res) 341 { 342 printf("iiMake_proc: datetime return an error\n"); 343 errorreported = 0; 344 } 345 else 346 { 347 printf("iiMake_proc: datetime returned type %d, >>%s<<\n", iiRETURNEXPR.Typ(), (char *)iiRETURNEXPR.Data()); 348 iiRETURNEXPR.CleanUp(); // calls Init afterwards 349 } 342 350 } 343 351 -
Singular/tesths.cc
rdcf88ff r3e7db4 152 152 "FB Mathematik der Universitaet, D-67653 Kaiserslautern \\\n" 153 153 , S_VERSION1,S_VERSION2); 154 if (feOptValue(FE_OPT_NO_SHELL)) Warn("running in restricted mode:" 155 " shell invocation and links are disallowed"); 154 156 } 155 157 else -
Tst/Manual/pyobject.res.gz.uu
rc90500 r3e7db4 1 begin 640 pyobject.res.gz 2 M'XL("%%?<DX``W!Y;V)J96-T+G)E<P"UEVU/VS`0Q]_W4QS1)!)6"FEI"\F6 3 M";2)(2%>#*:]F"::)A>:+;4SVZ'P[7?.<T$:H^FJJDUJ^W^_.Y_OTNN;CQ=7 4 M`&![<'EQ!H:2:I#$<\,%NKJ-6:Q,R^WI;_`\2!_Y_"<&:L!P-9#*5[WK<OVP 5 M&:0+J02\!^,S)@DWW!Z-?X!9-3Z#6$+&0HQBAF$QB$)P`3P(,B$PA)@!W<XQ 6 MX@*A,)'09!@ZC<PS,[,:9K0&$S-%LX9;Q!BM8U0&&H`C#X@M9G<@Z:/`+'XP 7 M"^JW8,`W+I)PQ[`:,!K)J1A7L`G7$7&]PNZL%'](R0^2+6;NT[U`*6/.!J`> 8 M4X3=!29I.>KNUDZ.O<I*Y4%YVR&R8Z=6:85SXD&%GT?;!3@X@$]:TLF#E7+B 9 MG2>XM4A.G%+E19,-Y;2BW&LO.<L4J`6AT-NG/%UAV-\:YK3&?-%FPWG<<(YH 10 MOG[1&E_"BLZ1_M9+MY>4QRW&O]AK^$X\J*[MPP&QJ@5GMR)CID'V@4I/E+'` 11 MW//%G;0<$*@RP<B65&;^$V5V;D$^LD!"P)G"!R5W:H<JN4Y>V8=.6ZL;6NV[ 12 M366X$K'[,.S#R"I#5H:M'*5ME1Q^,;X*07&XOK@Z_WIY^J7TL9:P.AQ%VW9: 13 M2AO`-%X-6SLZ&NAXTZXF4E?-,H1X[R>F\7W4AVD?[!_MHEB/=]LO7;/_R7"# 14 M354\%3PP?46E;V[F*_M@2"Z485G4%W4,3H.`BF4I!TM<SE&`X)DBJU)G=[$Z 15 M4R@+X%RR+-,S"R(_3FI?JDI<S-&?,^MU;NH6L%7HLDFL!*>NDK>#$(/$%[YZ 16 MVB"TV:8]V&.OB/5`FS;;F5,DS[M]P-]93/%'ZI]R0;/V:7=SW7KS:7VW;1\[ 17 MI<PF&$TJ3"IGBD"NZQ0J?J)0,%IWC__-FTGMS28<C3O3TAWW&=J&M6):@;6. 18 MSW'KU)_4=3Q>IGHC#"Z-&I[`SU%)>L3(H@@BP9=U:O(P2RC!N-Q=+PB%3+=H 19 MGCA/Y#:@JMT='E+I]I>XGF#MO;E9(,0A95D<Q73<>$2-#X&GJ,^2?F2C)HG+ 20 EJH235)<'9=V>MH'3^$>M2?\ET$_]F:36XK[I_0'_4\`[/0P````` 1 begin 664 pyobject.res.gz 2 M'XL("-48PE```W!Y;V)J96-T+G)E<P"-5&%OFS`0_<ZON*))0)>F)5F;-FQ, 3 MK39UD:I^6#KM0U6U!([&&[%3GVF:?[\S$""3)BU*@.#WGM^=GSV_^S*[!8`P 4 MAIO9%;B&S+`0"S<"?GH44A@_B!Q[ASB&]58M?F%JAA(W0S*)<>8-?]0-\@,9 5 M#9_`_89%H=RH!8WW0$(:!HVZX0\Q,%'(9R"^U!KU"[^6?`\N_%2ZR`[<H*.= 6 MQCM\Y'C5E`W(:R%G,>P4JGDC@.-C^*JUTE.0BMTH(K$HT&'PY\XD6@2H-"TU 7 M9O58FDA+2)5,$X.2?^"QL@>)S,!C;0]J,M7XG@1K@)#`?Q>8*XU0VRN$1#B; 8 MPM/_67QJJYKLJCKL4ZY*`V8I"/B;<#,VF`V:OE27KBOG'7_,7/MA?D*P89R] 9 M6YFHS_U+X"*&W7-X,F0QLU3R49?2=S/,@4.2ES+U#Q/]3,$4-)I22ZZ7C%^] 10 MXE6LIJ2M3,FVU.";H8-6DT.YTP@',!K`.&A\-EZ;4:Z3%/R6:I.!43"?W5[_ 11 MN+G\[MPWK(=6<=1S/!Z"=;G>%F2#V+C'UZ3PW?OQ`"8#"!]Z00LYGVNM4C\Q 12 M',J%7Q$'X)+2Q@T"WB?6TF6:(E&C!BM<+5"#5J7A52;;U)I=&J16^#2N70RM 13 ME-^OL2[SXQ'@2RG8&?*>H26CCC@2B1%*MB)G.Y':T+Y,+9(4!C5'5KSBOU0F 14 MC4I4-<]VH6O>>:]Y%^URB]7:NG85N>V4/-TU&N+=6^8YY%JMVH:HK"QXRRAJ 15 M8S0ZX65.5KA?=M_ZW1)!9%R[R`5W4^6<3`2U1LWF[7'!*<:5X_$6$6^=+L?' 16 4'F+VG"K)#X/HG?,'*18RJN\$```` 21 17 ` 22 18 end -
Tst/Manual/pyobject.stat
rc90500 r3e7db4 1 1 >> tst_memory_0 :: 13 16104113:3132- exportiert :3-1-3:ix86-Linux:mamawutz:1716322 1 >> tst_memory_1 :: 13 16104113:3132- exportiert :3-1-3:ix86-Linux:mamawutz:6663323 1 >> tst_memory_2 :: 13 16104113:3132- exportiert :3-1-3:ix86-Linux:mamawutz:6991164 1 >> tst_timer_1 :: 13 16104113:3132- exportiert :3-1-3:ix86-Linux:mamawutz:61 1 >> tst_memory_0 :: 1354897621:0- spielwiese :spielwiese:version:brummsel:147248 2 1 >> tst_memory_1 :: 1354897621:0- spielwiese :spielwiese:version:brummsel:1581056 3 1 >> tst_memory_2 :: 1354897621:0- spielwiese :spielwiese:version:brummsel:1581056 4 1 >> tst_timer_1 :: 1354897621:0- spielwiese :spielwiese:version:brummsel:4 -
Tst/Manual/pyobject_declarations.res.gz.uu
rc90500 r3e7db4 1 begin 640 pyobject_declarations.res.gz 2 M'XL("%%?<DX``W!Y;V)J96-T7V1E8VQA<F%T:6]N<RYR97,`K9-/:X,P&(?O 3 M?HK?9`>%(=BNM9LT@['#"F.7#G:L_U+(R!))(L-OOZBM3D=/]1+S)J^_YTD@ 4 M^X^7W3N`D.!M]PS7:!-PEKDQ[.S`!#.>'SO-%X2@K&7V17-S*&C.4Y4:)H4. 5 M!/T)M$F-LS^%+8@=SKV@WZ6I8\<N/2$YKR9@&I4HZ)$)6G2;5"FI(/.\4HH6 6 M8`*VS.A1*HHNFMMF+!Z1_(M/>OBR@8^8;7$%<-D"IYQ[@GZ^"OX>N*RU4=C" 7 M?:6<2WQ*Q8L;=\8;6(UOX`)O4%V3L9ZT&5N$T8Q*ZZE2SQ@THHD&U\:V<*:- 8 MUQ[AKOO-GU$KFFI=9`Z:FT[3=@XBMKC"8G.R:"('S@-IWUCS<BKMA7Y\Z_P" 9 (6QGLMXX#```` 1 begin 664 pyobject_declarations.res.gz 2 M'XL("/H8PE```W!Y;V)J96-T7V1E8VQA<F%T:6]N<RYR97,`79!="X(P%(;O 3 M_16G$:@@@GW':!?114)X8]!%1/BQB\5RXDZ$_[YIIM7-=MC[O,_@Q,==&`%` 4 MP.`0;H&@1E^*E%`PTU44`AV76LT-C$%9J_3&,[SF/)-)E:!0A?8+_O0U)FC% 5 MG6S"S/%A@=]+K&D?3INP>XM4P?M@QJ"?Y_ZWH:PU5K`!LN=2*CBI2N8C,B@7 6 M[)<V5D,'RX%8_A%2HR&DT.BT<N_=<H?&ZMTP(+7.]O?'MF?4EQY<LW95S0(> 7 .V@E<.K9>XJB,/%4!```` 10 8 ` 11 9 end -
Tst/Manual/pyobject_declarations.stat
rc90500 r3e7db4 1 1 >> tst_memory_0 :: 13 16104113:3132- exportiert :3-1-3:ix86-Linux:mamawutz:1717002 1 >> tst_memory_1 :: 13 16104113:3132- exportiert :3-1-3:ix86-Linux:mamawutz:6663323 1 >> tst_memory_2 :: 13 16104113:3132- exportiert :3-1-3:ix86-Linux:mamawutz:6991164 1 >> tst_timer_1 :: 13 16104113:3132- exportiert :3-1-3:ix86-Linux:mamawutz:81 1 >> tst_memory_0 :: 1354897658:0- spielwiese :spielwiese:version:brummsel:129456 2 1 >> tst_memory_1 :: 1354897658:0- spielwiese :spielwiese:version:brummsel:1470464 3 1 >> tst_memory_2 :: 1354897658:0- spielwiese :spielwiese:version:brummsel:1470464 4 1 >> tst_timer_1 :: 1354897658:0- spielwiese :spielwiese:version:brummsel:4 -
Tst/Manual/pyobject_expressions.res.gz.uu
rc90500 r3e7db4 1 begin 640 pyobject_expressions.res.gz 2 M'XL("%%?<DX``W!Y;V)J96-T7V5X<')E<W-I;VYS+G)E<P"ME$MOPC`,@._] 3 M%5:U0V$3HKQ9M2)-NR!-N[![RR-LV:JD2M(Q_OT<^C`J($V4"\2-Z^]S(%Z\ 4 MO\S?`,`/X77^#*[1II/PE1L`KB(NN/%:@6._(0PAW<O5%UN;B/VFBFG-I=`= 5 MP78=;9;&612U>B%^E*FXT$;!$[CIWGQ*`1AQ\0%NX#.(R,0:N(1,;MN6" 6 M;?)-II14(-?K3"FV`2X`PQ7;2L4@IR68#+U'B/]#C"O%?JZ(.Z2!00.'?N%@ 7 M2Q)G4#L*+@R*]6[8^Z#>>XD@B6$N@1O$Q:`!=%A`;4GBC&K-)MJ:)%P;[W`N 8 M#_D;K1MV/ZIW?Y%)FN-<$S-)!(,&%N/"PI8DSJ0Z=KB_=/Q"&KB&.*$?H"I. 9 MY"F1V[<F3X_([3K9[U;WZJ!U]GY=2_:[=,6JZH3V"7W2=&.T?X0^[;H8>';8 10 M1.QGF7BN/T;#@7OT5Z\VFXF4H^X<BX0.X\WL4R:W7H02LTQ\"[D3AV>S*@VG 11 5DYWR=GAGVO-;P9WS!Q>(<>00!@`` 1 begin 664 pyobject_expressions.res.gz 2 M'XL(""D9PE```W!Y;V)J96-T7V5X<')E<W-I;VYS+G)E<P"-DD]+Q#`0Q>_Y 3 M%$,0MEV78F)UE6`/XF5!O*PWD;*[1(V4M&S&/_WV3MKM%*N"ES;)^[TWG4S7 4 M]S>K.P!0!=RNKD%BP*QR6VF`5J7S#I/4B/B&HH"FK;>O=H>E_6SV-@17^Y!Y 5 M^Y$%W*!8'[)T08\!I47`/5R!;%I\J3W0SOEGD(;YTYXGP8C9=VK&4#X)=1XI 6 M5(\I9SU`YT9H/CV?V*H0;94+F'05%[TE'7.6O8-`(QZFG[,`_<CD!5>$XZ%R 7 MSNKEJ,Y_J.J$>^Z\O_7^QTTH-5HY^)_6PV2B6-KW395(M:3ZN:3^M6*L&PBV 8 ?C:V?DI*DX?X8H&'$WR-._2TD*C5'X@LAU#9U20(````` 12 9 ` 13 10 end -
Tst/Manual/pyobject_expressions.stat
rc90500 r3e7db4 1 1 >> tst_memory_0 :: 13 16104113:3132- exportiert :3-1-3:ix86-Linux:mamawutz:1717002 1 >> tst_memory_1 :: 13 16104113:3132- exportiert :3-1-3:ix86-Linux:mamawutz:6663323 1 >> tst_memory_2 :: 13 16104113:3132- exportiert :3-1-3:ix86-Linux:mamawutz:6991164 1 >> tst_timer_1 :: 13 16104113:3132- exportiert :3-1-3:ix86-Linux:mamawutz:81 1 >> tst_memory_0 :: 1354897705:0- spielwiese :spielwiese:version:brummsel:129408 2 1 >> tst_memory_1 :: 1354897705:0- spielwiese :spielwiese:version:brummsel:1470464 3 1 >> tst_memory_2 :: 1354897705:0- spielwiese :spielwiese:version:brummsel:1470464 4 1 >> tst_timer_1 :: 1354897705:0- spielwiese :spielwiese:version:brummsel:4 -
Tst/Manual/pyobject_operations.res.gz.uu
rc90500 r3e7db4 1 begin 640 pyobject_operations.res.gz 2 M'XL("%)?<DX``W!Y;V)J96-T7V]P97)A=&EO;G,N<F5S`+V72V^;0!2%]_X5 3 M-ZB2'VF(&6R#<4S5J(M&JK))I*JJ&D+P.*&E@S4,BOSO.YAY&;IHZU$W-A[@ 4 M?N><>>CZ[O[#S2T`>#%\NKD&AU7,+?(G9P7\*LE)SD;CU:#YACB&W;Y\^HXS 5 MEI0[3%.6EZ1R"7YU*Y:RP9THA?1SP%Y+6`-:#?CX.WB4XX^05U"3#=[F!&_: 6 MFYC2DD*9936E>`,Y`?[S"6]+BJ$M7?"'`46ZC"K_J."^"7^A&//[OD6\?X17 7 M`"U@%H.ZGKL'A>?M@U(%'SH(("6#?Y$PCPXU5%G-7L0'WH5=WD+P+GJ\H.5- 8 M[/("P9OT>&'+N[3+"P7OLL=;MKP'N[REX#UT>=Y4Y&DY4&\J$^U%ZGEZN7K( 9 M%2OZJI&AZ,W0:?QFSYJ5-=YO'5]9-NP+PU<]OWQ["B5KRR9GVN2ZXW(N7*XM 10 MVY0G@2JLD>(H6-M&RL-@W4<&&FD$>RHP,(!'H89R)F/+$QFJB8P[2'$>Q)8S 11 ME0="W(T4395'RZL53;7)3K#($RXM+QWD29N]I8-0BSRSNG00$L"SKD-?XZPZ 12 M]`U@QZ'1%B#>%J@68K>O&.4MA/,1%T7IV&R4YF:KTN5H98M8W#P'!SZ7M-B< 13 M&3+XC=,R642BS%%]C0\D?F+V:2=C`X6=F.T9"@7NJ_?-(BV4M*:LABWUI/O3 14 M9M+92TD26I.1PS'`.^=M3;+1)*7/U3@"BEE-"2]9L=%AR!EKC?+5DX3ZT\BL 15 M]><RE">?GP[R!:5.#)PFK3D>=&4-1!K(]];;=F?912,#;3*T"-^8R9DK!;E. 16 MDF1%6E5)XE@5--."CAA:T%RE$D5'*D:D+HHQE%M@^QV&X?O;+T,7[ND^)\]0 17 ME.G&;:4,Q>M#KA*J.GN!79K]2)_QWRF=:Z7'0K34A9+J-A\)27]BJVDMC+0T 18 L00L(C*P,!>KROX45F&']3FEH++.E>_@+WORUKJN1-UZ]&?P">K8C2*T/```` 1 begin 664 pyobject_operations.res.gz 2 M'XL("&89PE```W!Y;V)J96-T7V]P97)A=&EO;G,N<F5S`(V47T^S,!3&[_<I 3 MCL0$-K6NK=O8&+UX\UZ\)L8;3;PP2G!6Q2`LM(O9MW];Z!\"B?&F0'_/<SCG 4 M],#=_=_K6P#`#&ZN_T`@A41E\1(DH.ZRHBID-$TF^@J,P?Y8OWSRG<SJ/6]R 5 M6=250!7_1D+F<G)G0A&O`_E=0PHD<9#VX4?#N<+4XRL&[GZ!6OM9ITLF"T>6 6 MK"47EEQ@AU8=FEFT="3NR*4E<T?6'7FV)+8$STVTV1AAGRDFR-2RU?)>:$R[ 7 M`%OK=XEB5:GQI$/3PIC2L<M4GJ:C*O#*(QW.>V+[)C8DIG`V"D;FSC,,1[`Q 8 MC5,@I$,GPXH(]6!0$>F=.%$G[H9C?Q2R4<,1_.-E60=N1,B2&78&`3S43?EZ 9 MHFC8RLQSZ,0K*Y[I*>M$?O&ZV.@>\9.2<0_6/CTZU^G)C[K*FD,5!:_\#=3P 10 MOQVJ733+FW<QW4##Y:&IH"R$C-JM8.HRIZIS5J]V'Y\<(!ZH-IUW3=(2<@[4 11 MRV@OERMD+2C(LEV9"Y%EJ@];>=QS"#70GV?(G&/A7K+9_-*R=!:DEZS*O]39 12 DA6;/-8FN>J%_%,:]"M:H_<7H7\=!1'B:G$[^`P>OM<F-!``` 19 13 ` 20 14 end -
Tst/Manual/pyobject_operations.stat
rc90500 r3e7db4 1 1 >> tst_memory_0 :: 13 16104113:3132- exportiert :3-1-3:ix86-Linux:mamawutz:1716602 1 >> tst_memory_1 :: 13 16104113:3132- exportiert :3-1-3:ix86-Linux:mamawutz:6663323 1 >> tst_memory_2 :: 13 16104113:3132- exportiert :3-1-3:ix86-Linux:mamawutz:6991164 1 >> tst_timer_1 :: 13 16104113:3132- exportiert :3-1-3:ix86-Linux:mamawutz:71 1 >> tst_memory_0 :: 1354897766:0- spielwiese :spielwiese:version:brummsel:129824 2 1 >> tst_memory_1 :: 1354897766:0- spielwiese :spielwiese:version:brummsel:1581056 3 1 >> tst_memory_2 :: 1354897766:0- spielwiese :spielwiese:version:brummsel:1581056 4 1 >> tst_timer_1 :: 1354897766:0- spielwiese :spielwiese:version:brummsel:4 -
Tst/Manual/pyobject_related_functions.res.gz.uu
rc90500 r3e7db4 1 begin 640 pyobject_related_functions.res.gz 2 M'XL("%)?<DX``W!Y;V)J96-T7W)E;&%T961?9G5N8W1I;VYS+G)E<P"M5%UO 3 MFS`4?<^ON$*3`M)&1YM^LC%UVAZJ3-U#]@X&.\$3LR-SW2[_OM>&FJX/R[*6 4 M!V/PN1_G^-BK'U]N;@$@*^#;S6>(L,>TDW64`\U*J23&23YS;R@*V.YT_5,T 5 M6!K1,12\7%O5H-2J3Y6X3WMD.%N-&8\+&AX#:-*C@8\0+6W=,0G+EJDHGQ'D 6 M$U2/J`ID#U9QL99*\&%1&*,-Z*:QQ@@.4@%]UF*MC8"A5$=@.+Z":F^Y*C1W 7 M4D"8+U(:CH[@FG/IN+`.'FFQ3N(.L#7:;EI@B$;6(>[4Q0W_8E_O+41ER753 8 MEA%I%G!G7@BCF_@9N-%6890D<;1T`9ZNQU6T+M6F2F#-9!>4^+TE:J3!@'%C 9 ME1PDTMD@TMY6JB'KO=%J`[C;"N"BZ9AA3I-T^#-O1;?UN?)YH'K^1-:+U.\_ 10 MY4^#+#E,#RG^X1VL6FT0E$:?NP^&H##O!EJ!__'#Q>B'P\I/!KDL0O=>FSAB 11 M),P?X5_OA(+>)1`&8KD>O6!1S*EO]DNX_N_(0AR8XN1KVPN>O!K#2V+XNJT% 12 M]MG[:1^S;-A';+4JC55Q1,WZ`Q(G5V`$6J,@.P\&KB;HB^AEV;B#^PM/??L[ 13 M9[2V0U)32D_D^P`\>0:D(^!>I=/FZ>'-%G\#TD>]NU:[[]@*<SN&#BHXT,OX 14 B+SS_0TI/.IS^*SVZF]P][RYNV\=9DK^9/0!/7M;$$@8````` 1 begin 664 pyobject_related_functions.res.gz 2 M'XL("(\9PE```W!Y;V)J96-T7W)E;&%T961?9G5N8W1I;VYS+G)E<P#-5-N. 3 MTS`0?>]7C"*D)%(W2_;"`H5(B^!A5;1(E#>*(B=Q&X-K5[[L;OEZQKE,NGV` 4 M5_J0GC/VF?$<7U;?/M[=`T!>P.>[#Q`YZS(IJF@!B$JAA$O2Q2S\0U'`_J"K 5 MG[QVI>&2.=Z4&Z]J)[2RF>*/F77,S59#QHL"/Z,`@74&WD.T])5D`I8M4]&" 6 M)E\60/@JP\_Y.=PVC0BYF82Q#)/"'<"U1OMM"\PY(RK270=='TNZ<G.(RK+1 7 M=5E&V$.,D:1?30IG!2`5:KM6:_65.V\4,%"BYD,<#-\;;KG"EK`PZ`V6Y=#K 8 ML[6ZZSDS6[_#22`LZGOIO!LQ?=(')CT/HR%FV8Y2Q+3N5YU11M?)R>)K[96+ 9 MTC2)EJ&!"U+<'+GU.NML1D5&W2Y@^J&1[\Y@U6KC0.F^&_O_FO&FH':Z]I.( 10 M8>_/VOGTP!78T!`WD(C-L.?>\=B""EFQ`I82#3#5@%?>\B:=[,M?3O;E>6^? 11 M:[4JC5=)U/!-=]R2].VX[/PFV#\JNG,][%28B$/?X[*LF91E&<\A8,FLG8BV 12 MWG"BNB&,M9B7SDY<AL1$!=ZT$8>-[>%&FQVC@2T_AF0%Q:2NF*0*+;/MB,.E 13 M'O%.-UZ2*)A(F#^.T/#&U_R$\:<IL*>EVWXI1,5OKC?$C@9\U9G5:OVKCP5+ 14 M1\\FCJ81&5V;`NC31'1->&B>>.@K_D$[>7FRDWCE:%KW8@1&1S._^MMT)-7A 15 I5AV^X-$V]T."47G]KT+/I5-)?!K",QS>56^3/%V\F/T!I+0#[K$%```` 15 16 ` 16 17 end -
Tst/Manual/pyobject_related_functions.stat
rc90500 r3e7db4 1 1 >> tst_memory_0 :: 13 16104113:3132- exportiert :3-1-3:ix86-Linux:mamawutz:1716882 1 >> tst_memory_1 :: 13 16104113:3132- exportiert :3-1-3:ix86-Linux:mamawutz:6663323 1 >> tst_memory_2 :: 13 16104113:3132- exportiert :3-1-3:ix86-Linux:mamawutz:6991164 1 >> tst_timer_1 :: 13 16104113:3132- exportiert :3-1-3:ix86-Linux:mamawutz:51 1 >> tst_memory_0 :: 1354897807:0- spielwiese :spielwiese:version:brummsel:129760 2 1 >> tst_memory_1 :: 1354897807:0- spielwiese :spielwiese:version:brummsel:1581056 3 1 >> tst_memory_2 :: 1354897807:0- spielwiese :spielwiese:version:brummsel:1581056 4 1 >> tst_timer_1 :: 1354897807:0- spielwiese :spielwiese:version:brummsel:3 -
Tst/Manual/pyobject_related_functions_1.res.gz.uu
rc90500 r3e7db4 1 begin 6 40pyobject_related_functions_1.res.gz2 M'XL(" %-?<DX``W!Y;V)J96-T7W)E;&%T961?9G5N8W1I;VYS7S$N<F5S`*V21 begin 664 pyobject_related_functions_1.res.gz 2 M'XL("((9PE```W!Y;V)J96-T7W)E;&%T961?9G5N8W1I;VYS7S$N<F5S`*V2 3 3 M34L#,1"&[_LKAN!A%V1A6[7:A0CBI2!>ZCW[-6NC:U*2">*_=[8M64&T%#UE 4 4 M,GEFWC?#K)_N5X\`4$AX6-V!($_YH!M1`D=*&TUI5B;C"5+"]L,V+]B2<CC4 -
Tst/Manual/pyobject_related_functions_1.stat
rc90500 r3e7db4 1 1 >> tst_memory_0 :: 13 16104113:3132- exportiert :3-1-3:ix86-Linux:mamawutz:1716442 1 >> tst_memory_1 :: 13 16104113:3132- exportiert :3-1-3:ix86-Linux:mamawutz:6663323 1 >> tst_memory_2 :: 13 16104113:3132- exportiert :3-1-3:ix86-Linux:mamawutz:6991164 1 >> tst_timer_1 :: 13 16104113:3132- exportiert :3-1-3:ix86-Linux:mamawutz:81 1 >> tst_memory_0 :: 1354897794:0- spielwiese :spielwiese:version:brummsel:127672 2 1 >> tst_memory_1 :: 1354897794:0- spielwiese :spielwiese:version:brummsel:671744 3 1 >> tst_memory_2 :: 1354897794:0- spielwiese :spielwiese:version:brummsel:671744 4 1 >> tst_timer_1 :: 1354897794:0- spielwiese :spielwiese:version:brummsel:0 -
Tst/Short/factorizeQa_s.res.gz.uu
rc90500 r3e7db4 1 1 begin 644 factorizeQa_s.res.gz 2 M'XL(",P%$TX``V9A8W1O<FEZ95%A7W,N<F5S`(U82V_;1A"^^U<0;0^2*(K< 3 MV7<-^U#T$J`H4J2W(@YDQ7:5.'9@*:BH7]_9]RPE!X$`:3G?S.R\=ZEW?__^ 4 MYL^F:=AU\\>;WYJ?]KO]ZG%[^]/EQ;N(P'6#Q`_;I^U^-K^\<+_-]75SO][L 5 MGU^VQ[N_UA]VJZ>[_U:[_7J?I?AUD]=BU?1]<__R_*5Y>'XYWCUF1*Z:E^W3 6 M0_/N:C8L/\V7LV\SMEK!?'F(O\?P.U]^_%HL4M?-E^W3U^?'\>H3M*P`^KIQ 7 MU.;M%>J9WXC%T?U`!PO_S!>H=AZ)6<BLFC8P>!BYHM2!ZLCLMF;'+T!XPL6& 8 M58.[>@U0LW3^::J6,100Q4P(9N(7S#,/X-:"6`JO,7+*",FEF@>3TN8H.?O: 9 M:92`VB>]0W64H(I2Q:YJ]A*"BDN?C1)447)/.</,E+)BF(E<A+.W6)K_L/>_ 10 M7F"*/N#BBH45O`^U$`V-BB&`/(`^.EVNC7;6?9J7T+8S?/J60N*?<H"ZR(5Q 11 M]0K%*PIK?5VML'M%(]KNW6%+_TE^PU!B`,RWUGZ[^7RW;W[F?,@(Q-9ZV32N 12 MN3;87(?E6#42\-Q(S56SP5;JQ:9C/5.%1<26NC\@RP'06L>$!OL52+5!*3:` 13 MF!<92:;#[/[P>F:"$K.AON;J`)6W=N;]^_SE^0&UH0]E)VQX1"\OJ&'CB66+ 14 ML2@UM6WC#QBW&,^:9TL:^.#2D+(`7&6`I2R@!YB%]9DL<*!96-.!QGD*@1,_ 15 M=.OY8C;B=V$0E3O?=V8]SU4_AL>JPK).21Q3U#%C,UTGO[:^NK;HUWIYZZH, 16 M/2OBAKJVK5RSU+5U>^LFT(:TNAA^T#64;6?;^6*3O?.4SI/.>BB85[W;?SS5 17 M>T:VT#TY*8'HP$-P8.,<N*4.<.K`P_<<\!O>MM2#6:2<=T!D!T[TGHHF<MHD 18 M*2%Y%ICGO,;<?MX^/C8OQ17,8T@WK>+E<;FK*EG8<C#7A2R'E.VKQF@^]%PO 19 MUHO#C5R,-PRG/"YV-[)E6JB,&8>QC%$Q)(^()TB8('7``P-E\&C"A0.LA@AH 20 M!PP9*!)('!&-0">DM+TP?I>LS.TB`@3"0UD=@:)45A@AX+U!,G<2$/<)9(%D 21 MA61;41VS1:K*5#L,V7.=@@(>8H9@?F>3,2K&W/8R0UQ8Z(4M*9#17MYQ;7@/ 22 MP15%L\,[/1@6@C8!E#4BJ3/)3Z*.A:!9FE#>,<$4!'T3A)KG4VW/FH?;E"J@ 23 MYM5`"YJI'GA=<"+88(6W/"8[`RVW`JHBY45FD-ZE*=!*P2'MDXLWR'!C3-A' 24 M5T"K#8:.%OQ0[Z-/Z)4[N1&F[N1:.'7'R^@S[M1`RR3S[I!&X$$9GJD!R&W` 25 M)Q*Y"2+`M.PQ*[FHAEB*O(-!YRJU,=50A%0&=!813)3"AM@J<+*1A\39C9C+ 26 M',^0M**>2&A>B`TSIII'.@)4PH=-1$"Q:N*D1$/'``0=.28C121WJ0=:KK"! 27 M8QOHU%;@(8MN3J9D`'!(1F53`(HR;X#-$+-RZ">#-2)")753Q#5;G'BF0JC5 28 MWB%UQFHFR#RB5D\`OTV<N=X">=8"+Y6CTP%.Q=0A*0U>1C+=E]EN`[63JK"G 29 MW&3V,N]59*?:4\8FVKT6'LG:6E>2I/(QO9ZJ2&DGFN?,I>NH!DR*IR6]TQJK 30 M\R0D"6V9TI846B%+E?,"I:&\GCBA:;Y:SJ4A=9G(Q!S?1N*,.:JT%S6'DH%K 31 M51U!/D<M`Y.M2?%"LC#,D*/'$[NXFTVI;(660,\A4U1J.D>0:!57Y>SQ-*R# 32 M:J1,C$SE-S$RI:HRLA"3D6GB((498:KC:$`B5U;1LT-/&..009.$H">)OU%T 33 MPBIQ<FT2K5+D``DD8:PB)X2_>G36@CFY6HF6<5"]KFEE^UP4]?:Y@<OVA80' 34 MU$"/#F>3.QP'0XX-XXF%,T]%7JZ3[@)_U=PO[@L)R&V[.;W7=UH!`[P3]0QC 35 M7=Z+QN,.WQTU[^VP[C"#O1$#OD3">.PT&B`DOE#"$7O;X+LD=T\=TQQO>QRP 36 M"G?YQGX8Y5'L.-ZRI>BMQC>U41RY(R@3G@\<%;GS=L#G\+3#:<+]DSSN.J7\ 37 M<MSE_Q+&L)+N_2VN%:ZAPY?<,?Z'H9%`WT_Q(_PGOX1*\E^<%"O_;Y[[K^[; 38 1;L;FE\TO%_\#E'X])004```` 2 M'XL("!OBM%```V9A8W1O<FEZ95%A7W,N<F5S`)5:2V\DMQ&^[Z]H.#F,IM5J 3 MLOC.8G4(<@D0!`Z<6V`;6GFUD;WV&I(,J?7K\U613;)G>@W'"VNF6<5B/;\J 4 MMO3-O__V]W\.PZ"OAW_\_:_#5T^/3U>?[M]_]?;--X5"UP,6O[__Y?[I</'V 5 M#7\.U]?#W<WMT^>'^]</_[KY_O'JEP_/5X]/-T]UE[D>ZG=[-<SS</?P^>?A 6 MX^>'UP^?*L5=#0_WOWP<OGEW4)<_7EP>?COHJRNZN'PIGZ_Y\^+RAU^;1OYZ 7 M^/G^EU\_?UK>_4BC;H1P/?#J\/4[R+GXSAY?^8,F.LJS.4+L15FLF^+5,&8& 8 M(8.K['KI953VM&7'#P+YA$NKJP&GB@3:LDSR="I6:VRP34W*:N('750>PM&V 9 MTY2^Q&AZ1EI-VO(@*&/U$NLWGGJ)>OV<&+3U$FV\M&'W6_;F@@U7V/42;;S$ 10 M3S7".K:TTHA$3<+#UTC-_^AO__(&(?H>7][I_(V^S;E0%"V"*1--)HIWIIH; 11 MXV'Z\:*Y=CS@Z;?5)?)4'305+OA5!-HO"-S*F[8"IR](A.YBCKZ4?ZO=I)H/ 12 M2$MI/=W?_O3A:?B3,:I2J)36P^W`Q76+XGJY7#:%1*86TO!NN$4IS?9VTK/V 13 MC<66DKI[`<L+05MF@L+RC9R_Q2ZMR%ZT/:Y#A\/=RY<CDX7$V][6FAWDZ]&L 14 MWG\___SY(Z3!AG82"A[4MV]ZQ98SS8Y+$QJWNBU_0+GCLJM>:F$PBL.P1H&, 15 MKP2]1@$6(`HW.U$PU$?AI@<T8U87\/:7Z>;B>%CPLS'8C3F_;\S-1<WZ)3]N 16 M,JS*=)UAOC<LIKH>5KON);ON8=?-Y7O.,EC6ML?>M/N-::DW[69\SPATVY6Z 17 M57_0-.P=#_<7Q]MJG:Q,LK1KH=4B^O'IAW.Y.WO;NBRO0J@8\#$;<,L&O.\- 18 M,+T!'W_/`#GP_=A;<"@K^P;8:L"9W/.MZ_)ZR"JDB[/=Q-EZ&AX^_/KYX>G# 19 M#\/[Y:1IVQK[9^UR6C_OI+7=Q/X9R/L\VD;MJL>A>G(J:'!:KR(%4E8EG[Q2 20 MZOCR78#RY^O/*/;O_'&9$FGOK%51)Y,H;W''!?$X[.PZ9V<Y%OQFEW\\6V-^ 21 M`WX[[IU,H+A]A7=%@=WO,"]LM3&D=/"!C$TF>%'?*&]#B$Z;E"S9K`X.3"'H 22 MX(*+"C22X[12VBNG'2D3R,9J*JMGO4G0WFAR0@(_SDDI6D4NZLINLB<G![G! 23 M.>^4,F(L-D3O-9J.BT:Q]L)/V9/3N3[3KC[B2%CJK4LF*F.5#YF=O$H."];& 24 MZ*UX*[N60K0NADC&84>.JB;R2<&!+)X]F&T=#UI'R+36F:`<%>X0C?9)*V^T 25 MKLR&'6.32RGA5.^<S=RCML8%2L9'[71<V:DXQL>`4ZU.RJ:BS4BD8X0K`[O9 26 MJAII(XGAG$D!<89(M>:D]Y!O@PI.JV*JY0Z$!N84'*-U"AJQ8;^01XE&6)N@ 27 M/?07Y6&IB>Q%2(^6(M;!BT<-MH#`@IWBJOEX@/.49HE:*VP1[JA5L,XF&Y*/ 28 M1668J'%:T`X4DR*"`P,-_`=5`Q(!\<?/BV(='V23MU83C,_>")J2]7"BH59Q 29 M[#H#NQ3BX+&E.'M"1GFEL95,B-5SG"$:5G%.(*U**4?CO.?R,$%S.HD6$&QT 30 M0H(8,,,?0<7$N:K@%U8Y.F@'9?(0@\(S[(&$$$1()HZWYTQE=SI4FE8\0HP' 31 M;Y"%*!J?(M%J&'34!`VT)$OKS$YW`$<KP!$`CN"+!/T"4IHBCA?4B`C(#D$P 32 M+DBX]J@(+[+,Q.006:0HYW)!10#N#K$@HYGVM6`4M%_89];BVU5D9W6M$?^E 33 M3>/^)H&^O0V+>$DAYQP`$:#@+"(DZ:B1=2'@`54-L`B4W<"IBPQ0(7K43R2= 34 MA'U"L6E"U%'F@!%.WXRB@HR<B2CIY#GZ#(?B:,-0!H"&3@`T!N.U;<CL:0C5 35 M":VP(Q%T$TA"(AL/7/#(;J)<)=F17*V<=!$^AJ\I**ELI\$*9%<&.!,H^%JO 36 M`@;D-?`71BHN10L5<T,`QJ(_$!(T6/+.%R]RM'0@9P3YT"\45+12O:@D)]5L 37 M(](\=Y$<*9QM(`4`@))8Z\RA2/&$7$^H8+.6,!]@0H`;$0D^*.E<&'"7@;,] 38 MHL>U9-6F\SC'U87``'<2%8PPCB$'@>*^$36I;?<A0#)2(OJ8^+_23X%W,`6M 39 M$2@$[:+:MJ`8(W`0300A4-(IN&83*MX'9`(`+3JKNBZ$]/&!897$SG(*IYR` 40 ML[9\$+5.9#'K`],L8``M"2W"<RE`,E322#O`&^#'^=**)B`8T`C_B(!F`![C 41 M17X$?T(XD!((HFW=B)$MN(1L3"&"'`2>5&++T*J#0R-`RONN'R7%?<TQJD7T 42 M[%*>0-_`:`V<,L!AK+>&A$SDQ`8^0A^0-8,@:H1P)OH8XLB=UM':DTBT58!R 43 M!GI=<@1@ZPQV<R-#'->82\?CB0)*8TK@]1)Q>,YC:D!PT"2I]05)DO\GWJ5) 44 M<6$P[A-C=-%JY"RG:.!#*Q-*B9V8[5!JV,7-T7&U<R@24@^-$?ZP:*(.O;WT 45 M*O1`U#6640=H.@&U*9V""Q@-&<T*/1]'Q=*NM$=M&YXPN"-BG-(^MVX\(I&@ 46 M*?I81)>^6"$$N8=-2"],#C;E&6@$%TQ`M"W:K55YW-M'1X0>8H$D`"<7N'DF 47 MR2ZDE6.0`Y(C+CPNM"[5O:9SMGN?,ASN]/&.SBXMZ`<.#9H3G#L$&CMK2MQL 48 MH;NXM]TY>6SG!N87?LOC%E@)#V#!+O`_G(>O9K$CB+0PEN2EQ4\+MB*_9ZL= 49 M=@3/7T`!3XRR."9%9=$N.</R.N)1U@V?Q[TL$T(LZ[1D:,C"FYR%IU!E\K(- 50 M<S2(C#0\H[2;`1\Q\@BK`5OYB0\'!F`0<S-/?Q98#$`H#Z("R)C'9N`$P3B# 51 MBI3OHH8,U3Q2%MDC!E5D8I4M>F),Q/[@<0O`X4XDR!.4XUH$>,<T`^717S`/ 52 M83[QY8G/'P_(;JTK'=D!V8V!H&#D6;ARL`<JF55$<H65.J(VT`4J@VB(I1DA 53 MPN6&`G]AL=(1X8<(ER`Y^$M^,X.Y=T:=YJO`G#%E;UZ;SRY$>2H#&'+E:]09 54 MU#J]?N6)+C#6<\4`Z`$):7:\@LK!-43Z"B,N;CT`8Y11X)(\8Y&!S^D9(S\P 55 M)/!G>WOR@C&$\SHL:T+[A7**FPGY:/F[R1D]:7&S;]D=Q@7[34YJ]+TUN3VG 56 MGRXI;TGR#Q(YQA8/?&>)->6E)=J5V=>41T"H)+:Q->$Y46PHJ8U9?\UXZ=^Z 57 M5`Y*.>>\E\N>J2D?K;8M*\N>V%(>,%HS7HH1M\26U$#6+J=S49+B+1A44*]\ 58 M$'^ME<FHOV;\"&!UJF:\U"@0&$6$%60<6I5\S95JN,&U7,<`ZZDE<[Y-!95: 59 M.G._F_E^Z4JQ8OZWMI(%=/MB@>[(R31[(#0.X-E0=]4BN,*C7-4!X.AL*Y<\ 60 MP[D9`P7"9N1++E/N=ZM+K/.=2[[L+E8'8"321HQ469IH@1D".(2J2]KZQ'7& 61 MUQMX3GL>F&7:8BHJ@*`P7,65RR.O8+D.^1[!]N*FQ*,FZ@6`;U`)4(_+$CU> 62 M&BIB!`0DH!3F8P[3.4LI?;@!%V0`)(_1R$%T.L(HR/,.[J9P%O$N&=@P69PQ 63 M9*1`6$.N2K1O*4O4/*,8ABZ5Y(::,*VQ+V+`C(5P1R=J\J2;/`8CC"D!^,*# 64 MO.&.S?/R_GLVU[TB<[Z^]I)7GGOOO%S8O/.RT[,9Z9G&Y^[%IXO=B\\7[:8% 65 M_VMW?-$&)AT7?"1<M[1&:\*31OL#,8W\L20D!XAAXH\E8/B.7)'\@0*`M4BF 66 MB3\`1"Q3)+:CTQ]]6SPM#>QH1/2`;Z;^BJ.\;:=GPS\ENDM;0A,H4.DRJRR/ 67 MIN/,C*8R>C#:*B!S2CEV.ZD[HL@RX])VI<P%U)9->CUO0Z^'CZX>'O+A>5G7 68 MLS<&4MNH^[,SCUN/GESU@!S=D9OV(N'TESO;7_'X[E<\7E\-/]U_^C0\U#AZ 69 MNBZIV/]2X?+U\G&3C;[]>N?D]PJ^_E;GW8`J4;,)QYOR:D#;XRN^/.)ZHP.Z 70 M\$J+3-.5UF_#,J[FE82A74CY=JP-"%8(/--F0F""JH2V0\N+SY7`5T6,`E%. 71 MJ<+X%)M)9(54Q76DLJL*+"0R<RS72DWEG+QLRWN3M%EEYL17X[H***J6A]4I 72 M)"1Y-UB]HHI7Z&R;EG<IE60LVI9-+02NZ&NXP)'(V13?1P=9AK$G.^V$X-&7 73 M5G%QM;,3I[/34A]01@W<<+*\$TJOGH0Z[:JGJ<N"7KTM`4"F_4QFFW`VZY"L 74 M:%Z"70FC0:?:)*EI>P#G;-(I8>2+WWI.3=Z\A\?#?$[8$'!)@.OZA%?;<\+9 75 M^L:<6@BGYM1<.#=']H0=<[8$(+D6<[I",%F8PN`FA%H&YF1'+8)"P)@S(RHU 76 MJ51)18-1(]0L3274U#;Y2@AUB^499#6&2JG0V4%"LKL':7DE64FXJF\1">IE 77 MWVC<^/OPA$+H=XC;;"%XO4&<-=#$ORVP/>3$2FE;:I4*8>2W06L9A+6L2$B8 78 M\N83E,P$@&01=DJ@)DP42)6DDU/S";`6BO6KN%,*%UM!O+BA]%J+07Y':VT[ 79 M/.JU/B'(,05S10.WJX'LJMZ9*/)L:C:`*7MP-YT;MJ>\.O$[QUI0)3:5O>&] 80 M+^R]]#5B)])%BBG+/!PB=%WF([RRZKO47M>$LZ8NK^*^O?HS=;4S1MPK*)X% 81 M%+?6D+I$:\O.U[A0*RB14Q"ZC]=HC(M=7J[+G3I21G9''=_*JU>G7R:YCW8M 82 M2&*$.V&LVJS^PC)&Z=BU'EF<RFEI#>5H@Z.^#\4F,O0X@L7$KRUJ[Y$UY,$& 83 M4DZ47-/O1,DU5!LEV^*JY(HX6,$U*&[:D<*B\<GWO2.<,!:0@4K6]IU$)HJ) 84 MWXJ>C4UV]+YK('D)-R??=0@9/2;<?N+9:&4QT9*?PW:M'5^38GM\+>!V?%N: 85 M^-;>M0[6B9NCBEW;B++8."LJFC9.\A_\O!ONCG=MR5]O7B:>WC6FX$GCSJMF 86 M7,%3NW@LKX\8E(.9D[J9$,$YOPRGY74*4,`ZOO:^HK;CK'$5QM/$KV_EKGA\ 87 M?6RWEL6]VD>^"N/^G<(-7[Y?#2_XF)_Y5<0K]UN%Y_ST"#0Q\N1>'R?OY>OR 88 M6.\]2[O6C$N[N=`DUYIVF^C_7`C_K/RK?Q/D0S?<QROYXTK^T\G?'@_ZXNWP 89 ,YS?_`\@ZJ/F3*0`` 39 90 ` 40 91 end -
Tst/Short/factorizeQa_s.stat
rc90500 r3e7db4 1 1 >> tst_memory_0 :: 13 09869508:3132- 13777 :3-1-3:ix86-Linux:mamawutz:5596562 1 >> tst_memory_1 :: 13 09869508:3132- 13777 :3-1-3:ix86-Linux:mamawutz:17181363 1 >> tst_memory_2 :: 13 09869508:3132- 13777 :3-1-3:ix86-Linux:mamawutz:17509204 1 >> tst_timer_1 :: 13 09869508:3132- 13777 :3-1-3:ix86-Linux:mamawutz:19881 1 >> tst_memory_0 :: 1354031643:3150:3-1-5:ix86-Linux:mamawutz:1127772 2 1 >> tst_memory_1 :: 1354031643:3150:3-1-5:ix86-Linux:mamawutz:2342912 3 1 >> tst_memory_2 :: 1354031643:3150:3-1-5:ix86-Linux:mamawutz:2359296 4 1 >> tst_timer_1 :: 1354031643:3150:3-1-5:ix86-Linux:mamawutz:637 -
Tst/Short/factorizeQa_s.tst
rc90500 r3e7db4 44 44 facstd(g); 45 45 46 //ticket #462 reported by gorzel 47 ring rw15 = (0,w),(x,y),dp; 48 minpoly = w^2-w+4; 49 50 poly f1 = 46082720409696000*x^7+(-46082720409696000*w)*x^6*y-92165440819392000*x^5*y^2+(46082720409696000*w-92165440819392000)*x^4*y^3+(46082720409696000*w+46082720409696000)*x^3*y^4+92165440819392000*x^2*y^5+(-46082720409696000*w+46082720409696000)*x*y^6-46082720409696000*y^7+(33201767234937600*w-30647785139942400)*x^5+(9771757580851200*w+100160515203724800)*x^4*y+(-44639165312524800*w+72399840258124800)*x^3*y^2+(-50857556500339200*w+8661330583027200)*x^2*y^3+(-9771757580851200*w-100160515203724800)*x*y^4+(33645938034067200*w-26095034448864000)*y^5+(-27845878235380000*w-122690040515260000)*x^4+(118340445370520000*w-78316910631160000)*x^3*y+(49599903465540000*w+143572936815180000)*x^2*y^2+(-68740541904980000*w+221889847446340000)*x*y^3+(-46553976962930000*w-92669364707510000)*y^4+(-10245093811971840*w-22646289009116160)*x^3+(13836455538428160*w-45510917399009280)*x^2*y+(23501184011055360*w-81074549479680)*x*y^2+(1628715454398720*w+33167517920305920)*y^3+(-39904964412744000*w+71294643532392000)*x^2+(-33810691604940000*w-61360144023780000)*x*y+(33142826091756000*w-83566672337148000)*y^2+(31945832606457089*w+80538751785644435)*x+(-60831105992681752*w+16100113835778104)*y+(6386463969822000*w+7137812672154000); 51 52 poly f2 = 2294919476402860800*x^8+(2294919476402860800*w)*x^7*y+(2294919476402860800*w-4589838952805721600)*x^6*y^2-4589838952805721600*x^5*y^3-2294919476402860800*x^4*y^4-4589838952805721600*x^3*y^5+(-2294919476402860800*w-2294919476402860800)*x^2*y^6+(-2294919476402860800*w+2294919476402860800)*x*y^7+2294919476402860800*y^8+(2079252344885483520*w+199077352169886720)*x^6+(1664507861198219520*w-6691211003487859200)*x^5*y+(-940087496357798400*w-4357582041940853760)*x^4*y^2+(-132718234779924480*w-1360361906494225920)*x^3*y^3+(11059852898327040*w-5164951303518727680)*x^2*y^4+(-2615655210454344960*w-3058049326387426560)*x*y^5+(-1725337052139018240*w+3428554398481382400)*y^6+(-303374279659956000*w-5069995781923932000)*x^5+(-3770035487253912000*w-433219676416104000)*x^4*y+(-4550011664055924000*w+3596807869771812000)*x^3*y^2+(-2903294868999996000*w+8363429372035788000)*x^2*y^3+(-888281095906038000*w+7908367952545854000)*x*y^4+(2166700912923936000*w+2079936471472032000)*y^5+(423632341377847296*w-2525937150738157056)*x^4+(-1427080802231483136*w+208937943910563840)*x^3*y+(233775974997891072*w+1098882998754621696)*x^2*y^2+(909106583118508800*w-2643717921543353088)*x*y^3+(-1102041053136433152*w-662978218196823552)*y^4+(-2937940392496416000*w-2605343366930784000)*x^3+(-4025809830284004000*w+6326272590446292000)*x^2*y+(-2903294868999996000*w+8363429372035788000)*x*y^2+(1552119452639616000*w+5543283759427200000)*y^3+(-15951155173959635*w+2981235020448425687)*x^2+(1622440449955667768*w+1652892262372213288)*x*y+(1685231063399012416*w-2263997141199178816)*y^2+(-1166168320889497200*w+991554882467540400)*x+2294919476402860800*y+(941170437657378096*w+239157859721078160); 53 54 factorize (f1*f2); 55 56 ring rw =(0,w),(x,y),dp; 57 minpoly = w4-w3+2w2+w+1; 58 poly f = x15-y15-15*x13+15*y13+90*x11-90*y11-275*x9+275*y9+450*x7-450*y7-378*x5+378*y5+140*x3-140*y3-15*x+15*y; 59 factorize(f); 46 60 47 61 kill r; -
Tst/Short/factorizep_s.res.gz.uu
rc90500 r3e7db4 1 1 begin 644 factorizep_s.res.gz 2 M'XL(" ,%6&E```V9A8W1O<FEZ97!?<RYR97,`E/U-DRQ/>MV)[?DIKLU�<2 M'XL("*[7N%```V9A8W1O<FEZ97!?<RYR97,`E/U-DRQ/>MV)[?DIKLU�< 3 3 M<\O?2Q2P&)L-S<9F,[,;(V@4"5!M:@$T=$N\1=E\=X6?YSS',SRB;KJ,1E3T 4 4 M_Z:'9U5F^-OS.^?\;__[__SO_M<?/WY\_/V/_^7?_4\__H>__/DO?_NG/_[? … … 1334 1334 M_?CX67K\Z__V#^FO__L_Y"-^I%CLZK/&G^=_S^?_2D=,YS?KK_\;KC]B3I_G 1335 1335 MO]3S?YU[\=*\>3Q*KG;Q4<OGS_'Z(^;>RWC!<;[OFN;[J2_OIYUO]^]^_--_ 1336 M_$]_^9=__>-__\<??_BGO_JW/_[RCW_^B_VG/__XPY_^YL?YW_Y_[9U/<^3& 1337 MD;?O_A2]CCUP"$)&_040LN:TE[WL9??,#8XDCAD>2XXA1_UGP]]],[.`0C6; 1338 MM"5ZXHU](Y[U2@(*Z%_54Y69E55`-R_&1YM2QV@?NNA/OG=#SN&T[^?ZZ.SD 1339 M]Z&?7=2+?IRG9Z^DK,UHQB->CD=JQB.UXW&SNWJ\>3H;C"2#\6P`4F@^'K<! 1340 M>+R5Y.CJZ=VU'$0YN/5V&+JKWET_W;I)3_.XGLYVFNW&P8Y3595AM7)GY47, 1341 MU/*JYJ.=NO4TV>E@=YIRRE4M%[5@#8AK`X+=)K-#.8W6!ID6EU.K+J[5Q6"G 1342 MOFJ.JEDN6=62V2^G64]E,2,UQM&.)SU.5N[GY;9LU?D->:J"V:B]46>KUWL[ 1343 M-F3O[-@J]6NEV<3=7-7F3<W:X*P-4U&S0Q6S@[3Y<6X,([NWFG(UX\?8/X:G 1344 M[M$_^>XI5AM^C%;4/SZ%6ARWXJ?MJ:T*M$7Y7%,$ZJ5QO=1?7)KD4NX>DUR* 1345 M6FW0>G.Y-NNU7JYU5BR?E58\I7K=#>4&N=A?7G2K<J?*7;FKO<%O\K5JE3F_ 1346 M2_M$>FAY0.ZBG3X^];5$NT+[:RO1GNB>7MHD//M?L/^Y4`>U":TY7`2&W(36 1347 MG)K`X(=!@\/]S<>;7VZ.-U]N#N]N=DV4R/DB2F29+"PR_$F,2*+JE]O0Q^O[ 1348 M6W_]\?J7ZZ.<^UVWNYJN]>(O4BQ+J/6R_/O0R<W7'^7(KFDL^5*EQ5?Z]8/A 1349 M^M!OM\K9]5%T/Z[7;OW6HGFC&X?GUOVG%ZS[3W_/NN/]1_^+/_HOO1V%XZ'[ 1350 M&'X)!]]-]T$N:+G_^,OQB^^U(!RZK.?^RZ&[#U_"2Q/LZ)H6^HOA&27P/A^2 1351 MNYL/-]_?W)\/QQ@OAF-,VW#<2<=\D'_N979T4[Z^DZ[[(//C]]JEG7,I^.L[ 1352 M*4G7W\N5>YT%8QA&*<E2(I_;5)NY;[R8^WYSE][7&/&AAH7L/WS?W=V?F;H8 1353 M=:VUF>K&RZEN&IYWV=5!#/AT-L=-[J*[)O^^SFMB0ZD3"PS=2>/H07KJ>*O? 1354 M9+B=Y"!U8JS25<=;O:3_399<'*2SCK=Y4VQFS2G^T['UH&W2)FF+]$E:=YCL 1355 M/9ATG.R5F%/05UWS2V8VI:8I^;+/QDLSLTY[EJ=-TV6WS;7;UJ)9/*U/8Q@& 1356 M[2=]1!*'Y$8YGL7E@V12TWQ=NE+2+DE#)[UOE%-)UJ8I>KVJ71FKHLQ,W9C# 1357 M[.:EYU,7QIROR\CD/L=9SN4TR.G8IWE*3B.!CE&?HN1-LX:)V[GSPSS.-II5 1358 M7-RNC]D-DC-J$T]]3D-,2Q/E=(YQ3N/21"]YH<OCZ,9A:66PDIQ=BDOC).^L 1359 MXA)R)6\+?G3#TEHQEF[*?C1,;6_6*MTT9K\T>92"<4ACGJS1DYS*Y2%H;=J^ 1360 M,;HA>&N?)*RU*C$Q<=N8LS5DU+;?>NF:$/S:5F]%+H>4K;M2:;^637/T:Q.C 1361 M)<)Y\JDV,IU5E;3+TN"GN#39$NI>,&?ME\*@$M*MN2!HOCWE/$W6-DO&Y\GG 1362 M6%JF!?TH1N/"TBQ?DO=AF,1`EG8%NRV/*4UKNRS'[WT(4S$Q7]TQNC!+XG]8 1363 M6B?UI<&E<6E;#2>SYHH2`?U<S.YD(3),PYA*2[2DG[R+5F=<FA;[<?1Q7FVN 1364 M+$'F.$_K(&K#-@/6Y#$E+Y9H#2KK%.GR%.+2OMB[,8RQ&/CI-O6RG/'3G$J= 1365 M6B)+E"2=L=2HC:BYY*RYI/!E<:>E_F`?"2Y'9U5&.Y^2V)E;6I`$=(HV!'HU 1366 M=V(4(:=2@194^5FMV(TR3:QNI=5G<8WLBGPP`?FT..E26^XE!)11T:NCV*U? 1367 M;5S/%W4W#.K=*<=<G%2EQVX4?YSG17GL<M+5GGWX)''79[<,KIV.@QC:\M&I 1368 MEV"01J&2D[E6HB'$^7F<2F]*),C:7W+HAE[!M)_$O?:]GU+4CYO[[V4<AL&% 1369 M-43)@K&;AVD>8W7_?:U#(XFL%,7*QQH*]K9LRZL)RWJRDU6K7X<QRWF4@#)7 1370 MWY?S<1YT',UQY%3T@C??WZH*-N`YVXWJ7W*CF]PX#O/J_%*UN-LTY,WYI6B, 1371 MT^9DP8K<'"3:C)OS-_5(4.DE^LTZS&L@D*HF-[O5TG*I7,*,]E+Q+^VE:1`/ 1372 M+\ZOE;AAC&EQ?M_4H+'$A7$8PU1C@;</B-/-J0D'VO<R4!IWFH"@]TJ8R#ZL 1373 M?1J?U:`>[H,X@MVQ1@A5<S&-?HE8N99-,B#3&L.T)$<QB;2$!QGP3GS?NRT^ 1374 MM#90/#W*#4VTT,]D&63?Q@LM#.)3*3<APPKSX%P>:J1HY=71LT\NN#6N*;XZ 1375 MQQ"6T*$VI]-+F2V+N4?%T!V'N+;`E](JK.M'+R(AKJ88UL_-PRQ36(TBT4QX 1376 M"CFOD4Q'.UJ@*6'&*AMEX@DUEJ2M*J?^[F2^G,(Z??ARA[C*E'6>6R.*EL59 1377 M<M%IC6!2,$E-R[QT,O^9LY_&&E=R4Y-3VY+;TYQK:,FJ*0E!<FO84GO.*9E7 1378 M6/"Q@<DUOHSZ"2^1<UZC4U.%^KR/>;(,XZ0.VXO7A"21\KB<"ZH?U9@TNH04 1379 M9'HQG]UKGBVN+@.S^*R62-X]Q;'Z[+Y.N\X5IP^^9AK!/B'Y2:S.JP7CF,2` 1380 MJL-JD4C&L3ILJ5E2"C\O'MM6HXF$CX);IFZY9`YF&8/YMN8+?@KB!:O'EI8[ 1381 M[T/>'-8*I=]"&C9_/:M)=WVDYZ1'-M<MS2T#5+VUU"DM7A*YO-PG,5=FS;`& 1382 MG48Z:^`2>Q^FQ6]]^8"7Z&?1.*V11JMS$@-;AUUN#I)KA,9ESX=C5.L:Q&!= 1383 M;#S8[NFE4>.T3?:E,`J!&[=8H^G9($G6M'AN.)/7-:\F5-.6`Y3Q=@(UA,:/ 1384 MEV(?4TZA\=Y2+E/T/.3JON>5E)D]J_EOT4;:-8V3'U:'+E:59DE1I^K1L1B& 1385 MEUQY:MPXMO)>EP)A").9XQ93](/"Y=.\Q13M'RE8P$[%;GM)8/R0JW.G,W5U 1386 M;W'4:!_:PHBJ.PE((6]AQ%+<E);\Y;3X0-0<='7S?*:M?BWF%O,6-K0/).]0 1387 MW!($1%2B1IKC&B:481IU:C@MCC-+&F-+!;T:JKIZLI>Q#\M:1R]*I)(L/&\S 1388 MWM[6YG*/R]5_[#Z997+>,F`KTS0_;?-;6YGZLZX*8EY\IWP@BP.GQ?F#Q(QI 1389 M=,6?3W:#3-]C7/W$2L2=VEGMK(YDZ56<_3QL_E((9"[2O83J(5::U+?"ZA\F 1390 M+_FNQIC5N3=M=>4<)%=>9SA?""99,"R3SK&6^BQ#.LR-=Y2.E`6B&W/C'/ZL 1391 M#O5E67S*?+QYBE][5M8"8^/(LK:0/'K(BW>$TG\:UEWUCG"FKK.VF&1V8^LJ 1392 MRVC*!"<S1G6/M33E$MAJ%1*$-=8L[A&7!Q.2P6SN46S!2\S-8_6(I7"456W. 1393 MC0]*)8,8ZS(M%"^1%9<;95DW+#YQ;D@:+)(L/F-JG"U(/B(34#*GR&7(9=$F 1394 M?EN]2H9;DNTY+DX29.THW542JGU=)4EZ)MT49!FJU9O=R47)866%,%2SV]L# 1395 MGM'9LB4L/A%EL3I7"]-S6<]9NKDXPU:'I01!PK9;TF]=RLEZ?%Z"L!7(M!)R 1396 MJ''7RL2H9.T4-\.R>F31)LO,9M%U5IDO6;J;MOA;/A7"Z(=J^R(>)4ZL"[$" 1397 M*9X?\QBK1?DS90L@4<+J/#06Y4N/R;)K2<5#+13G'E-CV%*!GTH2NUK=IJX1 1398 M0[<(_&9:I9OG,<S+BF^UX-BG+,%\:,Q7ULMS'-.\&%8\TRZ10B:<R2]&MHR8 1399 M&$AH,E,%&67H1S,L&T0QCJ3[)L=:(,MT-RY6ME51EO0QCDLPW>M25[QIW>"P 1400 M@B#+N"9.:)&$ZE!C:+"B+-%]37WW=<$M8K:O(QX_N\7$9,4N%K(.HGU84I@Q 1401 MUARXW*/^,VY#9H6:EOMI';"S>C0)D';KWD"U'VFHA*1UO5.&4VN??)BV`2NE 1402 M8EBY65?[,W&;_"513W%J;$6D1EEQSFM<"$5HE+6DS\N0E<Z19=*LZ^;-&*IV 1403 M'"PY2BXN*_%8/N&SIA7KJ"=Q/?6J93R3AN"4RNINK_MZXNANF5"TH*KK:EZ& 1404 M9MON\':_6\N6\<N2QSN=DHZ+H"RK9#%;DIB3W2!N/L]KIYW5H<XKV64<Z]K! 1405 M),91LGU7ATHTG28I2V=9.V0Y(8G%&D/]F:KE\).X=LTL2M/%.[V&N:4CLP;1 1406 M,"VKB%(B29^JEJ[;%-5998&6<NFH_>VHV>>\9H):H)0IK6:@!5XBG$SX2S^- 1407 MLH24)<JR`-*"JF[+\T$0QV7L2P7B\VE+\T?)I&154D;:*I!D?<X:%-8"7>E( 1408 M)%Q@-GWU55DHQF*X^]M)%_YRJPVBGDN8DRE]==)),TY+DJQB.=5=LS5'L;T? 1409 MR5*62J=:BZ[*-5KJEK1<F+LIA3@,5L,LL4(Z>RIIQ]S+U*X.L;]UP[=58'OH 1410 MX/3Y^IOV\N<A;MOY(AD.XFH^ZP]1]-*<T7Z$0OIZ&`[^*+-S"#D=CC(;1?WY 1411 M_B19AQ\/\=1KT)%[3Y+434Z_57"26X80#\=PZJ+^`1.]:73Q$$ZVVQOD)CGR 1412 MLE`\')?7#/1WET^R5)2)^>!/]A#(N</QI/4.^H5..8J#%)VD`4'_/,,I=J<D 1413 MJX#H#E$6Q)/7[_OJ2MG:L#??EO8&7:'KS[]+R3#X+(W8=Y*BZUTG+9-8IJW0 1414 M+2/]YI5>'I.TP>\EPTR3M,&7'19M:KE+6B&RFME)`_<R-45W$GT91.FTO2[4 1415 M_*SZ>R\!9?0BKX5^UI]KW^MB-7LO->BA5"D=I8>S_K:X%G8Z-QZD+BG3OQRA 1416 M1Y)0A.%DVLGKA_>Z@3RY\7#4HZA_(43?S$@R_QQ.^V";ZD<[B/,\VUL;FE$? 1417 M]M)]7M*VHQY(Q\:3'4C(WZ?Z\$MN2;,_Z(:L'\0<=/<SF3F$''7T)--+TVS& 1418 M(.G&I%^Y%B<08^AF6>*:,43QFL48DLBK,?1QU+\N("7Z*HM9@SJE64/9L#-S 1419 MD-Q5?\1>[<(^J4,O_934&FR3,9HU.%T`%G/0+P":.6BF)`84=>MF\&J5>S/I 1420 M6$QBDMS9+$*[;CKJ;1J:U"0DXJ35)+Q\Q$Q"/ZN_Q&^%4XIF%5V,/A:KF.V; 1421 MPV8I,HN:403]GJM9APR.&(5TC!J^#O40TFA&(:Q)&V(C/.COR$M9".*`-OS2 1422 MD%1,PMOWL;5,>M,7DQC5Z-0B),L=3R8\R^#H`.OS#K6'?M*?<3$3T=X0*^BD 1423 MFEC,0;*I:.;@]-&3V8/3+X;:@7CV8@]IW#__RU]+O&E>WG'Z\L[YPSNG[^L\ 1424 M>[_JA6=W3M_A.7]V)ZG(]LCS2H9HF8_TCZKI2U*:R3B=6]WR+&9=>DC?:72T 1425 M^X=WU_K6B5QW_;[<Z8=./C/U\J_8+;.S_M=ULB!^M]6>&JS\QI#:AQI03W[8 1426 M.]^=I"$'[WK]:M?1_C#XT??[[:<(CGJ;VJTLB,M7NF1,)8>58;=O1(H;O#(, 1427 M8]->2<NTTY9WS/J:7O6EV[1KLAS[DKJ4/I+B7OM1IJJE6X)<V"_/7I8<:OE0 1428 M3>CM"?.I7U8__?YV22>;?MQ><I#Y[:W]V#QG3KT%'/'XXVF+4(=TS'MQ>>TL 1429 M=7/?6^RH3^U/>5\ZVYQ&[PCZ^P[Z!XA.G<:/YZ^NU#:[IOT7KT!(6-W,VYMI 1430 MGYEUOGCQ06)3\R3_^NK0:?\?M"L[>ZMD/>Y<6[Z<!3L+V_%Y^;.SYU>+SM:2 1431 MW*"]^47!;63J:$AMM>,/"TQ]A^H0VH)L=^@XU->FEO/UCLD^(B-^J&](+>?K 1432 M'?I.U%I4A?5=J%*XB/W=5Y-J-S2)5)Z_^<UC5/MV;*+B^,^_N?9K^[;MRMQV 1433 MY4O?WER;YYNFAA(Y6DYCE_-HY[%KG'N,S4?35WB'9(53T-B0;E1"J7^H\A*H 1434 MMJ.Q:GT%Z!)G:WXSVN-;T^97FF\M?C%23XUI3)<3YM0,QQ3:EV$OHLMT&5VF 1435 M)KK\VE&<FAZ;OD(<^!JC.#5#,RV.>!MV_4[B6&WXW/3D_!6<K#\V#:K[BG,S 1436 M(//%.XIN;GQ@;MY13"^\V>7FIJOUK8MGHS<WU/I6PS:2,BD?NZ#IC,W/G64V 1437 M<G`M[C_4H90E>A7PPU?HD6.WS;&'4SN4I\O1JQ7[IA&_*:#X(38?_;\14/R0 1438 MFS:-BRFZP6PQ;BV?FKO>&DO.\AP)W6U^HZ<OQ1/OFC%W%_%$%B];AB*KV_J* 1439 MY@]GKVAZ=Y&`>]<FX'?]!QFN.]VJO?YPO?N^CW::^@_=][)2N/[!LH_MLZEI 1440 MU%O39Q]K=_1WW8>M-_Q\%[L/W\OJKPYH'_-=ZGX(7<P?Y%C:=_&3!;4]8].V 1441 MZ;+#YN<KEOJZX<V7FU]N[!L);=?YX:+KO&M?U\QU^_(JE+6*?H&C+UNJ^L!4 1442 MG\59`FVG4TW+]TO6[>QI[+JYV2V/$W4==.C;58OWC>OI4[PW6F&>MHZ?G:Z( 1443 MCYTM3V5]K-LP7I:S2=_H]/;37_K`9#CM-T\[VD+4YYSM8)SGZ:`_@28%)B)K 1444 M^\.6FF]^N"4NS\;.WX2;7,&:(*%/]M0\O3U7[%U]D:FO+[/$/JR/M:)U65G< 1445 M].NS.5TPVMM%TN%A??4H=\Z52\L+9WUYMMAT=1,6_%MGS3[-FXW+>B1)?2E+ 1446 M=^O[=F/2%4H_ZEZ"UU^3D_^SM8^+^M-6NCL78SAL7V3015!GW]$YZ$.<-.K/ 1447 MQUI!?"UX^"9L^3+/GMFHO>)F9FEO&(7-*+MHS_#.[2\TL2B\=?[QF_'IIHY` 1448 MB*//^B<-]7R.IW(NAM<U1F>[85&_)KM_A34TSA&6>4FGU4,?;#)]?K11-087 1449 MOL*L)/JG/KR0:_C0&%48_W$3UR/?'&W-;L8V?(7TUIK=_&KB!8;?0)JOV'E] 1450 M'&(@ME]@+ME]L6S@RO9>WFEHW'4[_4Z&W]ZTZ9R]T"2W?=G>7K&MB5.W?4?( 1451 M-]_.\_&M(6_;IU'?ZTZ^^]*`2M'IBU\=Z;0<'<J!_L[@EE;$D_^BW[^7)KXV 1452 M_33?%_0QU:[I#;RS,=TZ2A.^5\D;8WG[%_TV9]-@(4SA#+P[G=/]`[;&Y.(2 1453 M3LJ<97-75_;:;/]",25*O>M."VMCN<V>HD__?!JK&\6Z[7`\M3F5;6`?3OKK 1454 M1J>7`T9J3"NMB:RT55U-VBUI3\EHRX@I@;C$W*3CJ1GJ]!4"APS0(9RLY@U# 1455 M?[=)=Z*M[E=`&DM)KZ:PJ1F\]/\TA6V^Y^?S$BWL69U^E\5>USW8^TU:LN_L 1456 MH9Z9T`MW;)W??+?,Y[<&AH;FI#^T=I**9)YI5T5ML1S+X?X5RL8:<EK-21Q? 1457 M'.,DKK^NC_0;9)H,NL;7F[TZ_^:]NKYU=MT:ZL.AYM!F2KTN\D[=:\/4&,BR 1458 M.W;UFWV[V1GS7V-GK/CU*?PVUVXVO7S=]-)IIBRI%[\^FG65H+SL>Y?D6\*P 1459 MYO*EQ%Z.ZL8&L1GH-V^+Y685:S\R<.;R]@L`H=D)+'F>_GR&_C<W6X+'DC4= 1460 MRG\O-KJ;/FEL;-DY*]O]Y9U0>WJ2[,OFY0FVOE@B%[MIM!<DCK;Y/]H-XW*# 1461 MYM63E.C;-MM'M&2>IN:>L4MQ.=6TW0U=\FLEL13,2R6ESDVLO/D8[)7&TH12 1462 M4MZ*W$KL:_+3;$_XGY6.X_6Y7JP-3&>:T<66O)3YEN.ZO`';M+7JS<.S4F]U 1463 MAP9SMM(T-8VTM[W=G-("&&LM>;DK;7?E<8%>[PK=G)=:M5^GM=8IM+VYE$X^ 1464 M-/>.2[OU+<SM7C<4PK5O:JLWXV^"Q)LW5?^O+T&;/5P_K>GMNAMW_>)V7>V@ 1465 M9H/73U]A7I*D36H]VZ:3JL]VZJ3^US*VJ8E54]IRG*-%[E.;Y:Q)J`;Z\SRG 1466 MV4'V7V,'^:UY3K-K[)==XZM#K[G"T?XM\ZJFU\OQR<J;C*'93_9OWD\^FV2; 1467 M[<?^L&8-NEM5-U8U1/?[:G7']7@4J^SW+S^UJFUL+&E>)C']HID.73<+W?)J 1468 MF#TE.MAW#!O89N#G-T]2PP:K(4Z?N'7Z'=V*G=31=([6+]/*H?W[Q:FH-J8Q 1469 MIGF\W)(H7Z7[=?L1S8:ZG]\:C"[W(]9]B/ZW[D&$9H,^#&[+`?7K9_J%OG6? 1470 M?'DI8<D(SZ]^6P5\(_85(HD_RZ&6:@_'KEG@'I:FEM*78TIH=O'#D.HJT!)= 1471 MQ;'=BF5;:4UX&],,S8Y[&+[&`ZF:UFX#):&DMQ^\E9I?&:JI:<5<'V-T)PLA 1472 M1]VWT"#2;X\O0K,5']Q7R&V[]OE+WYS&<MJ?7AL"UYB&"W4(NA(/YG5B6M_U 1473 M:!":L7-?8<DJ?2P]/S=F)3VGH_%RI[MFZ%WC_)K/;3YA65@?RB:X9N%-^YM1 1474 M<V]./_*9R\^IK):*UV]65+9:RR5-OE]Y-R?XQBR\6Y;?<=?IPTSYMV12M?G- 1475 M!GYX\P;^UOVGU.ECKY=^W",TV^AAV4;OA2]:R.F3U[=8]8<V8EBB4'G7O-=W 1476 M=<WT)^D8.]#W\AKW;7;&P]MWQK4IFQF5.C8KLLJ;J&2-*VUKECY&L4"\NNX) 1477 MS1YX\.NSYDD&YK#KW*YB-7O;X<U[VV?1]G"VINMD1CSTV^2I7%&[0>>;.,X: 1478 MD%/(,H6.;IA><_QFDSLLF]R2M<?>;1S-N'^5W>P&HO,U<8]V&E/8QJ.3#*MY 1479 M[Z>35>%4LYV#O5.Y!(K)SJ-+R^VSF<!V;J_\],T'['6??A-T9C1;?<Z,9FN. 1480 M_JB1G-?6.LO#_L%;0L\-I]FM#[I;?_X@,33[[T'WW\M#Q9T^K;JY>W?Q.D?0 1481 M/?._//QDSPWU1W%T3_Q._MF&+FZ/%:_LRCM=DMGWG2:-)UNA'[30C6K%M_;U 1482 M?.>\G<RVV-PB3EQ_6>:C5'K0O\$@R9H;NZL[T=&_EU".]"\GVH'^E:2K.]TB 1483 MT3]H:&5'Y[>BL![ZX[P<FN8LLG&K]>)Q<]!]\?N?/^^N'GYZVCU\)]B[A]T? 1484 MU>\&_ZT6/'0AO*MWB^7^3SW)W\B8/1X?GW[\R^[J]WW_^>ZG'W[^R^]O=@]; 1485 M6(J3WG1A[>OE-.CEA_O=U:-=^B1F_F[W+]_M4JTS>;VEUJJ_-:?_MR&D7$H^ 1486 M?/[Q[L];J57\M_4T#[^BL=E?-O9C<]FJ?N:G[75IR-_^SH;X5,9M7,=J\^!1 1487 M7Z.SD=/1++<]_T.3Z**++KKHHHLNNNBBBRZZZ**++KKHHHLNNNBBBRZZZ**+ 1488 M+KKHHHLNNNBBBRZZZ**++KKHHHLNNNBBBRZZZ**++KKHHHLNNNBBBRZZZ**+ 1489 M+KKHHHLNNNBBBRZZZ**++KKHHHLNNNBBBRZZZ**++KKHHHLNNNBBBRZZZ**+ 1490 M+KKHHHLNNNBBBRZZZ**++KKHHHLNNNBBBRZZZ**++KKHHHLNNNBBBRZZZ**+ 1491 M+KKHHHLNNNBBBRZZZ**++KKHHHLNNNBBBRZZZ**++KKHHHLNNNBBBRZZZ**+ 1492 M+KKHHHLNNNBBBRZZZ**++KKHHHLNNNBBBRZZZ**++KKHHHLNNNBBBRZZZ**+ 1493 M+KKHHHLNNNBBBRZZZ**++KKHHHLNNNBBBRZZZ**++KKHHHLNNNBBBRZZZ**+ 1494 M+KKHHHLNNNBBBRZZZ**++KKHHHLNNNBBBRZZZ**++KKHHHLNNNBBBRZZZ**+ 1495 M+KKHHHLNNNBBBRZZZ**++KKHHHLNNNBBBRZZZ**++KKHHHLNNNBBBRZZZ**+ 1496 M+KKHHHLNNNBBBRZZZ**++KKHHHLNNNBBBRZZZ**++KKHOJS[G__U;__^'[N0 1497 MQ_>[>CQ]L_O\\-/'W>?==SM_<W6X.;Z[^>&OW_[N#W_875_O/O_XPX_W#S^5 1498 M&ZZOZZ?F][N__OSIN+O_[G";=]WN>)ODWP?[]_$V?KO>.`[+C1_KC;G>>+@- 1499 M^F_YQVT?<,L'_K1\X'!]7%07[:7,VUDX_[!_O_OT\/BT^^1N=I^\_!.V:^'] 1500 M[O[GS[NKAY^>=@_?R:=V#[L_[D(8!O^M%CQT(;RK=\=O=O]33](WTH6/Q\>G 1501 M'_^RN_I]WW^^^^F'G__R^YO=P[M-?]2;/KGO=O=WWS_]_/GA]./NZKZY/MMU 1502 M?W;]XW9]<G8]G%W_4W,]%/VM(!7!K:"T8$.>K,J'^]W5HZE]<F)-[W;_(@-= 1503 M06>KMJ+.5LM9/7,J11\^_WCWYZW4*OM;/7U>E5^KJGT:A[.JXK!650GB\%)5 1504 M<3BK*@[/JPJ75;GSJMQ:5>V;Z%ZLRIU7Y:2JOUUZPH-ZPBL>>LC=(75'^?\S 1505 MYWOU=M\=?7?HW.;(L3MX*3O*?_62W>">.?)K:MVQ54K=(1Z[0S`9"P^BV<@' 1506 M/>S6)AQ_=2T@@@@BB"""""*((((((H@@@@@BB"""""*((((((H@@@@@BB""" 1507 M""*((((((H@@@@@BB"""""*((((((H@@@@@BB"""""*((((((H@@@@@BB""" 1508 M""*((((((H@@@@@BB"""""*((((((H@@@@@BB"""""*((((((H@@@@@BB""" 1509 M""*((((((H@@@@@BB"""""*((((((H@@@@@BB"""""*((((((H@@@@@BB""" 1510 M""*((((((H@@@@@BB"""""*((((((H@@@@@BB"""""*((((((H@@@@@BB""" 1511 M""*((((((H@@@@@BB"""""*((((((H@@@@@BB"""""*((((((H@@@@@BB""" 1512 M""*((((((H@@@@@BB"""""*((((((H@@@@@BB"""""*((((((H@@@@@BB""" 1513 M""*((((((H@@@@@BB"""""*((((((H@@@@@BB"""""*((((((H@@@@@BB""" 1514 M""*((((((H@@@@@BB"""""*((((((H@@@@@BB"""""*((((((H@@@@@BB""" 1515 M""*((((((H@@@@@BB"""""*((((((H@@@@@BB"""""*((((((H@@@@@BB""" 1516 M""*((((((H@@@@@BB"""""*((((((H@@@@@BB"""""*((((((H@@@@@BB""" 1517 M""*((((((H@@@@@BB"""""*((((((H@@@@@BB"""""*((((((H@@@@@BB""" 1518 M""*((((((H@@@@@BB"""""*((((((H@@@@@BB"""""*((((((H@@@@@BB""" 1519 M""*((((((H@@@@@BB"""""*((((((H@@@@@BB"""""*((((((H@@@@@BB""" 1520 M""*((((((H@@@@@BB"""""*((((((H@@@@@BB"""""*((((((H@@@@@BB""" 1521 M""*((((((H@@@@@BB"""""*((((((H@@@@@BB"""""*((((((H@@@@@BB""" 1522 M""*((((((H@@@@@BB"""""*((((((H@@@@@BB"""""*((((((H@@@@@BB""" 1523 M""*((((((H@@@@@BB"""""*((((((H@@@@@BB"""""*((((((H@@@@@BB""" 1524 M""*((((((H@@@@@BB"""""*((((((H@@@@@BB"""""*((((((H@@@@@BB""" 1525 M""*((((((H@@@@@BB"""""*((((((H@@@@@BB"""""*((((((H@@@@@BB""" 1526 M""*((((((H@@@@@BB"""""*((((((H@@@@@BB"""""*((((((H@@@@@BB""" 1527 M""*((((((H@@@@@BB"""""*((((((H@@@@@BB"""""*((((((H@@@@@BB""" 1528 M""*((((((H@@@@@BB"""""*((((((H@@@@@BB"""""*((((((H@@@@@BB""" 1529 M""*((((((H@@@@@BB"""""*((((((H@@@@@BB"""""*((((((H@@@@@BB""" 1530 M""*((((((H@@@@@BB"""""*((((((H@@@@CB__^(__E?__;O_[&+?GB_J\?N 1531 MF]T?_K![^OS-+L:AEOIO=G]^^/1I]_G;6A3>[SX__/1Q]_F[\>;J<'-\=_/# 1532 M7[>K\?WNKS]_.N[N=]_MCK?I^G`;=[T<>3D:[2CLNMWA-FP?2>]WGQX>GW:? 1533 MOKN_^_[IY\\/IQ^O[M]MU_/[W:.4[:X^2:>\V_UQE[_]W=;"\?WNZ<?'I_+1 1534 M1[GI1C_[:D\&Z8_:D;VO9U'.ZDG2\:L]GNVL?]:)-^==.35=.7^S>WI\^N_' 1535 6I[NG+X]7[MVW__J[_P6R?Y'ZP,P(```` 1336 M_$]_^9=__>-__\<??_BGO_JW/_[RCW_^B_VG/__XPY_^YL?YW_Y_[9U+;]Q( 1337 MEN_W_2DXC;N01='%>$>@VE[-9C:#"\RL9J$+^2&7T"Y7PTI7DCGH[W[/.1&, 1338 M""HE=TEM7,P%_M-3-AED_B-^<1[Q(#-]9A]N2K71T8Q6G_2D9N_-Z3BE^NCL 1339 MI(]F2LKR11U2?/!*RM:,SA[VW!ZNLX?K[7$U7-Q?'7;&<&2,!P9PIONX;0:X 1340 MOZ;)T<7AU24=6#JXUG)HQHM)71ZN5>13'[;3)*=>;ISEV%55,JN4*RG/8J+F 1341 M-S5MY51MITY.9[E3E)VO:CZK&6F`W1I@Y#8:'?*IE3;0L%A.I3J[56>-G.JJ 1342 M&5@S7Y*J:69?3CV?TF*&:K1!CB,?.RG7J=SFI3K=D&,5]$*MA=I+O5K+L2!K 1343 M)<=2J=XJ]2*N4E5+34W:H*0-,:O)(8O)@6MQ[#O'\.JEKES=^-Y.]^8PWNN# 1344 M'@^V^O"]E:+I_F!JL6W%A_;4E@7Z(K_7)(%Z*6R7IK-+D2[Y\=[1)<O5&J[7 1345 MYVN)KTUT;91B^BRUXN#J=37G&^CB='Y1;<HC*X_YKOX&W>1KU2RSOXO[A'JH 1346 M/"!75D[O#U,MX:[@_FHEW!/CX;%-PMW_C/Q/F6K4+K5Z<Y88?)=:O>L2@YYG 1347 M3@ZW5Y^N?K]:K[Y=+:^NABY+>'^6)3P-%I(9?B$GHJSZ[=I,]O+V6E]^NOS] 1348 M<J5S/8S#1;SDB[]3,2VAMLOTYS+2S9>?Z$BN<2[Y5J4I5J;M@^9RF=JM=':Y 1349 MDNZG[=JU;BU*C2[,#[W[ET>\^Y?O>;>]_:1_UZO^-LF169?QD_G=+'J,MX8N 1350 M<+G^]/OZ34]<8);1\[G^MHRWYIMY;(`-JFNA/C-/H,3[T"0W5^^NWE_=[LT1 1351 M[)DY@FOFN*&.>4?_W=+HJ**_O*&N>T?CXWONTE$I9_3E#96XR_=TY99'06OF 1352 M0"6>2NAS3;4;^\+9V/?L+KVM.>)=30M>OWL_WMSN7)V<NM;:#77A?*B+\\,N 1353 MNUC(@4^[,2ZJL^Z*^FT=U\B'W$@>:,83Y]&%>FJ]YF\R7$<Z<",Y*W75>LV7 1354 M^&\GDXN%.FN]]DVQ&S6C_:=SZ\)MXB9QB_A)VKA$>0_&K5%>B3D9?M75/^9F 1355 MT75-\>=]%L[=3#KMP3PMQO-N2[7;MJ)$D3:Y8.:9^XD?D=C9J4#'B4+>T$PJ 1356 MILO<E33MHFEHY/L"G=)D+4:K^2IWI:V*-#*-P9ND4NEY-YK@_66VC)^\371. 1357 MIX9.P^12=(HS`=MH<I;F38G3Q'4:]9Q"$FM6<0J[R7HUTYR1FWB:O)NM*TVD 1358 MTV1M<J$T4=.\4/D05)A+*XV4>*^<+8VC>6<5IY1+\S:C@YI+:\E9QNAU$$QN 1359 MK^<J50Q>ER8'*@BS"SY*HR.=TN79<&W<OF#5;+2TCR:LM2IR,0I;Z[TT)'#; 1360 MKS5UC3%Z:ZN6(N6-\])=+K>?RV*R>FNBE8FPC]K51KI=58Z[S,TZVM)DF5!/ 1361 MA)FX7S(#2U"W^HS`\^WH?8S2-IF,IZB]S2WC@BF0TRA3FJ7SY'V>(SE(:9>1 1362 MVWQP+F[MDCG^I(V)V<5T#4>K3**)_U):1_6Y6;E0VE;32>*Y(F5`G;+;G21% 1363 MFC@'EUO")5/4RDJ=MC3-3B%HFS:?RTN09%/<C,@-:P[,DT?G-'FB-"BO4ZC+ 1364 MG;&E?792P02;'?QT[29:SNB87*Z32VB)XJ@S2HW<B#J73#R7)#Y/X53J-_(1 1365 MH[Q54J65\^C(SU1I@2/0:,4$?-6/Y!3&NUP!%U3YQ%ZL`@T36UAQ]9Y"PZLL 1366 M;T2`/DU!6FKS$Z6`;!6^&LAO]>;C?%[4U3QS=#MO?0Y2E@YCH'A,J2B'T3M> 1367 M[<F'3Y1WM5?%N'(:9G*T\M$X43)P@:CH)-5*.(4HG4+,O4F9P'-_T:&:)P;C 1368 M?J+P.DXZ.LL?E_`_DAWF69DM1=&"<4QS3,'6\#_6.CB3T$J1O#S45'"499O? 1369 M7)C6DR.M6O5F1D_GEA)*JK%/YR'-;$<)'#HE/:,E]EM51@SNO=S(\44WJJA" 1370 MF-,6_%0UA5N<?0M^*@HVMB`S4J22H6P36O!W]5!2F2C[)3;SE@BHJJB2VCS- 1371 MY\HIS7`OY?CB7HHS17@.?JY$S<&Z$ORZJX%SB3)A#B;67*#E`Q1TR77I@/N> 1372 M#,5YITL(?"^E":_-UJ?V00T<X=I0(,@=6X9@-65=T"5C^5H6R2!QRV%<XBVY 1373 MA"OI@0P^4NQKU?)#[P,YTBW=T&4+_HPG(^L^7W"AH9ARODL94NAGI?Q<,T4O 1374 MSX'NM5-&;7F-\3DX9E-2!_L<#R]YM,SN;AF#=QSLU@*=2ZLPKQ\UB1B[N:+9 1375 M/I?F1$-8S2)67#@:[[=,QM:VDFARFI'*`@T\IN82UZI2'.^*QLMHMN%#YSLH 1376 M5*+G<6[+*%QF$\U%XY;!J"!2365<.DG\)*]CJ'G%=S4I]BVZW25?4XMG39H0 1377 M.+6E+?9G[YQ$A20?,8RO^27P)S1ESK1EIZX*CGEM?909QHD#=J*H,8XRY5K. 1378 M"54'=B;.+L89&EXD9H\\SZ90)\.4F.42FG='&VK,'NNPJU0.>J/K3,/()VA^ 1379 M8FOP<D$(CARH!BP7D:0--6!SS32ET*E$;%\-3R2T)=P\=-,E"3"9,4AL\WQ! 1380 M1T-1L$5L;KG2VO@6L%)(_6;<W.)U5Q/O^E#/48^TT,W-S0:JT9KKI!:7B9PO 1381 M]U'.I5'3;$FGD_:<N,C?YUCB5N</:,I^DHW=EFFX.D4YL`_8<K.AN8;I0G9O 1382 MCL#>-9/#*MM%L-PS4:-";(-]+K1$H$++-3P]FVF2%4ODFIT\KWEY0A7;'"#; 1383 M6Q'4;+HX+L7:.N],%[VYG(;H-/L:OOM*\LCNV?U;MJ%VQ1#UO`5T]BJ7:(H: 1384 M:T3;[!B:YLJQ"V/;RVM>"IC91'''EE/X@\2E76HYA?N'"@K8*?OM1!,8/?L: 1385 MW&ZGSN%-@6KE0RV-L+JBA&1\2R,RQ76NS%].)08LST&W,/<[;8YK<C?K6]K@ 1386 M/J!Y!^/F)$"BE#5<LEN:8(88>&@XE<!)-(V1I0)?-56=(UF3[4U9Z_!%RE0T 1387 M"_=MQ#O*VISN4;[&C]Q'HXSW;08L93S-=VU\ZROC>.95@?4E=O('/`6P*\%O 1388 M*&?$H'(\G^0&&KZ#W>)$2BB<^E%M5X>3Z95-.LTM7C(!C46\EU`C1$H=QY;9 1389 MXD/D:;[+.68+[J;-H>P-S96W$4YG@D@+AC+HK+54>S+IG+KHR!U)"T05?!<< 1390 M>E<'QS(M/FD\;I&BMYZEM4#H`IG6%C2/GGV)#I/[C].ZJM%A=NH\:I-+>A7Z 1391 M4"G6I`&.1HP:'ENI\SFQU2HH"7.N*>%ARX,)FL&T\,B^H"GG^E`CHA0&6M5Z 1392 MW\4@53*3LY9A(4<)K;A4H&7=7&)B[TB<+!PM/JWK@LW0?(0&("=!X;/):=%& 1393 M<5NCBLQ-D^UD2Y`86CM2=^4)U;&NDFAZ1MUD:!G*U8O?T46:P](*8:YN=Y0' 1394 M/$')LL64F+"T6$W5P_B<UG,RW2S!T.J0*8&AM*W*])N7<K0>3R4)2P$-*\:; 1395 MFG>EC)R*UDZV.9;40XLV6F9VBZY=93K/TE5L^3=_RIB@Y^K[)&XI3VP+L0Q) 1396 MD6]]L-6C]$Y9$HBEM)KFSJ-T[C%:=I6IN*F%%-S!=8Y-%>B8)[&;US5USAB\ 1397 M1:";:^5N3L&DLN+;/-A.SE,RGSOWI?5RLL&EXEAVIYTS!0TX41<G*Q8C!S'= 1398 MS)1!`ID^B&.)$<DY'.^;K+6`ENDJ%"]K5>0EO;6A)-,C+W4IFK8-#BDPM(SK 1399 M\@074:HV-8<:*?*4W;>I[[$NN$E,]G4HXI,J+D8K=O*0S8CR89K"!%OGP/D> 1400 MCI_03":%/"W7<3/8KAZ>!%"[>6^@^@\UE%+2MM[)YN3:HS:Q&2R7DF/Y;EVM 1401 M=^(R^--$W=G8^0I)!5IQIBTOF"P4:"VI?3%9[AQ:)B5>-S=GJ-IVELF14[:L 1402 MQ&W^A/8\K=BL[BCT.*J*/1VG8.?RZN[(^WH4Z*H,*%Q0U7DU3Z9IVQU:[E=; 1403 M6;&?IWF\XB%I+8*TK*+%;)[$G.0&"O.4MD[;U<'!2[-+&^K:021"H-F^JJ8B 1404 M3<63E-)9T@Y:3M#$8LNA>J<J<_A(H5UG%KGI%)V:TUSI2,])U,2RBL@E-.EC 1405 MU=QU39&#E19HSN>..EX'GGVF;2;(!4SIW.8&7*`IP]&`7_HIT!*2EBAE`<0% 1406 M55V6YS,AAF+[7`'%O&O3_$`S*5J59$M+!3193YZ3PE;`*QW*A`6FZ7.LTD+1 1407 M9L<]7D=>^-.M8D0^IS1'0_H6I)%GG#))DHKIE'?-MCF*[/W0+*54&FLMO"KG 1408 M;,E;TG0AC=$9.\]20Z)<09T=\[0C332T<T`<K]7\<Q5H#QT4/U]_T5Y^FFW; 1409 MSB=)LU"H:<\_1#%1<X+\"`7U]3PO>J71V1COEI5&(\L_W^]HUJ'#8D\3)QVZ 1410 M]T23NJCX6P4GNF4V=EG-:;3\#YCP34'9Q9QDM]?0372D::&XK.4U`_[=Y1,M 1411 M%6E@7O1)'@(IM:PGKG?F+W32D9VIZ$0-,/S/,YSL>'*T"K!JL;0@CIJ_[\LK 1412 M96G#46*;VFMXA<X__TXE\ZP]->(XTA2=[SIQ&>4R;@5O&?$WK_AR<-0&?:09 1413 MIHO4!IUW6+BI^2YJ!<GRS(X:>*2AR:H3Z9,1J=..O%#3B?6/FA)*T"3/A3KQ 1414 MS[4?>;'JM:8:^)"JI([BP\2_+<Z%(X^-"]5%9?PO1_`132C,?!)MI_G#1]Y` 1415 MCBHL*Q]9_A="^,T,1^//<CH:V51?Y<"FE.2M#9Y1+T?J/DW3MI4/J&/M20XH 1416 MY1]=??A%M[BD%]Z0U3.Y`^]^.G$'XRU;CV9Z+B9Q!IIN1/[*-04!.<.8:(DK 1417 MSF`I:HHS.))G9YALX']=@$KX51;Q!@Y*\8:\82?N0'-7_A%[]@OY))N>^LFQ 1418 M-\@FHQ5O4+P`S.[`7P`4=^"9$CF0Y:V;6;-7'L6E;7:)2'-G\0CNNKCR;9R: 1419 MV"4HX[C-)31]1%R"/\N_Q"^%T5GQBM%:;;-7)/GFL'@*C:+B%(:_YRK>0<8A 1420 MIZ".8<=G4\_&!7$*8G7<$+'PS+\C3V7&4`"*^:DA+KN$EN]C<QGUILXN$=CI 1421 MV"-HEAM.(IS(.&Q@?M[!_C!%_AD7<1'N#?*"D:JQV1UH-F7%'10_>A)_4/S% 1422 M4#F@R"[^X,+QX;_\5?)-]_*.XI=W]@_O%+^O\^#]JD>>W2E^AV?_[(ZF(NV1 1423 MYP69J(Q'_(^J\4M2/)-1/+:J\BQF6WI0WW%VE/OG5Y?\U@E=5],QWZGGD3X3 1424 M)_K#CF5TYK_52`OB5ZUVUV'Y%Z;4R=2$>M+S4>GQ1`U9M)KXJUVK_,/@JYZ. 1425 M[:<(5KZ-_986Q/DK7613FL.2V>4;D10&3Y@A=.VE:1EW6GG';*K3JREW&W>- 1426 MIV.=IRZYCZAXXGZDH:ITBZ$+Q_+LI<RARH?JA%Z>,)^FLOJ9CM=E.MGU8WO) 1427 M@<:WE_9C]YS939)P*.+74\M0BUO]D4*>.XO#7$^2.^I3^Y,_YLZ6H.$[#/^^ 1428 M`_\#1*>1\\?#5U=JFU77_K-7("BM-O?6XMH[M_9G+SY0;NJ>Y%]>+"/W_\)= 1429 M.<I;)=OQJ/KR<F;DS+3C??F#LX=7LTYKB>_07ORB8+-,M0;55CM^*3#U':K% 1430 M]`5>[F`[U->FROEV1Y2/D,67^H94.=_NX'>BMJ(JS.]"Y<(B]MU7DVHW=!,I 1431 MGUX_VT:U;T.7%<,__^;:'^W;OBM]WY6/?7MS:Y[NFFIRYN@YA9W.K9S;L0ON 1432 M8+N/NA_P#LD&QZ"V(VU41,G_4.4Y4&U'Y]7\"M`Y3FM^9^WPTFGS$\V7%C^: 1433 MJ6/G&O%\P(R=.:+I7X8]RR[Q/+O$+KO\42O&KL?B#\@#/\**L3--+(%X;89I 1434 MH#Q6&YZZGDP_(,BFM6M0W5=,G4'2V3N**G4QD+IW%-TC;W:IU'4UOW7QP'JI 1435 MH^:W&IHE:5!>1\/3&1F?1YG9T,$EA?]<34E+]"J@YQ_0(^O8QMCEU)OR=&Z] 1436 M6K'N&O&LA*)GVWWT?T9"T;/OVA2**ZI9?-&VEL?NKI?FDMT\AU)W/[_AT\?R 1437 MB5:=S=59/J'%2YNAT.JVOJ+Y8?>*IE9G$W"M^@GXS?2.S'7#6[67[RZ']Y.5 1438 M4S>]&]_32N'R@\P^VF==UZB73I^UK=TQW8SO6F_H=&/'=^]I]5<-.EE_X\8/ 1439 M9K3^'1U3^\Y^LJ"V)W1MB^<=EAZN6.KKAE??KGZ_DF\D]%VGY[.NTZI_7=/7 1440 M[<L+D]<J_`6.*6^I\@-3?A8G$V@YC75:?BRS;B5/8[?-S;$\3N1UT#+UJQ:M 1441 MN]#CIW@O]$(?6\<GQ2OB=93E*:V/>1M&TW+6\1N=6G[ZBQ^8S*=CB[15%J+: 1442 M>R\'(:6X\$^@48&(T-I^:5/S%H=MXO+`=OK*7/D*UB4)?K+'[JGEN>*DZHM, 1443 M4WV9Q4YF>ZQEI<ORXF;:GLWQ@E'>+J(.-]NK1WY4*E\J+YQ-^=EBU]5=6M`O 1444 M'34GEYJ/TWK$47W.4W?S^W;!\0IE"KR7H/G7Y.C_9.VC+/^T%>_.66N6]D4& 1445 M7@2-\AV=A1_BN,`_'RL%]JGDH;NTI?,XN_-1><5-W%+>,#+-*4<KS_#V_F>Z 1446 M7&1>.O[HYGR\J4,0%.B)_TE#/D_VE,_)\<;.Z60WS/+79(]/L)HN.$P9EWA8 1447 M728C@^G#HT;5.9SY`:,2Z9\F\\A<0YO.J4SXQTW<CG1WU)K=V=;\@.FM-+O[ 1448 MU<0S#-U`NJ_8:7X<(B"R7R`A.7Z3V<"%[+V\XM0XC`-_)T.W-VU&)2\TT6W? 1449 MVMLKLC5Q&MMWA'3W[3QM7YKRVCX-Q]YXTN.W#I2*3M_T%DBG<K3D`_Z=P3:M 1450 ML"?]C;]_3TU\:OCIOB^HK:M=,PGX*#9M'<43OB?).V=Y^1?]6K!QLB`FLP,? 1451 M3WNZ?\#6N9PMZ22/63)VC7FO3?8O&).RU*OQ5%@[S^WV%+7[YZ>QO%',VP[K 1452 MJ9]3R0;V<N)?-SH]GC!<YUINF\A26SG4J-TT[<DSVFPQ)J"02-UTW'6F=C\@ 1453 M<9"!%G.2FAL&_VX3[T1+W4^`=)[BGIS"NLYX[O_I%+;[GI_V)5O(LSK^+HN\ 1454 MKKO(^TU<<ASEH9ZXT"-WM,[OOENF_4L30T=SXA]:.U%%-,[TJZ*^F([I\/@$ 1455 M9><-WFWN1(%/@7&BT-_61_P-,IX,JB[6N[TZ_>*]NJD/=MX:FLQ2Y]#B2A,O 1456 M\D[C4V;J'*3LCET\.[:[G3'](W;&<ER?S/-"N]OTTG73BX>9O*0N<;V*=^6D 1457 M7/:]\^2;TC#/Y7.)O!PUA@ZQ,_2+M\5\MXJ5'QG8A;S\`H#I=@+S/(]_/H/_ 1458 M]MV6X)IG34O^^VRCN^N3SL?*SEG>[L_OA,K3$R=?-L]/L/G%$KHXQB`O2*RR 1459 M^1_DAE!NX'EUI!)^VZ9]A$M2C-T]872VG/*T7<VCTULE-A>D4DFNLXGE-Q^- 1460 MO-*8FY!+\EN1K42^)A^3/.%_4!K"Y5[/U@:ZG:95MB?/9;KGN,QOP'9MK7II 1461 M?E"JI6[3828I=;%KI+SMK9)S!=#66GRYR[6[?"C0VUUF3+[4ROT:MUJCZ7NS 1462 ME$9MNGM#:3>_A=GN57,FW/JFMKHY?Y<D7KRI^C]]"=KMX>JX36^WW;C+1[?K 1463 M:@=U&[PZ_H!QB29M5.MNFXZJWNW44?U/S=ABEZNB:W.<53+WJ9_E;)-03O3[ 1464 M>4ZW@ZQ_Q`[R2^<YW:ZQ+KO&%\O$<X55_J1QE:?7Y?@DY=V,H=M/UB_>3]X- 1465 MLMWVX[1LLP;>K:H;JYRBIV/UNG4[#N25T_'QIU:UC9TGI3*(\1?-V'1C(KKR 1466 M:I@\)5KD.X8=;&?X].)!:FZPG.+XB=O(W]&MV(X#C<=H_C(M'<J?CPY%M3&= 1467 M,Z5POB61OTKWQ_8CN@UUG5Z:C,[W([9]B.FY>Q"FVZ`WLVIS0/[Z&7^A;]LG 1468 M+R\EE!GA_NK/54!W8C\@D^C='*I4NZQCM\!=2E-SZ>,YQ72[^&9V=14H$UW& 1469 MD=V*LJVT37@[US3=CKN9?\0#J3JM;8:B5#+)#]Y2S4^8*G:M2/4QQGB2%++R 1470 MO@4GD:D]OC#=5KQ1/V!N._;/7Z;NU.;3Z?24"53G&LI4$XPY'Z1M8-K>]>@0 1471 M.MNI'[!DI3ZFGD^=6U'/L34>[W35F5YUP<_SN183,@N;3-X$YUEXU_[.:NK% 1472 MTP^_"_GD\FHI1WWSHKS5FB_QY/N)=W.,[MQ"J[+\ML/(#S/I3YI)U>9W&_CF 1473 MQ1OXK?M/;N3'7H_]N(?IMM%-V4:?B,]*RIF<YK=8^8<VK"E9*+]K/O&[NN+Z 1474 MD3I&#OB]O"Y\NYUQ\_*=<6Y*<Z-<1_,BJ;S+2M*XW+9NZ2,4!>+)=8_I]L"- 1475 MWIXU1S+,,HQJJ%C=WK9Y\=[V+MLNNS7=2"/B,K7!D[DL=P./-S8D3LC.>!I" 1476 M@YKC4X'?;7*;LLE-LW8[J<;1V?V'[&9W$*.N$W<KI]:99H^19EC=>S\CK0IC 1477 MG>TL\DYE2111SJURY?8D+M#.Y96?J?N`O.XS-4$E3M/J4^(TK3G\HT9T7ENK 1478 M9![V#]X2>N@XW6Z]X=WZ_8-$T^V_&]Y_SP\5!WY:=77SZNQU#L-[YK_>?9'G 1479 MAORC.+PG?D/_-=/9]ECQ0JZ\XB69?-\I<CYIA7KF0A78BZ_EZ_E*:3E)LMAL 1480 M&<=NORSSB2I=^-]@H,F:"N/%#>GPOY>0C_A?3I0#_E>2+FYXBX3_04,I6Y5N 1481 M168[U&LJAZ*92-:V6L\>-QO>%[_][>MP<??E,-R](>SA;O@+Q]VL?^:"N]&8 1482 M5_5N\MS_KB?^-=GL?KT_?/QUN/CS-'V]^?+AMU__?#7<M;1D(]]TYNW;93?S 1483 MY;O;X>)>+GTF-W\U_,N;P=4ZG>9;:JW\6W/\?PW!^5SR[NO'F[^V4JGX[]NI 1484 MG_]`8[T^;^RG[K)4_2!.^^O4D+]_9T,\9KN%S58M@@._1B>68VOFVQ[^0Y/0 1485 MA2YTH0M=Z$(7NM"%+G2A"UWH0A>ZT(4N=*$+7>A"%[K0A2YTH0M=Z$(7NM"% 1486 M+G2A"UWH0A>ZT(4N=*$+7>A"%[K0A2YTH0M=Z$(7NM"%+G2A"UWH0A>ZT(4N 1487 M=*$+7>A"%[K0A2YTH0M=Z$(7NM"%+G2A"UWH0A>ZT(4N=*$+7>A"%[K0A2YT 1488 MH0M=Z$(7NM"%+G2A"UWH0A>ZT(4N=*$+7>A"%[K0A2YTH0M=Z$(7NM"%+G2A 1489 M"UWH0A>ZT(4N=*$+7>A"%[K0A2YTH0M=Z$(7NM"%+G2A"UWH0A>ZT(4N=*$+ 1490 M7>A"%[K0A2YTH0M=Z$(7NM"%+G2A"UWH0A>ZT(4N=*$+7>A"%[K0A2YTH0M= 1491 MZ$(7NM"%+G2A"UWH0A>ZT(4N=*$+7>A"%[K0A2YTH0M=Z$(7NM"%+G2A"UWH 1492 M0A>ZT(4N=*$+7>A"%[K0A2YTH0M=Z$(7NM"%+G2A"UWH0A>ZT(4N=*$+7>A" 1493 M%[K0A2YTH0M=Z$(7NM"%+G2A"UWH0A>ZT(4N=*$+7>A"%[K0A2YTH0M=Z$(7 1494 MNM"%+G2A"UWH0A>ZT(4N=*$+7>A"%[K0A2YTH0M=Z$(7NM"%+G2A"UWH0A>Z 1495 MT(4N=*$+7>A"%[K0A2YTH0O=QW7_XS__]=_^?3`^O!WJ<7P]?+W[\FGX.KP9 1496 M]-7%<K6^NOKPMY__]--/P^7E\/7CAX^W=U_R#9>7]5/I[?"WWSZOP^V;Y=H/ 1497 MX[!>._ISD3_7:_OS=F.8RXV?ZHV^WKA<&_Z3_E/M`ZI\X)?R@>5R+:I%NY1I 1498 M.3/[#^NWP^>[^\/P65T-GS7]9]HU\W:X_>WK<''WY3#<O:%/#7?#7P9CYEG_ 1499 MS`5WHS&OZMWV]?#?]<2]IBZ\7^\/'W\=+OX\35]OOGSX[=<_7PUWKYI^X)L^ 1500 MJS?#[<W[PV]?[TX?AXO;[GJ2ZWIW_5.['I5<-[OKOW373=9O!2X+MH+<@H8< 1501 MI<J[V^'B7M0^*_*F5\._D*$K:))J*VJ26G;U))>+WGW]>//75BJ5_;V>/JQ* 1502 M;U75/K7SKBH[;U55`CL_5I6==U79^6%5YKPJM:]*;575OK'JT:K4OBI%5?W] 1503 M/!+N.!*>B-#%CXL;5_K_7?`]>;L>5STNHVJ!;,=%4]E*?_,EN4$]".2GU,:U 1504 M5W+C8M=Q,2(CZ8$T.WG#A^/6A/4/UP)$(`(1B$`$(A"!"$0@`A&(0`0B$($( 1505 M1"`"$8A`!"(0@0A$(`(1B$`$(A"!"$0@`A&(0`0B$($(1"`"$8A`!"(0@0A$ 1506 M(`(1B$`$(A"!"$0@`A&(0`0B$($(1"`"$8A`!"(0@0A$(`(1B$`$(A"!"$0@ 1507 M`A&(0`0B$($(1"`"$8A`!"(0@0A$(`(1B$`$(A"!"$0@`A&(0`0B$($(1"`" 1508 M$8A`!"(0@0A$(`(1B$`$(A"!"$0@`A&(0`0B$($(1"`"$8A`!"(0@0A$(`(1 1509 MB$`$(A"!"$0@`A&(0`0B$($(1"`"$8A`!"(0@0A$(`(1B$`$(A"!"$0@`A&( 1510 M0`0B$($(1"`"$8A`!"(0@0A$(`(1B$`$(A"!"$0@`A&(0`0B$($(1"`"$8A` 1511 M!"(0@0A$(`(1B$`$(A"!"$0@`A&(0`0B$($(1"`"$8A`!"(0@0A$(`(1B$`$ 1512 M(A"!"$0@`A&(0`0B$($(1"`"$8A`!"(0@0A$(`(1B$`$(A"!"$0@`A&(0`0B 1513 M$($(1"`"$8A`!"(0@0A$(`(1B$`$(A"!"$0@`A&(0`0B$($(1"`"$8A`!"(0 1514 M@0A$(`(1B$`$(A"!"$0@`A&(0`0B$($(1"`"$8A`!"(0@0A$(`(1B$`$(A"! 1515 M"$0@`A&(0`0B$($(1"`"$8A`!"(0@0A$(`(1B$`$(A"!"$0@`A&(0`0B$($( 1516 M1"`"$8A`!"(0@0A$(`(1B$`$(A"!"$0@`A&(0`0B$($(1"`"$8A`!"(0@0A$ 1517 M(`(1B$`$(A"!"$0@`A&(0`0B$($(1"`"$8A`!"(0@0A$(`(1B$`$(A"!"$0@ 1518 M`A&(0`0B$($(1"`"$8A`!"(0@0A$(`(1B$`$(A"!"$0@`A&(0`0B$($(1"`" 1519 M$8A`!"(0@0A$(`(1B$`$(A"!"$0@`A&(0`0B$($(1"`"$8A`!"(0@0A$(`(1 1520 MB$`$(A"!"$0@`A&(0`0B$($(1"`"$8A`!"(0@0A$(`(1B$`$(A"!"$0@`A&( 1521 M0`0B$($(1"`"$8A`!"(0@0A$(`(1B$`$(A"!"$0@`A&(0`0B$($(1"`"$8A` 1522 M!"(0@0A$(`(1B$`$(A"!"$0@`A&(0`0B$($(1"`"$8A`!"(0@0A$(`(1B$`$ 1523 M(A"!"$0@`A&(0`0B$($(1"`"$8A`!"(0@0A$(`(1B$`$(A"!"$0@`A&(0`0B 1524 M$($(1"`"$8A`!"(0@0A$(`(1B$`$(A"!"$0@`A&(0`0B$($(1"`"$8A`!"(0 1525 M@0A$(`(1B$`$(A"!"$0@`A&(0`0B$($(1"`"$8A`!"(0@0A$(`(1B$`$(A"! 1526 M"$0@`A&(0`0B$($(1"`"$8A`!"(0@0A$(`(1B$`$(A"!"$0@`A&(0`0B$($( 1527 M1"`"$8A`!"(0@0A$(`(1B$`$(A"!"$0@`A&(0`0B$($(1"`"$8A`!"(0@0A$ 1528 M(`(1B$`$(A"!"$0@`A&(0`0B$($(1"`"$8A`!"(0@0A$(`(1B$`$(A"!"$0@ 1529 M`A&(0`0B$($(1"`"$8A`!"(0@0A$(`(1B$`$(A"!"$0@`A&(0`0B$($(1"`" 1530 M$8A`!"(0@0A$(`(1B$`$(A"!"$0@`A&(0`0B$($(1"`"$8A`!"(0@0A$(`(1 1531 MB$`$(A"!"$0@`A&(0`0B$/__1_R/__S7?_OWP>KY[5"/U>OAIY^&P]?7@[5S 1532 M+=6OA[_>??X\?/VY%IFWP]>[+Y^&KV_"U<5RM;ZZ^O"W=M6^'?[VV^=UN!W> 1533 M#.NUNURN[3#1D::C($=F&(?EVK2/N+?#Y[O[P_#YS>W-^\-O7^].'R]N7[7K 1534 M_NUP3V7#Q6?JE%?#7P;_\Y]:"\/;X?#Q_I`_>D\W7?%GG^Q)0_U1.W+2]<S2 1535 M63UQ;+_:XU[.I@>=>+7ORMAU97I=C\U\UH%&U0[4YQUH]-:!;X:+Y=I?DAVO 1536 M[25U(/U-=J>.S,?T]RA'KR[S?72\7@>Z8NC8\*?&M?6B,;67A]K-0]_/QI[U 1537 MY/#=KES\RGZH.2[$];C/^*_FJ)X=,K"G&G;0]7$_-*YUGO&O"[HI2(Q"@2*8 1538 M#.]KAZR,R->YD^B.AD).\31G?"XGQQD#Z#X&]>HS/06<A*`$^^-\J?'9N3F' 1539 M53UK8<FDEVS*S+H9/'-V)K7Z.Y36/)\R@_209#O&%.,*XQ,6M+8C=!UAM:8M 1540 M3JF%5%Q9N'9VI3]SN7WHZ!W8]VQKGVO;M4O/8F).GTX2M*J)@4I=SK%KS:QG 1541 MV:`VH3.VZXSMJK$W]%70[<Z\G1.[[YG7/=N\&6K'NQGU";=UG5%=9U17C:K% 1542 MJ%N(YDS$&<A)UFI7>ZKOF<\].S1WSFK$?YO9J"ENS2,D_?^3%G.=Q7QG,=^' 1543 M9[$.$[I\UCFI_-=3^N_9SK\@-+.9V@1@S?XH`[Y^>H3WG0E]9T*_BTL]/D"4 1544 M.%RWX>8\O_KO&='_<T;LX\[4,QJ1)0;/K=C!=G8,G1V#ZHYU!L^IU67?K2G( 1545 MY"&EL03S'=#PW`%S[4</G7UR8UWS])+]]PDW#=TH&7R'%(HM+\M86+-JG0CL 1546 M$TN(WX-*S[6>#'Z[H3&/]D\Z9>RFG;&S3=2/."7_72//LU.VML;O62<^>SJC 1547 MU_WX/NZ=D2IW3]DF=K:)G6UBJ$F_2XG+-A:.?;S1>=?Z[]DH/MM&#:LGRFN( 1548 M-JJM8[?.*!'W=+BESHRI,V/2^^$A>^2R)<_M?.^3Z7NF3,\V91[LE@<&S8[Z 1549 MY#0M=49,G1%3-:+?&E]&[VPV3IU[F.\9+SW;>+ZN%RL,6\:L3^9]-S?;N+G9 1550 MQLU]^BMS3EN&Z,N:%/=SK[VEW/P=2[GYV2G1[U8/.XOQ-9Z3VD=&[UJAZT!] 1551 M!]H"K^7XRV:O;,'6[N]8S,W/MICK)B(RJ&5SB0D?Q5"=O51G+R7VRO9PW4)P 1552 MFT5;0:EI<C<E*9.R/'97&/4]\ZES\_VCE/F8W62I]%28.=693'4F4^'A4MDI 1553 M,LM//PVW7W_[=?C?KX?_NOOUUX]??[WY\F7X_>Z&EK/O[FD=_>WSS=?IP\?? 1554 M/WZN'Z,%>%YA#V\&6F.O5X=^C>UXWZ-M4EP>KN,PRF;%X5KS$?WMZ>_#=9!R 1555 MOUV5OS5=M?6([J^J9#<IE(^:?(L<ZU8SS0L_?+SMMSIV!M#/G1H>>`PY])U_ 1556 MH'%*'RAF#GFWRO`M=,ZG'$D'OLQ%9CQ(9*T'F4,>]./FXAV=P_WA_]P?;@[? 1557 1[B\H$_RO/_U?.CZGWX[="``` 1536 1558 ` 1537 1559 end -
Tst/Short/factorizep_s.stat
rc90500 r3e7db4 1 1 >> tst_memory_0 :: 13 43903425:3150:3-1-5:ix86-Linux:mamawutz:1740322 1 >> tst_memory_1 :: 13 43903425:3150:3-1-5:ix86-Linux:mamawutz:22402843 1 >> tst_memory_2 :: 13 43903425:3150:3-1-5:ix86-Linux:mamawutz:22730684 1 >> tst_timer :: 13 43903425:3150:3-1-5:ix86-Linux:mamawutz:3425 2 >> tst_memory_0 :: 13 43903425:3150:3-1-5:ix86-Linux:mamawutz:41097766 2 >> tst_memory_1 :: 13 43903425:3150:3-1-5:ix86-Linux:mamawutz:66805767 2 >> tst_memory_2 :: 13 43903425:3150:3-1-5:ix86-Linux:mamawutz:66805768 2 >> tst_timer_1 :: 13 43903425:3150:3-1-5:ix86-Linux:mamawutz:58731 1 >> tst_memory_0 :: 1354291118:3150:3-1-5:ix86-Linux:mamawutz:173336 2 1 >> tst_memory_1 :: 1354291118:3150:3-1-5:ix86-Linux:mamawutz:2240284 3 1 >> tst_memory_2 :: 1354291118:3150:3-1-5:ix86-Linux:mamawutz:2273068 4 1 >> tst_timer :: 1354291118:3150:3-1-5:ix86-Linux:mamawutz:276 5 2 >> tst_memory_0 :: 1354291118:3150:3-1-5:ix86-Linux:mamawutz:4047200 6 2 >> tst_memory_1 :: 1354291118:3150:3-1-5:ix86-Linux:mamawutz:6025216 7 2 >> tst_memory_2 :: 1354291118:3150:3-1-5:ix86-Linux:mamawutz:6025216 8 2 >> tst_timer_1 :: 1354291118:3150:3-1-5:ix86-Linux:mamawutz:5530 -
Tst/Short/factorizep_s.tst
rc90500 r3e7db4 385 385 testfactors (l,f); 386 386 387 388 kill r; 389 ring r=2,(x,y),dp; 390 poly f= (x^6*y+x^4*y^2+x^5+x^2*y^2+x^2*y+y^2+x)*(x^6*y^2+y^7+x^3*y^3+x^4+y); 391 list l= factorize (f); 392 testfactors (l, f); 393 394 f= (x^3*y^2+y^3+x^2+1)*(x^2*y^6+x^4*y^2+y^4+y^3+x*y+x+1); 395 l= factorize (f); 396 testfactors (l, f); 397 398 399 f= (x^3*y^4+y^3+x+1)*(x*y^7+y^6+x^2*y^2+x^3+x*y+y); 400 l= factorize (f); 401 testfactors (l, f); 402 403 404 f= (x^4*y^3+x^2*y^4+x^5+x*y^2+1)*(x^2*y^6+x*y^5+x*y^4+x^2*y^2+x^2*y+y); 405 l= factorize (f); 406 testfactors (l, f); 407 408 409 f= (x^5+x*y^2+y)*(x^4*y^2+x^3+x*y+1); 410 l= factorize (f); 411 testfactors (l, f); 412 413 414 f= (x^2*y^3+y^3+x^2+x)*(x^7+x^5*y+x^2*y^3+y^3+1); 415 l= factorize (f); 416 testfactors (l, f); 417 418 419 f= (x^3*y+x*y+1)*(x^5*y+x*y^4+x^2*y^2+y^2+y+1); 420 l= factorize (f); 421 testfactors (l, f); 422 423 424 f= (x^4*y^2+x^3*y+x*y+1)*(x*y^5+y^5+x^2*y+x*y+x+1); 425 l= factorize (f); 426 testfactors (l, f); 427 428 429 430 f= (y^6+x^5+y^3+x)*(x^2*y^3+y^4+y); 431 l= factorize (f); 432 testfactors (l, f); 433 434 435 f= (x*y^3+x*y^2+1)*(x^3*y^3+x^4*y+1); 436 l= factorize (f); 437 testfactors (l, f); 438 439 440 f= (x^4*y^2+x^3*y^2+x*y+1)*(x^6+y^5); 441 l= factorize (f); 442 testfactors (l, f); 443 444 445 f= (x^5*y+x^2*y^3+x*y^3+x^2+y+1)*(x*y^5+x^2); 446 l= factorize (f); 447 testfactors (l, f); 448 449 450 f= (x^2*y^3+x*y^2+x+1)*(x^5+x*y^2+x*y+1); 451 l= factorize (f); 452 testfactors (l, f); 453 454 455 f= (x^6+x*y^2+x^2+y)*(y^5+x^3*y+y+1); 456 l= factorize (f); 457 testfactors (l, f); 458 459 460 f= (y^6+x*y^4+y^4+y^3+1)*(y^6+x^5+x^2*y^2+x^2*y+x*y+1); 461 l= factorize (f); 462 testfactors (l, f); 463 464 465 f= (x^5+y^3+x)*(x*y^5+x^3*y+x^2+y); 466 l= factorize (f); 467 testfactors (l, f); 468 469 470 f=x^2*y^5+x^4*y^2+x^2*y^4+x^4*y+x^3*y^2+x*y^4+x^2*y^2+y^3+x^2+x*y+x+1; 471 l= factorize (f); 472 testfactors (l,f); 473 474 475 kill r; 476 // from P. Zimmermann via libsingular-devel 477 ring r = 2,(y,t),dp; 478 poly f = y*t^8 + y^5*t^2 + y*t^6 + t^7 + y^6 + y^5*t + y^2*t^4 + y^2*t^2 + 479 y^2*t + t^3 + y^2 + t^2; 480 def l=factorize (f); 481 testfactors (l, f); 387 482 tst_status(1);$ -
Tst/Short/ok_s.lst
rc90500 r3e7db4 213 213 primefactors 214 214 primitiv_s 215 pyobject 215 216 qhw_s 216 217 quotient_s -
Tst/Short/pyobject.res.gz.uu
rc90500 r3e7db4 1 begin 6 44 pyobject.res.gz2 M'XL(" &,.ZT\``W!Y;V)J96-T+G)E<P#M&FMOX\;QNW_%1B@@RM;I2$I\R(X51 begin 664 pyobject.res.gz 2 M'XL("`X&QE```W!Y;V)J96-T+G)E<P#M&FMOX\;QNW_%1B@@RM;I2$I\R(X5 3 3 MY*Y%&Z"X%+T`_>"Z,B6O;?8HDB`I6TK1_]Z9?<R.'K;/*5H@0"Z(S-UY[,SL 4 4 M[,SLD)]_^OT/GX00P4S\^8</HM>UW:C(%[V+D\\&$LX$3,[S,N^\P<4)_A6S … … 62 62 MLL"@L8^DT!NTS8W:04"[,?+<V,\[VG6-+R_H3<JF!BV`HR9#"O7P+!0NHDV^ 63 63 MN7D]`9^?DP/H-.SC)R*0.U=PH!MA??!"?'V25;MN2G`PQ"-&,;:,*2$61;;\ 64 MLJ@V\Q_KH(\?5"D.Q@Y> %(8#="%1U>3[,.D/E'54FPL_Q++VT:L[(Y;+:E6#65 M 9(M":C=R%0MM5,)#-/M<(/13MIU3?BQQF=93KR'UL;1HV*87(K\3GGE#K/?U66 M TH03'I;<^48<=F!#_`+K.!/KT"\ENA!;\6X0??WA5UKQTQ\&+DV%<*D\=&@"67 M ID?S7(@=6$9$D2'4'P!9`AX90O894!CN1$/UBM[3[_Z/Q\.>M\K;%AQMT'LN68 M 'H;A&^*A6FO')+KO:J.).IK'B\$06ZX:0;_2?:W$&XH^24]-D)!]=11B-Q8_69 6 7L3O$]>MQZ4"^__NY#_R48`L_B@`````64 MLJ@V\Q_KH(\?5"D.Q@Y>!`<774A4-?D^3`8#91W5YL(/L:Q]].K.B.6R6M4@ 65 MV:*0VHU<Q4(;E?`0S3X7"/V4;>>4'TM<IO74:TA]+"T:MNF%R.^$9]X0ZWV] 66 M-.&$AR5WOA&''=@0O\`ZSL0Z]$N)+L16O!M$7W_XE5;\](>!2U,A7"H/'9J` 67 MZ=$\%V('EA%19`CU!T"6@$>&D'T&%(8[T5"]HO?TN__C\;#GK?*V!4<;])Z+ 68 MAV'XAGBHUMHQB>Z[VFBBCN;Q8C#$EJM&T*]T7ROQAJ)/TE,3)&1?'878C<6/ 69 6%_'[Q'7K<:G`_K\[^0^V-F^/_B@````` 70 70 ` 71 71 end -
configure.ac
rc90500 r3e7db4 12 12 AM_MAINTAINER_MODE 13 13 AM_INIT_AUTOMAKE([-Wall foreign subdir-objects]) # -Wno-extra-portability -Werror silent-rules 14 m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES]) 15 m4_ifdef([AM_PROG_AR], [AM_PROG_AR]) 16 14 17 15 18 dnl Check if build env is sane … … 58 61 LB_CHECK_NTL(5.0,,AC_MSG_WARN([Unable to find NTL (which is strongly recommended) on your machine: please use --with-ntl=PATH_TO_DIR_CONTAINING_LIB_AND_INCLUDE (see also ./configure --help if you do not understand what we are talking about)])) 59 62 LB_CHECK_FLINT(2.3,,AC_MSG_WARN([Unable to find FLINT (which is strongly recommended) on your machine: please use --with-flint=PATH_TO_DIR_CONTAINING_LIB_AND_INCLUDE (see also ./configure --help if you do not understand what we are talking about)])) 63 64 AX_PYTHON_DEFAULT() 65 AX_PYTHON_WITH_VERSION([2.4]) 66 60 67 61 68 AC_FUNC_ERROR_AT_LINE -
doc/singular.man
rdcf88ff r3e7db4 68 68 Suppress all output 69 69 .TP 70 \fB\-\-no\-shell\fR 71 Restricted mode: Prohibit shell escape commands and links 72 .TP 70 73 \fB\-\-min\-time\fR=\fISECS\fR 71 74 Do not display times smaller than SECS (in seconds) -
dyn_modules/bigintm/Makefile.am
rc90500 r3e7db4 31 31 32 32 AMLDFLAGS = 33 # -L${ abs_top_builddir}/Singular -L${abs_top_builddir}/numeric -L${abs_top_builddir}/kernel \34 # -L${ abs_top_builddir}/libpolys/polys $(USE_FACTORY) -L${abs_top_builddir}/omalloc -L${abs_top_builddir}/findexec33 # -L${top_builddir}/Singular -L${top_builddir}/numeric -L${top_builddir}/kernel \ 34 # -L${top_builddir}/libpolys/polys $(USE_FACTORY) -L${top_builddir}/omalloc -L${top_builddir}/findexec 35 35 36 36 -
dyn_modules/bigintm/bigintm.cc
rc90500 r3e7db4 231 231 } 232 232 233 Werror("bigintm_Op2: Op: '==': Sorry unsupported 2nd argument-type: '% d' in", Tok2Cmdname(a2->Typ()));233 Werror("bigintm_Op2: Op: '==': Sorry unsupported 2nd argument-type: '%s' in", Tok2Cmdname(a2->Typ())); 234 234 WrongOp("bigintm_Op2", op, a1); 235 235 return TRUE; -
dyn_modules/syzextra/Makefile.am
rc90500 r3e7db4 31 31 32 32 AMLDFLAGS = 33 # -L${ abs_top_builddir}/Singular -L${abs_top_builddir}/numeric -L${abs_top_builddir}/kernel \34 # -L${ abs_top_builddir}/libpolys/polys $(USE_FACTORY) -L${abs_top_builddir}/omalloc -L${abs_top_builddir}/findexec33 # -L${top_builddir}/Singular -L${top_builddir}/numeric -L${top_builddir}/kernel \ 34 # -L${top_builddir}/libpolys/polys $(USE_FACTORY) -L${top_builddir}/omalloc -L${top_builddir}/findexec 35 35 36 36 -
dyn_modules/syzextra/mod_main.cc
rc90500 r3e7db4 934 934 935 935 NoReturn(res); 936 return false; 936 937 } 937 938 -
factory/FLINTconvert.cc
rc90500 r3e7db4 122 122 { 123 123 CanonicalForm c= i.coeff(); 124 if (!c.isImm()) c .mapinto(); //c%= getCharacteristic();124 if (!c.isImm()) c=c.mapinto(); //c%= getCharacteristic(); 125 125 if (!c.isImm()) 126 126 { //This case will never happen if the characteristic is in fact a prime -
factory/Makefile.am
rc90500 r3e7db4 18 18 19 19 libfactory_la_CXXFLAGS = -O3 -fomit-frame-pointer ${CXXTEMPLFLAGS} 20 libfactory_la_LIBADD = ${ abs_builddir}/libfac/libfac.la $(FLINT_LIBS) ${GMP_LIBS} ${NTL_LIBS}20 libfactory_la_LIBADD = ${builddir}/libfac/libfac.la $(FLINT_LIBS) ${GMP_LIBS} ${NTL_LIBS} 21 21 libfactory_la_LDFLAGS = -release ${PACKAGE_VERSION} 22 22 libfactory_g_la_CXXFLAGS = -g -Wextra -Wall -pedantic -Wno-long-long ${CXXTEMPLFLAGS} 23 libfactory_g_la_LIBADD = ${ abs_builddir}/libfac/libfac_g.la $(FLINT_LIBS) ${GMP_LIBS} ${NTL_LIBS}23 libfactory_g_la_LIBADD = ${builddir}/libfac/libfac_g.la $(FLINT_LIBS) ${GMP_LIBS} ${NTL_LIBS} 24 24 libfactory_g_la_LDFLAGS = -release ${PACKAGE_VERSION} 25 25 … … 83 83 facIrredTest.cc \ 84 84 facMul.cc \ 85 facNTLzzpEXGCD.cc \ 85 86 facSparseHensel.cc \ 86 87 ffops.cc \ … … 162 163 facIrredTest.h \ 163 164 facMul.h \ 165 facNTLzzpEXGCD.h \ 164 166 facSparseHensel.h \ 165 167 ffops.h \ … … 302 304 check_PROGRAMS = $(TESTS) 303 305 304 AMLDFLAGS = -L${ abs_builddir}306 AMLDFLAGS = -L${builddir} 305 307 306 308 TESTSSOURCES = test.cc -
factory/NTLconvert.cc
rc90500 r3e7db4 125 125 126 126 CanonicalForm c=i.coeff(); 127 if (!c.isImm()) c .mapinto(); //c%= getCharacteristic();127 if (!c.isImm()) c=c.mapinto(); //c%= getCharacteristic(); 128 128 if (!c.isImm()) 129 129 { //This case will never happen if the characteristic is in fact a prime -
factory/algext.cc
rc90500 r3e7db4 26 26 #include "cf_map.h" 27 27 #include "cf_generator.h" 28 #include "facMul.h" 29 #include "facNTLzzpEXGCD.h" 28 30 29 31 #ifdef HAVE_NTL … … 365 367 static CanonicalForm tryvcontent ( const CanonicalForm & f, const Variable & x, const CanonicalForm & M, bool & fail ); 366 368 static CanonicalForm trycf_content ( const CanonicalForm & f, const CanonicalForm & g, const CanonicalForm & M, bool & fail ); 367 static void tryDivide( const CanonicalForm & f, const CanonicalForm & g, const CanonicalForm & M, CanonicalForm & result, bool & divides, bool & fail );368 369 369 370 static inline CanonicalForm … … 463 464 mv = g.level(); 464 465 // here: mv is level of the largest variable in f, g 466 Variable v1= Variable (1); 467 #ifdef HAVE_NTL 468 Variable v= M.mvar(); 469 if (fac_NTL_char != getCharacteristic()) 470 { 471 fac_NTL_char= getCharacteristic(); 472 zz_p::init (getCharacteristic()); 473 } 474 zz_pX NTLMipo= convertFacCF2NTLzzpX (M); 475 zz_pE::init (NTLMipo); 476 zz_pEX NTLResult; 477 zz_pEX NTLF; 478 zz_pEX NTLG; 479 #endif 465 480 if(mv == 1) // f,g univariate 466 481 { 467 482 TIMING_START (alg_euclid_p) 483 #ifdef HAVE_NTL 484 NTLF= convertFacCF2NTLzz_pEX (f, NTLMipo); 485 NTLG= convertFacCF2NTLzz_pEX (g, NTLMipo); 486 tryNTLGCD (NTLResult, NTLF, NTLG, fail); 487 if (fail) 488 return; 489 result= convertNTLzz_pEX2CF (NTLResult, f.mvar(), v); 490 #else 468 491 tryEuclid(f,g,M,result,fail); 492 if(fail) 493 return; 494 #endif 469 495 TIMING_END_AND_PRINT (alg_euclid_p, "time for euclidean alg mod p: ") 470 if(fail)471 return;472 496 result= NN (reduce (result, M)); // do not forget to map back 473 497 return; … … 482 506 return; 483 507 CanonicalForm c; 508 #ifdef HAVE_NTL 509 NTLF= convertFacCF2NTLzz_pEX (cf, NTLMipo); 510 NTLG= convertFacCF2NTLzz_pEX (cg, NTLMipo); 511 tryNTLGCD (NTLResult, NTLF, NTLG, fail); 512 if (fail) 513 return; 514 c= convertNTLzz_pEX2CF (NTLResult, v1, v); 515 #else 484 516 tryEuclid(cf,cg,M,c,fail); 485 517 if(fail) 486 518 return; 519 #endif 487 520 // f /= cf 488 521 f.tryDiv (cf, M, fail); … … 518 551 CanonicalForm gamma; 519 552 TIMING_START (alg_euclid_p) 553 #ifdef HAVE_NTL 554 NTLF= convertFacCF2NTLzz_pEX (firstLC (f), NTLMipo); 555 NTLG= convertFacCF2NTLzz_pEX (firstLC (g), NTLMipo); 556 tryNTLGCD (NTLResult, NTLF, NTLG, fail); 557 if (fail) 558 return; 559 gamma= convertNTLzz_pEX2CF (NTLResult, v1, v); 560 #else 520 561 tryEuclid( firstLC(f), firstLC(g), M, gamma, fail ); 562 if(fail) 563 return; 564 #endif 521 565 TIMING_END_AND_PRINT (alg_euclid_p, "time for gcd of lcs in alg mod p: ") 522 if(fail)523 return;524 566 for(int i=2; i<=mv; i++) // entries at i=0,1 not visited 525 567 if(N[i] < L[i]) … … 822 864 equal= true; // modular image did not add any new information 823 865 TIMING_START (alg_termination) 866 #ifdef HAVE_FLINT 867 if (equal && tmp.isUnivariate() && f.isUnivariate() && g.isUnivariate() 868 && f.level() == tmp.level() && tmp.level() == g.level()) 869 { 870 CanonicalForm Q, R, sf, sg, stmp; 871 Variable x= Variable (1); 872 sf= swapvar (f, f.mvar(), x); 873 sg= swapvar (g, f.mvar(), x); 874 stmp= swapvar (tmp, f.mvar(), x); 875 newtonDivrem (sf, stmp, Q, R); 876 if (R.isZero()) 877 { 878 newtonDivrem (sg, stmp, Q, R); 879 if (R.isZero()) 880 { 881 Off (SW_RATIONAL); 882 setReduce (a,true); 883 if (off_rational) Off(SW_RATIONAL); else On(SW_RATIONAL); 884 TIMING_END_AND_PRINT (alg_termination, 885 "time for successful termination test in alg gcd: ") 886 return tmp*gcdcfcg; 887 } 888 } 889 } 890 else 891 #endif 824 892 if(equal && fdivides( tmp, f ) && fdivides( tmp, g )) // trial division 825 893 { … … 1017 1085 } 1018 1086 return abs( f ); 1019 }1020 1021 1022 static void tryDivide( const CanonicalForm & f, const CanonicalForm & g, const CanonicalForm & M, CanonicalForm & result, bool & divides, bool & fail )1023 { // M "univariate" monic polynomial1024 // f, g polynomials with coeffs modulo M.1025 // if f is divisible by g, 'divides' is set to 1 and 'result' == f/g mod M coefficientwise.1026 // 'fail' is set to 1, iff a zero divisor is encountered.1027 // divides==1 implies fail==01028 // required: getReduce(M.mvar())==01029 if(g.inBaseDomain())1030 {1031 result = f/g;1032 divides = true;1033 return;1034 }1035 if(g.inCoeffDomain())1036 {1037 tryInvert(g,M,result,fail);1038 if(fail)1039 return;1040 result = reduce(f*result, M);1041 divides = true;1042 return;1043 }1044 // here: g NOT inCoeffDomain1045 Variable x = g.mvar();1046 if(f.degree(x) < g.degree(x))1047 {1048 divides = false;1049 return;1050 }1051 // here: f.degree(x) > 0 and f.degree(x) >= g.degree(x)1052 CanonicalForm F = f;1053 CanonicalForm q, leadG = LC(g);1054 result = 0;1055 while(!F.isZero())1056 {1057 tryDivide(F.LC(x),leadG,M,q,divides,fail);1058 if(fail || !divides)1059 return;1060 if(F.degree(x)<g.degree(x))1061 {1062 divides = false;1063 return;1064 }1065 q *= power(x,F.degree(x)-g.degree(x));1066 result += q;1067 F = reduce(F-q*g, M);1068 }1069 result = reduce(result, M);1070 divides = true;1071 1087 } 1072 1088 -
factory/cfModResultant.cc
rc90500 r3e7db4 14 14 15 15 #include "cf_assert.h" 16 #include "timing.h" 16 17 17 18 #include "cfModResultant.h" … … 29 30 #include "FLINTconvert.h" 30 31 #endif 32 33 TIMING_DEFINE_PRINT(fac_resultant_p) 31 34 32 35 //TODO arrange by bound= deg (F,xlevel)*deg (G,i)+deg (G,xlevel)*deg (F, i) … … 255 258 return CanonicalForm ((long) FLINTresult); 256 259 #else 257 zz_pBak bak; 258 bak.save(); 259 zz_p::init (getCharacteristic()); 260 if (fac_NTL_char != getCharacteristic()) 261 { 262 fac_NTL_char= getCharacteristic(); 263 zz_p::init (getCharacteristic()); 264 } 260 265 zz_pX NTLF= convertFacCF2NTLzzpX (F); 261 266 zz_pX NTLG= convertFacCF2NTLzzpX (G); … … 263 268 zz_p NTLResult= resultant (NTLF, NTLG); 264 269 265 bak.restore();266 270 return CanonicalForm (to_long (rep (NTLResult))); 267 271 #endif … … 327 331 return power (B, degAx); 328 332 333 if (A.isUnivariate() && B.isUnivariate() && A.level() == B.level()) 334 return uniResultant (A, B); 335 329 336 CanonicalForm F= A; 330 337 CanonicalForm G= B; … … 337 344 338 345 Variable y= Variable (2); 339 340 if (F.isUnivariate() && G.isUnivariate() && F.level() == G.level())341 return N(uniResultant (F, G));342 346 343 347 int i= -1; … … 363 367 if (H == modResult) 364 368 equalCount++; 369 else 370 equalCount= 0; 365 371 366 372 count++; … … 473 479 CanonicalForm resultModP, q (0), newResult, newQ; 474 480 CanonicalForm result; 481 int equalCount= 0; 482 CanonicalForm test, newTest; 483 int count= 0; 475 484 do 476 485 { … … 487 496 setCharacteristic (p); 488 497 498 TIMING_START (fac_resultant_p); 489 499 resultModP= resultantFp (mapinto (F), mapinto (G), X, prob); 500 TIMING_END_AND_PRINT (fac_resultant_p, "time to compute resultant mod p: "); 490 501 491 502 setCharacteristic (0); 492 503 504 count++; 493 505 if ( q.isZero() ) 494 506 { … … 501 513 q= newQ; 502 514 result= newResult; 503 if (newQ > bound) 504 { 505 result= symmetricRemainder (result, q); 515 test= symmetricRemainder (result,q); 516 if (test != newTest) 517 { 518 newTest= test; 519 equalCount= 0; 520 } 521 else 522 equalCount++; 523 if (newQ > bound || (prob && equalCount == 2)) 524 { 525 result= test; 506 526 break; 507 527 } -
factory/cf_gcd.cc
rc90500 r3e7db4 45 45 46 46 bool 47 gcd_test_one ( const CanonicalForm & f, const CanonicalForm & g, bool swap ) 48 { 47 gcd_test_one ( const CanonicalForm & f, const CanonicalForm & g, bool swap, int & d ) 48 { 49 d= 0; 49 50 int count = 0; 50 51 // assume polys have same level; … … 114 115 if (p == 2 && d < 6) 115 116 { 116 zz_p::init (p); 117 if (fac_NTL_char != 2) 118 { 119 fac_NTL_char= 2; 120 zz_p::init (p); 121 } 117 122 bool primFail= false; 118 123 Variable vBuf; … … 138 143 else if ((p == 3 && d < 4) || ((p == 5 || p == 7) && d < 3)) 139 144 { 140 zz_p::init (p); 145 if (fac_NTL_char != p) 146 { 147 fac_NTL_char= p; 148 zz_p::init (p); 149 } 141 150 bool primFail= false; 142 151 Variable vBuf; … … 218 227 } 219 228 220 if ( eval1.taildegree() > 0 && eval2.taildegree() > 0 )221 {222 if (passToGF)223 setCharacteristic (p);224 if (k > 1)225 setCharacteristic (p, k, gf_name);226 return false;227 }228 229 229 CanonicalForm c= gcd (eval1, eval2); 230 bool result= c.degree() < 1; 230 d= c.degree(); 231 bool result= d < 1; 232 if (d < 0) 233 d= 0; 231 234 232 235 if (passToGF) … … 463 466 //}}} 464 467 465 //{{{ static CanonicalForm balance ( const CanonicalForm & f, const CanonicalForm & q )468 //{{{ static CanonicalForm balance_p ( const CanonicalForm & f, const CanonicalForm & q ) 466 469 //{{{ docu 467 470 // 468 // balance () - map f from positive to symmetric representation471 // balance_p() - map f from positive to symmetric representation 469 472 // mod q. 470 473 // … … 476 479 //}}} 477 480 static CanonicalForm 481 balance_p ( const CanonicalForm & f, const CanonicalForm & q ) 482 { 483 Variable x = f.mvar(); 484 CanonicalForm result = 0, qh = q / 2; 485 CanonicalForm c; 486 CFIterator i; 487 for ( i = f; i.hasTerms(); i++ ) 488 { 489 c = i.coeff(); 490 if ( c.inCoeffDomain()) 491 { 492 if ( c > qh ) 493 result += power( x, i.exp() ) * (c - q); 494 else 495 result += power( x, i.exp() ) * c; 496 } 497 else 498 result += power( x, i.exp() ) * balance_p(c,q); 499 } 500 return result; 501 } 502 503 /*static CanonicalForm 478 504 balance ( const CanonicalForm & f, const CanonicalForm & q ) 479 505 { … … 490 516 } 491 517 return result; 492 } 518 }*/ 493 519 //}}} 494 520 … … 566 592 { 567 593 // now balance D mod q 568 D = pp( balance ( D, q ) );594 D = pp( balance_p( D, q ) ); 569 595 if ( fdivides( D, f ) && fdivides( D, g ) ) 570 596 return D * c; … … 597 623 pi1 = pi1 / Ci1; pi = pi / Ci; 598 624 C = gcd( Ci, Ci1 ); 625 int d= 0; 599 626 if ( !( pi.isUnivariate() && pi1.isUnivariate() ) ) 600 627 { 601 if ( gcd_test_one( pi1, pi, true ) )628 if ( gcd_test_one( pi1, pi, true, d ) ) 602 629 { 603 630 C=abs(C); … … 716 743 pi1 = pi1 / Ci1; pi = pi / Ci; 717 744 C = gcd( Ci, Ci1 ); 745 int d= 0; 718 746 if ( pi.isUnivariate() && pi1.isUnivariate() ) 719 747 { … … 729 757 return gcd_poly_univar0( pi, pi1, true ) * C; 730 758 } 731 else if ( gcd_test_one( pi1, pi, true ) )759 else if ( gcd_test_one( pi1, pi, true, d ) ) 732 760 return C; 733 761 Variable v = f.mvar(); … … 1204 1232 delete [] degsg; 1205 1233 }*/ 1206 1207 1208 static CanonicalForm1209 balance_p ( const CanonicalForm & f, const CanonicalForm & q )1210 {1211 Variable x = f.mvar();1212 CanonicalForm result = 0, qh = q / 2;1213 CanonicalForm c;1214 CFIterator i;1215 for ( i = f; i.hasTerms(); i++ )1216 {1217 c = i.coeff();1218 if ( c.inCoeffDomain())1219 {1220 if ( c > qh )1221 result += power( x, i.exp() ) * (c - q);1222 else1223 result += power( x, i.exp() ) * c;1224 }1225 else1226 result += power( x, i.exp() ) * balance_p(c,q);1227 }1228 return result;1229 }1230 1234 1231 1235 TIMING_DEFINE_PRINT(chinrem_termination) -
factory/cf_gcd_smallp.cc
rc90500 r3e7db4 414 414 Variable chooseExtension (const Variable & alpha) 415 415 { 416 zz_p::init (getCharacteristic()); 416 if (fac_NTL_char != getCharacteristic()) 417 { 418 fac_NTL_char= getCharacteristic(); 419 zz_p::init (getCharacteristic()); 420 } 417 421 zz_pX NTLIrredpoly; 418 422 int i, m; … … 440 444 { 441 445 int p= getCharacteristic(); 442 zz_p::init (p); 446 if (p != fac_NTL_char) 447 { 448 fac_NTL_char= p; 449 zz_p::init (p); 450 } 443 451 zz_pX NTLirredpoly; 444 452 //TODO: replace d by max_{i} (deg_x{i}(f)) … … 1333 1341 { 1334 1342 int p= getCharacteristic(); 1335 zz_p::init (p); 1343 if (fac_NTL_char != p) 1344 { 1345 fac_NTL_char= p; 1346 zz_p::init (p); 1347 } 1336 1348 zz_pX NTLirredpoly; 1337 1349 CanonicalForm CFirredpoly; … … 1988 2000 nmod_mat_t FLINTN; 1989 2001 convertFacCFMatrix2nmod_mat_t (FLINTN, *N); 1990 long* dummy= new long [M.rows()]; 1991 for (int i= 0; i < M.rows(); i++) 1992 dummy[i]= 0; 1993 long rk= nmod_mat_rref (dummy, FLINTN); 2002 long rk= nmod_mat_rref (FLINTN); 1994 2003 1995 2004 N= convertNmod_mat_t2FacCFMatrix (FLINTN); 1996 2005 nmod_mat_clear (FLINTN); 1997 delete dummy;1998 2006 #else 1999 2007 int p= getCharacteristic (); 2000 zz_p::init (p); 2008 if (fac_NTL_char != p) 2009 { 2010 fac_NTL_char= p; 2011 zz_p::init (p); 2012 } 2001 2013 mat_zz_p *NTLN= convertFacCFMatrix2NTLmat_zz_p(*N); 2002 2014 long rk= gauss (*NTLN); … … 2028 2040 (*N) (j, M.columns() + 1)= L[i]; 2029 2041 int p= getCharacteristic (); 2030 zz_p::init (p); 2042 if (fac_NTL_char != p) 2043 { 2044 fac_NTL_char= p; 2045 zz_p::init (p); 2046 } 2031 2047 zz_pX NTLMipo= convertFacCF2NTLzzpX (getMipo (alpha)); 2032 2048 zz_pE::init (NTLMipo); … … 2063 2079 nmod_mat_t FLINTN; 2064 2080 convertFacCFMatrix2nmod_mat_t (FLINTN, *N); 2065 long* dummy= new long [M.rows()]; 2066 for (int i= 0; i < M.rows(); i++) 2067 dummy[i]= 0; 2068 long rk= nmod_mat_rref (dummy, FLINTN); 2081 long rk= nmod_mat_rref (FLINTN); 2069 2082 #else 2070 2083 int p= getCharacteristic (); 2071 zz_p::init (p); 2084 if (fac_NTL_char != p) 2085 { 2086 fac_NTL_char= p; 2087 zz_p::init (p); 2088 } 2072 2089 mat_zz_p *NTLN= convertFacCFMatrix2NTLmat_zz_p(*N); 2073 2090 long rk= gauss (*NTLN); … … 2077 2094 #ifdef HAVE_FLINT 2078 2095 nmod_mat_clear (FLINTN); 2079 delete dummy;2080 2096 #endif 2081 2097 delete N; … … 2085 2101 N= convertNmod_mat_t2FacCFMatrix (FLINTN); 2086 2102 nmod_mat_clear (FLINTN); 2087 delete dummy;2088 2103 #else 2089 2104 N= convertNTLmat_zz_p2FacCFMatrix (*NTLN); … … 2109 2124 (*N) (j, M.columns() + 1)= L[i]; 2110 2125 int p= getCharacteristic (); 2111 zz_p::init (p); 2126 if (fac_NTL_char != p) 2127 { 2128 fac_NTL_char= p; 2129 zz_p::init (p); 2130 } 2112 2131 zz_pX NTLMipo= convertFacCF2NTLzzpX (getMipo (alpha)); 2113 2132 zz_pE::init (NTLMipo); … … 4547 4566 } 4548 4567 4549 if( gcd_test_one( F, G, false ) ) 4568 int dummy= 0; 4569 if( gcd_test_one( F, G, false, dummy ) ) 4550 4570 { 4551 4571 return N (d); … … 4562 4582 { 4563 4583 if (p == 2) 4564 setCharacteristic (2, 6, 'Z');4584 setCharacteristic (2, 12, 'Z'); 4565 4585 else if (p == 3) 4566 4586 setCharacteristic (3, 4, 'Z'); … … 4593 4613 if (p == 2 && d < 6) 4594 4614 { 4595 zz_p::init (p); 4615 if (fac_NTL_char != p) 4616 { 4617 fac_NTL_char= p; 4618 zz_p::init (p); 4619 } 4596 4620 bool primFail= false; 4597 4621 Variable vBuf; … … 4617 4641 else if ((p == 3 && d < 4) || ((p == 5 || p == 7) && d < 3)) 4618 4642 { 4619 zz_p::init (p); 4643 if (fac_NTL_char != p) 4644 { 4645 fac_NTL_char= p; 4646 zz_p::init (p); 4647 } 4620 4648 bool primFail= false; 4621 4649 Variable vBuf; -
factory/cf_map_ext.cc
rc90500 r3e7db4 67 67 { 68 68 int p= getCharacteristic (); 69 zz_p::init (p); 69 if (fac_NTL_char != p) 70 { 71 fac_NTL_char= p; 72 zz_p::init (p); 73 } 70 74 zz_pX NTL_mipo= convertFacCF2NTLzzpX (getMipo (beta)); 71 75 zz_pE::init (NTL_mipo); … … 325 329 int d= degree (mipo); 326 330 int p= getCharacteristic (); 327 zz_p::init (p); 331 if (fac_NTL_char != p) 332 { 333 fac_NTL_char= p; 334 zz_p::init (p); 335 } 328 336 zz_pX NTL_mipo; 329 337 CanonicalForm mipo2; … … 378 386 CanonicalForm primElemMipo= findMinPoly (primElem, alpha); 379 387 int p= getCharacteristic (); 380 zz_p::init (p); 388 if (fac_NTL_char != p) 389 { 390 fac_NTL_char= p; 391 zz_p::init (p); 392 } 381 393 zz_pX NTLMipo= convertFacCF2NTLzzpX (getMipo (beta)); 382 394 zz_pE::init (NTLMipo); … … 399 411 } 400 412 int p= getCharacteristic (); 401 zz_p::init (p); 413 if (fac_NTL_char != p) 414 { 415 fac_NTL_char= p; 416 zz_p::init (p); 417 } 402 418 zz_pX NTL_mipo= convertFacCF2NTLzzpX (getMipo (beta)); 403 419 zz_pE::init (NTL_mipo); … … 422 438 ASSERT (F.isUnivariate() && F.mvar()==alpha,"expected element of F_p(alpha)"); 423 439 424 zz_p::init (getCharacteristic()); 440 if (fac_NTL_char != getCharacteristic()) 441 { 442 fac_NTL_char= getCharacteristic(); 443 zz_p::init (getCharacteristic()); 444 } 425 445 zz_pX NTLF= convertFacCF2NTLzzpX (F); 426 446 int d= degree (getMipo (alpha)); -
factory/configure.ac
rc90500 r3e7db4 21 21 AM_MAINTAINER_MODE 22 22 AM_INIT_AUTOMAKE([-Wall foreign subdir-objects]) # -Wno-extra-portability -Werror silent-rules 23 m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES]) 24 m4_ifdef([AM_PROG_AR], [AM_PROG_AR]) 25 23 26 24 27 # Add pre'prefixed config -
factory/facAlgExt.cc
rc90500 r3e7db4 35 35 TIMING_DEFINE_PRINT(fac_alg_sqrf) 36 36 TIMING_DEFINE_PRINT(fac_alg_factor_sqrf) 37 TIMING_DEFINE_PRINT(fac_alg_time_shift) 37 38 38 39 // squarefree part of F … … 126 127 ASSERT (degree (norm, alpha) <= 0, "wrong norm computed"); 127 128 TIMING_START (fac_alg_factor_norm); 129 bool save_sort= !isOn (SW_USE_NTL_SORT); 130 On (SW_USE_NTL_SORT); 128 131 CFFList normFactors= factorize (norm); 132 if (save_sort) 133 Off (SW_USE_NTL_SORT); 129 134 TIMING_END_AND_PRINT (fac_alg_factor_norm, "time to factor norm: "); 130 135 CFList factors; … … 136 141 137 142 normFactors.removeFirst(); 143 CFFListIterator i= normFactors; 138 144 CanonicalForm buf; 139 buf= f; 145 bool shiftBuf= false; 146 if (!(normFactors.length() == 2 && degree (i.getItem().factor()) <= degree (f))) 147 { 148 TIMING_START (fac_alg_time_shift); 149 if (shift != 0) 150 buf= f (f.mvar() - shift*alpha, f.mvar()); 151 else 152 buf= f; 153 shiftBuf= true; 154 TIMING_END_AND_PRINT (fac_alg_time_shift, "time to shift: "); 155 } 156 else 157 buf= f; 140 158 CanonicalForm factor; 141 for (CFFListIterator i= normFactors; i.hasItem(); i++) 159 int count= 0; 160 for (; i.hasItem(); i++) 142 161 { 143 162 ASSERT (i.getItem().exp() == 1, "norm not squarefree"); 144 163 TIMING_START (fac_alg_gcd); 145 if (shift == 0)164 if (shiftBuf) 146 165 factor= gcd (buf, i.getItem().factor()); 147 166 else 148 factor= gcd (buf, i.getItem().factor() (f.mvar() + shift*alpha, f.mvar())); 167 { 168 if (shift == 0) 169 factor= gcd (buf, i.getItem().factor()); 170 else 171 factor= gcd (buf, i.getItem().factor() (f.mvar() + shift*alpha, f.mvar())); 172 } 149 173 buf /= factor; 174 if (shiftBuf) 175 { 176 if (shift != 0) 177 factor= factor (f.mvar() + shift*alpha, f.mvar()); 178 } 150 179 TIMING_END_AND_PRINT (fac_alg_gcd, "time to recover factors: "); 151 180 factors.append (factor); 181 count++; 182 if (normFactors.length() - 1 == count) 183 { 184 if (shiftBuf) 185 factors.append (buf (f.mvar() + shift*alpha, f.mvar())); 186 else 187 factors.append (buf); 188 buf= 1; 189 break; 190 } 152 191 } 153 192 ASSERT (degree (buf) <= 0, "incomplete factorization"); -
factory/facBivar.cc
rc90500 r3e7db4 102 102 K *= degs[i] + 1; 103 103 } 104 K /= power (CanonicalForm (2), k); 105 K= K.sqrt()+1; 104 K /= power (CanonicalForm (2), k/2); 106 105 K *= power (CanonicalForm (2), M); 107 106 int N= degree (mipo); 108 107 CanonicalForm b; 109 108 b= 2*power (maxNorm (f), N)*power (maxNorm (mipo), 4*N)*K* 110 power (CanonicalForm (2), N)* (CanonicalForm (M+1).sqrt()+1)*111 power (CanonicalForm (N+1) .sqrt()+1, 7*N);109 power (CanonicalForm (2), N)* 110 power (CanonicalForm (N+1), 4*N); 112 111 b /= power (abs (lc (mipo)), N); 113 114 ZZX NTLmipo= convertFacCF2NTLZZX (mipo);115 ZZX NTLLcf= convertFacCF2NTLZZX (Lc (f));116 ZZ NTLf= resultant (NTLmipo, NTLLcf);117 ZZ NTLD= discriminant (NTLmipo);118 b /= abs (convertZZ2CF (NTLf))*abs (convertZZ2CF (NTLD));119 112 120 113 CanonicalForm B = p; … … 357 350 (prod (bufUniFactors) == bufAeval)); 358 351 352 if (bufUniFactors.getFirst().inCoeffDomain()) 353 bufUniFactors.removeFirst(); 354 355 if (bufUniFactors.length() == 1) 356 { 357 factors.append (A); 358 359 appendSwapDecompress (factors, conv (contentAxFactors), 360 conv (contentAyFactors), swap, swap2, N); 361 362 if (isOn (SW_RATIONAL)) 363 normalize (factors); 364 return factors; 365 } 366 359 367 TIMING_START (fac_uni_factorizer); 360 368 if (extension) … … 367 375 (prod (bufUniFactors2) == bufAeval2)); 368 376 369 if (bufUniFactors.getFirst().inCoeffDomain())370 bufUniFactors.removeFirst();371 377 if (bufUniFactors2.getFirst().inCoeffDomain()) 372 378 bufUniFactors2.removeFirst(); 373 if (bufUniFactors .length() == 1 || bufUniFactors2.length() == 1)379 if (bufUniFactors2.length() == 1) 374 380 { 375 381 factors.append (A); -
factory/facFactorize.cc
rc90500 r3e7db4 401 401 oldAeval[i]= Aeval2[i]; 402 402 403 getLeadingCoeffs (A, Aeval2 , uniFactors, evaluation);403 getLeadingCoeffs (A, Aeval2); 404 404 405 405 CFList biFactorsLCs; … … 622 622 !isOnlyLeadingCoeff(iter2.getItem())) //content divides LCmultiplier completely and factor consists of more terms than just the leading coeff 623 623 { 624 int index2= 1; 625 for (CFListIterator iter3= leadingCoeffs2[lengthAeval2-1]; 626 iter3.hasItem(); iter3++, index2++) 624 Variable xx= Variable (2); 625 CanonicalForm vars; 626 vars= power (xx, degree (LC (getItem(oldBiFactors, index),1), 627 xx)); 628 for (int i= 0; i < lengthAeval2; i++) 627 629 { 628 if (index2 == index) 630 if (oldAeval[i].isEmpty()) 631 continue; 632 xx= oldAeval[i].getFirst().mvar(); 633 vars *= power (xx, degree (LC (getItem(oldAeval[i], index),1), 634 xx)); 635 } 636 if (vars.level() <= 2) 637 { 638 int index2= 1; 639 for (CFListIterator iter3= leadingCoeffs2[lengthAeval2-1]; 640 iter3.hasItem(); iter3++, index2++) 629 641 { 630 iter3.getItem() /= LCmultiplier; 631 break; 642 if (index2 == index) 643 { 644 iter3.getItem() /= LCmultiplier; 645 break; 646 } 632 647 } 648 A /= LCmultiplier; 649 foundMultiplier= true; 650 iter.getItem()= 1; 633 651 } 634 A /= LCmultiplier;635 foundMultiplier= true;636 iter.getItem()= 1;637 652 } 638 653 } -
factory/facFqBivar.cc
rc90500 r3e7db4 155 155 "univariate polynomial expected or constant expected"); 156 156 CFFList factorsA; 157 zz_p::init (getCharacteristic()); 157 if (fac_NTL_char != getCharacteristic()) 158 { 159 fac_NTL_char= getCharacteristic(); 160 zz_p::init (getCharacteristic()); 161 } 158 162 if (GF) 159 163 { … … 408 412 if (recombination) 409 413 { 410 appendTestMapDown (result, buf (y - eval, y), info, source, 414 buf= buf (y-eval,y); 415 buf /= Lc (buf); 416 appendTestMapDown (result, buf, info, source, 411 417 dest); 412 418 F= 1; … … 435 441 if (recombination) 436 442 { 437 appendTestMapDown (result, buf (y - eval, y), info, source, dest); 443 buf= buf (y-eval,y); 444 buf /= Lc (buf); 445 appendTestMapDown (result, buf, info, source, dest); 438 446 F= 1; 439 447 return result; … … 587 595 On (SW_RATIONAL); 588 596 g /= content (g, x); 597 if (!isRat) 598 { 599 On (SW_RATIONAL); 600 g *= bCommonDen (g); 601 Off (SW_RATIONAL); 602 g /= icontent (g); 603 On (SW_RATIONAL); 604 } 589 605 if (fdivides (g, buf, quot)) 590 606 { … … 673 689 Variable chooseExtension (const Variable & alpha, const Variable& beta, int k) 674 690 { 675 zz_p::init (getCharacteristic()); 691 if (fac_NTL_char != getCharacteristic()) 692 { 693 fac_NTL_char= getCharacteristic(); 694 zz_p::init (getCharacteristic()); 695 } 676 696 zz_pX NTLIrredpoly; 677 697 int i=1, m= 2; … … 754 774 On (SW_RATIONAL); 755 775 g /= content (g, x); 776 if (!isRat) 777 { 778 On (SW_RATIONAL); 779 g *= bCommonDen (g); 780 Off (SW_RATIONAL); 781 g /= icontent (g); 782 On (SW_RATIONAL); 783 } 756 784 if (fdivides (g, buf, quot)) 757 785 { … … 1764 1792 buf /= content (buf, x); 1765 1793 buf2= buf (y-evaluation, y); 1794 buf2 /= Lc (buf2); 1766 1795 if (!k && beta == x) 1767 1796 { … … 1844 1873 buf /= content (buf, x); 1845 1874 buf2= buf (y-evaluation, y); 1875 buf2 /= Lc (buf2); 1846 1876 if (!k && beta == x) 1847 1877 { … … 2019 2049 tmp1= tmp1 (y - evaluation, y); 2020 2050 tmp2= tmp2 (y - evaluation, y); 2051 tmp1 /= Lc (tmp1); 2052 tmp2 /= Lc (tmp2); 2021 2053 if (!k && beta == x && degree (tmp2, alpha) < 1 && 2022 2054 degree (tmp1, alpha) < 1) … … 2073 2105 buf /= content (buf, x); 2074 2106 buf2= buf (y - evaluation, y); 2107 buf2 /= Lc (buf2); 2075 2108 if (!k && beta == x) 2076 2109 { … … 2148 2181 tmp1= tmp1 (y - evaluation, y); 2149 2182 tmp2= tmp2 (y - evaluation, y); 2183 tmp1 /= Lc (tmp1); 2184 tmp2 /= Lc (tmp2); 2150 2185 if (!k && beta == x && degree (tmp2, alpha) < 1 && 2151 2186 degree (tmp1, alpha) < 1) … … 2202 2237 buf /= content (buf, x); 2203 2238 buf2= buf (y - evaluation, y); 2239 buf2 /= Lc (buf2); 2204 2240 if (!k && beta == x) 2205 2241 { … … 2350 2386 } 2351 2387 delete [] A; 2388 if (!wasInBounds) 2389 { 2390 if (start) 2391 henselLiftResume12 (F, factors, start, degree (F) + 1, Pi, diophant, M); 2392 else 2393 henselLift12 (F, factors, degree (F) + 1, Pi, diophant, M); 2394 factors.insert (LCF); 2395 } 2352 2396 return l; 2353 2397 } … … 2472 2516 } 2473 2517 delete [] A; 2518 if (!wasInBounds) 2519 { 2520 if (start) 2521 henselLiftResume12 (F, factors, start, degree (F) + 1, Pi, diophant, M); 2522 else 2523 henselLift12 (F, factors, degree (F) + 1, Pi, diophant, M); 2524 factors.insert (LCF); 2525 } 2474 2526 return l; 2475 2527 } … … 2652 2704 } 2653 2705 delete [] A; 2706 if (!wasInBounds) 2707 { 2708 if (start) 2709 henselLiftResume12 (F, factors, start, degree (F) + 1, Pi, diophant, M); 2710 else 2711 henselLift12 (F, factors, degree (F) + 1, Pi, diophant, M); 2712 factors.insert (LCF); 2713 } 2654 2714 return l; 2655 2715 } … … 2851 2911 } 2852 2912 delete [] A; 2913 if (!wasInBounds) 2914 { 2915 if (start) 2916 henselLiftResume12 (F, factors, start, degree (F) + 1, Pi, diophant, M); 2917 else 2918 henselLift12 (F, factors, degree (F) + 1, Pi, diophant, M); 2919 factors.insert (LCF); 2920 } 2853 2921 return l; 2854 2922 } … … 2970 3038 } 2971 3039 delete [] A; 3040 if (!wasInBounds) 3041 { 3042 if (start) 3043 henselLiftResume12 (F, factors, start, degree (F) + 1, Pi, diophant, M); 3044 else 3045 henselLift12 (F, factors, degree (F) + 1, Pi, diophant, M); 3046 factors.insert (LCF); 3047 } 2972 3048 return l; 2973 3049 } … … 3137 3213 } 3138 3214 delete [] A; 3215 if (!wasInBounds) 3216 { 3217 if (start) 3218 henselLiftResume12 (F, factors, start, degree (F) + 1, Pi, diophant, M); 3219 else 3220 henselLift12 (F, factors, degree (F) + 1, Pi, diophant, M); 3221 factors.insert (LCF); 3222 } 3139 3223 return l; 3140 3224 } … … 3500 3584 { 3501 3585 delete [] bounds; 3502 CanonicalForm G= F; 3586 Variable y= Variable (2); 3587 CanonicalForm tmp= F (y - evaluation, y); 3588 CFList source, dest; 3589 tmp= mapDown (tmp, info, source, dest); 3503 3590 F= 1; 3504 return CFList ( G);3591 return CFList (tmp); 3505 3592 } 3506 3593 3507 3594 CFArray * A= new CFArray [factors.length()]; 3508 3595 CFArray bufQ= CFArray (factors.length()); 3509 zz_p::init (getCharacteristic()); 3596 if (fac_NTL_char != getCharacteristic()) 3597 { 3598 fac_NTL_char= getCharacteristic(); 3599 zz_p::init (getCharacteristic()); 3600 } 3510 3601 mat_zz_p NTLN; 3511 3602 ident (NTLN, factors.length()); … … 3700 3791 CFArray * A= new CFArray [factors.length()]; 3701 3792 CFArray bufQ= CFArray (factors.length()); 3702 zz_p::init (getCharacteristic()); 3793 if (fac_NTL_char != getCharacteristic()) 3794 { 3795 fac_NTL_char= getCharacteristic(); 3796 zz_p::init (getCharacteristic()); 3797 } 3703 3798 zz_pX NTLMipo= convertFacCF2NTLzzpX (getMipo (alpha)); 3704 3799 zz_pE::init (NTLMipo); … … 5599 5694 { 5600 5695 i= 1; 5601 while (( degree (F,y)/4)*i+ 4 <= smallFactorDeg)5696 while (((degree (F,y)/4)*i+1) + 4 <= smallFactorDeg) 5602 5697 i++; 5603 5698 while (i < 5) 5604 5699 { 5605 dummy= tmin (degree (F,y)+1, ( degree (F,y)/4)*i+4);5700 dummy= tmin (degree (F,y)+1, ((degree (F,y)/4)+1)*i+4); 5606 5701 if (l < dummy) 5607 5702 { … … 5758 5853 { 5759 5854 i= 1; 5760 while ((degree (F,y)/4 )*i + 4 <= smallFactorDeg)5855 while ((degree (F,y)/4+1)*i + 4 <= smallFactorDeg) 5761 5856 i++; 5762 5857 while (i < 5) 5763 5858 { 5764 dummy= tmin (degree (F,y)+1, (degree (F,y)/4 )*i+4);5859 dummy= tmin (degree (F,y)+1, (degree (F,y)/4+1)*i+4); 5765 5860 if (l < dummy) 5766 5861 { … … 5906 6001 { 5907 6002 i= 1; 5908 while ((degree (F,y)/4 )*i + 4 <= smallFactorDeg)6003 while ((degree (F,y)/4+1)*i + 4 <= smallFactorDeg) 5909 6004 i++; 5910 6005 while (i < 5) 5911 6006 { 5912 dummy= tmin (degree (F,y)+1, (degree (F,y)/4 )*i+4);6007 dummy= tmin (degree (F,y)+1, (degree (F,y)/4+1)*i+4); 5913 6008 if (l < dummy) 5914 6009 { … … 6158 6253 nmod_mat_t FLINTN; 6159 6254 #else 6160 zz_p::init (getCharacteristic()); 6255 if (fac_NTL_char != getCharacteristic()) 6256 { 6257 fac_NTL_char= getCharacteristic(); 6258 zz_p::init (getCharacteristic()); 6259 } 6161 6260 mat_zz_p NTLN; 6162 6261 #endif … … 6265 6364 { 6266 6365 #ifdef HAVE_FLINT 6267 nmod_mat_clear (FLINTN); 6366 if (alpha.level() == 1 || (alpha.level() != 1 && reduceFq2Fp)) 6367 nmod_mat_clear (FLINTN); 6268 6368 #endif 6269 6369 delete [] bounds; 6270 6370 return Union (smallFactors, 6271 6371 factorRecombination (bufUniFactors, F, 6272 power (y, degree (F) + 1 + degree (LCF)),6372 power (y, degree (F) + 1), 6273 6373 degs, 1, bufUniFactors.length()/2 6274 6374 ) … … 6280 6380 { 6281 6381 #ifdef HAVE_FLINT 6282 nmod_mat_clear (FLINTN); 6382 if (alpha.level() == 1 || (alpha.level() != 1 && reduceFq2Fp)) 6383 nmod_mat_clear (FLINTN); 6283 6384 #endif 6284 6385 delete [] bounds; … … 6328 6429 if (result.length() == nmod_mat_ncols (FLINTN)) 6329 6430 { 6330 nmod_mat_clear (FLINTN); 6431 if (alpha.level() == 1 || (alpha.level() != 1 && reduceFq2Fp)) 6432 nmod_mat_clear (FLINTN); 6331 6433 #else 6332 6434 if (result.length() == NTLN.NumCols()) … … 6342 6444 if (result.length() == NTLNe.NumCols()) 6343 6445 { 6344 #ifdef HAVE_FLINT6345 nmod_mat_clear (FLINTN);6346 #endif6347 6446 delete [] factorsFoundIndex; 6348 6447 delete [] bounds; … … 6375 6474 int factorsFound= 0; 6376 6475 if (alpha.level() == 1 || (alpha.level() != 1 && reduceFq2Fp)) 6377 reconstructionTry (result, bufF, bufUniFactors, degree (F) + 1 + degree6378 #ifdef HAVE_FLINT 6379 (LCF),factorsFound, factorsFoundIndex, FLINTN, false6380 #else 6381 (LCF),factorsFound, factorsFoundIndex, NTLN, false6476 reconstructionTry (result, bufF, bufUniFactors, degree (F) + 1, 6477 #ifdef HAVE_FLINT 6478 factorsFound, factorsFoundIndex, FLINTN, false 6479 #else 6480 factorsFound, factorsFoundIndex, NTLN, false 6382 6481 #endif 6383 6482 ); 6384 6483 else 6385 reconstructionTry (result, bufF, bufUniFactors, degree (F) + 1 + degree6386 (LCF),factorsFound, factorsFoundIndex, NTLNe, false6484 reconstructionTry (result, bufF, bufUniFactors, degree (F) + 1, 6485 factorsFound, factorsFoundIndex, NTLNe, false 6387 6486 ); 6388 6487 if (alpha.level() == 1 || (alpha.level() != 1 && reduceFq2Fp)) … … 6405 6504 if (result.length() == NTLNe.NumCols()) 6406 6505 { 6407 #ifdef HAVE_FLINT6408 nmod_mat_clear (FLINTN);6409 #endif6410 6506 delete [] factorsFoundIndex; 6411 6507 delete [] bounds; … … 6483 6579 if (result.length() == NTLNe.NumCols()) 6484 6580 { 6485 #ifdef HAVE_FLINT6486 nmod_mat_clear (FLINTN);6487 #endif6488 6581 delete [] bounds; 6489 6582 return Union (result, smallFactors); … … 6629 6722 { 6630 6723 #ifdef HAVE_FLINT 6631 nmod_mat_clear (FLINTN); 6724 if (alpha.level() == 1 || (alpha.level() != 1 && reduceFq2Fp)) 6725 nmod_mat_clear (FLINTN); 6632 6726 #endif 6633 6727 delete [] bounds; … … 6648 6742 { 6649 6743 #ifdef HAVE_FLINT 6650 nmod_mat_clear (FLINTN); 6744 if (alpha.level() == 1 || (alpha.level() != 1 && reduceFq2Fp)) 6745 nmod_mat_clear (FLINTN); 6651 6746 #endif 6652 6747 result.append (bufF); … … 6654 6749 } 6655 6750 #ifdef HAVE_FLINT 6656 nmod_mat_clear (FLINTN); 6751 if (alpha.level() == 1 || (alpha.level() != 1 && reduceFq2Fp)) 6752 nmod_mat_clear (FLINTN); 6657 6753 #endif 6658 6754 return Union (result, henselLiftAndLatticeRecombi (bufF, bufUniFactors, … … 6713 6809 if (result.length()== NTLNe.NumCols()) 6714 6810 { 6715 #ifdef HAVE_FLINT6716 nmod_mat_clear (FLINTN);6717 #endif6718 6811 delete [] bounds; 6719 6812 result= Union (result, smallFactors); … … 6772 6865 if (result.length() == NTLNe.NumCols()) 6773 6866 { 6774 #ifdef HAVE_FLINT6775 nmod_mat_clear (FLINTN);6776 #endif6777 6867 delete [] bounds; 6778 6868 result= Union (result, smallFactors); … … 6792 6882 bounds= computeBounds (F, d, isIrreducible); 6793 6883 #ifdef HAVE_FLINT 6794 nmod_mat_clear (FLINTN); 6884 if (alpha.level() == 1 || (alpha.level() != 1 && reduceFq2Fp)) 6885 nmod_mat_clear (FLINTN); 6795 6886 #endif 6796 6887 if (isIrreducible) … … 6811 6902 { 6812 6903 result= Union (result, smallFactors); 6813 CanonicalForm MODl= power (y, degree (F) + 1 + degree (LC (F, 1)));6904 CanonicalForm MODl= power (y, degree (F) + 1); 6814 6905 delete [] bounds; 6815 6906 return Union (result, factorRecombination (bufUniFactors, F, MODl, degs, 1, … … 7028 7119 int l= 1; 7029 7120 7030 zz_p::init (getCharacteristic()); 7121 if (fac_NTL_char != getCharacteristic()) 7122 { 7123 fac_NTL_char= getCharacteristic(); 7124 zz_p::init (getCharacteristic()); 7125 } 7031 7126 zz_pX NTLMipo; 7032 7127 mat_zz_p NTLN; … … 7060 7155 return Union (smallFactors, extFactorRecombination 7061 7156 (bufUniFactors, F, 7062 power (y, degree (F) + 1 + degree (LCF)),info,7157 power (y, degree (F) + 1),info, 7063 7158 degs, evaluation, 1, bufUniFactors.length()/2 7064 7159 ) … … 7113 7208 int factorsFound= 0; 7114 7209 7115 extReconstructionTry (result, bufF, bufUniFactors, degree (F) + 1 + degree7116 (LCF),factorsFound, factorsFoundIndex, NTLN, false,7210 extReconstructionTry (result, bufF, bufUniFactors, degree (F) + 1, 7211 factorsFound, factorsFoundIndex, NTLN, false, 7117 7212 info, evaluation 7118 7213 ); … … 7242 7337 if (degs.getLength() == 1 || bufUniFactors.length() == 1) 7243 7338 { 7244 result.append (bufF); 7339 CFList source, dest; 7340 CanonicalForm tmp= bufF (y - evaluation, y); 7341 tmp= mapDown (tmp, info, source, dest); 7342 result.append (tmp); 7245 7343 return result; 7246 7344 } … … 7309 7407 { 7310 7408 result= Union (result, smallFactors); 7311 CanonicalForm MODl= power (y, degree (F) + 1 + degree (LC (F, 1)));7409 CanonicalForm MODl= power (y, degree (F) + 1); 7312 7410 delete [] bounds; 7313 7411 return Union (result, extFactorRecombination (bufUniFactors, F, MODl, info, … … 7599 7697 } 7600 7698 7601 if (i == 0 )7699 if (i == 0 && !extension) 7602 7700 { 7603 7701 if (subCheck1 > 0) -
factory/facFqBivarUtil.cc
rc90500 r3e7db4 504 504 CanonicalForm G3= div (G, xToOldL); 505 505 CanonicalForm Up= mulMod2 (G3, oldQ, xToLOldL); 506 CanonicalForm xToOldL2= power (x, oldL/2);506 CanonicalForm xToOldL2= power (x, (oldL+1)/2); 507 507 CanonicalForm G2= mod (G, xToOldL); 508 508 CanonicalForm G1= div (G2, xToOldL2); … … 510 510 CanonicalForm oldQ1= div (oldQ, xToOldL2); 511 511 CanonicalForm oldQ0= mod (oldQ, xToOldL2); 512 CanonicalForm Mid= mulMod2 (G1, oldQ1, xToLOldL); 512 CanonicalForm Mid; 513 if (oldL % 2 == 1) 514 Mid= mulMod2 (G1, oldQ1*x, xToLOldL); 515 else 516 Mid= mulMod2 (G1, oldQ1, xToLOldL); 513 517 //computation of Low might be faster using a real middle product? 514 518 CanonicalForm Low= mulMod2 (G0, oldQ1, xToOldL)+mulMod2 (G1, oldQ0, xToOldL); 515 Low= div (Low, xToOldL2); 519 Low= div (Low, power (x, oldL/2)); 520 Low= mod (Low, xToLOldL); 516 521 Up += Mid + Low; 517 522 bufF= div (F, xToOldL); -
factory/facFqFactorize.cc
rc90500 r3e7db4 1576 1576 CFList result; 1577 1577 result.append (LCF); 1578 for (int k= 1; k <= factors.length(); k++) 1579 result.append (LCF); 1578 for (int j= 1; j <= factors.length(); j++) 1579 result.append (1); 1580 result= distributeContent (result, differentSecondVarLCs, lSecondVarLCs); 1581 if (!result.getFirst().inCoeffDomain()) 1582 { 1583 CFListIterator iter= result; 1584 CanonicalForm tmp= iter.getItem(); 1585 iter++; 1586 for (; iter.hasItem(); iter++) 1587 iter.getItem() *= tmp; 1588 } 1580 1589 y= Variable (1); 1581 1590 delete [] bufSqrfFactors; … … 1589 1598 CFList result; 1590 1599 result.append (LCF); 1591 for (int k= 1; k <= factors.length(); k++) 1592 result.append (LCF); 1600 for (int j= 1; j <= factors.length(); j++) 1601 result.append (1); 1602 result= distributeContent (result, differentSecondVarLCs, lSecondVarLCs); 1603 if (!result.getFirst().inCoeffDomain()) 1604 { 1605 CFListIterator iter= result; 1606 CanonicalForm tmp= iter.getItem(); 1607 iter++; 1608 for (; iter.hasItem(); iter++) 1609 iter.getItem() *= tmp; 1610 } 1593 1611 y= Variable (1); 1594 1612 delete [] bufSqrfFactors; … … 1937 1955 1938 1956 1939 void getLeadingCoeffs (const CanonicalForm& A, CFList*& Aeval, 1940 const CFList& uniFactors, const CFList& evaluation 1957 void getLeadingCoeffs (const CanonicalForm& A, CFList*& Aeval 1941 1958 ) 1942 1959 { … … 2562 2579 oldAeval[i]= Aeval2[i]; 2563 2580 2564 getLeadingCoeffs (A, Aeval2 , uniFactors, evaluation);2581 getLeadingCoeffs (A, Aeval2); 2565 2582 2566 2583 CFList biFactorsLCs; … … 2786 2803 !isOnlyLeadingCoeff(iter2.getItem())) //content divides LCmultiplier completely and factor consists of more terms than just the leading coeff 2787 2804 { 2788 int index2= 1; 2789 for (CFListIterator iter3= leadingCoeffs2[lengthAeval2-1]; 2790 iter3.hasItem(); iter3++, index2++) 2805 Variable xx= Variable (2); 2806 CanonicalForm vars; 2807 vars= power (xx, degree (LC (getItem(oldBiFactors, index),1), 2808 xx)); 2809 for (int i= 0; i < lengthAeval2; i++) 2791 2810 { 2792 if (index2 == index) 2811 if (oldAeval[i].isEmpty()) 2812 continue; 2813 xx= oldAeval[i].getFirst().mvar(); 2814 vars *= power (xx, degree (LC (getItem(oldAeval[i], index),1), 2815 xx)); 2816 } 2817 if (vars.level() <= 2) 2818 { 2819 int index2= 1; 2820 for (CFListIterator iter3= leadingCoeffs2[lengthAeval2-1]; 2821 iter3.hasItem(); iter3++, index2++) 2793 2822 { 2794 iter3.getItem() /= LCmultiplier; 2795 break; 2823 if (index2 == index) 2824 { 2825 iter3.getItem() /= LCmultiplier; 2826 break; 2827 } 2796 2828 } 2829 A /= LCmultiplier; 2830 foundMultiplier= true; 2831 iter.getItem()= 1; 2797 2832 } 2798 A /= LCmultiplier;2799 foundMultiplier= true;2800 iter.getItem()= 1;2801 2833 } 2802 2834 } -
factory/facFqFactorize.h
rc90500 r3e7db4 601 601 void 602 602 getLeadingCoeffs (const CanonicalForm& A, ///< [in] some poly 603 CFList*& Aeval ,///< [in,out] array of bivariate603 CFList*& Aeval ///< [in,out] array of bivariate 604 604 ///< factors, returns the leading 605 605 ///< coefficients of these factors 606 const CFList& uniFactors,///< [in] univariate factors of A607 const CFList& evaluation ///< [in] evaluation point608 606 ); 609 607 -
factory/facHensel.cc
rc90500 r3e7db4 30 30 #include "cf_primes.h" 31 31 #include "facBivar.h" 32 #include "facNTLzzpEXGCD.h" 32 33 33 34 #ifdef HAVE_NTL … … 38 39 CFList productsNTL (const CFList& factors, const CanonicalForm& M) 39 40 { 40 zz_p::init (getCharacteristic()); 41 if (fac_NTL_char != getCharacteristic()) 42 { 43 fac_NTL_char= getCharacteristic(); 44 zz_p::init (getCharacteristic()); 45 } 41 46 zz_pX NTLMipo= convertFacCF2NTLzzpX (M); 42 47 zz_pE::init (NTLMipo); … … 100 105 buf1= bufFactors.getFirst(); 101 106 buf2= i.getItem(); 107 #ifdef HAVE_NTL 108 Variable x= Variable (1); 109 if (fac_NTL_char != getCharacteristic()) 110 { 111 fac_NTL_char= getCharacteristic(); 112 zz_p::init (getCharacteristic()); 113 } 114 zz_pX NTLMipo= convertFacCF2NTLzzpX (M); 115 zz_pE::init (NTLMipo); 116 zz_pEX NTLbuf1, NTLbuf2, NTLbuf3, NTLS, NTLT; 117 NTLbuf1= convertFacCF2NTLzz_pEX (buf1, NTLMipo); 118 NTLbuf2= convertFacCF2NTLzz_pEX (buf2, NTLMipo); 119 tryNTLXGCD (NTLbuf3, NTLS, NTLT, NTLbuf1, NTLbuf2, fail); 120 if (fail) 121 return; 122 S= convertNTLzz_pEX2CF (NTLS, x, M.mvar()); 123 T= convertNTLzz_pEX2CF (NTLT, x, M.mvar()); 124 #else 102 125 tryExtgcd (buf1, buf2, M, buf3, S, T, fail); 103 126 if (fail) 104 127 return; 128 #endif 105 129 result.append (S); 106 130 result.append (T); … … 109 133 for (; i.hasItem(); i++) 110 134 { 135 #ifdef HAVE_NTL 136 NTLbuf1= convertFacCF2NTLzz_pEX (i.getItem(), NTLMipo); 137 tryNTLXGCD (NTLbuf3, NTLS, NTLT, NTLbuf3, NTLbuf1, fail); 138 if (fail) 139 return; 140 S= convertNTLzz_pEX2CF (NTLS, x, M.mvar()); 141 T= convertNTLzz_pEX2CF (NTLT, x, M.mvar()); 142 #else 111 143 buf1= i.getItem(); 112 144 tryExtgcd (buf3, buf1, M, buf3, S, T, fail); 113 145 if (fail) 114 146 return; 147 #endif 115 148 CFListIterator k= factors; 116 149 for (CFListIterator j= result; j.hasItem(); j++, k++) … … 417 450 CanonicalForm modulus= p; 418 451 int d= b.getk(); 452 modpk b2; 419 453 for (int i= 1; i < d; i++) 420 454 { … … 423 457 coeffE= coeffE.mapinto(); 424 458 setCharacteristic (0); 459 b2= modpk (p, d - i); 425 460 if (!coeffE.isZero()) 426 461 { … … 432 467 { 433 468 setCharacteristic (p); 434 g= mulNTL (coeffE, j.getItem()); 469 g= modNTL (coeffE, bufFactors[ii]); 470 g= mulNTL (g, j.getItem()); 435 471 g= modNTL (g, bufFactors[ii]); 436 472 setCharacteristic (0); 437 473 k.getItem() += g.mapinto()*modulus; 438 e -= mulNTL (g.mapinto() *modulus, l.getItem(), b);474 e -= mulNTL (g.mapinto(), b2 (l.getItem()), b2)*modulus; 439 475 e= b(e); 440 476 } … … 535 571 Variable beta; 536 572 Off (SW_RATIONAL); 537 if (mipoHasDen) 538 { 539 setReduce (alpha, false); 540 modMipo= modMipo.mapinto(); 541 modMipo /= lc (modMipo); 542 beta= rootOf (modMipo); 543 setReduce (alpha, true); 544 } 573 setReduce (alpha, false); 574 modMipo= modMipo.mapinto(); 575 modMipo /= lc (modMipo); 576 beta= rootOf (modMipo); 577 setReduce (alpha, true); 545 578 546 579 setReduce (alpha, false); 547 580 for (k= 0; k < factors.length(); k++) 548 581 { 549 if (!mipoHasDen) 550 bufFactors [k]= bufFactors[k].mapinto(); 551 else 552 { 553 bufFactors [k]= bufFactors[k].mapinto(); 554 bufFactors [k]= replacevar (bufFactors[k], alpha, beta); 555 } 582 bufFactors [k]= bufFactors[k].mapinto(); 583 bufFactors [k]= replacevar (bufFactors[k], alpha, beta); 556 584 } 557 585 setReduce (alpha, true); … … 596 624 recResult= mapinto (recResult); 597 625 setReduce (alpha, true); 598 if (mipoHasDen) 599 { 600 for (CFListIterator i= recResult; i.hasItem(); i++) 601 i.getItem()= replacevar (i.getItem(), alpha, beta); 602 } 626 627 for (CFListIterator i= recResult; i.hasItem(); i++) 628 i.getItem()= replacevar (i.getItem(), alpha, beta); 603 629 604 630 setCharacteristic (0); … … 606 632 CanonicalForm modulus= p; 607 633 int d= b.getk(); 634 modpk b2; 608 635 for (int i= 1; i < d; i++) 609 636 { … … 621 648 if (mipoHasDen) 622 649 coeffE= replacevar (coeffE, gamma, beta); 650 else 651 coeffE= replacevar (coeffE, alpha, beta); 623 652 setCharacteristic (0); 653 b2= modpk (p, d - i); 624 654 if (!coeffE.isZero()) 625 655 { … … 631 661 { 632 662 setCharacteristic (p); 633 setReduce (alpha, false);634 g= mulNTL ( coeffE, j.getItem());663 g= modNTL (coeffE, bufFactors[ii]); 664 g= mulNTL (g, j.getItem()); 635 665 g= modNTL (g, bufFactors[ii]); 636 setReduce (alpha, true);637 666 setCharacteristic (0); 638 667 if (mipoHasDen) … … 640 669 setReduce (beta, false); 641 670 k.getItem() += replacevar (g.mapinto()*modulus, beta, gamma); 642 e -= mulNTL (replacevar (g.mapinto(), beta, gamma) *modulus,643 l.getItem(), b);671 e -= mulNTL (replacevar (g.mapinto(), beta, gamma), 672 b2 (l.getItem()), b2)*modulus; 644 673 setReduce (beta, true); 645 674 } 646 675 else 647 676 { 648 k.getItem() += g.mapinto()*modulus; 649 e -= mulNTL (g.mapinto()*modulus, l.getItem(), b); 677 setReduce (beta, false); 678 k.getItem() += replacevar (g.mapinto()*modulus, beta, alpha); 679 e -= mulNTL (replacevar (g.mapinto(), beta, alpha), 680 b2 (l.getItem()), b2)*modulus; 681 setReduce (beta, true); 650 682 } 651 683 e= b(e); … … 657 689 } 658 690 691 return result; 692 } 693 694 CFList 695 diophantineQa (const CanonicalForm& F, const CanonicalForm& G, 696 const CFList& factors, modpk& b, const Variable& alpha) 697 { 698 bool fail= false; 699 CFList recResult; 700 CanonicalForm modMipo, mipo; 701 //here SW_RATIONAL is off 702 On (SW_RATIONAL); 703 mipo= getMipo (alpha); 704 bool mipoHasDen= false; 705 if (!bCommonDen (mipo).isOne()) 706 { 707 mipo *= bCommonDen (mipo); 708 mipoHasDen= true; 709 } 710 Off (SW_RATIONAL); 711 int p= b.getp(); 712 setCharacteristic (p); 713 setReduce (alpha, false); 714 while (1) 715 { 716 setCharacteristic (p); 717 modMipo= mapinto (mipo); 718 modMipo /= lc (modMipo); 719 tryDiophantine (recResult, mapinto (F), mapinto (factors), modMipo, fail); 720 if (fail) 721 { 722 int i= 0; 723 while (cf_getBigPrime (i) < p) 724 i++; 725 findGoodPrime (F, i); 726 findGoodPrime (G, i); 727 p=cf_getBigPrime(i); 728 b = coeffBound( G, p, mipo ); 729 modpk bb= coeffBound (F, p, mipo ); 730 if (bb.getk() > b.getk() ) b=bb; 731 fail= false; 732 } 733 else 734 break; 735 } 736 setReduce (alpha, true); 737 setCharacteristic (0); 738 739 Variable gamma= alpha; 740 CanonicalForm den; 741 if (mipoHasDen) 742 { 743 On (SW_RATIONAL); 744 modMipo= getMipo (alpha); 745 den= bCommonDen (modMipo); 746 modMipo *= den; 747 Off (SW_RATIONAL); 748 setReduce (alpha, false); 749 gamma= rootOf (b (modMipo*b.inverse (den))); 750 setReduce (alpha, true); 751 } 752 753 Variable x= Variable (1); 754 CanonicalForm buf1, buf2, buf3, S; 755 CFList bufFactors= factors; 756 CFListIterator i= bufFactors; 757 if (mipoHasDen) 758 { 759 for (; i.hasItem(); i++) 760 i.getItem()= replacevar (i.getItem(), alpha, gamma); 761 } 762 i= bufFactors; 763 CFList result; 764 if (i.hasItem()) 765 i++; 766 buf1= 0; 767 CanonicalForm Freplaced; 768 if (mipoHasDen) 769 { 770 Freplaced= replacevar (F, alpha, gamma); 771 buf2= divNTL (Freplaced, replacevar (i.getItem(), alpha, gamma), b); 772 } 773 else 774 buf2= divNTL (F, i.getItem(), b); 775 ZZ_p::init (convertFacCF2NTLZZ (b.getpk())); 776 ZZ_pX NTLmipo= to_ZZ_pX (convertFacCF2NTLZZX (getMipo (gamma))); 777 ZZ_pE::init (NTLmipo); 778 ZZ_pEX NTLS, NTLT, NTLbuf3; 779 ZZ_pEX NTLbuf1= convertFacCF2NTLZZ_pEX (buf1, NTLmipo); 780 ZZ_pEX NTLbuf2= convertFacCF2NTLZZ_pEX (buf2, NTLmipo); 781 XGCD (NTLbuf3, NTLS, NTLT, NTLbuf1, NTLbuf2); 782 result.append (b (convertNTLZZ_pEX2CF (NTLS, x, gamma))); 783 result.append (b (convertNTLZZ_pEX2CF (NTLT, x, gamma))); 784 if (i.hasItem()) 785 i++; 786 for (; i.hasItem(); i++) 787 { 788 if (mipoHasDen) 789 buf1= divNTL (Freplaced, i.getItem(), b); 790 else 791 buf1= divNTL (F, i.getItem(), b); 792 XGCD (NTLbuf3, NTLS, NTLT, NTLbuf3, convertFacCF2NTLZZ_pEX (buf1, NTLmipo)); 793 CFListIterator k= bufFactors; 794 S= convertNTLZZ_pEX2CF (NTLS, x, gamma); 795 for (CFListIterator j= result; j.hasItem(); j++, k++) 796 { 797 j.getItem()= mulNTL (j.getItem(), S, b); 798 j.getItem()= modNTL (j.getItem(), k.getItem(), b); 799 } 800 result.append (b (convertNTLZZ_pEX2CF (NTLT, x, gamma))); 801 } 659 802 return result; 660 803 } … … 674 817 if (b.getp() != 0) 675 818 { 676 CFList result= diophantine HenselQa (F, G, factors, b, v);819 CFList result= diophantineQa (F, G, factors, b, v); 677 820 return result; 678 821 } -
factory/facMul.cc
rc90500 r3e7db4 503 503 ASSERT (F.isUnivariate() && G.isUnivariate(), "expected univariate polys"); 504 504 ASSERT (F.level() == G.level(), "expected polys of same level"); 505 zz_p::init (getCharacteristic()); 505 if (fac_NTL_char != getCharacteristic()) 506 { 507 fac_NTL_char= getCharacteristic(); 508 zz_p::init (getCharacteristic()); 509 } 506 510 Variable alpha; 507 511 CanonicalForm result; … … 619 623 ASSERT (F.isUnivariate() && G.isUnivariate(), "expected univariate polys"); 620 624 ASSERT (F.level() == G.level(), "expected polys of same level"); 621 zz_p::init (getCharacteristic()); 625 if (fac_NTL_char != getCharacteristic()) 626 { 627 fac_NTL_char= getCharacteristic(); 628 zz_p::init (getCharacteristic()); 629 } 622 630 Variable alpha; 623 631 CanonicalForm result; … … 764 772 ASSERT (F.isUnivariate() && G.isUnivariate(), "expected univariate polys"); 765 773 ASSERT (F.level() == G.level(), "expected polys of same level"); 766 zz_p::init (getCharacteristic()); 774 if (fac_NTL_char != getCharacteristic()) 775 { 776 fac_NTL_char= getCharacteristic(); 777 zz_p::init (getCharacteristic()); 778 } 767 779 Variable alpha; 768 780 CanonicalForm result; … … 2074 2086 int d1= degAx + degBx + 1; 2075 2087 int d2= tmax (degAy, degBy); 2076 zz_p::init (getCharacteristic()); 2088 if (fac_NTL_char != getCharacteristic()) 2089 { 2090 fac_NTL_char= getCharacteristic(); 2091 zz_p::init (getCharacteristic()); 2092 } 2077 2093 zz_pX NTLMipo= convertFacCF2NTLzzpX (getMipo (alpha)); 2078 2094 zz_pE::init (NTLMipo); … … 2733 2749 return; 2734 2750 } 2735 if (!(B.level() == 1 && B.isUnivariate()) &&2736 (A.level() == 1 && A.isUnivariate()))2737 {2738 Q= 0;2739 R= A;2740 return;2741 }2742 2751 2743 2752 Variable x= Variable (1); … … 2834 2843 if (p > 0) 2835 2844 { 2836 zz_p::init (p); 2845 if (fac_NTL_char != p) 2846 { 2847 fac_NTL_char= p; 2848 zz_p::init (p); 2849 } 2837 2850 Variable alpha; 2838 2851 if (hasFirstAlgVar (A, alpha) || hasFirstAlgVar (B, alpha)) -
factory/facMul.h
rc90500 r3e7db4 155 155 const CFList& M ///< [in] contains only powers of Variables 156 156 ); 157 158 #ifdef HAVE_FLINT 159 /// division with remainder of univariate polynomials over Q and Q(a) using 160 /// Newton inversion, satisfying F=G*Q+R, deg(R) < deg(G) 161 void 162 newtonDivrem (const CanonicalForm& F, ///<[in] univariate poly 163 const CanonicalForm& G, ///<[in] univariate poly 164 CanonicalForm& Q, ///<[in, out] quotient 165 CanonicalForm& R ///<[in, out] remainder 166 ); 167 #endif 168 157 169 #endif 158 170 /* FAC_MUL_H */ -
factory/fac_ezgcd.cc
rc90500 r3e7db4 492 492 } 493 493 494 if ( gcd_test_one( F, G, false ) ) 494 int dummy= 0; 495 if ( gcd_test_one( F, G, false, dummy ) ) 495 496 { 496 497 DEBDECLEVEL( cerr, "ezgcd" ); -
factory/fac_util.h
rc90500 r3e7db4 54 54 /*ENDPUBLIC*/ 55 55 56 bool gcd_test_one ( const CanonicalForm & f, const CanonicalForm & g, bool swap );56 bool gcd_test_one ( const CanonicalForm & f, const CanonicalForm & g, bool swap, int & d ); 57 57 58 58 CanonicalForm ezgcd ( const CanonicalForm & f, const CanonicalForm & g ); -
factory/libfac/charset/alg_factor.cc
rc90500 r3e7db4 76 76 { 77 77 current++; 78 }79 80 // replacement for factory's broken psr81 static CanonicalForm82 mypsr ( const CanonicalForm &rr, const CanonicalForm &vv, const Variable & x )83 {84 CanonicalForm r=rr, v=vv, l, test, lu, lv, t, retvalue;85 int dr, dv, d,n=0;86 87 88 dr = degree( r, x );89 dv = degree( v, x );90 if (dv <= dr) {l=LC(v,x); v = v -l*power(x,dv);}91 else { l = 1; }92 d= dr-dv+1;93 while ( ( dv <= dr ) && ( r != r.genZero()) ){94 test = power(x,dr-dv)*v*LC(r,x);95 if ( dr == 0 ) { r= CanonicalForm(0); }96 else { r= r - LC(r,x)*power(x,dr); }97 r= l*r -test;98 dr= degree(r,x);99 n+=1;100 }101 r= power(l, d-n)*r;102 return r;103 78 } 104 79 -
factory/libfac/charset/algfactor.cc
rc90500 r3e7db4 43 43 } 44 44 45 /* unused functions: 45 46 static CFFList 46 47 myDifference(const CFFList & Inputlist1,const CFFList & Inputlist2){ … … 65 66 } 66 67 return 1; 67 } 68 } */ 68 69 69 70 #ifdef CHARSETNADEBUG -
factory/libfac/charset/charset.cc
rc90500 r3e7db4 236 236 if ( ! same( iitem, jitem ) ) 237 237 if ( ! member(jitem, mem)) 238 { 238 239 if ( contractsub(iitem, jitem) ){ 239 240 ts.append(jitem); mem.append(jitem); … … 243 244 ts.append(iitem); 244 245 } 246 } 245 247 } 246 248 } … … 515 517 } 516 518 // CERR << "ind= " << ind << "\n"; 517 if ( (ind == 1)) //&& ( as.length() > 1) )519 if ( ind == 1 ) //&& ( as.length() > 1) ) 518 520 { 519 521 if ( irreducible(AS) ) -
factory/libfac/charset/csutil.cc
rc90500 r3e7db4 657 657 elem = i.getItem(); 658 658 if ( ! elem.isEmpty() ) 659 { 659 660 if ( length <= elem.length() ){ ppi2.append(elem); } 660 661 else { ppi1.append(elem); } 662 } 661 663 } 662 664 } -
factory/libfac/factor/Factor.cc
rc90500 r3e7db4 1 1 /////////////////////////////////////////////////////////////////////////////// 2 static const char * errmsg = "\nYou found a bug!\nPlease inform singular@mathematik.uni-kl.de\nPlease include above information and your input (the ideal/polynomial and characteristic) in your bug-report.\nThank you."; 2 /*static const char * errmsg = "\nYou found a bug!\nPlease inform singular@mathematik.uni-kl.de\nPlease include above information and your input (the ideal/polynomial and characteristic) in your bug-report.\nThank you.";*/ 3 3 /////////////////////////////////////////////////////////////////////////////// 4 4 // FACTORY - Includes -
factory/libfac/factor/SqrFree.cc
rc90500 r3e7db4 1 1 /////////////////////////////////////////////////////////////////////////////// 2 2 // emacs edit mode for this file is -*- C++ -*- 3 static const char * errmsg = "\nYou found a bug!\nPlease inform singular@mathematik.uni-kl.de\n Please include above information and your input (the ideal/polynomial and characteristic) in your bug-report.\nThank you."; 3 /*static const char * errmsg = "\nYou found a bug!\nPlease inform singular@mathematik.uni-kl.de\n Please include above information and your input (the ideal/polynomial and characteristic) in your bug-report.\nThank you.";*/ 4 4 /////////////////////////////////////////////////////////////////////////////// 5 5 // FACTORY - Includes -
findexec/configure.ac
rc90500 r3e7db4 8 8 AM_MAINTAINER_MODE 9 9 AM_INIT_AUTOMAKE([-Wall foreign subdir-objects]) # -Wno-extra-portability -Werror silent-rules 10 m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES]) 11 m4_ifdef([AM_PROG_AR], [AM_PROG_AR]) 12 10 13 11 14 dnl Check if build env is sane -
kernel/fglmvec.cc
rc90500 r3e7db4 133 133 return elems[i - 1]; 134 134 } 135 constnumber getconstelem (int i) const135 number getconstelem (int i) const 136 136 { 137 137 fglmASSERT (0 < i && i <= N, "getconstelem: wrong index"); … … 440 440 } 441 441 442 constnumber fglmVector::getconstelem (int i) const442 number fglmVector::getconstelem (int i) const 443 443 { 444 444 return rep->getconstelem (i); -
kernel/fglmvec.h
rc90500 r3e7db4 54 54 friend fglmVector operator * ( const number n, const fglmVector & v ); 55 55 56 constnumber getconstelem( int i ) const;56 number getconstelem( int i ) const; 57 57 number & getelem( int i ); 58 58 void setelem( int i, number & n ); -
kernel/hutil.cc
rc90500 r3e7db4 1025 1025 if ((x==NULL) || (lm > lx)) 1026 1026 { 1027 if ((x!=NULL)&&(lx>0)) omFreeSize((ADDRESS)x, lx * sizeof(scmon)); 1027 /* according to http://www.singular.uni-kl.de:8002/trac/ticket/463#comment:4 1028 * we need to work around a compiler bug: 1029 * if ((x!=NULL)&&(lx>0)) omFreeSize((ADDRESS)x, lx * sizeof(scmon)); 1030 */ 1031 if (x!=NULL) if (lx>0) omFreeSize((ADDRESS)x, lx * sizeof(scmon)); 1028 1032 monmem->mo = x = (scfmon)omAlloc(lm * sizeof(scmon)); 1029 1033 monmem->a = lm; -
kernel/ideals.cc
rc90500 r3e7db4 751 751 ideal idLiftStd (ideal h1, matrix* ma, tHomog hi, ideal * syz) 752 752 { 753 int i, j, k, t, inputIsIdeal=id_RankFreeModule(h1,currRing); 753 int i, j, t, inputIsIdeal=id_RankFreeModule(h1,currRing); 754 long k; 754 755 poly p=NULL, q; 755 756 intvec *w=NULL; … … 778 779 SI_SAVE_OPT2(save2); 779 780 780 k=si_max( 1,(int)id_RankFreeModule(h1,currRing));781 k=si_max((long)1,id_RankFreeModule(h1,currRing)); 781 782 782 783 if ((k==1) && (!lift3)) si_opt_2 |=Sy_bit(V_IDLIFT); -
kernel/kstd1.cc
rc90500 r3e7db4 2156 2156 w = &temp_w; 2157 2157 } 2158 if ((h==testHomog) 2159 ) 2158 if (h==testHomog) 2160 2159 { 2161 2160 if (strat->ak == 0) -
kernel/kstdfac.cc
rc90500 r3e7db4 905 905 strat->LazyDegree = 1; 906 906 strat->ak = id_RankFreeModule(F,currRing); 907 if ( (h==testHomog))907 if (h==testHomog) 908 908 { 909 909 if (strat->ak==0) -
kernel/kutil.cc
rc90500 r3e7db4 3389 3389 { 3390 3390 int j; 3391 BOOLEAN new_pair=FALSE;3392 3391 3393 3392 for (j=0; j<=k; j++) … … 3398 3397 if ( iCompH == pGetComp(strat->S[j]) ) 3399 3398 { 3400 { 3401 if (enterOneStrongPoly(j,h,ecart,isFromQ,strat, atR)) 3402 new_pair=TRUE; 3403 } 3399 enterOneStrongPoly(j,h,ecart,isFromQ,strat, atR); 3404 3400 } 3405 3401 } … … 5963 5959 strat->syzl = strat->syzmax = ps; 5964 5960 strat->syzidxmax = comp; 5965 #if def DEBUGF5 || DEBUGF515961 #if defined(DEBUGF5) || defined(DEBUGF51) 5966 5962 printf("------------- GENERATING SYZ RULES NEW ---------------\n"); 5967 5963 #endif … … 8104 8100 return r; 8105 8101 } 8106 8107 8108 8109 8110 8111 8112 8113 8102 ring res = rCopy0(r, FALSE, TRUE); 8103 for (int i=1; i<n-1; i++) 8104 { 8105 res->order[i] = res->order[i-1]; 8106 res->block0[i] = res->block0[i-1]; 8107 res->block1[i] = res->block1[i-1]; 8108 res->wvhdl[i] = res->wvhdl[i-1]; 8109 } 8114 8110 8115 8111 // new 1st block … … 8137 8133 } 8138 8134 #endif 8139 strat->tailRing = res; 8140 return (res); 8141 } 8135 strat->tailRing = res; 8136 return (res); 8137 } 8138 8142 8139 // not incremental => use Schreyer order 8143 8140 // this is done by a trick when initializing the signatures … … 8148 8145 // => we do not need to change the underlying polynomial ring at all! 8149 8146 8147 // UPDATE/NOTE/TODO: use induced Schreyer ordering 'IS'!!!!???? 8150 8148 8151 8149 /* … … 8244 8242 } 8245 8243 */ 8244 8245 assume(FALSE); 8246 return(NULL); 8246 8247 } 8247 8248 -
kernel/tgbgauss.h
rc90500 r3e7db4 12 12 //#include "tgb_internal.h" 13 13 14 structslimgb_alg;14 class slimgb_alg; 15 15 16 16 class tgb_matrix{ -
libpolys/coeffs/Makefile.am
rc90500 r3e7db4 51 51 endif 52 52 53 AMLDFLAGS = -L${ abs_top_builddir}/coeffs -L${abs_top_builddir}/reporter -L${top_builddir}/misc ${USE_FACTORY} -L${top_builddir}/../omalloc -L${abs_top_builddir}/../findexec53 AMLDFLAGS = -L${top_builddir}/coeffs -L${top_builddir}/reporter -L${top_builddir}/misc ${USE_FACTORY} -L${top_builddir}/../omalloc -L${top_builddir}/../findexec 54 54 55 55 TESTS_ENVIRONMENT = SINGULARPATH='${top_srcdir}/../factory:${top_builddir}/../factory' -
libpolys/coeffs/longrat.cc
rc90500 r3e7db4 2545 2545 if (mpz_cmp(tmp,P)<0) 2546 2546 { 2547 // return N/B2548 z=ALLOC_RNUMBER();2549 #ifdef LDEBUG2550 z->debug=123456;2551 #endif2552 2547 if (mpz_isNeg(B)) 2553 2548 { … … 2555 2550 mpz_neg(N,N); 2556 2551 } 2557 mpz_init_set(z->z,N); 2558 mpz_init_set(z->n,B); 2559 z->s = 0; 2560 nlNormalize(z,r); 2552 // check for gcd(N,B)==1 2553 mpz_gcd(tmp,N,B); 2554 if (mpz_cmp_ui(tmp,1)==0) 2555 { 2556 // return N/B 2557 z=ALLOC_RNUMBER(); 2558 #ifdef LDEBUG 2559 z->debug=123456; 2560 #endif 2561 mpz_init_set(z->z,N); 2562 mpz_init_set(z->n,B); 2563 z->s = 0; 2564 nlNormalize(z,r); 2565 } 2566 else 2567 { 2568 // return nN (the input) instead of "fail" 2569 z=nlCopy(nN,r); 2570 } 2561 2571 break; 2562 2572 } -
libpolys/coeffs/rmodulon.cc
rc90500 r3e7db4 40 40 { 41 41 /* test, if r is an instance of nInitCoeffs(n,parameter) */ 42 return (n==n_Zn) && (mpz_cmp (r->modNumber,(mpz_ptr)parameter)==0);42 return (n==n_Zn) && (mpz_cmp_ui(r->modNumber,(long)parameter)==0); 43 43 } 44 44 -
libpolys/configure.ac
rc90500 r3e7db4 8 8 AM_MAINTAINER_MODE 9 9 AM_INIT_AUTOMAKE([-Wall foreign subdir-objects]) # -Wno-extra-portability -Werror silent-rules 10 m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES]) 11 m4_ifdef([AM_PROG_AR], [AM_PROG_AR]) 12 10 13 11 14 dnl Check if build env is sane -
libpolys/misc/auxiliary.h.in
rc90500 r3e7db4 161 161 // #endif 162 162 163 static const int MAX_INT_LEN= 11;164 163 typedef void* ADDRESS; 165 164 -
libpolys/misc/intvec.h
rc90500 r3e7db4 23 23 24 24 inline intvec(int l = 1) 25 { 26 v = (int *)omAlloc0(sizeof(int)*l); 27 row = l; 28 col = 1; 29 } 25 { 26 assume(l > 0); 27 v = (int *)omAlloc0(sizeof(int)*l); 28 row = l; 29 col = 1; 30 } 30 31 intvec(int s, int e); 31 32 intvec(int r, int c, int init); … … 35 36 row = iv->rows(); 36 37 col = iv->cols(); 38 assume(row > 0); 39 assume(col > 0); 37 40 if (row*col>0) 38 41 { … … 111 114 } 112 115 #if 0 116 // TODO: no omalloc Bin (de-)/allocation? 113 117 void* operator new ( size_t size ) 114 118 { -
libpolys/misc/mylimits.h
rc90500 r3e7db4 9 9 #define _MYLIMITS_H 10 10 11 /* Maximum/minimum value an `signed int' can hold. */ 12 // #define MAX_INT_VAL 2147483647 13 #ifndef MAX_INT_VAL 14 #define MAX_INT_VAL (2147483647) 15 #endif 16 17 #ifndef MIN_INT_VAL 18 #define MIN_INT_VAL (-MAX_INT_VAL-1) 19 #endif 20 21 22 // #define ULONG_MAX (~0UL) // ?? 23 #ifndef ULONG_MAX 24 #define ULONG_MAX (~0L) 25 #endif 26 27 // TODO: fixing the following BUG (!?) leads to wrong ring::bitmask 28 // #if ~0UL != 4294967295UL 29 #ifndef LONG_MAX 30 #if ~0UL == 4294967295UL 31 #define LONG_MAX 9223372036854775807L 32 #else 33 #define LONG_MAX 2147483647L 34 #endif 35 #endif 11 /* Maximum/minimum value an `signed int' (in Singular interpreter) can hold. */ 12 const int MAX_INT_VAL = 0x7fffffff; 13 const int MAX_INT_LEN = 11; 14 #include <limits.h> 36 15 37 16 #endif /* _MYLIMITS_H */ -
libpolys/polys/Makefile.am
rc90500 r3e7db4 155 155 156 156 templates_p_Procs_Generate_LDADD = -lreporter -lmisc -lomalloc -lfindexec 157 templates_p_Procs_Generate_LDFLAGS = -L${ abs_builddir} -L${abs_top_builddir}/coeffs -L${abs_top_builddir}/reporter -L${top_builddir}/misc -L${abs_top_builddir}/../omalloc -L${abs_top_builddir}/../findexec157 templates_p_Procs_Generate_LDFLAGS = -L${builddir} -L${top_builddir}/coeffs -L${top_builddir}/reporter -L${top_builddir}/misc -L${top_builddir}/../omalloc -L${top_builddir}/../findexec 158 158 159 159 templates/p_Procs.inc: templates/p_Procs_Generate -
libpolys/polys/ext_fields/algext.cc
rc90500 r3e7db4 299 299 { 300 300 naTest(a); naTest(b); 301 302 301 /// simple tests 303 if (a == b) return TRUE; 304 if ((a == NULL) && (b != NULL)) return FALSE; 305 if ((b == NULL) && (a != NULL)) return FALSE; 306 307 /// deg test 308 int aDeg = 0; 309 if (a != NULL) aDeg = p_Totaldegree((poly)a, naRing); 310 int bDeg = 0; 311 if (b != NULL) bDeg = p_Totaldegree((poly)b, naRing); 312 if (aDeg != bDeg) return FALSE; 313 314 /// subtraction test 315 number c = naSub(a, b, cf); 316 BOOLEAN result = naIsZero(c, cf); 317 naDelete(&c, cf); 318 return result; 302 if (a == NULL) return (b == NULL); 303 if (b == NULL) return (a == NULL); 304 return p_EqualPolys((poly)a,(poly)b,naRing); 319 305 } 320 306 …