Changeset 3bf64a6 in git for factory/cf_linsys.cc
- Timestamp:
- Mar 26, 1997, 5:46:46 PM (27 years ago)
- Branches:
- (u'spielwiese', 'fe61d9c35bf7c61f2b6cbf1b56e25e2f08d536cc')
- Children:
- 997ae52cc016de635cf7ac2687d7d95c40adbeaf
- Parents:
- 2774a5efedabf00a28e744ed367ffce6ba3d7a58
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
factory/cf_linsys.cc
r2774a5 r3bf64a6 1 1 // emacs edit mode for this file is -*- C++ -*- 2 // $Id: cf_linsys.cc,v 1. 3 1996-12-05 18:24:54schmidt Exp $2 // $Id: cf_linsys.cc,v 1.4 1997-03-26 16:46:46 schmidt Exp $ 3 3 4 4 /* 5 5 $Log: not supported by cvs2svn $ 6 Revision 1.3 1996/12/05 18:24:54 schmidt 7 ``Unconditional'' check-in. 8 Now it is my turn to develop factory. 9 6 10 Revision 1.2 1996/07/15 08:33:18 stobbe 7 11 "changed interface to linearSystemSolve to use the class CFMatrix … … 17 21 */ 18 22 19 # define TIMING20 23 #include "assert.h" 24 #include "debug.h" 21 25 #include "timing.h" 22 26 23 #include "assert.h"24 27 #include "cf_defs.h" 28 25 29 #include "cf_primes.h" 26 30 #include "canonicalform.h" … … 138 142 pno = 0; 139 143 do { 140 DEBOUT( cerr, "trying prime(", pno ); DEBOUTLN( cerr, ") = ", ' ' ); 144 DEBOUTSL( cerr ); 145 DEBOUT( cerr, "trying prime(" << pno << ") = " ); 141 146 p = cf_getBigPrime( pno ); 142 cout << p << endl; 147 DEBOUT( cerr, p ); 148 DEBOUTENDL( cerr ); 143 149 setCharacteristic( p ); 144 150 // map matrix into char p … … 159 165 while ( Q < B && pno < cf_getNumBigPrimes() ) { 160 166 do { 161 cout << "trying prime(" << pno << ") = " << flush; 167 DEBOUTSL( cerr ); 168 DEBOUT( cerr, "trying prime(" << pno << ") = " ); 162 169 p = cf_getBigPrime( pno ); 163 cout << p << endl; 170 DEBOUT( cerr, p ); 171 DEBOUTENDL( cerr ); 164 172 setCharacteristic( p ); 165 173 for ( i = 0; i < rows; i++ ) … … 215 223 return ok; 216 224 } 217 225 218 226 CanonicalForm 219 227 determinant( const CFMatrix & M, int rows ) … … 244 252 245 253 CFArray X(1,n), Q(1,n); 246 254 247 255 while ( pno < n ) { 248 256 p = cf_getBigPrime( pno ); … … 253 261 TIMING_END(det_mapping); 254 262 pno++; 255 cerr << "."; cerr.flush();263 DEBOUT( cerr, "." ); 256 264 TIMING_START(det_determinant); 257 265 intdet = determinant( mm, rows ); … … 341 349 // initialize the result matrix with first solution 342 350 // solve mod p 343 cerr << "."; cerr.flush();351 DEBOUT( cerr, "." ); 344 352 intdet = determinant( mm, rows ); 345 353 setCharacteristic( 0 ); … … 359 367 // initialize the result matrix with first solution 360 368 // solve mod p 361 cerr << "."; cerr.flush();369 DEBOUT( cerr, "." ); 362 370 intdet = determinant( mm, rows ); 363 371 setCharacteristic( 0 ); … … 377 385 } while ( ! ok && cf_getNumPrimes() > pno ); 378 386 // solve mod p 379 cerr << "."; cerr.flush();387 DEBOUT( cerr, "." ); 380 388 intdet = determinant( mm, rows ); 381 389 // found a solution mod p … … 388 396 pcount++; 389 397 } 390 cerr << "*"; cerr.flush();398 DEBOUT( cerr, "*" ); 391 399 chineseRemainder( det, Q, qdet, q, detnew, qnew ); 392 400 Q = qnew; … … 537 545 multiplier = 1; 538 546 divisor = 1; 539 547 540 548 for ( i = 0; i < n; i++ ) { 541 549 //find "pivot"
Note: See TracChangeset
for help on using the changeset viewer.