Forum: Mikrocontroller und Digitale Elektronik hfloat / Minifloat


von Walter T. (nicolas)


Lesenswert?

Guten Abend,

ich suche mir schon seit ein paar Tagen einen Wolf. Gibt es mittlerweile 
eine brauchbare 16-Bit-hfloat-Implementierung in C, die sich out of the 
box verwenden lässt?

Mit Implementierung meine ich einfach Konvertierungsfunktionen von und 
in normale 32-Bit-float.

Hintergrund: Ich will ein wenig EEPROM-Platz sparen, habe aber auch 
jetzt nicht die Lust, da viel mehr Zeit zu investieren, als es dauern 
würde, größere EEPROMs zu bestellen und tauschen.

Mein Plan B ist es, statt der Werte den Zweierlogarithmus des Werts als 
15-Bit-Festkomma zu speichern.

(Ich weiss - das klingt extrem faul. Aber wenn ich jetzt so etwas 
fremdartiges neu anfange, artet sich das wieder aus und wirft mich um 
Wochen zurück.)

: Bearbeitet durch User
von Walter T. (nicolas)


Lesenswert?

Ich habe doch noch etwas gefunden:

https://cellperformance.beyond3d.com/articles/2006/07/branchfree_implementation_of_h_1.html

Momentan weiß ich noch nicht, was ich davon halten soll. Ich habe 
soetwas noch nie gesehen. Es wirkt fremd und furchterregend.

: Bearbeitet durch User
von Axel S. (a-za-z0-9)


Lesenswert?

Walter T. schrieb:
> Gibt es mittlerweile
> eine brauchbare 16-Bit-hfloat-Implementierung in C, die sich out of the
> box verwenden lässt?
>
> Mit Implementierung meine ich einfach Konvertierungsfunktionen von und
> in normale 32-Bit-float.

???

Was meinst du mit hfloat? Ich kenne da https://www.jjj.de/hfloat/. 
Aber aus dem Kontext kannst du das nicht meinen ...

von Mario M. (thelonging)


Lesenswert?


von Vincent H. (vinci)


Lesenswert?

Für welche Platform? ARM GCC unterstützt float16 out of the box.

https://gcc.gnu.org/onlinedocs/gcc/Half-Precision.html

von Walter T. (nicolas)


Lesenswert?

Vincent H. schrieb:
> Für welche Platform? ARM GCC unterstützt float16 out of the box.

Die üblichen: Windows, Linux (32 und 64 Bit), ARM Cortex M.

Ich lese das so, dass unter den ersteren _Float16 nur in C++ und nicht 
in C unterstützt wird, zumindest sagt auch die Fehlermeldung: "error: 
'_Float16' is not supported on this target".

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.