Questions in category: GAP (GAP)
软件 >> GAP
<[1] [2] [3] >

1. [GAP]安装IO宏包时出错的处理办法

Posted by haifeng on 2012-02-27 22:08:11 last update 2012-06-07 17:32:29 | Answers (0) | 收藏


为了安装 openmath 等宏包, 必须要安装 io 宏包, 安装次序倒是没关系, 就是 io 成功安装后, 加载其他依赖它的宏包才能有效. 安装 io 宏包的方法, 参见其说明文档. 先将 io 宏包解压缩到 GAP 的宏包目录. 我这里是 /usr/share/gap/pkg/, 然后进入 /usr/share/gap/pkg/io, 执行下面的命令

sudo ./configure ../..
sudo make

注意第一个命令后面加了参数 ../.. 而不是 ../../, 但第二个命令的执行却出现了错误, 如下:

../../bin/i486-pc-linux-gnu-i486-linux-gnu-gcc/gac -d -p 
"-I/usr/share/gap/pkg/io/bin/i486-pc-linux-gnu-i486-linux-gnu-gcc" 
-o bin/i486-pc-linux-gnu-i486-linux-gnu-gcc/io.so src/io.c
/bin/sh: ../../bin/i486-pc-linux-gnu-i486-linux-gnu-gcc/gac: not found
make: *** [bin/i486-pc-linux-gnu-i486-linux-gnu-gcc/io.so] Error 127

原因在于 gac 未找到, gac 是 GAP compiler script. 位于 /usr/bin/gac . 因此在

sudo ./configure ../..

之后不要马上 sudo make, 应修改 Makefile 文件, 将其中的

../../bin/i486-pc-linux-gnu-i486-linux-gnu-gcc/gac

修改为

/usr/bin/gac

还有一处是 ./gac 也要修改. 另外查看 configure 代码后发现, 还有一个 Makefile 也要做相应修改, 就是

bin/i486-pc-linux-gnu-i486-linux-gnu-gcc/Makefile

修改完成后, 再执行下面的命令就可以了.

sudo make

可以试一下 LoadPackage("io") 看是否成功. 只有安装了 io 宏包, 才能正常加载其他依赖它的宏包, 如 openmath 等.

-----------

Reference:

GAP Package IO

http://www-groups.mcs.st-and.ac.uk/~neunhoef/Computer/Software/Gap/io.html

2. OpenMath package of GAP

Posted by haifeng on 2012-02-27 19:01:14 last update 2012-02-27 19:01:14 | Answers (0) | 收藏


OpenMath 是 Marco Costantini, Alexander Konovalov 和 Andrew Solomon 三个人写的一个 GAP 宏包. 主要用于GAP系统导入导出用 OpenMath 所编码的数学对象. 可用于和其他使用 OpenMath 的应用程序进行信息交换. (一个自然的想法是开发 MathML for GAP 这样一个宏包.)

如果和 GAP 的另一个宏包 SCSCP 结合使用, 则更有效率.

安装

openmath 宏包依赖 GAPDoc 及 IO 两个宏包, 安装前先确认这两个宏包已经安装, 否则无法加载 openmath.
 

Reference:

Marco Costantini, Alexander Konovalov, Andrew Solomon, OpenMath functionality in GAP, Version 10.1.0, 30 March 2010.

Alexander Konovalov, Steve Linton, Symbolic Computation Software Composability Protocol, Version 1.2.0, 30 March 2010.

 

openmath 的主页 www.openmath.org

3. [GGAP]GAP的前端图形用户界面

Posted by haifeng on 2012-02-04 18:51:17 last update 2012-02-08 22:17:21 | Answers (0) | 收藏


Author: Yevgen Muntyan

开发周期: 2004-2008

http://sourceforge.net/projects/ggap/

GGAP 使用了Medit 这个文本编辑器, 也是由 Yevgen Muntyan 于 2004-2007 开发的.

http://mooedit.sourceforge.net/

Medit 是一款强大的编辑器, 对于 GAP 来说有如下特点, 可以将它当作程序编辑器. Medit 集成了插件Terminal(终端). 因此如果要运行GAP程序文件, 比如 test.g, 只需在 Terminal 中先运行gap, 然后在gap的终端状态下键入 Read("test.g") 即可. (当然写要保证这个文件所在的目录与gap启动的目录要一致). 所以我还是非常喜欢这个编辑器的. 但是这个功能似乎没有加入到GGAP中去, 也就是说 GGAP 要改进的地方还有很多.

-----------------

GGAP 最大的亮点是代码自动完成. 比如当键入 "Inv" 后按 Tab 键, 就会出现一个命令列表, 所有以 Inv 开始的命令都被列了出来, 并且按字典序排序.

其实类似的功能在终端下也是有的, 只不过要按两次 Tab 键, 而且终端下只是简单的将所有命令打印出来.

GGAP 可以保存 workspace, 它可将用户所定义的变量、显示的字符, 甚至完整的系统状态都给保存下来. 保存的文件以 .gwp 作为后缀. 当然这个文件会比较大, 因为其大小与系统分配给 GAP 的内存基本相一致, 因此很容易就达到几十兆或上百兆. 而且该文件不能在不同的操作系统或不同版本的GAP下互用, 即不是“跨平台”的.

