Confidential - Acme Engineering

             Resource Standard Metrics™ for C, C++, C# and Java
                   Version 7.75 - mSquaredTechnologies.com

  License Type: Shareware Evaluation License
  Licensed To : Shareware End User - Distribute Freely
  License No. : SW1380                          License Date: Dec 05, 1998
  Build Date  : Aug 16 2009                         Run Date: Aug 16, 2009 
  ©1996-2009 M Squared Technologies LLC™  
  ________________________________________________________________________

  License File: C:\Program Files\MSquared\M2 RSM\rsm.lic
  Config. File: C:\Program Files\MSquared\M2 RSM\rsm.cfg
  Command Line: -H -SMacros Report -m -n maccomp.c 
  UDQN File   : C:\Program Files\MSquared\M2 RSM\rsm_udqn.cfg

                                Macros Report

                           ~~ Quality Analysis ~~

  File: maccomp.c
  ________________________________________________________________________


    Notice #53: Line 19: A struct has been identified which does not
           have a preceding comment.  Comments that detail the purpose,
           algorithms, and parameter/return definitions are suggested.

    Notice #1: Line 31: Line character length = 81.  This width
           exceeds the standard terminal width of 80 characters.

    Notice #1: Line 32: Line character length = 103.  This width
           exceeds the standard terminal width of 80 characters.

    Notice #1: Line 33: Line character length = 81.  This width
           exceeds the standard terminal width of 80 characters.

    Notice #1: Line 35: Line character length = 81.  This width
           exceeds the standard terminal width of 80 characters.

    Notice #1: Line 36: Line character length = 83.  This width
           exceeds the standard terminal width of 80 characters.

    Notice #1: Line 37: Line character length = 83.  This width
           exceeds the standard terminal width of 80 characters.

    Notice #50: Line 37: A variable has been identified which is
           assigned to a literal number.  Symbolic constants should
           be used to enhance maintainability.

    Notice #1: Line 38: Line character length = 83.  This width
           exceeds the standard terminal width of 80 characters.

    Notice #50: Line 38: A variable has been identified which is
           assigned to a literal number.  Symbolic constants should
           be used to enhance maintainability.

    Notice #1: Line 39: Line character length = 83.  This width
           exceeds the standard terminal width of 80 characters.

    Notice #50: Line 39: A variable has been identified which is
           assigned to a literal number.  Symbolic constants should
           be used to enhance maintainability.

    Notice #1: Line 40: Line character length = 83.  This width
           exceeds the standard terminal width of 80 characters.

    Notice #50: Line 40: A variable has been identified which is
           assigned to a literal number.  Symbolic constants should
           be used to enhance maintainability.

    Notice #50: Line 41: A variable has been identified which is
           assigned to a literal number.  Symbolic constants should
           be used to enhance maintainability.

    Notice #50: Line 42: A variable has been identified which is
           assigned to a literal number.  Symbolic constants should
           be used to enhance maintainability.

    Notice #1: Line 43: Line character length = 81.  This width
           exceeds the standard terminal width of 80 characters.

    Notice #1: Line 44: Line character length = 81.  This width
           exceeds the standard terminal width of 80 characters.

    Notice #1: Line 57: Line character length = 81.  This width
           exceeds the standard terminal width of 80 characters.

    Notice #1: Line 58: Line character length = 81.  This width
           exceeds the standard terminal width of 80 characters.

    Notice #1: Line 61: Line character length = 91.  This width
           exceeds the standard terminal width of 80 characters.

    Notice #1: Line 63: Line character length = 91.  This width
           exceeds the standard terminal width of 80 characters.

    Notice #1: Line 67: Line character length = 81.  This width
           exceeds the standard terminal width of 80 characters.

    Notice #105: Line: 70 A symbolic constant using #define has been identified.

    Notice #105: Line: 74 A symbolic constant using #define has been identified.

  ------------------------- Macro Begin Line: 78 -------------------------
  Macro: SQR

                         ~~ Macro Quality Notices ~~

  Macro: SQR
  -------------------------- Macro End Line: 78 --------------------------

  ------------------------- Macro Begin Line: 79 -------------------------
  Macro: ABS

                         ~~ Macro Quality Notices ~~

  Macro: ABS
  -------------------------- Macro End Line: 79 --------------------------

  ------------------------- Macro Begin Line: 80 -------------------------
  Macro: MIN

                         ~~ Macro Quality Notices ~~

  Macro: MIN
  -------------------------- Macro End Line: 80 --------------------------

  ------------------------- Macro Begin Line: 81 -------------------------
  Macro: MAX

                         ~~ Macro Quality Notices ~~

  Macro: MAX
  -------------------------- Macro End Line: 81 --------------------------

  ------------------------- Macro Begin Line: 82 -------------------------
  Macro: ISEVEN

                         ~~ Macro Quality Notices ~~

  Macro: ISEVEN
  -------------------------- Macro End Line: 82 --------------------------

  ------------------------- Macro Begin Line: 83 -------------------------
  Macro: ISODD

                         ~~ Macro Quality Notices ~~

  Macro: ISODD
  -------------------------- Macro End Line: 83 --------------------------

    Notice #119: Line: 90 Return is not a function,
           no parenthesis should be used.

    Notice #119: Line: 98 Return is not a function,
           no parenthesis should be used.

    Notice #119: Line: 100 Return is not a function,
           no parenthesis should be used.

    Notice #119: Line: 108 Return is not a function,
           no parenthesis should be used.

    Notice #119: Line: 110 Return is not a function,
           no parenthesis should be used.

    Notice #119: Line: 118 Return is not a function,
           no parenthesis should be used.

    Notice #119: Line: 120 Return is not a function,
           no parenthesis should be used.

    Notice #119: Line: 128 Return is not a function,
           no parenthesis should be used.

    Notice #119: Line: 130 Return is not a function,
           no parenthesis should be used.

    Notice #119: Line: 138 Return is not a function,
           no parenthesis should be used.

    Notice #119: Line: 140 Return is not a function,
           no parenthesis should be used.

    Notice #119: Line: 147 Return is not a function,
           no parenthesis should be used.

    Notice #119: Line: 154 Return is not a function,
           no parenthesis should be used.

    Notice #119: Line: 156 Return is not a function,
           no parenthesis should be used.

    Notice #119: Line: 163 Return is not a function,
           no parenthesis should be used.

    Notice #119: Line: 165 Return is not a function,
           no parenthesis should be used.

    Notice #119: Line: 172 Return is not a function,
           no parenthesis should be used.

    Notice #119: Line: 174 Return is not a function,
           no parenthesis should be used.

    Notice #119: Line: 181 Return is not a function,
           no parenthesis should be used.

    Notice #119: Line: 183 Return is not a function,
           no parenthesis should be used.

    Notice #119: Line: 190 Return is not a function,
           no parenthesis should be used.

    Notice #119: Line: 192 Return is not a function,
           no parenthesis should be used.

    Notice #109: Line: 196 Double pointer indirection identified.

    Notice #50: Line 199: A variable has been identified which is
           assigned to a literal number.  Symbolic constants should
           be used to enhance maintainability.

    Notice #50: Line 201: A variable has been identified which is
           assigned to a literal number.  Symbolic constants should
           be used to enhance maintainability.

    Notice #50: Line 202: A variable has been identified which is
           assigned to a literal number.  Symbolic constants should
           be used to enhance maintainability.

    Notice #50: Line 203: A variable has been identified which is
           assigned to a literal number.  Symbolic constants should
           be used to enhance maintainability.

    Notice #50: Line 204: A variable has been identified which is
           assigned to a literal number.  Symbolic constants should
           be used to enhance maintainability.

    Notice #50: Line 214: A variable has been identified which is
           assigned to a literal number.  Symbolic constants should
           be used to enhance maintainability.

    Notice #50: Line 247: A variable has been identified which is
           assigned to a literal number.  Symbolic constants should
           be used to enhance maintainability.

    Notice #50: Line 256: A variable has been identified which is
           assigned to a literal number.  Symbolic constants should
           be used to enhance maintainability.

    Notice #50: Line 265: A variable has been identified which is
           assigned to a literal number.  Symbolic constants should
           be used to enhance maintainability.

    Notice #119: Line: 272 Return is not a function,
           no parenthesis should be used.
  ------------------------------------------------------------------------

                          ~~ Total File Summary ~~

  LOC 234      eLOC 188      lLOC 98       Comment 59       Lines      334
  ________________________________________________________________________
  End of File: maccomp.c



  ------------------------------------------------------------------------

                     ~~ Total Metrics For 1 Files ~~

  ------------------------------------------------------------------------

                         ~~ Total Project Summary ~~

  LOC 234      eLOC 188      lLOC 98       Comment 59       Lines      334
  Average per File, metric/1 files
  LOC 234      eLOC 188      lLOC 98       Comment 59       Lines      334

  ------------------------------------------------------------------------

                        ~~ Project Quality Profile ~~

  Type  Count Percent  Quality Notice
  ________________________________________________________________________

  1        16   27.59  Physical line length > 80 characters
  50       15   25.86  Variable assignment to a literal number
  53        1    1.72  No comment preceding a struct block
  105       2    3.45  A symbolic constant using #define
  109       1    1.72  Double pointer indirection identified
  119      23   39.66  Return is not a function
  ________________________________________________________________________

           58  100.00  Total Quality Notices

                        ~~ Quality Notice Density ~~

  Basis: 1000 (K)

  Quality Notices/K LOC   =      247.9 ( 24.79%)
  Quality Notices/K eLOC  =      308.5 ( 30.85%)
  Quality Notices/K lLOC  =      591.8 ( 59.18%)

  ------------------------------------------------------------------------

                             ~~ File Summary ~~

  C Source Files *.c ....:          1  C/C++ Include Files *.h:          0
  C++ Source Files *.c* .:          0  C++ Include Files *.h* :          0
  C# Source Files *.cs ..:          0  Java Source File *.jav*:          0
  Other Source Files ....:          0
  Total File Count ......:          1


          Shareware evaluation licenses process only 20 files.
          Paid licenses enable processing for an unlimited number of files.

  ________________________________________________________________________

          Confidential - Acme Engineering