// file: $ISIP_PROTO/util/normalize_features/normalize_features.h
//

// Make sure this file is only included once
//
#ifndef __ISIP_NORMALIZE_FEATURES
#define __ISIP_NORMALIZE_FEATURES

// isip include files
//
#ifndef __ISIP_INTEGRAL
#include <integral.h>
#endif

#ifndef __ISIP_NORMALIZE_FEATURES_CONSTANTS
#include "normalize_features_constants.h"
#endif

// function prototypes
//

// function to get the command line parameters
//
logical_1 get_parameter_cc(int_4 argc, char_1** argv, char_1* input_file,
			   char_1* output_file, int_4& num_coeffs,
			   int_4& num_subtract, int_4& num_div,
			   int_4& input_mode, int_4& output_mode);


// function to accumulate the statistics like mean and sum of squares
// from the features of the given file
//
logical_1 accumulate_stats_cc(float_8* mean_vector,
			     float_8* sum_of_squares_vector, int_4& count_a,
			     int_4 num_coeffs, char_1* input_file_a,
			     int_4 input_format = NF_DEF_IN_MODE);

// function to subtract the mean and divide the features by the standard
// deviation in the given file
//
logical_1 normalize_features_cc(float_8* out_vector, float_8* mean_vector,
			   float_8* std_dev_vector, int_4 num_coeffs,
			   char_1* input_file_a, int_4 num_vector_a,
			   int_4 input_format = NF_DEF_IN_MODE);

// function to write the features to the file
//
logical_1 write_cc(float_8* output_vector, int_4 num_vectors,
		   int_4 num_coeffs, char_1*  output_file,
		   int_4 output_format = NF_DEF_OUT_MODE);
  
// end of file
//
#endif






