diff options
Diffstat (limited to 'examples/sample.c')
-rw-r--r-- | examples/sample.c | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/examples/sample.c b/examples/sample.c new file mode 100644 index 0000000..d6a0de3 --- /dev/null +++ b/examples/sample.c @@ -0,0 +1,56 @@ +/* This is the example given and commented on the MPFR web site: + * http://www.mpfr.org/sample.html + */ + +/* +Copyright 1999, 2000, 2001, 2002, 2003, 2004, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013 Free Software Foundation, Inc. +Contributed by the AriC and Caramel projects, INRIA. + +This file is part of the GNU MPFR Library. + +The GNU MPFR Library is free software; you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as published by +the Free Software Foundation; either version 3 of the License, or (at your +option) any later version. + +The GNU MPFR Library 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 Lesser General Public +License for more details. + +You should have received a copy of the GNU Lesser General Public License +along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see +http://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc., +51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. +*/ + +#include <stdio.h> + +#include <gmp.h> +#include <mpfr.h> + +int main (void) +{ + unsigned int i; + mpfr_t s, t, u; + + mpfr_init2 (t, 200); + mpfr_set_d (t, 1.0, MPFR_RNDD); + mpfr_init2 (s, 200); + mpfr_set_d (s, 1.0, MPFR_RNDD); + mpfr_init2 (u, 200); + for (i = 1; i <= 100; i++) + { + mpfr_mul_ui (t, t, i, MPFR_RNDU); + mpfr_set_d (u, 1.0, MPFR_RNDD); + mpfr_div (u, u, t, MPFR_RNDD); + mpfr_add (s, s, u, MPFR_RNDD); + } + printf ("Sum is "); + mpfr_out_str (stdout, 10, 0, s, MPFR_RNDD); + putchar ('\n'); + mpfr_clear (s); + mpfr_clear (t); + mpfr_clear (u); + return 0; +} |