mirror of
https://git.gfz-potsdam.de/naaice/poet.git
synced 2025-12-16 04:48:23 +01:00
fix: handle negative values in keyelement with significant as signed integer
This commit is contained in:
parent
14cb03e746
commit
4118fe4ed0
@ -36,9 +36,8 @@ extern "C" {
|
||||
namespace poet {
|
||||
|
||||
using DHT_Keyelement = struct keyelem {
|
||||
std::uint8_t sign : 1;
|
||||
std::int8_t exp : 7;
|
||||
std::uint64_t significant : 56;
|
||||
std::int8_t exp : 8;
|
||||
std::int64_t significant : 56;
|
||||
};
|
||||
|
||||
/**
|
||||
|
||||
@ -37,10 +37,9 @@ using namespace std;
|
||||
|
||||
inline DHT_Keyelement round_key_element(double value, std::uint32_t signif) {
|
||||
std::int8_t exp = (std::int8_t)std::floor(std::log10(std::fabs(value)));
|
||||
std::uint64_t significant = value * std::pow(10, signif - exp);
|
||||
std::int64_t significant = value * std::pow(10, signif - exp);
|
||||
|
||||
DHT_Keyelement elem;
|
||||
elem.sign = value < 0.;
|
||||
elem.exp = exp;
|
||||
elem.significant = significant;
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user