void Transform::gamma( RawTile& in, float g ){

  if( g == 1.0 ) return;

  unsigned int np = in.width * in.height * in.channels;
  float* infptr = (float*)in.data;

  // Loop through our pixels for floating values
#if defined(__ICC) || defined(__INTEL_COMPILER)
#pragma ivdep
#elif defined(_OPENMP)
#pragma omp parallel for
#endif
  for( unsigned int n=0; n<np; n++ ){
    float v = infptr[n];
    infptr[n] = powf( v<0.0 ? 0.0 : v, g );
  }
}
void Transform::gamma( RawTile& in, float g ){

  if( g == 1.0 ) return;

  unsigned int np = in.width * in.height * in.channels;
  float* infptr = (float*)in.data;

   
#if defined(__ICC) || defined(__INTEL_COMPILER)
#pragma ivdep
#elif defined(_OPENMP)
#pragma omp parallel for
#endif
  for( unsigned int n=0; n<np; n++ ){
    float v = infptr[n];
    infptr[n] = powf( v<0.0 ? 0.0 : v, g );
  }
}