diff options
Diffstat (limited to 'reference_model/src/generate/generate_dot_product_states.cc')
-rw-r--r-- | reference_model/src/generate/generate_dot_product_states.cc | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/reference_model/src/generate/generate_dot_product_states.cc b/reference_model/src/generate/generate_dot_product_states.cc index 53bef3a..9ce32ff 100644 --- a/reference_model/src/generate/generate_dot_product_states.cc +++ b/reference_model/src/generate/generate_dot_product_states.cc @@ -209,9 +209,23 @@ public: const float s0 = _set_data0(); const float s1 = _set_data1(); if (_p == P0) - return (k == _KS / 2) ? +0.5f : s0 < 0 ? 0.f : (_B / std::sqrt(_KS)) * s1; + if (k == _KS / 2) + { + return s0 < 0 ? -0.5f : +0.5f; + } + else + { + return s0 < 0 ? 0.f : (_B / std::sqrt(_KS)) * s1; + } else if (_p == P1) - return (k == _KS / 2) ? -0.5f : s0 < 0 ? (_B / std::sqrt(_KS)) * s1 : 0.f; + if (k == _KS / 2) + { + return s0 < 0 ? +0.5f : -0.5f; + } + else + { + return s0 < 0 ? (_B / std::sqrt(_KS)) * s1 : 0.f; + } else return 0.f; } |