Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
sagemath
GitHub Repository: sagemath/sagesmc
Path: blob/master/src/sage/libs/gap/test/main.c
8817 views
1
#include <unistd.h>
2
#include <stdio.h>
3
#include "gap/libgap.h"
4
5
#include "gap/config.h"
6
#include "gap/system.h"
7
#include "gap/objects.h"
8
#include "gap/gasman.h"
9
#include "gap/code.h"
10
#include "gap/vars.h"
11
#include "gap/read.h"
12
13
extern char **environ;
14
15
void error_handler(char* msg)
16
{
17
printf("Error: %s\n", msg);
18
}
19
20
void eval(char* cmd) {
21
printf("Input:\n%s", cmd);
22
libgap_start_interaction(cmd);
23
24
libgap_enter();
25
libGAP_ReadEvalCommand(libGAP_BottomLVars);
26
libGAP_ViewObjHandler(libGAP_ReadEvalResult);
27
char* out = libgap_get_output();
28
libgap_exit();
29
30
printf("Output:\n%s", out);
31
libgap_finish_interaction();
32
}
33
34
int main()
35
{
36
char* argv[8];
37
argv[0] = "gap";
38
argv[1] = "-l";
39
argv[2] = GAPDIR;
40
argv[3] = "-m";
41
argv[4] = "32M";
42
argv[5] = "-q";
43
argv[6] = "-T";
44
argv[7] = NULL;
45
int argc=7;
46
// gap_main_loop(argc, argv, environ);
47
libgap_set_error_handler(&error_handler);
48
libgap_initialize(argc, argv);
49
printf("Initialized\n");
50
51
libgap_enter()
52
libGAP_CollectBags(0,1); // full GC
53
libgap_exit()
54
55
eval("1+2+3;\n");
56
eval("g:=FreeGroup(2);\n");
57
eval("a:=g.1;\n");
58
eval("b:=g.2;\n");
59
eval("lis:=[a^2, a^2, b*a];\n");
60
eval("h:=g/lis;\n");
61
eval("c:=h.1;\n");
62
eval("Set([1..1000000], i->Order(c));\n");
63
64
libgap_finalize();
65
return 0;
66
}
67
68
69
/*
70
71
g:=FreeGroup(2);
72
a:=g.1;
73
b:=g.2;
74
lis:=[a^2, a^2, b*a];
75
h:=g/lis;
76
c:=h.1;
77
Set([1..300000], i->Order(c));
78
79
80
*/
81
82