| 85 | } |
| 86 | |
| 87 | void nforder::Write() { |
| 88 | StringAppend("Order:\nof dimension %d and rc: %d\n", dimension, ref_count()); |
| 89 | if (discriminant && !n_IsZero(discriminant, m_coeffs)) { |
| 90 | StringAppend("and discriminant: "); |
| 91 | n_Write(discriminant, m_coeffs); |
| 92 | StringAppend("\n"); |
| 93 | } |
| 94 | // coeffs |
| 95 | if (multtable) { |
| 96 | StringAppend("Multiplication table:\n"); |
| 97 | for(int i=0; i<dimension; i++) { |
| 98 | StringAppend("%d: ", i); |
| 99 | multtable[i]->Write(); |
| 100 | StringAppendS("\n"); |
| 101 | } |
| 102 | } |
| 103 | |
| 104 | if (baseorder) { |
| 105 | StringAppendS("as extension of:"); |
| 106 | baseorder->Write(); |
| 107 | StringAppendS("with basis:\n"); |
| 108 | basis->Write(); |
| 109 | StringAppendS("and denominator: "); |
| 110 | n_Write(divisor, m_coeffs); |
| 111 | StringAppendS("\nwith inv_basis:\n"); |
| 112 | inv_basis->Write(); |
| 113 | StringAppendS("and inv_denominator: "); |
| 114 | n_Write(inv_divisor, m_coeffs); |
| 115 | StringAppendS("\n"); |
| 116 | } |
| 117 | |
| 118 | StringAppend("Flags: %lx\n", flags); |
| 119 | } |
| 120 | |
| 121 | char * nforder::String() { |
| 122 | StringSetS(""); |
no test coverage detected