func: qcms_transform* qcms_profile *in, qcms_data_type qcms_profile *out, qcms_data_type qcms_intent intent) bool precache = false ; qcms_transform * transform = transform_alloc ( ) ; if ( ! transform )  if ( out_type != QCMS_DATA_RGB_8 && out_type != QCMS_DATA_RGBA_8 )  if ( out -> output_table_r && out -> output_table_g && out -> output_table_b )  precache = true; if ( qcms_supports_iccv4 && ( in -> A2B0 || out -> B2A0 || in -> mAB || out -> mAB ) )  if ( precache )  if ( ! out -> redTRC || ! out -> greenTRC || ! out -> blueTRC )  if ( ! transform -> output_gamma_lut_r || ! transform -> output_gamma_lut_g || ! transform -> output_gamma_lut_b )  if ( in -> color_space == RGB_SIGNATURE )  if ( in -> color_space == GRAY_SIGNATURE )  assert ( 0 && "unexpected colorspace" ); 