CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutSign UpSign In

Real-time collaboration for Jupyter Notebooks, Linux Terminals, LaTeX, VS Code, R IDE, and more,
all in one place.

| Download

GAP 4.8.9 installation with standard packages -- copy to your CoCalc project to get it

Views: 418346
1
2
/**************************************************************************
3
4
snippets.c
5
6
Bits of code that, at one time or another, were in ACE.
7
8
**************************************************************************/
9
10
/******************************************************************
11
Mode 5 in an experimental mode where we specify the percentage of
12
deductions to be stacked via dedper. So we will, in general, run
13
an RA phase at the end of the enumeration. If the number of cosets
14
doesn't blow out to badly, then we could achieve a significant
15
speed-up; without the complications of PACE's parallelisation.
16
17
This code might more properly be in PACE, which is intended as a
18
test-bed for various dedn handling strategies (incl the `parallel'
19
stategy!).
20
21
Note that we also need to declare dedper in al0.h, define it in
22
enum.c, initialise it, and print it out in, eg, `dump:0;' &
23
`sr:1;'.
24
******************************************************************/
25
26
/* The SAVED macro for dedmode #5 */
27
28
#define SAVED(cos,gen) \
29
INCR(xsaved); \
30
if (dedmode == 5 && ((1 + (rand()%100)) > dedper)) \
31
{ disded = TRUE; } \
32
else \
33
{ \
34
if (topded >= dedsiz-1) \
35
{ \
36
INCR(sdoflow); \
37
switch(dedmode) \
38
{ \
39
case 3: \
40
disded = TRUE; \
41
topded = -1; \
42
break; \
43
case 4: \
44
case 5: \
45
al0_dedn(cos,gen); \
46
break; \
47
default: \
48
disded = TRUE; \
49
break; \
50
} \
51
} \
52
else \
53
{ \
54
dedrow[++topded] = cos; \
55
dedcol[topded] = gen; \
56
} \
57
} \
58
SAVED00;
59
60
/* The `dmod' parsing */
61
62
if (al2_match("ded mo[de]") || al2_match("dmod[e]"))
63
{
64
al2_readia();
65
al2_endcmd();
66
67
if (intcnt == 0)
68
{
69
fprintf(fop, "deduction mode = %d", dedmode);
70
if (dedmode == 5)
71
{ fprintf(fop, " (%d%%)", dedper); }
72
fprintf(fop, "\n");
73
}
74
else if (intcnt == 1)
75
{
76
if (intarr[0] < 0 || intarr[0] > 5)
77
{ al2_continue("bad mode parameter"); }
78
dedmode = intarr[0];
79
dedper = 50; /* default is 1/2 the dedns */
80
}
81
else if (intcnt == 2)
82
{
83
if (intarr[0] != 5)
84
{ al2_continue("too many parameters"); }
85
if (intarr[1] < 0 || intarr[1] > 100)
86
{ al2_continue("bad percentage parameter"); }
87
dedmode = intarr[0];
88
dedper = intarr[1];
89
}
90
else
91
{ al2_continue("bad parameter count"); }
92
93
continue;
94
}
95
96
/******************************************************************
97
******************************************************************/
98
99
/******************************************************************
100
******************************************************************/
101
102
/******************************************************************
103
******************************************************************/
104
105
/******************************************************************
106
******************************************************************/
107
108
109