GGAP 还可以保存 worksheet, 它只保存文本性质的内容(如系统的命令、输入输出的记录等), 因此文件一般来说非常小, 易于保存并传输. 而且还是“跨平台”的, 即具有通用性. 方便交流. 该文件是 XML 格式的.

GGAP 还有一个功能, 就是提供了一个很方便的图形界面帮助系统. 如输入 ??gcd 就会启动该帮助系统, 并定位到相应内容的位置. 还可以加入书签, 方便查阅已读过的重要文档.

GGAP 命令的回溯功能: Ctrl+上/下光标键.

GGAP 的编辑功能: 如果用键盘选择文本, 可以按 Shift+上/下/左/右光标键.

不足之处

其内置的帮助页面虽然也是显示相应的 html 文件, 但是暂时还不能做到借助 MathJax 或 jsMath 等工具像在浏览器中显示数学公式.

GGAP 所提供的 GAP 设置功能相对比较少, 比如应该可以提供在 GAP 启动时自动加载所需要的宏包的功能, 这方面 CocoaGap 已经加入了该选项, 不过 CocoaGap 仅能运行在 MAC 系统下, 它是类似与 XGAP 的一个软件. 而且也可以设想, 当键入 LoadPackage 时, 自动显示 GAP 系统尚未加载的宏包列表, 让用户很方便地自行选择加载, 并预先判断宏包之间的依赖性.

GGAP 未提供快捷键的帮助显示或设置. 更好地应可以让用户自行设置. 使得符合用户的个人习惯.

GAP 的错误提示功能还可以再加强. 比如: Package 中的命令必须要在 Package 被加载后才能识别, 用户如果想键入 GuavaVersion(); 但一时想不起来是 Guava 还是 guava, 此时如果也有 Tab 自动补全提示就好了, 当然可以设置为 Shift+Tab 自动补全. (目前按 Shift+Tab 会出现 Z 字符)

GGAP (或者在其帮助系统中)最好能有一个 panel, 其中按分类整理一些命令, 然后单击这些命令会自动键入到 GGAP 的输入符 > 后面

GGAP 未能加入显示当前工作区的正在使用的变量, 就像 MatLab 一样 有一个 panel 是用来管理这些变量的.

4. [GAP]xgap 宏包的安装

Posted by haifeng on 2012-02-04 15:29:39 last update 2012-02-08 21:44:12 | Answers (0) | 收藏


XGAP 是 GAP 的一个宏包, 用于使用图形直观显示子群关系的一个图形前端. 这个宏包需要 X11, 在 32 位 Ubuntu 系统上先安装下面的宏包

libxaw7-dev libxmu-dev libxt-dev libxext-dev libx11-dev libsm-dev libice-dev libxpm-dev

然后编译 xgap

./configure
make

X11 是需要额外安装的, 但是在 Mac 系统下 X11 的使用会有点麻烦. Russ Woodroofe 特为此写了一个 Mac 上的原生版本, 名为 Cocoagap.


Reference:

http://blog.gmane.org/gmane.comp.mathematics.gap.user/month=20091201

5. 涉及到 GAP 的网站

Posted by haifeng on 2011-11-13 15:29:00 last update 2011-11-13 15:29:00 | Answers (0) | 收藏


 http://itee.uq.edu.au/~gap/

6. GAP 用户讨论社区

Posted by haifeng on 2011-09-04 21:59:20 last update 2011-09-04 21:59:20 | Answers (0) | 收藏


http://blog.gmane.org/gmane.comp.mathematics.gap.user

7. [GAP]Group()

Posted by haifeng on 2011-08-19 15:59:45 last update 2011-08-19 15:59:45 | Answers (0) | 收藏


用法

  • Group(gen1,gen2,...,genk)
  • Group(list)
  • Group(list,id)

功能

  • Group(gen1,gen2,...,genk): 返回由该 k 个生成元生成的群.
  • Group(list): 这里的参数是一个表, 但不能是矩阵, 返回由该表中元素生成的群.
  • Group(list,id): 如果有两个参数, 第一个是 list (不能是矩阵), 第二个是元素, 则返回由该表中元素生成的群, 且 id 是单位元.

8. [GAP]IsBound(list[k])

Posted by haifeng on 2011-08-17 16:56:41 last update 2011-08-17 16:56:41 | Answers (0) | 收藏


用法

IsBound(list[k]);

功能

list 的第 k 个位置上是否有元素, 如有则返回 true, 如没有则返回 false.

9. [GAP]PermList(list)

Posted by haifeng on 2011-08-17 16:31:22 last update 2011-08-17 16:31:22 | Answers (0) | 收藏


用法

PermList(list)

功能

返回一个置换 $\tau$, 使得 $[1,2,\ldots,n]^\tau=list$. 需要注意的是, 这里的 list 中的成员必须可以组成一个置换, 否则会返回 fail.

10. [GAP]函数

Posted by haifeng on 2011-08-17 16:10:46 last update 2011-08-17 16:10:46 | Answers (0) | 收藏


GAP 中的函数

<[1] [2] [3] >