1 /* 2 Copyright (C) 2011 Sebastian Pancratz 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 <gmp.h> 13 #include "flint.h" 14 #include "fmpz.h" 15 fmpz_init_set_readonly(fmpz_t f,const mpz_t z)16void fmpz_init_set_readonly(fmpz_t f, const mpz_t z) 17 { 18 if (z->_mp_size == 1 && z->_mp_d[0] <= COEFF_MAX) 19 { 20 *f = z->_mp_d[0]; 21 } 22 else if (z->_mp_size == -1 && z->_mp_d[0] <= COEFF_MAX) 23 { 24 *f = -(z->_mp_d[0]); 25 } 26 else if (z->_mp_size) 27 { 28 _fmpz_init_readonly_mpz(f, z); 29 } 30 else 31 { 32 *f = WORD(0); 33 } 34 } 35 36