forked from gap-system/gap
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathpermutat.h
96 lines (77 loc) · 3.27 KB
/
permutat.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
/****************************************************************************
**
*W permutat.h GAP source Martin Schoenert
** & Alice Niemeyer
**
*H @(#)$Id$
**
*Y Copyright (C) 1996, Lehrstuhl D fuer Mathematik, RWTH Aachen, Germany
*Y (C) 1998 School Math and Comp. Sci., University of St. Andrews, Scotland
**
** This file defines the functions for permutations (small and large).
*/
#ifdef INCLUDE_DECLARATION_PART
const char * Revision_permutat_h =
"@(#)$Id$";
#endif
/****************************************************************************
**
*F NEW_PERM2(<deg>) . . . . . . . . . . . . make a new (small) permutation
*F DEG_PERM2(<perm>) . . . . . . . . . . . . . degree of (small) permutation
*F ADDR_PERM2(<perm>) . . . . . . . absolute address of (small) permutation
*F NEW_PERM4(<deg>) . . . . . . . . . . . . make a new (large) permutation
*F DEG_PERM4(<perm>) . . . . . . . . . . . . . degree of (large) permutation
*F ADDR_PERM4(<perm>) . . . . . . . absolute address of (large) permutation
*/
#define NEW_PERM2(deg) NewBag( T_PERM2, (deg) * sizeof(UInt2))
#define DEG_PERM2(perm) (SIZE_OBJ(perm) / sizeof(UInt2))
#define ADDR_PERM2(perm) ((UInt2*)ADDR_OBJ(perm))
#define NEW_PERM4(deg) NewBag( T_PERM4, (deg) * sizeof(UInt4))
#define DEG_PERM4(perm) (SIZE_OBJ(perm) / sizeof(UInt4))
#define ADDR_PERM4(perm) ((UInt4*)ADDR_OBJ(perm))
/****************************************************************************
**
*V IdentityPerm . . . . . . . . . . . . . . . . . . . identity permutation
**
** 'IdentityPerm' is an identity permutation.
*/
extern Obj IdentityPerm;
/****************************************************************************
**
*F OnTuplesPerm( <tup>, <perm> ) . . . . operations on tuples of points
**
** 'OnTuplesPerm' returns the image of the tuple <tup> under the
** permutation <perm>. It is called from 'FunOnTuples'.
*/
extern Obj OnTuplesPerm (
Obj tup,
Obj perm );
/****************************************************************************
**
*F OnSetsPerm( <set>, <perm> ) . . . . . . . . operations on sets of points
**
** 'OnSetsPerm' returns the image of the tuple <set> under the permutation
** <perm>. It is called from 'FunOnSets'.
*/
extern Obj OnSetsPerm (
Obj set,
Obj perm );
/****************************************************************************
**
*F Array2Perm( <array> ) . . . . . . . . . convert array of cycles into perm
*/
extern Obj Array2Perm (
Obj array );
/****************************************************************************
**
*F * * * * * * * * * * * * * initialize package * * * * * * * * * * * * * * *
*/
/****************************************************************************
**
*F InitInfoPermutat() . . . . . . . . . . . . . . . table of init functions
*/
StructInitInfo * InitInfoPermutat ( void );
/****************************************************************************
**
*E permutat.c . . . . . . . . . . . . . . . . . . . . . . . . . . ends here
*/