在Eigen3中使用GMP

时间:2013-12-01 05:49:11

标签: eigen gmp

我正在研究一些示例程序并尝试使用Eigen3库提供的矩阵功能。 我想在(100,100)矩阵中存储高精度整数变量(mpz_t)。对于存储整数,已经内置数据类型MatrixXd。同样,只是想要它用于高精度变量。请分享一些建议。

感谢。

1 个答案:

答案 0 :(得分:3)

基本上,您需要做的就是声明一个Matrix<mpz_class,Dynamic,Dynamic>矩阵。 mpz_class类型是围绕mpz_t的c ++包装器,因此它的行为类似于任何标量类型。

以下是一个例子:

#include <Eigen/Core>
#include <gmpxx.h>

using namespace Eigen;
typedef Matrix<mpz_class,Dynamic,Dynamic> MatrixXz;

int main() {
  MatrixXz A(10,10), B(10,10), C(10,10);
  A.fill(111);
  B.fill(222);
  C = 2*A + B;
}