static void vips_Lab2LCh_line( VipsColour *colour, VipsPel *out, VipsPel **in, int width ) { float *p = (float *) in[0]; float *q = (float *) out; int x; for( x = 0; x < width; x++ ) { float L = p[0]; float a = p[1]; float b = p[2]; float C, h; p += 3; C = sqrt( a * a + b * b ); h = vips_col_ab2h( a, b ); q[0] = L; q[1] = C; q[2] = h; q += 3; } }
void vips_col_ab2Ch( float a, float b, float *C, float *h ) { #ifdef HAVE_ATAN2 *h = VIPS_DEG( atan2( b, a ) ); if( *h < 0.0 ) *h += 360; #else *h = vips_col_ab2h( a, b ); #endif #ifdef HAVE_HYPOT *C = hypot( a, b ); #else *C = sqrt( a * a + b * b ); #endif }
void vips_col_ab2Ch( float a, float b, float *C, float *h ) { *h = vips_col_ab2h( a, b ); *C = sqrt( a * a + b * b ); }