什么是 GAP?
GAP 是一个用于计算离散代数的系统,特别侧重于计算群论。GAP 提供了一种编程语言、一个包含数千个用 GAP 语言编写的代数算法函数的库,以及大型代数对象数据库。有关更多信息,请参阅 https://www.gap-system.org/about/。 有关数学功能的描述,请参阅 https://www.gap-system.org/capabilities/。
GAP 用于研究和教学中,用于研究群及其表示、环、向量空间、代数、组合结构等。该系统(包括源代码)是免费分发的。您可以研究它,并轻松修改或扩展它以用于您的特殊用途。
如何获取 GAP?
下载稳定版本
GAP 系统的最新稳定版本可从
https://www.gap-system.org/install/ 获取。
之后,请按照 GAP 根目录中 INSTALL.md 文件中的说明进行操作。
使用 GAP 开发版本
或者,您可以编译 GAP 的最新开发版本。然而,大多数用户应使用上一节中描述的最新官方版本。
如果您确实想使用 GAP 的开发版本,请先使用 git 克隆 GAP 源代码仓库:
git clone https://github.com/gap-system/gap
安装必需的依赖项
在这种情况下,为了编译 GAP,您需要安装比稳定版本更多的软件依赖项。特别是,您至少需要这些:
- C 编译器,例如 GCC 或 Clang
- C++ 编译器
- GNU Make
- GNU Autoconf
此外,我们建议您至少安装以下可选 依赖项(如果不安装,GAP 将自行构建这些库的副本, 从而减慢编译过程,或者省略某些功能):
- GMP(GNU 多精度算术库)的开发头文件
- zlib 的开发头文件
- GNU Readline 的开发头文件
在 Ubuntu 或 Debian 上,您可以使用以下命令安装这些依赖项:
sudo apt-get install build-essential autoconf libgmp-dev libreadline-dev zlib1g-dev
在 Fedora 上:
sudo dnf install gcc gcc-c++ make autoconf gmp-devel readline-devel zlib-devel
在 Alpine 上:
sudo apk add build-base autoconf gmp-dev readline-dev zlib-dev
在 macOS 上,您可以通过多种方式安装依赖项:
- 使用 Homebrew:
brew install autoconf gmp readline - 使用 Fink:
fink install autoconf2.6 gmp5 readline7 - 使用 MacPorts:
port install autoconf gmp readline
在其他操作系统上,您需要自行确定等效的命令 以安装所需的依赖项。
构建 GAP
然后,要构建 GAP,首先运行此命令以生成 configure 脚本:
./autogen.sh
之后,您可以按照 INSTALL.md 中的描述进行操作。如果您使用的是 macOS,
我们建议您查看 INSTALL.md 中“GAP for macOS”部分
以获取一些额外的提示。
获取 GAP 软件包发行版
与 GAP 稳定版不同,开发版并不附带所有 GAP 包。因此,如果您还没有 GAP 包归档,我们建议您通过执行以下命令之一来引导安装包的稳定版本。您选择 bootstrap-pkg-minimal 还是 bootstrap-pkg-full 取决于您的开发需求。
make bootstrap-pkg-minimal
或者
make bootstrap-pkg-full
在后一种情况下,请注意 make bootstrap-pkg-full 仅解包,而不构建那些需要编译的包。您可以切换到 pkg 目录,然后从那里调用 ../bin/BuildPackages.sh 来尽可能多地构建包。
如果一切顺利,您应该能够通过执行以下命令启动 GAP
./gap
您还可以在 https://github.com/gap-packages 或 https://gap-packages.github.io 上找到一些 GAP 包的版本。
我们欢迎贡献
GAP 项目欢迎来自所有人的贡献,形式包括代码、文档、博客文章或其他。对于此仓库的贡献,请阅读 贡献者指南。附加信息:
为了获取 GAP 的最新消息(问题讨论、版本发布公告、错误修复),您可以订阅 GAP 论坛 和 GAP 开发 邮件列表, GitHub 上的通知,或者在 Slack 上与我们聊天。
如果您对使用 GAP 有任何疑问,可以在 GAP 论坛 邮件列表(需要订阅) 或 使用我们的各种支持渠道 上提问。
许可证
GAP 是自由软件;您可以按照自由软件
基金会发布的 GNU 通用公共许可证的条款重新分发和/或修改它;
许可证版本为 2 或(在您选择的情况下)任何更高版本。有关详细信息,
请参阅 GAP 参考手册,以及 GAP 发行版根目录中的文件 LICENSE,
或参见 https://www.gnu.org/licenses/gpl.html。