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 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112
|
typedef unsigned short objtype;
typedef unsigned short reftype;
enum
{ UNKNOWN = 0x00
, TEKST = 0x11 /* character based type */
, INTEGER = 0x02, VECTOR = 0x12, MATRIX = 0x32 /* integer based types */
, BIGINT = 0x03
, POLY = 0x14
, SIMPGRP = 0x06, GROUP = 0x16 /* group based types */
, ERROR = 0x08
, ARGTYPE = 0x09
, VOID = 0x0A
};
typedef struct
{
objtype type; reftype nref;
entry intval;
} intcel;
typedef struct
{
objtype type; reftype nref;
short allocsize, size;
digit *data;
} bigint;
typedef struct
{
objtype type; reftype nref;
index ncomp;
index size;
entry *compon;
} vector;
typedef struct
{
objtype type; reftype nref;
index nrows, ncols;
index rowsize;
entry **elm;
bigint **null;
} matrix;
typedef struct
{
objtype type; reftype nref;
index nrows, ncols;
index rowsize;
entry **elm;
bigint **coef;
} poly;
typedef struct simpgrp_struct simpgrp;
struct simpgrp_struct
{
objtype type; reftype nref;
char lietype;
entry lierank;
matrix* cartan,* icartan,* roots;
vector* exponents,* level,* root_norm;
simpgrp* nextgrp;
};
typedef struct
{
objtype type; reftype nref;
index ncomp, toraldim;
simpgrp **liecomp;
} group;
typedef struct
{
objtype type; reftype nref;
index len;
char *string;
} tekst;
typedef union {
struct {
objtype type; reftype nref;
} any;
intcel i;
bigint b;
vector v;
matrix m;
poly pl;
simpgrp s;
group g;
tekst t;
} objcel, *object;
|