/* This C language subroutine computes the Mean of its floating point input. The Run Time Library for the C Language. Gordon A. Sterling (617) 461 - 3076 DSP Development Tools Engineering Created on 05/19/90 Updated on 5/94 by AS Updated on 2/95 by AS - separated polymorphic functions #include
float mean(float in[], int length); */ #include "lib_glob.h" #include "sts_glob.h" .SEGMENT/CODE Code_Space_Name; .FILE RTL_FILENAME; .GLOBAL ___meanP; ___meanP: F12=FLOAT R8, put(R7); /* Convert to FP */ R7=R7-R7, put(R11); /* Clear sum */ R8=R8-1, pm_ptr=R4; /* point to X */ IF LE JUMP (PC, error_return) (DB); /* Must have > 1 point*/ F0=PM(pm_ptr,pm_1); /* Read first point */ pm_lnt=pm_0; LCNTR=R8, DO sump UNTIL LCE; /* Sum over all N */ sump: F7=F7+F0, F0=PM(pm_ptr,pm_1); CALL (PC, ___float_divide) (DB); F7=F7+F0; /* Compute last sum */ F11=2.0; /* Needed for divide */ FETCH_RETURN F0=PASS F7; restore_state: get(R11,1); get(R7,2); RETURN (DB);; RESTORE_STACK RESTORE_FRAME error_return: JUMP (PC, restore_state) (DB); R0=0; FETCH_RETURN .ENDSEG;