diff --git a/fmprb_poly.h b/fmprb_poly.h index b72728ba..b07a28c1 100644 --- a/fmprb_poly.h +++ b/fmprb_poly.h @@ -101,6 +101,8 @@ fmprb_poly_set_fmprb(fmprb_poly_t poly, const fmprb_t c) _fmprb_poly_set_length(poly, !fmprb_is_zero(poly->coeffs)); } +void fmprb_poly_set_si(fmprb_poly_t poly, long c); + /* Comparisons */ int fmprb_poly_contains_fmpq_poly(const fmprb_poly_t poly1, const fmpq_poly_t poly2); diff --git a/fmprb_poly/set_si.c b/fmprb_poly/set_si.c new file mode 100644 index 00000000..5cb89372 --- /dev/null +++ b/fmprb_poly/set_si.c @@ -0,0 +1,42 @@ +/*============================================================================= + + This file is part of ARB. + + ARB is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + ARB is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with ARB; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + +=============================================================================*/ +/****************************************************************************** + + Copyright (C) 2012 Fredrik Johansson + +******************************************************************************/ + +#include "fmprb_poly.h" + +void +fmprb_poly_set_si(fmprb_poly_t poly, long c) +{ + if (c == 0) + { + fmprb_poly_zero(poly); + } + else + { + fmprb_poly_fit_length(poly, 1); + fmprb_set_si(poly->coeffs, c); + _fmprb_poly_set_length(poly, 1); + } +} +