我正在开发一些示例程序,并尝试使用 Eigen3 库提供的矩阵功能。我想将高精度整数变量(mpz_t)存储在(100,100)矩阵中。为了存储整数,已经有内置的数据类型MatrixXd。同样,只是想要高精度变量。请分享一些建议。
谢谢。
基本上,您需要做的就是声明一个Matrix<mpz_class,Dynamic,Dynamic>矩阵。该mpz_class类型是 C++ 包装器mpz_t,其行为类似于任何标量类型。
这是一个例子:
#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;
}
Run Code Online (Sandbox Code Playgroud)