#ifndef	IPLMATH_H
#define	IPLMATH_H

#include <v_lib.h>

void	matSetRect(matrix_p m,
	u32_t left,u32_t top,u32_t right,u32_t bottom,vec_t value);
void	matSubmatrixMinMax(matrix_p data,
	u32_t left,u32_t top,u32_t right,u32_t bottom,
	vec_t *min_ret,
	vec_t *max_ret);
void	matZeroRows(matrix_p m,u32_t row_start,u32_t row_end);
void	matZeroCols(matrix_p m,u32_t col_start,u32_t col_end);
void	matBandReject(matrix_p m,u32_t lo_bound,u32_t hi_bound);
void	matBandPass(matrix_p m,u32_t lo_bound,u32_t hi_bound);
void	matRVMFTZeroRows(matrix_p m,u32_t row_start,u32_t row_end);
void	matRVMFTZeroCols(matrix_p m,u32_t col_start,u32_t col_end);
void	matOffset(matrix_p m,vec_t offset);
void	vecRunningSum(vector_p dest,vector_p src);
void	vecLinSpaced(vector_p dest,vec_t min,vec_t max);
void	matLinSpacedRows(matrix_p dest,vec_t min,vec_t max);
void	matLinSpacedCols(matrix_p dest,vec_t min,vec_t max);
void	matScaleM(matrix_p dest,matrix_p src,matrix_p scale);
void	matUnscaleM(matrix_p dest,matrix_p src,matrix_p divisor);
void	matOffsetM(matrix_p dest,matrix_p src,matrix_p offset);
vboolean	matHistogram(vector_p dest,matrix_p src,vboolean normalize,
	vector_p space);
vboolean	vecHistogram(vector_p dest,vector_p src,vboolean normalize,
	vector_p space);
vboolean	matGammaCorrection(matrix_p dest,matrix_p src,vector_p gamma,
	vboolean unit_input);
vboolean	matMaximizeContrast(matrix_p dest,matrix_p src);
vboolean	matAdjustContrast(matrix_p dest,matrix_p src,
	vec_t min,vec_t max);
vboolean	vecMaximizeContrast(vector_p dest,vector_p src);
vboolean	vecAdjustContrast(vector_p dest,vector_p src,
	vec_t min,vec_t max);
vboolean	matRVMFTSpectrum(matrix_p dest,matrix_p rvmft);

#endif	/* !IPLMATH_H */
