25 #include "BackwardMapping.hh"
32 #ifdef BIAS_HAVE_OPENMP
33 # if !defined(_OPENMP) && defined(WIN32)
34 # error Please check your OpenMP flags and defines - seem inconsistent.
46 float* BWM_LUT_Entry_Bilinear::
47 SerializedOut(
float* pointerToHeadOfOutputMem)
52 *pointerToHeadOfOutputMem = out;
53 pointerToHeadOfOutputMem++;
54 *pointerToHeadOfOutputMem = xy_weight;
55 pointerToHeadOfOutputMem++;
56 *pointerToHeadOfOutputMem =
static_cast<float>(index_0_0);
57 pointerToHeadOfOutputMem++;
58 *pointerToHeadOfOutputMem = xY_weight;
59 pointerToHeadOfOutputMem++;
60 *pointerToHeadOfOutputMem =
static_cast<float>(index_0_1);
61 pointerToHeadOfOutputMem++;
62 *pointerToHeadOfOutputMem = Xy_weight;
63 pointerToHeadOfOutputMem++;
64 *pointerToHeadOfOutputMem =
static_cast<float>(index_1_0);
65 pointerToHeadOfOutputMem++;
66 *pointerToHeadOfOutputMem = XY_weight;
67 pointerToHeadOfOutputMem++;
68 *pointerToHeadOfOutputMem =
static_cast<float>(index_1_1);
69 pointerToHeadOfOutputMem++;
70 return pointerToHeadOfOutputMem;
73 const float* BWM_LUT_Entry_Bilinear::
74 SerializedIn(
const float* pointerToHeadOfInputMem)
77 in = *pointerToHeadOfInputMem;
78 if(in==1) mapped =
true;
80 pointerToHeadOfInputMem++;
81 xy_weight = *pointerToHeadOfInputMem;
82 pointerToHeadOfInputMem++;
83 index_0_0 =
static_cast<int>(*pointerToHeadOfInputMem);
84 pointerToHeadOfInputMem++;
85 xY_weight = *pointerToHeadOfInputMem;
86 pointerToHeadOfInputMem++;
87 index_0_1 =
static_cast<int>(*pointerToHeadOfInputMem);
88 pointerToHeadOfInputMem++;
89 Xy_weight = *pointerToHeadOfInputMem;
90 pointerToHeadOfInputMem++;
91 index_1_0 =
static_cast<int>(*pointerToHeadOfInputMem);
92 pointerToHeadOfInputMem++;
93 XY_weight = *pointerToHeadOfInputMem;
94 pointerToHeadOfInputMem++;
95 index_1_1 =
static_cast<int>(*pointerToHeadOfInputMem);
96 pointerToHeadOfInputMem++;
97 return pointerToHeadOfInputMem;
100 int BWM_LUT_Entry_Bilinear::
101 GetSerializedSize() {
106 float* BWM_LUT_Entry_Trilinear::
107 SerializedOut(
float* pointerToHeadOfOutputMem)
112 *pointerToHeadOfOutputMem = out;
113 pointerToHeadOfOutputMem++;
114 *pointerToHeadOfOutputMem = pyr_diff_inv;
115 pointerToHeadOfOutputMem++;
116 *pointerToHeadOfOutputMem =
static_cast<float>(pyr_level_low);
117 pointerToHeadOfOutputMem++;
118 *pointerToHeadOfOutputMem = pyr_diff;
119 pointerToHeadOfOutputMem++;
120 *pointerToHeadOfOutputMem =
static_cast<float>(pyr_level_high);
121 pointerToHeadOfOutputMem++;
122 pointerToHeadOfOutputMem = stage_0.SerializedOut(pointerToHeadOfOutputMem);
123 pointerToHeadOfOutputMem = stage_1.SerializedOut(pointerToHeadOfOutputMem);
124 return pointerToHeadOfOutputMem;
127 const float* BWM_LUT_Entry_Trilinear::
128 SerializedIn(
const float* pointerToHeadOfInputMem)
131 in = *pointerToHeadOfInputMem;
132 if(in==1) mapped =
true;
134 pointerToHeadOfInputMem++;
135 pyr_diff_inv = *pointerToHeadOfInputMem;
136 pointerToHeadOfInputMem++;
137 pyr_level_low =
static_cast<int>(*pointerToHeadOfInputMem);
138 pointerToHeadOfInputMem++;
139 pyr_diff = *pointerToHeadOfInputMem;
140 pointerToHeadOfInputMem++;
141 pyr_level_high =
static_cast<int>(*pointerToHeadOfInputMem);
142 pointerToHeadOfInputMem++;
143 pointerToHeadOfInputMem = stage_0.SerializedIn(pointerToHeadOfInputMem);
144 pointerToHeadOfInputMem = stage_1.SerializedIn(pointerToHeadOfInputMem);
145 return pointerToHeadOfInputMem;
148 int BWM_LUT_Entry_Trilinear::
149 GetSerializedSize() {
150 return 5+2*BWM_LUT_Entry_Bilinear::GetSerializedSize();