Skip to content
Snippets Groups Projects
Unverified Commit 80408643 authored by Martin Schoeberl's avatar Martin Schoeberl Committed by GitHub
Browse files

Merge pull request #13 from edifym/fix-compiler-errors

Fix warnings generated by gcc when compiling with optimizations
parents ffdc3f58 71c9b10f
No related branches found
No related tags found
No related merge requests found
......@@ -78,8 +78,7 @@ void lms_init( void )
int k;
lms_input[ 0 ] = 0.0;
_Pragma( "loopbound min 101 max 101" )
for ( k = 0 ; k < N ; k += 2 ) {
{
double v1, v2, r;
const double scaleFactor = 0.000000000931322574615478515625;
do {
......@@ -94,8 +93,27 @@ void lms_init( void )
// remap v1 and v2 to two Gaussian numbers
double noise = 1 / r; // approximation of sqrt(0.96) * sqrt(-log(r)/r);
lms_input[ k + 1 ] = lms_sinus( k ) + noise * v2;
lms_input[ k + 2 ] = lms_sinus( k + 1 ) + noise * v1;
lms_input[1] = lms_sinus(1) + noise * v2;
}
_Pragma( "loopbound min 100 max 100" )
for ( k = 2 ; k < N ; k += 2 ) {
double v1, v2, r;
const double scaleFactor = 0.000000000931322574615478515625;
do {
// generate two random numbers between -1.0 and +1.0
seed = seed * 1103515245 + 12345;
v1 = ( seed & 0x00007fffffff ) * scaleFactor - 1.0;
seed = seed * 1103515245 + 12345;
v2 = ( seed & 0x00007fffffff ) * scaleFactor - 1.0;
r = v1 * v1 + v2 * v2;
} while ( r > 1.0 );
// radius < 1
// remap v1 and v2 to two Gaussian numbers
double noise = 1 / r; // approximation of sqrt(0.96) * sqrt(-log(r)/r);
lms_input[ k ] = lms_sinus(k) + noise * v2;
lms_input[ k + 1 ] = lms_sinus(k + 1) + noise * v1;
}
}
......@@ -166,9 +184,12 @@ int lms_return( void )
double sum = 0.0;
_Pragma( "loopbound min 201 max 201" )
for ( i = 0 ; i < N ; i++ )
sum += lms_output[ i ];
return ( int )( 1000000.0 * ( sum + 4.5052425 ) );
for ( i = 0 ; i < N ; i++ ) {
sum += lms_output[i];
}
return ( int )( 1000000.0 * ( sum + 4.705719 ) );
// How did this 'correct value' come to be? The previous calculation contained UB.
// correct value: -4.505242517625447362661361694336
}
......
......@@ -104,7 +104,7 @@ int minver_minver( int side, double eps )
int work[ 500 ], i, j, k, iw;
int r = 0;
double w, wmax, pivot, api, w1;
double w = 0, wmax, pivot, api, w1;
if ( side < 2 || side > 500 || eps <= 0.0 )
return ( 999 );
......
......@@ -132,8 +132,8 @@ int dijkstra_qcount( void )
int dijkstra_find( int chStart, int chEnd )
{
int ch;
int prev, node;
int cost, dist;
int prev, node = 0;
int cost, dist = 0;
int i;
_Pragma( "loopbound min 100 max 100" )
......
......@@ -12447,7 +12447,7 @@ void mpeg2_dpframe_estimate( unsigned char *ref, unsigned char *mb, int i,
{
int pref, ppred, delta_x, delta_y;
int is, js, it, jt, ib, jb, it0, jt0, ib0, jb0;
int imins, jmins, imint, jmint, iminb, jminb, imindmv, jmindmv;
int imins = 0, jmins = 0, imint = 0, jmint = 0, iminb = 0, jminb = 0, imindmv = 0, jmindmv = 0;
int vmc, local_dist;
 
 
......@@ -12604,7 +12604,7 @@ void mpeg2_dpfield_estimate( unsigned char *topref, unsigned char *botref,
{
unsigned char *sameref, *oppref;
int io0, jo0, io, jo, delta_x, delta_y, mvxs, mvys, mvxo0, mvyo0;
int imino, jmino, imindmv, jmindmv, vmc_dp, local_dist;
int imino = 0, jmino = 0, imindmv = 0, jmindmv = 0, vmc_dp = 0, local_dist = 0;
 
 
/* Calculate Dual Prime distortions for 9 delta candidates */
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment