/**************************************************************************/ /* File: hmm_matrix.h */ /**************************************************************************/ /* Project: Continuous Speech Recognition Search Algorithms */ /* Author: Neeraj Deshmukh, Aravind Ganapathiraju */ /* Class: EE 8993 Spring 1996 Date: March 12, 1996 */ /**************************************************************************/ /*======================================================================== This file declares the HMM state matrix class that models the various mean and covariances vectors for the EE 8993 speech recognizer ========================================================================*/ /*------------------------------------------------------------------------ make sure definitions are only made once ------------------------------------------------------------------------*/ #ifndef __ISIP_HMM_MATRIX #define __ISIP_HMM_MATRIX /*------------------------------------------------------------------------ system and ISIP include files ------------------------------------------------------------------------*/ #include #include #include #include #include #include /*------------------------------------------------------------------------ definition of global data types ------------------------------------------------------------------------*/ typedef enum _bool {FALSE, TRUE} BOOL; typedef char *String; /*========================================================================= class HMM_Matrix class declarations for universal matrix class ========================================================================*/ class HMM_Matrix { // members // private: float_4 **element; int_2 numRows; int_2 numColumns; // methods // public: /*---------------------------- constructors and destructor ---------------------------*/ HMM_Matrix (int_2 nRows_l = 1, int_2 nColumns_l = 1, float_4 dval_l = 0); HMM_Matrix (int_2 nRows_l = 1, int_2 nColumns_l = 1, float_4 *dval_l = NULL); HMM_Matrix (int_2 nRows_l = 1, int_2 nColumns_l = 1, float_4 **dval_l = NULL); HMM_Matrix (const HMM_Matrix &umat_l); ~HMM_Matrix (); /*------------------------ matrix operation methods ------------------------*/ HMM_Matrix & operator = (const HMM_Matrix &umat_l); // addition of two matrices // HMM_Matrix operator + (const HMM_Matrix &umat_l); // product // // scalar product HMM_Matrix operator * (float_4 dd_l); // matrix product HMM_Matrix operator * (const HMM_Matrix &umat_l); // transpose // HMM_Matrix transpose_matrix_cc (); // indexing // float_4 get_element_cc (int_2 nR_l, int_2 nC_l); void set_element_cc (int_2 nR_l, int_2 nC_l, float_4 value_l); int_2 get_num_rows_cc (); int_2 get_num_columns_cc (); // dump the matrix to stdout // void print_matrix_cc (); }; #endif