Changeset 55
- Timestamp:
- 02/20/08 14:38:40 (9 months ago)
- Files:
-
- 1 modified
-
include/fflas-ffpack/ffpack.h (modified) (11 diffs)
Legend:
- Unmodified
- Added
- Removed
-
include/fflas-ffpack/ffpack.h
r54 r55 192 192 *info =0; 193 193 if (Side == FflasLeft) { // Left looking solve A X = B 194 194 195 195 solveLB2 (F, FflasLeft, M, N, R, A, lda, Q, B, ldb); 196 196 … … 286 286 287 287 if (Side == FflasLeft) { // Left looking solve A X = B 288 288 289 289 // Initializing X to 0 (to be optimized) 290 290 for (size_t i = 0; i <N; ++i) … … 300 300 solveLB2 (F, FflasLeft, M, NRHS, R, A, lda, Q, W, ldw); 301 301 302 applyP (F, FflasLeft, FflasNoTrans, N , 0, R, W, ldw, Q);302 applyP (F, FflasLeft, FflasNoTrans, NRHS, 0, R, W, ldw, Q); 303 303 304 304 bool consistent = true; … … 310 310 std::cerr<<"System is inconsistent"<<std::endl; 311 311 *info = 1; 312 delete[] W; 312 313 return X; 313 314 } … … 326 327 for (size_t i=0; i < M; ++i) 327 328 fcopy (F, NRHS, X + i*ldx, 1, B + i*ldb, 1); 328 329 329 330 solveLB2 (F, FflasLeft, M, NRHS, R, A, lda, Q, X, ldx); 330 331 331 applyP (F, FflasLeft, FflasNoTrans, N , 0, R, X, ldx, Q);332 applyP (F, FflasLeft, FflasNoTrans, NRHS, 0, R, X, ldx, Q); 332 333 333 334 bool consistent = true; … … 348 349 applyP (F, FflasLeft, FflasTrans, NRHS, 0, R, X, ldx, P); 349 350 } 350 351 351 return X; 352 352 … … 379 379 std::cerr<<"System is inconsistent"<<std::endl; 380 380 *info = 1; 381 delete[] W; 381 382 return X; 382 383 } … … 384 385 for (size_t i=0; i < NRHS; ++i) 385 386 fcopy (F, R, X + i*ldx, 1, W + i*ldb, 1); 386 387 delete[] W; 387 388 applyP (F, FflasRight, FflasNoTrans, NRHS, 0, R, X, ldx, Q); 388 389 … … 583 584 size_t * P = new size_t[M]; 584 585 size_t * Q = new size_t[M]; 585 nullity = M - ReducedColumnEchelonForm (F, M, M, A, lda, P, Q); 586 applyP (F, FflasLeft, FflasTrans, M, 0, M, A, lda, P); 587 588 delete[] P; 589 delete[] Q; 590 591 if (nullity > 0) 592 return NULL; 593 else 594 return A; 586 size_t R = ReducedColumnEchelonForm (F, M, M, A, lda, P, Q); 587 nullity = M - R; 588 applyP (F, FflasLeft, FflasTrans, M, 0, R, A, lda, P); 589 delete [] P; 590 delete [] Q; 591 return A; 595 592 } 596 593 … … 1098 1095 CharPoly( const Field& F, std::list<Polynomial>& charp, const size_t N, 1099 1096 typename Field::Element * A, const size_t lda, 1100 const FFPACK_CHARPOLY_TAG CharpTag= Ffpack LUK);1097 const FFPACK_CHARPOLY_TAG CharpTag= FfpackArithProg); 1101 1098 1102 1099 /** … … 1347 1344 KGFast ( const Field& F, std::list<Polynomial>& charp, const size_t N, 1348 1345 typename Field::Element * A, const size_t lda, 1349 size_t * kg_mc, size_t* kg_m c, size_t* kg_j );1346 size_t * kg_mc, size_t* kg_mb, size_t* kg_j ); 1350 1347 1351 1348 template <class Field, class Polynomial>
