[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