.TH BSlog.h h "10/17/1996" " " "BlockSolve95"
.SH NAME
BSlog.h \- This file defines the type of logging done in the
BlockSolve package.  It is hoped that this will
eventually be converted to use more general logging
routines.  Therefore, the user should probably
not attempt to use this package in their own code.  It
would be reasonable to print out the information gathered
by this logging facility using BSprint_log(), however.

.SH SYSTEM DESCRIPTION
This logging system allows for two kinds of phases: one time
occurences whose time of occurence and duration must be recorded
and things that are executed many times for which we want
aggregate information (this are accumulated events).

The facility is initialized in BSinit() if MLOG is defined.
The facility is terminated by BSfinalize() and statistics printed
by calling the BSprint_log().  A one-time occurence is recorded by calling
the macro MLOG_ELM to signal the beginning of the event and
MLOG_IT to signal the end.  An accumulated event is signaled by
calling MLOG_ELM to signal the beginning and MLOG_ACC to signal
the end.

BlockSolve95 no longer requires global variables to be defined
in the users' program; the logging variables are all internal to
the library.

.SH SYNOPSIS
.nf

#ifndef __BSlogh
#define __BSlogh

#ifdef MLOG
#define MCOUNT

/* define the clock to use */
#define Mclock() MPI_Wtime();

/* We allow a maximum of 300 events and 75 accumulated events */
/* The 300 events is only necessary if one calls BSmain_perm many times */
/* otherwise, a much smaller number would be fine */ 
#define MLOG_MAX_EVNTS 300
#define MLOG_MAX_ACCUM 75

/* define a structure that contains all information regarding an event */
typedef struct __MLOG_log_type
.fi

.SH LOCATION
 BlockSolve95/include/BSlog.h


syntax highlighted by Code2HTML, v. 0.9.1