Recursive Steepest Descent predictor.

Data Structures

struct  rsd_partial_t
struct  rsd_params_struct
 Parameters for rsd predictor. More...
struct  rsd_struct
 Moving Average predictor class definition. More...

Files

file  rsd.h
 

Private interface for the Moving Average predictor.


file  rsd_lib.h
 

Public interface for the Recursive Steepest Descent predictor.


Defines

#define FIR_COEFF_BITS   16
 Decimal bits in the fixed point representation of a filter coefficient.
#define FIR_COEFF_ONE   (1 << (FIR_COEFF_BITS))
 Unity (1.0) in the fixed point representation of a filter coefficient.
#define RSD_DEF_SAMPLESIZE   36
 Default sample size.
#define RSD_DEF_FIRSIZE   12
 Default filter size.
#define RSD_DEF_MU   0.1
 Default mu coefficient.

Typedefs

typedef long int fir_coeff_t
 Fixed point representation of a filter coefficient.
typedef struct rsd_params_struct rsd_params_t
 Parameters for rsd predictor.
typedef struct rsd_struct rsd_t
 Moving Average predictor class definition.

Functions

static fir_coeff_t fir_coeff_mul (fir_coeff_t x, fir_coeff_t y)
static fir_coeff_t fir_coeff_div (fir_coeff_t x, fir_coeff_t y)
qos_rv rsd_register (void)
 Register the Moving Average class with the framework.
qos_rv rsd_init (void *self, void *params)
 Initialize a rsd object.
qos_rv rsd_final (qmgr_pred_t *self)
 Virtual destructor for a rsd object.
qos_rv rsd_add_sample (qmgr_pred_t *pred, qres_time_t new_sample)
 Virtual add_sample function for rsd object.
qres_time_t rsd_get_exp_value (qmgr_pred_t *pred)
qos_rv rsd_set_defaults (void)
 Configures an RSD predictor with default parameters.
qos_rv rsd_set_sample_size (int sample_size)
 Sets the sample size for the RSD predictor.
qos_rv rsd_set_fir_size (int fir_size)
 Sets the filter size for the RSD predictor.
qos_rv rsd_set_mu (double mu)
 Sets the mu coefficient for the RSD predictor.

Function Documentation

qos_rv rsd_add_sample ( qmgr_pred_t pred,
qres_time_t  new_sample 
)

Virtual add_sample function for rsd object.

Todo:
2 versions of this function could be created, one for the initial transitory when the window is not yet full, and another to be used when the window is full. By replacing the function pointer in the virtual table, this would avoid one comparison in the function at each call.
qos_rv rsd_init ( void *  self,
void *  params 
)

Initialize a rsd object.

Parameters:
params Set of parameters passed by the QMGR Library. When in kernel-space, self is a pointer to user-space.
Returns:
QOS_OK or one of the predefined error-codes.
qos_rv rsd_set_fir_size ( int  fir_size  ) 

Sets the filter size for the RSD predictor.

Parameters:
fir_size The number of coefficients of the adaptive linear filter, which must be lower than or equal to the sample size minus 1.
qos_rv rsd_set_mu ( double  mu  ) 

Sets the mu coefficient for the RSD predictor.

Parameters:
mu The portion of inverted normalized gradient which is added to the filter coefficients at each step (0 < mu < 2).
qos_rv rsd_set_sample_size ( int  sample_size  ) 

Sets the sample size for the RSD predictor.

Parameters:
sample_size The number of past samples on which the filter is optimized, which must be greater than or equal to the filter size plus 1.
Generated on Mon Aug 2 22:38:48 2010 for qosmgr by  doxygen 1.6.3