FLINT lib:如何删除多项式

时间:2015-09-03 00:12:28

标签: c++ memory-management flint

在库FLINT中,我们有函数 fmpz_poly_clear 来清除内存中的 fmpz_poly 多项式。但是我使用的是这个库的C ++接口,因此,我的多项式的类型为 fmpz_polyxx fmpz_mod_polyxx

我想知道如何清除这些多项式。我已经搜索了FLINT的文档,但我一无所获。

例如,以下程序创建一个具有七百万个系数的多项式。在我的机器上,它使用大约1GB的RAM。退出for循环后,我尝试删除多项式。

我正在读取一个整数,只是为了使程序等待,然后才终止执行。

#include <iostream>
#include "flint/fmpzxx.h"
#include "flint/fmpz_mod_polyxx.h"
#include "flint/fmpz_mod_poly_factorxx.h"

using namespace flint;

int main(int argc, char *argv[])
{
    // q  (273-bit prime)
    fmpzxx q("15177100720513508366558296147058741458143803430094840009779784451085189728165691397");

    fmpz_mod_polyxx* myPoly = new fmpz_mod_polyxx(q); 
    for (int i = 0; i < 7000000; i++){
        myPoly->set_coeff(i, q - fmpzxx(i));
    }
    delete myPoly;             // <-- this line does not work
//  fmpz_poly_clear(myPoly);  // <-- this line does not work
//  fmpz_mod_polyxx_clear(myPoly); // <-- this one neither
    int a;
    std::cin >> a; // wait 
    return EXIT_SUCCESS;
}

有人知道怎么做吗?

0 个答案:

没有答案