[Talk-de] Genauigkeit der Koordinaten in der OSM-DB (Nachkommastellen)
Christian Müller
cmue81 at gmx.de
Fr Jan 17 03:40:04 UTC 2025
> Gesendet: Mittwoch, 15. Januar 2025 um 17:50
> Von: "Christian Müller" <cmue81 at gmx.de>
> An: talk-de at openstreetmap.org
> Betreff: Re: [Talk-de] Genauigkeit der Koordinaten in der OSM-DB (Nachkommastellen)
>
> ***************
> https://github.com/zerebubuth/openstreetmap-cgimap/blob/80e60f04466eada14f92854da9ef54a9005edc53/src/backend/apidb/changeset_upload/node_updater.cpp#L33
>
> .. double lat, double lon
> [..]
> Wer hier double zugunsten höherer Genauigkeit
> ersetzen will kann das wahlweise mit
> mpdecimal / libmpdec++ (worauf auch python's Decimal basiert..)
> oder z.B. num7 tun. Referenzen:
>
In dem Zusammenhang relevant und erwähnenswert:
Einige C Compiler unterstüzten Decimal von Haus aus,
z.B. der Fall bei GNU libstdc++ :
* https://gcc.gnu.org/onlinedocs/gcc/Decimal-Float.html
* https://gcc.gnu.org/onlinedocs/gccint/Decimal-float-library-routines.html
* https://gcc.gnu.org/onlinedocs/gcc-5.4.0/libstdc++/api/a01722.html
* https://gcc.gnu.org/onlinedocs/gcc-14.2.0/libstdc++/api/a01657.html
Seit GCC7 und CLANG6 implementiert Boost.Decimal
gleich zwei Varianten, eine IEEE-konform mit DPD
https://en.wikipedia.org/wiki/Densely_packed_decimal
und eine ohne (mit Suffix "_fast"), siehe
* https://cppalliance.org/decimal/decimal.html#decimal64_fast
(die _fast Typen werden damit beworben, um den
Faktor 3 schneller zu arbeiten, als die IEEE-
konformen)
Angesichts der besseren Portabilität, sowohl
Betriebssystem-, als auch Compiler-seitig
und der BSD-Lizenzierung wäre m. E. die be-
reits erwähnte Bibliothek mpdecimal aber
die näher liegendere Wahl.
Sofern man den decimal support nicht aus
libboost herausoperieren kann, wäre mp-
decimal überdies ein wesentlich schmaler-
er Quellenimport.
Zudem sind z.B. Zeichenkettenkonstruktoren
Decimal(const char *const s)
Decimal(const std::string &s)
bei mpdecimal enthalten, die beim
ISO/IEC TR 24733 basierten GNU GCC
ad hoc nicht zu entdecken waren.
Da der praktische Gewinn eher klein wäre,
ist m.M.n. davon auszugehen, dass die Be-
trachtungen zum Thema aber theoretischer
Natur bleiben.
Gruß
Mehr Informationen über die Mailingliste Talk-de