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)18 fmpz_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