GNU MP(GMP)学习笔记(一)

来源:互联网 发布:sql 保存特殊字符 编辑:程序博客网 时间:2024/05/16 04:37

一、安装:在Linux下,正常的按(1)./configure (2)make (3)make check (4) make install就可以完成安装。

      如果要增加C++支持,./configure的时候加上--enable-cxx参数。

 

二、使用gmp库:

       C: 在代码中#include <gmp.h>即可。

               如果在gmp中使用到FILE *的函数,则需要在gmp.h之前加上#include <stdio.h>

               如果在gmp中使用到va_list的函数,则需要在gmp.h之前加上#include <stdarg.h>

               gmp编译出来的库是libgmp,所以在编译的时候需要加上-lgmp标志。如:  gcc -lgmp -o test test.c

 

        C++: header files相同,不过编译的链接库不一样,是libgmpxx,如: g++ -lgmpxx -o test test.c

 

三、基本data types:

        整数:mpz_t num;

        有理数:mpq_t num;

        浮点数:mpf_t num;

 

四、函数类型:

        整形类函数:以mpz_ 为开头

        有理数函数:以mpq_ 为开头

        浮点数函数:以mpf_ 为开头

 

五、使用步骤:

  1. 声明变量: mpf_t fnum;
  2. 初始化变量:mpf_init(fnum);   // 或者mpf_init2(fnum, 20); 这个函数只针对mpf_t有用
  3. 变量赋值:mpf_set_str(fnum, "1.23", 10); // 用以10为base的表示浮点数的字符串来赋值fnum
  4. 变量计算:mpf_mul(fnum, fnum, tmp); // fnum 和 tmp都是mpf_t类型的变量,其他的函数可以看GMP的文档。
  5. 释放变量:mpf_clear(fnum);