/* DDsepInfo.c */
#include "../DDsepInfo.h"
#define MYDEBUG 0
/*--------------------------------------------------------------------*/
/*
------------------------------------------------
construct a new instance of the DDsepInfo object
created -- 96feb24, cca
------------------------------------------------
*/
DDsepInfo *
DDsepInfo_new (
void
) {
DDsepInfo *info ;
ALLOCATE(info, struct _DDsepInfo, 1) ;
DDsepInfo_setDefaultFields(info) ;
return(info) ; }
/*--------------------------------------------------------------------*/
/*
---------------------------------------------
set the default fields of the DDsepInfo object
created -- 96feb24, cca
---------------------------------------------
*/
void
DDsepInfo_setDefaultFields (
DDsepInfo *info
) {
if ( info == NULL ) {
fprintf(stderr, "\n fatal error in DDsepInfo_setDefaultFields(%p)"
"\n bad input\n", info) ;
exit(-1) ;
}
info->seed = 1 ;
info->minweight = 40 ;
info->maxweight = 80 ;
info->freeze = 4.0 ;
info->alpha = 1.0 ;
info->maxcompweight = 500 ;
info->ntreeobj = 0 ;
info->DDoption = 1 ;
info->nlayer = 3 ;
info->cpuDD = 0.0 ;
info->cpuMap = 0.0 ;
info->cpuBPG = 0.0 ;
info->cpuBKL = 0.0 ;
info->cpuSmooth = 0.0 ;
info->cpuSplit = 0.0 ;
info->cpuTotal = 0.0 ;
info->msglvl = 0 ;
info->msgFile = stdout ;
return ; }
/*--------------------------------------------------------------------*/
/*
---------------------------------------------
clear the data fields for a DDsepInfo object
created -- 96feb24, cca
---------------------------------------------
*/
void
DDsepInfo_clearData (
DDsepInfo *info
) {
if ( info == NULL ) {
fprintf(stderr, "\n fatal error in DDsepInfo_clearData(%p)"
"\n bad input\n", info) ;
exit(-1) ;
}
DDsepInfo_setDefaultFields(info) ;
return ; }
/*--------------------------------------------------------------------*/
/*
------------------------
free the DDsepInfo object
created -- 96feb24, cca
------------------------
*/
void
DDsepInfo_free (
DDsepInfo *info
) {
if ( info == NULL ) {
fprintf(stderr, "\n fatal error in DDsepInfo_free(%p)"
"\n bad input\n", info) ;
exit(-1) ;
}
DDsepInfo_clearData(info) ;
#if MYDEBUG > 0
fprintf(stdout, "\n trying to free info") ;
fflush(stdout) ;
#endif
FREE(info) ;
return ; }
/*--------------------------------------------------------------------*/
/*
-----------------------
write the CPU times
created -- 97nov06, cca
-----------------------
*/
void
DDsepInfo_writeCpuTimes (
DDsepInfo *info,
FILE *msgFile
) {
double cpuMisc ;
/*
---------------
check the input
---------------
*/
if ( info == NULL || msgFile == NULL ) {
fprintf(stderr, "\n fatal error in DDsepInfo_writeCpuTimes(%p,%p)"
"\n bad input\n", info, msgFile) ;
exit(-1) ;
}
cpuMisc = info->cpuTotal - info->cpuDD - info->cpuSplit - info->cpuMap
- info->cpuBPG - info->cpuBKL - info->cpuSmooth ;
if ( info->cpuTotal > 0 ) {
fprintf(msgFile,
"\n\n CPU breakdown for graph partition"
"\n raw CPU per cent"
"\n misc : %9.2f %6.1f%%"
"\n Split : %9.2f %6.1f%%"
"\n find DD : %9.2f %6.1f%%"
"\n DomSeg Map : %9.2f %6.1f%%"
"\n DomSeg BPG : %9.2f %6.1f%%"
"\n BKL : %9.2f %6.1f%%"
"\n Smooth : %9.2f %6.1f%%"
"\n Total : %9.2f %6.1f%%",
cpuMisc, 100.*cpuMisc/info->cpuTotal,
info->cpuSplit, 100.*info->cpuSplit/info->cpuTotal,
info->cpuDD, 100.*info->cpuDD/info->cpuTotal,
info->cpuMap, 100.*info->cpuMap/info->cpuTotal,
info->cpuBPG, 100.*info->cpuBPG/info->cpuTotal,
info->cpuBKL, 100.*info->cpuBKL/info->cpuTotal,
info->cpuSmooth, 100.*info->cpuSmooth/info->cpuTotal,
info->cpuTotal, 100.) ;
}
return ; }
/*--------------------------------------------------------------------*/
syntax highlighted by Code2HTML, v. 0.9.1