GAP 4.8.9 installation with standard packages -- copy to your CoCalc project to get it
@--------------------------------------------------------------------------- @--------------------------------------------------------------------------- @ FILE: get_bravais.c @--------------------------------------------------------------------------- @--------------------------------------------------------------------------- @ @--------------------------------------------------------------------------- @ bravais_TYP *get_bravais (file_name) @ char *file_name; @ reads a bravais_TYP from the file 'file_name' @--------------------------------------------------------------------------- @ @--------------------------------------------------------------------------- @--------------------------------------------------------------------------- @ FILE: get_mat.c @--------------------------------------------------------------------------- @--------------------------------------------------------------------------- @ @--------------------------------------------------------------------------- @ matrix_TYP *fget_mat (infile) @ FILE *infile; @ reads a matrix from infile @--------------------------------------------------------------------------- @ @--------------------------------------------------------------------------- @ matrix_TYP *get_mat (file_name) @ char *file_name; @ reads a matrix from the file with name 'file_name' @--------------------------------------------------------------------------- @ @------------------------------------------------------------------------- @ @ mat_array = mget_mat( file_name, anz ); @ @ differs from fmget_mat() only in specifying the file name instead of the @ file-pointer. @ @------------------------------------------------------------------------- @------------------------------------------------------------------------- @ @ mat_array = fmget_mat( infile, anz ); @ @ matrix_TYP **mat_array: array of matrices read from infile @ @ FILE *infile: the file the matrices are read from @ int *anz: the number of matrices that have been read from infile. @ is set by the function. @------------------------------------------------------------------------- @ @--------------------------------------------------------------------------- @--------------------------------------------------------------------------- @ FILE: put_bravais.c @--------------------------------------------------------------------------- @--------------------------------------------------------------------------- @ @--------------------------------------------------------------------------- @ void fput_bravais(outfile, G, comment) @ FILE *outfile; @ bravais_TYP *G; @ char *comment; @ the same as put_bravais, but outfile must already have | @ been opened | @ @--------------------------------------------------------------------------- @ @--------------------------------------------------------------------------- @ void put_bravais(G, filename, comment) @ bravais_TYP *G; @ char *filename; @ char *comment; @ @ prints the bravais_TYP G to the file with name 'filename'. @ If 'filename' == NULL, G is printed to standard output. @ comment is a string to write comments that will be ignored if @ the output is used as input for another programm @--------------------------------------------------------------------------- @ @--------------------------------------------------------------------------- @--------------------------------------------------------------------------- @ FILE: put_mat.c @--------------------------------------------------------------------------- @--------------------------------------------------------------------------- @ @ @ void put_mat( mat, file_name, comment, options ); @ void fput_mat (outfile, mat, comment, options) @ @ result: void @ arguments: @ matrix_TYP *mat -- the matrix to be written @ char * file_name -- the name of the file the matrix will be written to @ if file_name == NULL, we write to stdout @ char * comment -- optional comment written to the output-file @ unsigned int options -- options to controll the output of the matrix @ @ Currently, there are two options. The one is called PM_RATIONAL and @ has a value of 0x00000001 (defined in ../../include/matrix.h ). It @ causes the matrix to be written with numerator and denominator for @ each entry if it isn't @ integral. The flag is still ignored for matrices that have array.N @ allocated. If PM_NORMALIZED is not set, even rational matrices are @ written in lcd-representation] @ The other flag is called PM_SHORTCUT and causes the flag-entries @ of the matrix not to be ignored, i.e. the matrix is not printed as @ an NxM array, if it is symmetric, diagonal or even scalar. @ @ This is the first time since I started to compet with this confused @ source-code that I discover that someone used bit-flags, wich is a @ nice thing, though the one forgot to #define and document them. @ @ These flags should be used the following way: @ @ put_mat( ... , PM_RATIONAL ); @ or put_mat( ... , PM_SHORTCUT ); @ or put_mat( ... , PM_SHORTCUT | PM_RATIONAL ); @ or just put_mat( ... , 0UL ); @ @ Note: "0UL" means just "(unsigned long)0" @------------------------------------------------------------------------- @ @--------------------------------------------------------------------------- @--------------------------------------------------------------------------- @ FILE: put_order.c @--------------------------------------------------------------------------- @--------------------------------------------------------------------------- @ @--------------------------------------------------------------------------- @ void fput_order(outfile, divisors, ord) @ FILE *outfile; @ int *divisors; @ int ord; @ A tools to print the order of a bravais_TYP @--------------------------------------------------------------------------- @ @--------------------------------------------------------------------------- @--------------------------------------------------------------------------- @ FILE: read_header.c @--------------------------------------------------------------------------- @--------------------------------------------------------------------------- @--------------------------------------------------------------------------- @ void read_header(argc,argv) @ int argc, char *argv[], @ @ reads the filenames and options for a programm @ the filenames are stored in: extern char **FILENAMES; @ the numer of files is stored in: extern int *FILEANZ; @ the options are stored in: extern char *OPTIONS; @ the number of options is stored in: extern int *OPTIONANZ; @ additional integers to the options in : extern int *OPTIONNUMBERS; @ These extern variables are defined in globals.h @ @ The option are allowed to be alphbetic letters and the function @ distinguishes between upper and lower letters. @ In the calling of the program, options have to be set behind a '-'. @ If one wants read an additional integer 'i' to an option 'p', one has to @ call this in the form: -p=i @ @ @ Example: @ program file1 file2 -p=10 -P -d=-1 @ In this example @ FILENAMES[1] = file1 @ FILENAMES[2] = file2 @ FILEANZ = 2 @ OPTIONS[0] = p @ OPTIONS[1] = P @ OPTIONS[2] = d @ OPTIONNUMBERS[0] = 10 @ OPTIONNUMBERS[1] = 0 @ OPTIONNUMBERS[2] = -1 @ OPTIONANZ = 3 @ @ WARNING: a call -CF reads only C as an option, not F. @ there are no blanks allowed in a word "-p=10" @ @ @------------------------------------------------------------------------- @ int is_option(c) @ char c; @ @ The return of this function is 1 if the character c is among the options, @ otherwise 0. @ A typical call of this function is: is_option('p'); @ @------------------------------------------------------------------------- @ @ int optionnumber(c) @ char c; @ @ optionnumber('p') returns the additional number to the option 'p'. @ If 'p' is no option, the return is 0. @------------------------------------------------------------------------- @