28 #include <mln/core/concept/function.hh>
29 #include <mln/value/float01_8.hh>
30 #include <mln/value/float01_16.hh>
31 #include <mln/value/int_u8.hh>
37 using namespace value;
39 float fi(
int) {
return 0.5f; }
40 int ii(
int) {
return 1; }
42 float fd(
double) {
return 0.5f; }
43 int id(
double) {
return 1; }
46 struct tofloat01 : Function_v2v<tofloat01>
49 typedef float01_<12> result;
50 result operator()(int_u8 v)
const
52 result
ret =
static_cast<float>(v) / static_cast<float>(mln_max(int_u8));
58 struct to8bits : Function_v2v<to8bits>
61 typedef int_u8 result;
62 result operator()(float01_<12> v)
const
64 result ret =
static_cast<int>(v.value() * 255);
83 std::cout << b << std::endl;
85 std::cout << b << std::endl;
87 std::cout << b << std::endl;
89 std::cout << b << std::endl;
91 std::cout << b << std::endl;
94 std::cout << b << std::endl;
96 std::cout << b << std::endl;
98 a =
fi( static_cast<int>(a) );
99 a =
static_cast<float>(
ii( static_cast<int>(a) ) );
101 a =
static_cast<float>(
id(a) );
106 std::cout << b << std::endl;
108 std::cout << b << std::endl;
110 std::cout << b << std::endl;