/* basics.c */
#include "../Chv.h"
#define MYDEBUG 0
/*--------------------------------------------------------------------*/
/*
-----------------------
simplest constructor
created -- 98apr30, cca
-----------------------
*/
Chv *
Chv_new (
void
) {
Chv *chv ;
ALLOCATE(chv, struct _Chv, 1) ;
Chv_setDefaultFields(chv) ;
return(chv) ; }
/*--------------------------------------------------------------------*/
/*
-----------------------
set the default fields
created -- 98apr30, cca
-----------------------
*/
void
Chv_setDefaultFields (
Chv *chv
) {
if ( chv == NULL ) {
fprintf(stderr, "\n fatal error in Chv_setDefaultFields(%p)"
"\n bad input", chv) ;
exit(-1) ;
}
chv->id = -1 ;
chv->nD = 0 ;
chv->nL = 0 ;
chv->nU = 0 ;
chv->type = SPOOLES_REAL ;
chv->symflag = SPOOLES_SYMMETRIC ;
DV_setDefaultFields(&chv->wrkDV) ;
chv->rowind = NULL ;
chv->colind = NULL ;
chv->entries = NULL ;
chv->next = NULL ;
return ; }
/*--------------------------------------------------------------------*/
/*
--------------------------------------------------
clear the data fields, releasing allocated storage
created -- 98apr30, cca
--------------------------------------------------
*/
void
Chv_clearData (
Chv *chv
) {
/*
---------------
check the input
---------------
*/
if ( chv == NULL ) {
fprintf(stderr, "\n fatal error in Chv_clearData(%p)"
"\n bad input\n", chv) ;
exit(-1) ;
}
/*
------------------------
free the working storage
------------------------
*/
DV_clearData(&chv->wrkDV) ;
/*
----------------------
set the default fields
----------------------
*/
Chv_setDefaultFields(chv) ;
return ; }
/*--------------------------------------------------------------------*/
/*
------------------------------------------
destructor, free's the object and its data
created -- 98apr30, cca
------------------------------------------
*/
void
Chv_free (
Chv *chv
) {
if ( chv == NULL ) {
fprintf(stderr, "\n fatal error in Chv_free(%p)"
"\n bad input\n", chv) ;
exit(-1) ;
}
Chv_clearData(chv) ;
FREE(chv) ;
return ; }
/*--------------------------------------------------------------------*/
syntax highlighted by Code2HTML, v. 0.9.1