fork download
  1. /// ColorBurn (a/aa, b/ba) =
  2. /// 1. if (a==0 && b==ba): 1.
  3. /// 2. if (a==0 && b!=ba): 0.
  4. /// 3. if (a!=0): 1 - min (1, (1-b/ba) * (aa/a)).
  5. ///
  6. /// color = a*(1-ba) + b*(1-aa) + aa*ba*ColorBurn(a/aa, b/ba) =
  7. /// 1. a*(1-ba) + b*(1-aa) + aa*ba*1 = aa*(ba-b) + b.
  8. /// 2. a*(1-ba) + b*(1-aa) + aa*ba*0 = b*(1-aa).
  9. /// 3. a*(1-ba) + b*(1-aa) + aa*ba*(1 - min (1, (1-b/ba) * (aa/a))).
  10. float
  11. bm_color_burn (float a, float aa, float b, float ba)
  12. {
  13. if (a==0) {
  14. if (b==ba)
  15. return aa*(ba-b) + b;
  16. else
  17. return b*(1-aa);
  18. } else
  19. return a*(1-ba) + b*(1-aa) +
  20. aa*ba * (1 - std::min (1.0f, (1 - b/ba)*(aa/a)));
  21. }
Compilation error #stdin compilation error #stdout 0s 0KB
stdin
Standard input is empty
compilation info
prog.cpp: In function ‘float bm_color_burn(float, float, float, float)’:
prog.cpp:20: error: ‘min’ is not a member of ‘std’
stdout
Standard output is empty