1/* mpq_out_str(stream,base,integer) */ 2 3/* 4Copyright 2000, 2001 Free Software Foundation, Inc. 5 6This file is part of the GNU MP Library. 7 8The GNU MP Library is free software; you can redistribute it and/or modify 9it under the terms of the GNU Lesser General Public License as published by 10the Free Software Foundation; either version 3 of the License, or (at your 11option) any later version. 12 13The GNU MP Library is distributed in the hope that it will be useful, but 14WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 15or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public 16License for more details. 17 18You should have received a copy of the GNU Lesser General Public License 19along with the GNU MP Library. If not, see http://www.gnu.org/licenses/. */ 20 21#include <stdio.h> 22#include "gmp.h" 23#include "gmp-impl.h" 24 25 26size_t 27mpq_out_str (FILE *stream, int base, mpq_srcptr q) 28{ 29 size_t written; 30 31 if (stream == NULL) 32 stream = stdout; 33 34 written = mpz_out_str (stream, base, mpq_numref (q)); 35 36 if (mpz_cmp_ui (mpq_denref (q), 1) != 0) 37 { 38 putc ('/', stream); 39 written += 1 + mpz_out_str (stream, base, mpq_denref (q)); 40 } 41 42 return ferror (stream) ? 0 : written; 43} 44