XEROX BRKDWNREPORT 2 4 1 BRKDWNREPORT 1 4 Author: Johannes A. G. M. Koomen (Koomen.wbst@Xerox.com or Koomen@CS.Rochester.edu) Date: (570159877 NIL (DATEFORMAT NO.TIME YEAR.LONG SPACES)) Description BRKDWNREPORT is an alternative to the function BRKDWNRESULTS (cf. IRM, Section 12.3.1). It produces nicely formatted and eminently readable output, with results sorted by cumulative quantity and alphabetically, listing only non-zero entries. This package also provides the function BRKDWNFORM, which is given a form and a list of functions to break down, and optionally a new breakdown type. BRKDWNFORM breaks down the given functions, evaluates the given form, produces a report, unbreaks the given functions, and returns the value of the given form. If the new breakdown type is T, it is interpreted as "measure everything you know how to measure." Interface (BRKDWNREPORT TITLE STREAM) [Function] BRKDWNREPORT produces on STREAM a header indicating TITLE, current date, and quantities measured, followed by a series of nicely formatted tables, one sorted by cumulative quantity and one sorted alphabetically for each of the currently selected BRKDWNTYPES. If STREAM is not already open, it will be opened before and closed afterwards. Each entry in the table consists of a function name, total quantity measured for that function, number of times the function was invoked, and average quantity per function invocation. The tables have entries only those functions that have a non-zero total quantity measured. (BRKDWNFORM FORM FNS STREAM NEWBRKDWNTYPE) [Function] BRKDWNFORM calls BREAKDOWN on all given FNS, then calls EVAL on FORM, then calls BRKDWNREPORT on FORM and STREAM, then unbreaks all FNS, then finally returns the value of FORM. If NEWBRKDWNTYPE has a non-NIL value then the variable BRKDWNTYPE (cf. IRM, Section 22.3.1) is set to it, unless it is T, in which case BRKDWNTYPE is set to a list of all measurable quantities. (LIST ((PAGE NIL (FOLIOINFO (ARABIC) STARTINGPAGE# 1) (0 0 612 792) ((FOLIO NIL (PARALOOKS (QUAD CENTERED) CHARLOOKS (SUPERSCRIPT 0 SIZE 10 FAMILY MODERN OVERLINE OFF STRIKEOUT OFF UNDERLINE OFF SLOPE REGULAR WEIGHT MEDIUM) FORMATINFO (ARABIC)) (174 36 288 36) NIL) (HEADING NIL (HEADINGTYPE RUNNINGHEAD) (84 744 444 36) NIL) (TEXT NIL NIL (84 96 456 600) NIL))) (PAGE NIL NIL (0 0 612 792) ((FOLIO NIL (PARALOOKS (QUAD CENTERED) CHARLOOKS (SUPERSCRIPT 0 SIZE 10 FAMILY MODERN OVERLINE OFF STRIKEOUT OFF UNDERLINE OFF SLOPE REGULAR WEIGHT MEDIUM)) (282 42 72 36) NIL) (HEADING NIL (HEADINGTYPE RUNNINGHEAD) (84 744 444 36) NIL) (TEXT NIL NIL (84 96 456 600) NIL))) (PAGE NIL NIL (0 0 612 792) ((FOLIO NIL (PARALOOKS (QUAD CENTERED) CHARLOOKS (SUPERSCRIPT 0 SIZE 10 FAMILY MODERN OVERLINE OFF STRIKEOUT OFF UNDERLINE OFF SLOPE REGULAR WEIGHT MEDIUM)) (282 42 72 36) NIL) (HEADING NIL (HEADINGTYPE RUNNINGHEAD) (84 744 444 36) NIL) (TEXT NIL NIL (84 96 456 600) NIL))))) (È (È1ÈÈ(È1È È1È ¼È(ŠŠ8(ŠŠ8DÈÈ PAGEHEADING RUNNINGHEAD HELVETICA MODERN MODERN MODERN MODERNMODERN LOGO    HRULE.GETFNMODERN  HRULE.GETFNMODERN  HRULE.GETFNMODERN   HRULE.GETFNMODERN  HRULE.GETFNMODERN #36DOCOBJ-TIMESTAMP-GETFN ?R  <+7õ}¬5zº