|
| static int32_t | get (std::size_t idx) |
| |
Definition at line 133 of file NeuroTrigger3DH.h.
◆ get()
| static int32_t get |
( |
std::size_t | idx | ) |
|
|
inlinestatic |
◆ HEADROOM_BITS
◆ LUT_FRAC_BITS
◆ LUT_INDEX_BITS
◆ LUT_SATURATION
| int LUT_SATURATION = 1 << (LUT_FRAC_BITS + MAX_FLOAT_SHIFT) |
|
staticconstexpr |
◆ LUT_SCALE
| int LUT_SCALE = 1 << LUT_FRAC_BITS |
|
staticconstexpr |
◆ LUT_SIZE
| std::size_t LUT_SIZE = 1 << LUT_INDEX_BITS |
|
staticconstexpr |
◆ MAX_FLOAT
| int MAX_FLOAT = 1 << MAX_FLOAT_SHIFT |
|
staticconstexpr |
◆ MAX_FLOAT_SHIFT
◆ table
| const std::array<int32_t, LUT_SIZE> table |
|
inlinestatic |
Initial value:= []()
{
std::array<int32_t, LUT_SIZE> lut{};
for (std::size_t i = 0; i < LUT_SIZE; ++i) {
double input = MAX_FLOAT * static_cast<double>(i) / LUT_SIZE;
double val = std::tanh(input) * LUT_SCALE;
int32_t qval = static_cast<int32_t>(std::round(val));
qval = std::min<int32_t>(qval, (LUT_SCALE - 1));
lut[i] = qval;
}
return lut;
}()
Definition at line 152 of file NeuroTrigger3DH.h.
153 {
154 std::array<int32_t, LUT_SIZE> lut{};
155 for (std::size_t i = 0; i < LUT_SIZE; ++i) {
156 double input = MAX_FLOAT * static_cast<double>(i) / LUT_SIZE;
157 double val = std::tanh(input) * LUT_SCALE;
158 int32_t qval = static_cast<int32_t>(std::round(val));
159
160 qval = std::min<int32_t>(qval, (LUT_SCALE - 1));
161 lut[i] = qval;
162 }
163 return lut;
164 }();
The documentation for this struct was generated from the following file: