1/* This is the example given and commented on the MPFR web site: 2 * http://www.mpfr.org/sample.html 3 */ 4 5/* 6Copyright 1999, 2000, 2001, 2002, 2003, 2004, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013 Free Software Foundation, Inc. 7Contributed by the AriC and Caramel projects, INRIA. 8 9This file is part of the GNU MPFR Library. 10 11The GNU MPFR Library is free software; you can redistribute it and/or modify 12it under the terms of the GNU Lesser General Public License as published by 13the Free Software Foundation; either version 3 of the License, or (at your 14option) any later version. 15 16The GNU MPFR Library is distributed in the hope that it will be useful, but 17WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 18or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public 19License for more details. 20 21You should have received a copy of the GNU Lesser General Public License 22along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see 23http://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc., 2451 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. 25*/ 26 27#include <stdio.h> 28 29#include <gmp.h> 30#include <mpfr.h> 31 32int main (void) 33{ 34 unsigned int i; 35 mpfr_t s, t, u; 36 37 mpfr_init2 (t, 200); 38 mpfr_set_d (t, 1.0, MPFR_RNDD); 39 mpfr_init2 (s, 200); 40 mpfr_set_d (s, 1.0, MPFR_RNDD); 41 mpfr_init2 (u, 200); 42 for (i = 1; i <= 100; i++) 43 { 44 mpfr_mul_ui (t, t, i, MPFR_RNDU); 45 mpfr_set_d (u, 1.0, MPFR_RNDD); 46 mpfr_div (u, u, t, MPFR_RNDD); 47 mpfr_add (s, s, u, MPFR_RNDD); 48 } 49 printf ("Sum is "); 50 mpfr_out_str (stdout, 10, 0, s, MPFR_RNDD); 51 putchar ('\n'); 52 mpfr_clear (s); 53 mpfr_clear (t); 54 mpfr_clear (u); 55 return 0; 56} 57