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 int fmpz_poly_mat_is_one(const fmpz_poly_mat_t A)18fmpz_poly_mat_is_one(const fmpz_poly_mat_t A) 19 { 20 slong i, j; 21 22 if (A->r == 0 || A->c == 0) 23 return 1; 24 25 for (i = 0; i < A->r; i++) 26 { 27 for (j = 0; j < A->c; j++) 28 { 29 if (i == j) 30 { 31 if (!fmpz_poly_is_one(fmpz_poly_mat_entry(A, i, j))) 32 return 0; 33 } 34 else 35 { 36 if (!fmpz_poly_is_zero(fmpz_poly_mat_entry(A, i, j))) 37 return 0; 38 } 39 } 40 } 41 42 return 1; 43 } 44