在 Qt 程序中使用 MPIR
来源:互联网 发布:商家联盟管理系统源码 编辑:程序博客网 时间:2024/06/06 23:48
上篇博客介绍了如何编译 MPIR,这篇讲讲如何在程序中使用。我主要是用 C++ Qt 开发程序,所以这里只讲如何在Qt 程序中应用 MPIR。
我这里以mpir_gc 编译版为例,首先建立一个目录:dll_mpir_gc_vc14_win32
然后把需要的文件都拷贝到这个目录中,包括:
- mpir.h
- mpirxx.h
- mpir_gc_vc14_win32.dll
- mpir_gc_vc14_win32.exp
- mpir_gc_vc14_win32.ilk
- mpir_gc_vc14_win32.lib
- mpir_gc_vc14_win32.pdb
之后新建一个文本文件,名字叫 : mpir_gc_vc14_win32.pri
里面加入这么几行:
win32: LIBS += -L$$PWD/ -lmpir_gc_vc14_win32INCLUDEPATH += $$PWD/DEPENDPATH += $$PWD/
之后在我们的项目的 pro 文件中加入这么一行就可以了:
include (./dll_mpir_gc_vc14_win32/mpir_gc_vc14_win32.pri)
下面是个测试代码,如何可以正常编译运行就说明一切都设置成功了。
#include <QCoreApplication>#include <stdio.h>#include <iostream>#include <mpir.h>#include <mpirxx.h>using std::cout;using std::endl;void mpz_test() //计算 100 的阶乘{ mpz_t integ, long_i; mpz_init (integ); mpz_init (long_i); mpz_set_sx(integ, 1); for(int i = 2; i<= 100; i++) { mpz_set_sx(long_i, i); mpz_mul(integ, integ, long_i); } mpz_out_str(stdout, 10, integ);}void mpzxx_test() //计算 100 的阶乘{ mpz_class sum(1); for(int i = 2; i<= 100; i++) { sum *= i; } cout << sum << endl;}void mpf_test()// 计算 E 到 100 位有效数字{ mpf_set_default_prec(500); mpf_t sum; mpf_init (sum); mpf_set_d(sum, 2.0); mpf_t long_i; mpf_init(long_i); mpf_t fact_1; mpf_init(fact_1); mpf_set_d(fact_1, 1); for(int i = 2; i < 100; i ++) { mpf_set_d(long_i, i); mpf_div(fact_1, fact_1, long_i); mpf_add(sum, sum, fact_1); } mpf_out_str (stdout, 10, 100, sum);}int main(int argc, char *argv[]){ QCoreApplication a(argc, argv); mpzxx_test(); mpz_test(); putchar('\n'); mpf_test(); return a.exec();}
阅读全文
0 0
- 在 Qt 程序中使用 MPIR
- 如何在VS2013上配置MPIR库(单个项目中)
- QT: 在QT程序中使用cout和cin
- QT: 在QT程序中使用cout和cin
- VS2008利用MPIR使用GMP
- 在QT程序中使用其它图形库
- 如何在非Qt 程序中使用qmake
- 在win32/MFC 程序中使用QT控件。。。。。。。
- 在Qt程序中使用OpenCV的介绍
- 初学Qt之--在C++程序中使用C函数
- Qt 在程序中调用外部程序
- MFC与QT混合编程---在MFC程序中使用QT的组件
- [QT笔记]在Qt程序中使用Windows API读取ini设置信息
- QT:在Qt中使用SQLite数据库
- 在CodeBlock中使用QT
- 在Qt中使用sleep
- 在Qt中使用sleep
- 在Qt中使用sleep
- Mapping the request body with the @RequestBody annotation
- define(宏) const(常变量) enum(枚举)
- [noip2012]疫情控制(二分+贪心)
- 递归求和、阶乘、最大公约数 以及汉诺塔
- Spring@responseBody乱码解决
- 在 Qt 程序中使用 MPIR
- [Python 实战]
- Inception in CNN
- 工作的你还有时间保持自我吗
- android安全
- centos7 防火墙开闭
- 安卓网络连接全解:包括网络连接状态的监听、网络数据使用状态的监听、获取当前网络连接情况、启动wifi、获取当前连接wifi的网络情况、扫描wifi热点
- 小tips
- hibernate HQL/C3P0数据库连接池/二级缓存/当前线程session