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