fixed mixed-type exp and log functions, used in HMMs (thanks to V. Mityaev)
This commit is contained in:
parent
d199100deb
commit
33447e0bba
@ -50,6 +50,7 @@
|
|||||||
#ifndef __OPENCV_IMGPROC_COMPAT_C_H__
|
#ifndef __OPENCV_IMGPROC_COMPAT_C_H__
|
||||||
#define __OPENCV_IMGPROC_COMPAT_C_H__
|
#define __OPENCV_IMGPROC_COMPAT_C_H__
|
||||||
|
|
||||||
|
#include <math.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
@ -318,17 +319,17 @@ CV_INLINE void cvbReciprocal( const float* x, float* y, int len )
|
|||||||
|
|
||||||
CV_INLINE void cvbFastExp( const float* x, double* y, int len )
|
CV_INLINE void cvbFastExp( const float* x, double* y, int len )
|
||||||
{
|
{
|
||||||
CvMat mx = cvMat( 1, len, CV_32F, (void*)x );
|
int i;
|
||||||
CvMat my = cvMat( 1, len, CV_64F, y );
|
for( i = 0; i < len; i++ )
|
||||||
cvExp( &mx, &my );
|
y[i] = exp((double)x[i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
CV_INLINE void cvbFastLog( const double* x, float* y, int len )
|
CV_INLINE void cvbFastLog( const double* x, float* y, int len )
|
||||||
{
|
{
|
||||||
CvMat mx = cvMat( 1, len, CV_64F, (void*)x );
|
int i;
|
||||||
CvMat my = cvMat( 1, len, CV_32F, y );
|
for( i = 0; i < len; i++ )
|
||||||
cvLog( &mx, &my );
|
y[i] = (float)log(x[i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user