/*
 *  Copyright 2002 by Soos, Antal
 *  All rights reserved. Property of Soos, Antal.
 *  Restricted rights to use, duplicate or disclose this code are
 *  granted through contract.  
 */
/***************************************************************************/
/*                                                                         */
/*     QR_LMS . hpp		                                           */
/*                                                                         */
/*     Recoursive Least Mean Square Algorithm inplementation.              */
/*									   */
/*                                                                         */
/***************************************************************************/

#ifndef _QR_LMS_HPP_
#define _QR_LMS_HPP_

#include "sysIdent.hpp"

class QR_LMS_alg : public sysid {

protected:
//	Matrix Mtemp; // Temporary result holder matrix

	float FI_v[ARMAX_dim+1+2];
	float *FI;
	float FIm_v[ARMAX_dim+1+2];
	float *FIm;
	float PI_v[ARMAX_dim+1+2];
	float *PI;
	float PIpr_v[ARMAX_dim+1+2];
	float *PIpr;
	float PIsc_v[ARMAX_dim+1+2];
	float *PIsc;
	float alfa_v[ARMAX_dim+2];
	float *alfa;
	float beta_v[ARMAX_dim+2];
	float *beta;
	float sigma_v[ARMAX_dim+2];
	float *sigma;
	float ro_v[ARMAX_dim+2];
	float *ro;
	float eta_v[ARMAX_dim+2];
	float *eta;
	float gama_v[ARMAX_dim+2];
	float *gama;
	float r_v[ARMAX_dim+2];
	float *r;

public:

	void update(float y_n, float u_n_1);
	 QR_LMS_alg(float notused) ;
	 ~QR_LMS_alg();
};


#endif // _QR_LMS_HPP_
