ITADN
README.md
以下内容由 AI 翻译,如有问题请点此提交 issue 反馈

Build Status Code Coverage ref dev hpc tut

什么是 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-packageshttps://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