7

我已经搜索了一些关于如何在C 程序中使用 PARI 库的教程,但不幸的是,我只找到了在命令行界面中使用 GP 包的通用教程。

有人可以帮忙吗?例如,我想初始化一个 3x3 矩阵并找到它的 1000 次方。在 gp(CLI)中,这可以通过键入以下内容来实现:

? A=[1,2,3;4,5,6;7,8,9]
? A^1000

但我发现在C 源文件中做这个安静简单的事情没有任何帮助。是否有提供此类示例的综合教程或文档?任何评论将不胜感激!

4

1 回答 1

5

这在手册 libpari(“PARI 库用户指南”)中有介绍。在简单情况下使用它的一种简单方法是保存相关的 GP 脚本并gp2c -g在其上运行,这将生成一个 C 文件,使用 PARI 库进行计算。然后,您可以根据自己的口味进行编辑。

对于这种特殊情况:

#include <pari/pari.h>
GEN test(void);

GEN
test(void)
{
  GEN A = cgetg(4, t_MAT);
  gel(A, 1) = cgetg(4, t_COL);
  gel(A, 2) = cgetg(4, t_COL);
  gel(A, 3) = cgetg(4, t_COL);
  /* Create matrix A */

  gcoeff(A, 1, 1) = gen_1;
  gcoeff(A, 1, 2) = gen_2;
  gcoeff(A, 1, 3) = stoi(3);
  gcoeff(A, 2, 1) = stoi(4);
  gcoeff(A, 2, 2) = stoi(5);
  gcoeff(A, 2, 3) = stoi(6);
  gcoeff(A, 3, 1) = stoi(7);
  gcoeff(A, 3, 2) = stoi(8);
  gcoeff(A, 3, 3) = stoi(9);
  /* Fill matrix A with values */

  return gpowgs(A, 1000); /* Return A^1000 */
}
于 2015-04-21T18:31:00.610 回答