Real-time collaboration for Jupyter Notebooks, Linux Terminals, LaTeX, VS Code, R IDE, and more,
all in one place.
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
Project: cocalc-sagemath-dev-slelievre
Views: 4183461/**************************************************************************23enum00.c4Colin Ramsay ([email protected])525 Feb 0067ADVANCED COSET ENUMERATOR, Version 3.00189Copyright 200010Centre for Discrete Mathematics and Computing,11Department of Mathematics and12Department of Computer Science & Electrical Engineering,13The University of Queensland, QLD 4072.14(http://staff.itee.uq.edu.au/havas)1516This is the include file for the enumerator's finite automata. The17transition tables take the current state & the previous action's result,18and give the next action & the next state. Note that the complete state19machine also includes an initialisation phase & some special actions at the20exiting of a state with a particular result. These are coded into the21start of the _enum() function and a switch() at the end of the machine's22main loop respectively.2324States:250 catch-all dummy/invalid state (forces return with fatal error)261 initial state for start mode R/C-style272 --"-- R*-style283 --"-- Cr-style294 --"-- C*-style305 --"-- reserved316 --"-- C-style327 --"-- Rc-style338 --"-- R-style349 --"-- CR-style3510 initial state for continue mode R/C-style3611 --"-- R*-style3712 --"-- Cr-style3813 --"-- C*-style3914 --"-- reserved4015 --"-- C-style4116 --"-- Rc-style4217 --"-- R-style4318 --"-- CR-style4419 initial state for redo mode R/C-style4520 --"-- R*-style4621 --"-- Cr-style4722 --"-- C*-style4823 --"-- reserved4924 --"-- C-style5025 --"-- Rc-style5126 --"-- R-style5227 --"-- CR-style5328 RD in R-style5429 Lx in R-style5530 CO in R-style5631 Check phase (all styles)5732 CL in C-style5833 SG in C-style5934 RS in C-style6035 CD in C-style6136 CO in C-style6237 SG in R-style6338 CL in CR-style6439 SG in CR-style6540 RS in CR-style6641 CD in CR-style6742 CO in CR-style6843 RD in CR-style6944 SG in R/C-style7045 RD in R/C-style7146 CL in R/C-style7247 CL in Cr-style7348 SG in Cr-style7449 RS in Cr-style7550 CD in Cr-style7651 CO in Cr-style7752 RD in Cr-style7853 SG in Rc-style7954 RD in Rc-style8055 CL in Rc-style8156 CL in Rc-style8257 CO in Rc-style8358 CD in Rc-style8459 CL in R*-style8560 SG in R*-style8661 RP in R*-style8762 CO in R*-style8889Results (internal):900 unable to make definition (overflow)91-1 success (continue)92-2 finite result (potential index)9394Actions (may cause state machine exit & force return from al0_enum()):95-1 catch-all dummy/invalid action (forces return with fatal error)960 null action (always succeeds)971 definitions (R-style)982 lookahead (R-style)993 compaction (any style; no space forces overflow return)1004 definitions/deductions (C-style)1015 lookahead (C-style)1026 check finite result (always returns; index or incomplete table)1037 apply subgroup generators to coset 1 (overflow returns -260)1048 apply relators to coset 11059 definitions/deductions (R*-style)106107**************************************************************************/108109static int al0_act[63][3] =110{111{-1, -1, -1}, /* 0 */112{-1, 7, -1}, /* 1 */113{-1, 7, -1}, /* 2 */114{-1, 7, -1}, /* 3 */115{-1, -1, -1}, /* 4 */116{-1, -1, -1}, /* 5 */117{-1, 7, -1}, /* 6 */118{-1, 7, -1}, /* 7 */119{-1, 7, -1}, /* 8 */120{-1, 7, -1}, /* 9 */121{-1, 1, -1}, /* 10 */122{-1, 9, -1}, /* 11 */123{-1, 4, -1}, /* 12 */124{-1, -1, -1}, /* 13 */125{-1, -1, -1}, /* 14 */126{-1, 4, -1}, /* 15 */127{-1, 1, -1}, /* 16 */128{-1, 1, -1}, /* 17 */129{-1, 4, -1}, /* 18 */130{-1, 7, -1}, /* 19 */131{-1, 5, -1}, /* 20 */132{-1, 5, -1}, /* 21 */133{-1, -1, -1}, /* 22 */134{-1, -1, -1}, /* 23 */135{-1, 5, -1}, /* 24 */136{-1, 7, -1}, /* 25 */137{-1, 7, -1}, /* 26 */138{-1, 5, -1}, /* 27 */139{ 2, 1, 6}, /* 28 */140{-1, 3, 6}, /* 29 */141{-1, 1, -1}, /* 30 */142{-1, -1, -1}, /* 31 */143{-1, 7, 6}, /* 32 */144{-1, 8, 6}, /* 33 */145{ 4, 4, 6}, /* 34 */146{ 3, 4, 6}, /* 35 */147{-1, 4, -1}, /* 36 */148{-1, 1, 6}, /* 37 */149{-1, 7, 6}, /* 38 */150{-1, 8, 6}, /* 39 */151{ 4, 4, 6}, /* 40 */152{ 3, 1, 6}, /* 41 */153{-1, 1, -1}, /* 42 */154{ 4, 4, 6}, /* 43 */155{-1, 1, 6}, /* 44 */156{ 5, 1, 6}, /* 45 */157{-1, 4, 6}, /* 46 */158{-1, 7, 6}, /* 47 */159{-1, 8, 6}, /* 48 */160{ 4, 4, 6}, /* 49 */161{ 3, 1, 6}, /* 50 */162{-1, 1, -1}, /* 51 */163{ 4, 4, 6}, /* 52 */164{-1, 1, 6}, /* 53 */165{ 5, 5, 6}, /* 54 */166{-1, 3, 6}, /* 55 */167{-1, 4, 6}, /* 56 */168{-1, 4, -1}, /* 57 */169{ 3, 1, 6}, /* 58 */170{-1, 7, 6}, /* 59 */171{-1, 9, 6}, /* 60 */172{ 3, 9, 6}, /* 61 */173{-1, 9, -1} /* 62 */174};175176static int al0_st[63][3] =177{178{ 0, 0, 0}, /* 0 */179{ 0, 44, 0}, /* 1 */180{ 0, 60, 0}, /* 2 */181{ 0, 48, 0}, /* 3 */182{ 0, 0, 0}, /* 4 */183{ 0, 0, 0}, /* 5 */184{ 0, 33, 0}, /* 6 */185{ 0, 53, 0}, /* 7 */186{ 0, 37, 0}, /* 8 */187{ 0, 39, 0}, /* 9 */188{ 0, 45, 0}, /* 10 */189{ 0, 61, 0}, /* 11 */190{ 0, 50, 0}, /* 12 */191{ 0, 0, 0}, /* 13 */192{ 0, 0, 0}, /* 14 */193{ 0, 35, 0}, /* 15 */194{ 0, 54, 0}, /* 16 */195{ 0, 28, 0}, /* 17 */196{ 0, 41, 0}, /* 18 */197{ 0, 44, 0}, /* 19 */198{ 0, 59, 0}, /* 20 */199{ 0, 47, 0}, /* 21 */200{ 0, 0, 0}, /* 22 */201{ 0, 0, 0}, /* 23 */202{ 0, 32, 0}, /* 24 */203{ 0, 53, 0}, /* 25 */204{ 0, 37, 0}, /* 26 */205{ 0, 38, 0}, /* 27 */206{29, 28, 31}, /* 28 */207{ 0, 30, 31}, /* 29 */208{ 0, 28, 0}, /* 30 */209{ 0, 0, 0}, /* 31 */210{ 0, 33, 31}, /* 32 */211{ 0, 34, 31}, /* 33 */212{35, 35, 31}, /* 34 */213{36, 35, 31}, /* 35 */214{ 0, 35, 0}, /* 36 */215{ 0, 28, 31}, /* 37 */216{ 0, 39, 31}, /* 38 */217{ 0, 40, 31}, /* 39 */218{41, 41, 31}, /* 40 */219{42, 43, 31}, /* 41 */220{ 0, 43, 0}, /* 42 */221{41, 41, 31}, /* 43 */222{ 0, 45, 31}, /* 44 */223{46, 45, 31}, /* 45 */224{ 0, 41, 31}, /* 46 */225{ 0, 48, 31}, /* 47 */226{ 0, 49, 31}, /* 48 */227{50, 50, 31}, /* 49 */228{51, 52, 31}, /* 50 */229{ 0, 52, 0}, /* 51 */230{35, 35, 31}, /* 52 */231{ 0, 54, 31}, /* 53 */232{55, 56, 31}, /* 54 */233{ 0, 57, 31}, /* 55 */234{ 0, 58, 31}, /* 56 */235{ 0, 58, 0}, /* 57 */236{30, 28, 31}, /* 58 */237{ 0, 60, 31}, /* 59 */238{ 0, 61, 31}, /* 60 */239{62, 61, 31}, /* 61 */240{ 0, 61, 0} /* 62 */241};242243244245