xref: /netbsd-src/external/lgpl3/mpc/dist/src/out_str.c (revision 8fa80f29617a57ed2098db654a02cc5c7dc15820)
1*8fa80f29Smrg /* mpc_out_str -- Output a complex number on a given stream.
2*8fa80f29Smrg 
3*8fa80f29Smrg Copyright (C) 2009, 2011 INRIA
4*8fa80f29Smrg 
5*8fa80f29Smrg This file is part of GNU MPC.
6*8fa80f29Smrg 
7*8fa80f29Smrg GNU MPC is free software; you can redistribute it and/or modify it under
8*8fa80f29Smrg the terms of the GNU Lesser General Public License as published by the
9*8fa80f29Smrg Free Software Foundation; either version 3 of the License, or (at your
10*8fa80f29Smrg option) any later version.
11*8fa80f29Smrg 
12*8fa80f29Smrg GNU MPC is distributed in the hope that it will be useful, but WITHOUT ANY
13*8fa80f29Smrg WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
14*8fa80f29Smrg FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for
15*8fa80f29Smrg more details.
16*8fa80f29Smrg 
17*8fa80f29Smrg You should have received a copy of the GNU Lesser General Public License
18*8fa80f29Smrg along with this program. If not, see http://www.gnu.org/licenses/ .
19*8fa80f29Smrg */
20*8fa80f29Smrg 
21*8fa80f29Smrg #include <stdio.h> /* for FILE */
22*8fa80f29Smrg #include <ctype.h>
23*8fa80f29Smrg #include "mpc-impl.h"
24*8fa80f29Smrg 
25*8fa80f29Smrg size_t
mpc_out_str(FILE * stream,int base,size_t n,mpc_srcptr op,mpc_rnd_t rnd)26*8fa80f29Smrg mpc_out_str (FILE *stream, int base, size_t n, mpc_srcptr op, mpc_rnd_t rnd) {
27*8fa80f29Smrg    size_t size = 3; /* for '(', ' ' and ')' */
28*8fa80f29Smrg 
29*8fa80f29Smrg    if (stream == NULL)
30*8fa80f29Smrg       stream = stdout; /* fprintf does not allow NULL as first argument */
31*8fa80f29Smrg 
32*8fa80f29Smrg    fprintf (stream, "(");
33*8fa80f29Smrg    size += mpfr_out_str (stream, base, n, mpc_realref(op), MPC_RND_RE(rnd));
34*8fa80f29Smrg    fprintf (stream, " ");
35*8fa80f29Smrg    size += mpfr_out_str (stream, base, n, mpc_imagref(op), MPC_RND_RE(rnd));
36*8fa80f29Smrg    fprintf (stream, ")");
37*8fa80f29Smrg 
38*8fa80f29Smrg    return size;
39*8fa80f29Smrg }
40