tables support non-integer-scaled scaled_channel (#3708)
* support dividers * float * format
This commit is contained in:
parent
7b0179aaa3
commit
b6a8bed429
|
@ -73,10 +73,10 @@ private:
|
||||||
m_values = &table;
|
m_values = &table;
|
||||||
}
|
}
|
||||||
|
|
||||||
template <int TRowMult>
|
template <int TRowMult, int TRowDiv>
|
||||||
void initRows(const scaled_channel<TRow, TRowMult> (&rowBins)[TRowNum]) {
|
void initRows(const scaled_channel<TRow, TRowMult, TRowDiv> (&rowBins)[TRowNum]) {
|
||||||
m_rowBins = reinterpret_cast<const TRow (*)[TRowNum]>(&rowBins);
|
m_rowBins = reinterpret_cast<const TRow (*)[TRowNum]>(&rowBins);
|
||||||
m_rowMult = TRowMult;
|
m_rowMult = (float)TRowMult / TRowDiv;
|
||||||
}
|
}
|
||||||
|
|
||||||
void initRows(const TRow (&rowBins)[TRowNum]) {
|
void initRows(const TRow (&rowBins)[TRowNum]) {
|
||||||
|
@ -84,10 +84,10 @@ private:
|
||||||
m_rowMult = 1;
|
m_rowMult = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
template <int TColMult>
|
template <int TColMult, int TColDiv>
|
||||||
void initCols(const scaled_channel<TColumn, TColMult> (&columnBins)[TColNum]) {
|
void initCols(const scaled_channel<TColumn, TColMult, TColDiv> (&columnBins)[TColNum]) {
|
||||||
m_columnBins = reinterpret_cast<const TColumn (*)[TColNum]>(&columnBins);
|
m_columnBins = reinterpret_cast<const TColumn (*)[TColNum]>(&columnBins);
|
||||||
m_colMult = TColMult;
|
m_colMult = (float)TColMult / TColDiv;
|
||||||
}
|
}
|
||||||
|
|
||||||
void initCols(const TColumn (&columnBins)[TColNum]) {
|
void initCols(const TColumn (&columnBins)[TColNum]) {
|
||||||
|
|
|
@ -45,20 +45,17 @@ static float getValue(float rpm, float maf) {
|
||||||
float result3 = x3.getValue(rpm, maf);
|
float result3 = x3.getValue(rpm, maf);
|
||||||
EXPECT_NEAR_M4(result1, result3);
|
EXPECT_NEAR_M4(result1, result3);
|
||||||
|
|
||||||
/*
|
|
||||||
are we missing something in Map3D?
|
|
||||||
Map3D<5, 4, float, uint8_t, float> x4;
|
Map3D<5, 4, float, uint8_t, float> x4;
|
||||||
x4.init(map, mafBins, rpmBinsScaledByte);
|
x4.init(map, mafBins, rpmBinsScaledByte);
|
||||||
float result4 = x4.getValue(rpm, maf);
|
float result4 = x4.getValue(rpm, maf);
|
||||||
EXPECT_NEAR_M4(result1, result4);
|
EXPECT_NEAR_M4(result1, result4);
|
||||||
*/
|
|
||||||
|
|
||||||
float result4 = interpolate3d(
|
float result5 = interpolate3d(
|
||||||
map,
|
map,
|
||||||
mafBinsScaledInt, maf,
|
mafBinsScaledInt, maf,
|
||||||
rpmBinsScaledByte, rpm
|
rpmBinsScaledByte, rpm
|
||||||
);
|
);
|
||||||
EXPECT_NEAR_M4(result1, result4);
|
EXPECT_NEAR_M4(result1, result5);
|
||||||
|
|
||||||
return result1;
|
return result1;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue