Remove ciecam02 double precision processing

This commit is contained in:
heckflosse
2018-04-06 23:19:40 +02:00
parent 68ecc24270
commit 9323d8c46d
12 changed files with 4 additions and 1898 deletions

View File

@@ -28,17 +28,9 @@ namespace rtengine
class Ciecam02
{
private:
static double d_factor ( double f, double la );
static float d_factorfloat ( float f, float la );
static double calculate_fl_from_la_ciecam02 ( double la );
static float calculate_fl_from_la_ciecam02float ( float la );
static double achromatic_response_to_white ( double x, double y, double z, double d, double fl, double nbb, int gamu );
static float achromatic_response_to_whitefloat ( float x, float y, float z, float d, float fl, float nbb, int gamu );
static void xyz_to_cat02 ( double &r, double &g, double &b, double x, double y, double z, int gamu );
static void cat02_to_hpe ( double &rh, double &gh, double &bh, double r, double g, double b, int gamu );
static void cat02_to_xyz ( double &x, double &y, double &z, double r, double g, double b, int gamu );
static void hpe_to_xyz ( double &x, double &y, double &z, double r, double g, double b );
static void xyz_to_cat02float ( float &r, float &g, float &b, float x, float y, float z, int gamu );
static void cat02_to_hpefloat ( float &rh, float &gh, float &bh, float r, float g, float b, int gamu );
@@ -48,13 +40,7 @@ private:
static vfloat nonlinear_adaptationfloat ( vfloat c, vfloat fl );
#endif
static void Aab_to_rgb ( double &r, double &g, double &b, double A, double aa, double bb, double nbb );
static void calculate_ab ( double &aa, double &bb, double h, double e, double t, double nbb, double a );
static double nonlinear_adaptation ( double c, double fl );
static float nonlinear_adaptationfloat ( float c, float fl );
static double inverse_nonlinear_adaptation ( double c, double fl );
static float inverse_nonlinear_adaptationfloat ( float c, float fl );
static void calculate_abfloat ( float &aa, float &bb, float h, float e, float t, float nbb, float a );
@@ -71,20 +57,12 @@ private:
public:
Ciecam02 () {}
static void curvecolor (double satind, double satval, double &sres, double parsat);
static void curvecolorfloat (float satind, float satval, float &sres, float parsat);
static void curveJ (double br, double contr, int db, LUTf & outCurve, LUTu & histogram ) ;
static void curveJfloat (float br, float contr, const LUTu & histogram, LUTf & outCurve ) ;
/**
* Inverse transform from CIECAM02 JCh to XYZ.
*/
static void jch2xyz_ciecam02 ( double &x, double &y, double &z,
double J, double C, double h,
double xw, double yw, double zw,
double c, double nc, int gamu, double n, double nbb, double ncb, double fl, double cz, double d, double aw);
static void jch2xyz_ciecam02float ( float &x, float &y, float &z,
float J, float C, float h,
float xw, float yw, float zw,
@@ -98,24 +76,12 @@ public:
/**
* Forward transform from XYZ to CIECAM02 JCh.
*/
static void initcam1 (double gamu, double yb, double pilotd, double f, double la, double xw, double yw, double zw, double &n, double &d, double &nbb, double &ncb,
double &cz, double &aw, double &wh, double &pfl, double &fl, double &c);
static void initcam2 (double gamu, double yb, double pilotd, double f, double la, double xw, double yw, double zw, double &n, double &d, double &nbb, double &ncb,
double &cz, double &aw, double &fl);
static void initcam1float (float gamu, float yb, float pilotd, float f, float la, float xw, float yw, float zw, float &n, float &d, float &nbb, float &ncb,
float &cz, float &aw, float &wh, float &pfl, float &fl, float &c);
static void initcam2float (float gamu, float yb, float pilotd, float f, float la, float xw, float yw, float zw, float &n, float &d, float &nbb, float &ncb,
float &cz, float &aw, float &fl);
static void xyz2jchqms_ciecam02 ( double &J, double &C, double &h,
double &Q, double &M, double &s, double &aw, double &fl, double &wh,
double x, double y, double z,
double xw, double yw, double zw,
double c, double nc, int gamu, double n, double nbb, double ncb, double pfl, double cz, double d );
static void xyz2jch_ciecam02float ( float &J, float &C, float &h,
float aw, float fl,
float x, float y, float z,