/* Perm.h */
#include "../cfiles.h"
#include "../IV.h"
/*--------------------------------------------------------------------*/
/*
-------------------------------------------------------
the Perm object contains one or two permutation vectors
isPresent -- flag to tell which vectors are present
0 --> neither are present
1 --> newToOld is present
2 --> oldToNew is present
3 --> both are present
size -- size of the vectors
newToOld -- pointer to new-to-old permutation vector
oldToNew -- pointer to old-to-new permutation vector
created -- 96mar16
---------------------------------------------------------
*/
typedef struct _Perm Perm ;
struct _Perm {
int isPresent ;
int size ;
int *newToOld ;
int *oldToNew ;
} ;
/*--------------------------------------------------------------------*/
/*
------------------------------------------------------------------------
----- method founds in basics.c ----------------------------------------
------------------------------------------------------------------------
*/
/*
-----------------------
simplest constructor
created -- 96jan05, cca
-----------------------
*/
Perm *
Perm_new (
void
) ;
/*
-----------------------
set the default fields
created -- 96jan05, cca
-----------------------
*/
void
Perm_setDefaultFields (
Perm *perm
) ;
/*
--------------------------------------------------
clear the data fields, releasing allocated storage
created -- 96jan05, cca
--------------------------------------------------
*/
void
Perm_clearData (
Perm *perm
) ;
/*
------------------------------------------
destructor, free's the object and its data
created -- 96jan05, cca
------------------------------------------
*/
Perm *
Perm_free (
Perm *perm
) ;
/*--------------------------------------------------------------------*/
/*
------------------------------------------------------------------------
----- method founds in init.c ------------------------------------------
------------------------------------------------------------------------
*/
/*
-----------------------
initializer
created -- 96jan05, cca
-----------------------
*/
void
Perm_initWithTypeAndSize (
Perm *perm,
int isPresent,
int size
) ;
/*--------------------------------------------------------------------*/
/*
------------------------------------------------------------------------
----- method founds in util.c ------------------------------------------
------------------------------------------------------------------------
*/
/*
---------------------------------------
return the storage taken by this object
created -- 96jan05, cca
---------------------------------------
*/
int
Perm_sizeOf (
Perm *perm
) ;
/*
----------------------------------------------------------
check that the permutation object does house a permutation
return value --
1 if a true permutation
0 otherwise
----------------------------------------------------------
*/
int
Perm_checkPerm (
Perm *perm
) ;
/*
----------------------------------------
if the old-to-new vector is not present,
create it and fill its entries
created -- 96mar16, cca
----------------------------------------
*/
void
Perm_fillOldToNew (
Perm *perm
) ;
/*
----------------------------------------
if the new-to-old vector is not present,
create it and fill its entries
created -- 96mar16, cca
----------------------------------------
*/
void
Perm_fillNewToOld (
Perm *perm
) ;
/*
------------------------------------
if the old-to-new vector is present,
release it and free its entries
created -- 96mar16, cca
------------------------------------
*/
void
Perm_releaseOldToNew (
Perm *perm
) ;
/*
------------------------------------
if the new-to-old vector is present,
release it and free its entries
created -- 96mar16, cca
------------------------------------
*/
void
Perm_releaseNewToOld (
Perm *perm
) ;
/*--------------------------------------------------------------------*/
/*
------------------------------------------------------------------------
----- method founds in IO.c --------------------------------------------
------------------------------------------------------------------------
*/
/*
------------------------------------------------
purpose -- to read in an Perm object from a file
input --
fn -- filename, must be *.permb or *.permf
return value -- 1 if success, 0 if failure
created -- 96jan05, cca
-----------------------------------------------
*/
int
Perm_readFromFile (
Perm *perm,
char *fn
) ;
/*
------------------------------------------------------
purpose -- to read an Perm object from a formatted file
return value -- 1 if success, 0 if failure
created -- 96jan05, cca
------------------------------------------------------
*/
int
Perm_readFromFormattedFile (
Perm *perm,
FILE *fp
) ;
/*
---------------------------------------------------
purpose -- to read an Perm object from a binary file
return value -- 1 if success, 0 if failure
created -- 96jan05, cca
---------------------------------------------------
*/
int
Perm_readFromBinaryFile (
Perm *perm,
FILE *fp
) ;
/*
-------------------------------------------
purpose -- to write an Perm object to a file
input --
fn -- filename
*.permb -- binary
*.permf -- formatted
anything else -- for human eye
return value -- 1 if success, 0 otherwise
created -- 96jan05, cca
-------------------------------------------
*/
int
Perm_writeToFile (
Perm *perm,
char *fn
) ;
/*
-----------------------------------------------------
purpose -- to write an Perm object to a formatted file
return value -- 1 if success, 0 otherwise
created -- 96jan05, cca
-----------------------------------------------------
*/
int
Perm_writeToFormattedFile (
Perm *perm,
FILE *fp
) ;
/*
--------------------------------------------------
purpose -- to write an Perm object to a binary file
return value -- 1 if success, 0 otherwise
created -- 96jan05, cca
--------------------------------------------------
*/
int
Perm_writeToBinaryFile (
Perm *perm,
FILE *fp
) ;
/*
-------------------------------------------------
purpose -- to write an Perm object for a human eye
return value -- 1 if success, 0 otherwise
created -- 96jan05, cca
-------------------------------------------------
*/
int
Perm_writeForHumanEye (
Perm *perm,
FILE *fp
) ;
/*
---------------------------------------------------------
purpose -- to write out the statistics for the Perm object
return value -- 1 if success, 0 otherwise
created -- 96jan05, cca
---------------------------------------------------------
*/
int
Perm_writeStats (
Perm *perm,
FILE *fp
) ;
/*--------------------------------------------------------------------*/
/*
------------------------------------------------------------------------
----- method founds in compress.c --------------------------------------
------------------------------------------------------------------------
*/
/*
------------------------------------------------
given a permutation and a vector to map vertices
into compressed vertices, create and return a
permutation object for the compressed vertices.
created -- 96may02, cca
------------------------------------------------
*/
Perm *
Perm_compress (
Perm *perm,
IV *eqmapIV
) ;
/*--------------------------------------------------------------------*/
syntax highlighted by Code2HTML, v. 0.9.1