在C++中调用PARI/GP库的方法

384 阅读1分钟

前言

最近学习代数, 接触到了一个开源的代数计算软件包PARI,其有一个命令行前端GP,在Mac上使用brew(brew install pari-gp)很方便地就安装好了,但是用起来需要进行配置, 因为这个包没有对应的pkgconfig文件,所以我下面手写了一个CMake文件.

环境
MacOS 11.4
CLion 2021.1
clang C++14

CMakeLists文件

cmake_minimum_required(VERSION 3.20)
project(pari_test)

set(CMAKE_CXX_STANDARD 14)

find_library(PARI_LIBRARY pari)

include_directories("/opt/homebrew/Cellar/pari/2.13.2_2/include/")
link_directories("/opt/homebrew/Cellar/pari/2.13.2_2/lib/")

set(SOURCE_FILES main.cpp)

add_executable(${CMAKE_PROJECT_NAME} ${SOURCE_FILES})

target_link_libraries(${CMAKE_PROJECT_NAME} ${PARI_LIBRARY})

示例程序

示例程序参考自Using PARI/GP in C++;

#include <iostream>

#include <pari/pari.h>

using namespace std;

int main( )
{
    pari_init(1000000,2);
    GEN x(cgeti(DEFAULTPREC)), y(cgeti(DEFAULTPREC)), z(cgeti(DEFAULTPREC));

    x = stoi((long) 2);
    y = stoi((long) 6);
    z = gmul(x,y);

    cout << gtolong(z) << endl;

    return 0;
}

运行结果:

12