| 630 | |
| 631 | #ifdef HAVE_RINGS |
| 632 | nforder *pmaximal(nforder *o, number p) { |
| 633 | coeffs c = o->basecoeffs(); |
| 634 | nforder *no = o; |
| 635 | nforder *otemp; |
| 636 | // TODO: check if p^2 still divides disc (maybe in onestep) |
| 637 | // simplify the tower |
| 638 | do { |
| 639 | otemp = no; |
| 640 | no = onestep(otemp, p, c); |
| 641 | if (no==otemp) |
| 642 | break; |
| 643 | nforder_delete (otemp); |
| 644 | otemp = no->simplify(); |
| 645 | nforder_delete (no); |
| 646 | no = otemp; |
| 647 | } while (1); |
| 648 | return no; |
| 649 | } |
| 650 | #endif |
| 651 | |
| 652 | /* |
no test coverage detected