t-get_d.c

来自「a very popular packet of cryptography to」· C语言 代码 · 共 77 行

C
77
字号
/* Test mpz_get_d.Copyright 2002 Free Software Foundation, Inc.This file is part of the GNU MP Library.The GNU MP Library is free software; you can redistribute it and/or modifyit under the terms of the GNU Lesser General Public License as published bythe Free Software Foundation; either version 2.1 of the License, or (at youroption) any later version.The GNU MP Library is distributed in the hope that it will be useful, butWITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITYor FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General PublicLicense for more details.You should have received a copy of the GNU Lesser General Public Licensealong with the GNU MP Library; see the file COPYING.LIB.  If not, write tothe Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,MA 02111-1307, USA. */#include <stdio.h>#include <stdlib.h>#include "gmp.h"#include "gmp-impl.h"#include "tests.h"voidcheck_onebit (void){  int     i;  mpz_t   z;  double  got, want;  /* FIXME: It'd be better to base this on the float format. */#ifdef __vax  int     limit = 127;  /* vax fp numbers have limited range */#else  int     limit = 512;#endif  mpz_init (z);  mpz_set_ui (z, 1L);  want = 1.0;  for (i = 0; i < limit; i++)    {      got = mpz_get_d (z);      if (got != want)        {          printf    ("mpz_get_d wrong on 2**%d\n", i);          mpz_trace ("   z    ", z);          printf    ("   want  %.20g\n", want);          printf    ("   got   %.20g\n", got);          abort();        }      mpz_mul_2exp (z, z, 1L);      want *= 2.0;    }  mpz_clear (z);}intmain (void){  tests_start ();  check_onebit ();  tests_end ();  exit (0);}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?