1 /* 2 Copyright (C) 2011 Fredrik Johansson 3 4 This file is part of FLINT. 5 6 FLINT is free software: you can redistribute it and/or modify it under 7 the terms of the GNU Lesser General Public License (LGPL) as published 8 by the Free Software Foundation; either version 2.1 of the License, or 9 (at your option) any later version. See <http://www.gnu.org/licenses/>. 10 */ 11 12 #include <stdlib.h> 13 #include "flint.h" 14 #include "fmpz_poly.h" 15 #include "fmpz_poly_mat.h" 16 17 slong fmpz_poly_mat_max_bits(const fmpz_poly_mat_t A)18fmpz_poly_mat_max_bits(const fmpz_poly_mat_t A) 19 { 20 slong i, j, bits, max; 21 int sign; 22 23 max = 0; 24 sign = 0; 25 26 for (i = 0; i < A->r; i++) 27 { 28 for (j = 0; j < A->c; j++) 29 { 30 bits = fmpz_poly_max_bits(fmpz_poly_mat_entry(A, i, j)); 31 32 if (bits < 0) 33 { 34 sign = 1; 35 max = FLINT_MAX(max, -bits); 36 } 37 else 38 max = FLINT_MAX(max, bits); 39 } 40 } 41 42 return sign ? -max : max; 43 } 44