-- This is the ITERATION_COUNT control package for feature measurements -- The set of procedures provide the automatic stabilizing of the -- timing measurement. The measurement CPU time must be greater than: -- 1.0 second, DURATION'SMALL * 100 , SYSTEM.TICK * 100 -- -- Note: If there is no control loop, the START_CONTROL and STOP_CONTROL -- do not need to be called. INITIALIZE is still needed. with SYSTEM ; package ITERATION is -- A000031.ADA type BIG_INTEGER is range SYSTEM.MIN_INT .. SYSTEM.MAX_INT ; -- universal, largest possible integer type type SCALE is ( AUTO , MICROSECONDS , MILLISECONDS, SECONDS ); procedure INITIALIZE ( ITERATION_COUNT : out INTEGER ) ; procedure START_CONTROL ; procedure STOP_CONTROL ( GLOBAL : INTEGER ; CHECK : INTEGER ) ; procedure START_TEST ; procedure STOP_TEST ( GLOBAL : INTEGER ; CHECK : INTEGER ) ; procedure TEST_STABLE ( ITERATION_COUNT : in out INTEGER ; STABLE : out BOOLEAN ) ; procedure INCREMENT ( GLOBAL : in out INTEGER ) ; procedure FEATURE_TIMES ( CPU_TIME : out DURATION ; CPU_TOLERANCE : out DURATION ; WALL_TIME : out DURATION ; TESTS_SCALE : in out SCALE ) ; PIWG_ERROR : exception ; -- PIWG could not make a valid measurement end ITERATION ;