/* * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab * Copyright (C) 2008-2008 - INRIA - Bruno JOFRET * * This file must be used under the terms of the CeCILL. * This source file is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms * are also available at * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt * */ #ifndef __STAT_MAX_H__ #define __STAT_MAX_H__ #include "dynlib_statisticsfunctions.h" #include "types.h" #ifdef __cplusplus extern "C" { #endif //#define max(a,b) (a>=b?a:b) #define maxa(a,size1,b,size2,out) {int i;\ for (i=0;i<size1[0]*size2[1];i++) out[i]=max(a[i],b[i]);\ } /* ** \brief max of a scalar element, just returns it */ #define smaxs(in) in #define srowmaxs(in) in #define scolumnmaxs(in) in #define smatlabmaxs(in) in /* ** \brief max of a scalar element, just returns it */ #define dmaxs(in) in #define drowmaxs(in) in #define dcolumnmaxs(in) in #define dmatlabmaxs(in) in /* ** \brief max of a scalar element, just returns it */ #define u8maxs(in) (uint8)in #define u8rowmaxs(in) (uint8)in #define u8columnmaxs(in) (uint8)in #define u8matlabmaxs(in) (uint8)in #define u16maxs(in) (uint16)in #define u16rowmaxs(in) (uint16)in #define u16columnmaxs(in) (uint16)in #define u16matlabmaxs(in) (uint16)in #define i8maxs(in) (int8)in #define i8rowmaxs(in) (int8)in #define i8columnmaxs(in) (int8)in #define i8matlabmaxs(in) (int8)in #define i16maxs(in) (int16)in #define i16rowmaxs(in) (int16)in #define i16columnmaxs(in) (int16)in #define i16matlabmaxs(in) (int16)in /* ** \brief Sum of a float array ** \param in the float array to process ** \param size, the size of the array ** \returns the max. */ EXTERN_STATFUNC float smaxa(float *in, int size); EXTERN_STATFUNC void srowmaxa(float *in, int lines, int columns, float* out); EXTERN_STATFUNC void scolumnmaxa(float *in, int lines, int columns, float* out); /* ** \brief Sum of a double array ** \param in the double array to process ** \param size, the size of the array ** \returns the max. */ EXTERN_STATFUNC double dmaxa(double *in, int size); EXTERN_STATFUNC void drowmaxa(double *in, int lines, int columns, double* out); EXTERN_STATFUNC void dcolumnmaxa(double *in, int lines, int columns, double* out); /* ** \brief Sum of a uint8 array ** \param in the uint8 array to process ** \param size, the size of the array ** \returns the max. */ EXTERN_STATFUNC uint8 u8maxa(uint8 *in, int size); EXTERN_STATFUNC void u8rowmaxa(uint8 *in, int lines, int columns, uint8* out); EXTERN_STATFUNC void u8columnmaxa(uint8 *in, int lines, int columns, uint8* out); /* ** \brief Sum of a uint16 array ** \param in the uint16 array to process ** \param size, the size of the array ** \returns the max. */ EXTERN_STATFUNC uint16 u16maxa(uint16 *in, int size); EXTERN_STATFUNC void u16rowmaxa(uint16 *in, int lines, int columns, uint16* out); EXTERN_STATFUNC void u16columnmaxa(uint16 *in, int lines, int columns, uint16* out); /* ** \brief Sum of a int8 array ** \param in the int8 array to process ** \param size, the size of the array ** \returns the max. */ EXTERN_STATFUNC int8 i8maxa(int8 *in, int size); EXTERN_STATFUNC void i8rowmaxa(int8 *in, int lines, int columns, int8* out); EXTERN_STATFUNC void i8columnmaxa(int8 *in, int lines, int columns, int8* out); /* ** \brief Sum of a int16 array ** \param in the int16 array to process ** \param size, the size of the array ** \returns the max. */ EXTERN_STATFUNC int16 i16maxa(int16 *in, int size); EXTERN_STATFUNC void i16rowmaxa(int16 *in, int lines, int columns, int16* out); EXTERN_STATFUNC void i16columnmaxa(int16 *in, int lines, int columns, int16* out); #ifdef __cplusplus } /* extern "C" */ #endif #endif /* !__STAT_MAX_H__ */