Sto cercando una libreria di punti fissi C ++ gratuita (principalmente per l’uso con dispositivi embedded, non per matematica di precisione arbitraria). Fondamentalmente, i requisiti sono:
Eventuali suggerimenti?
C’è un progetto di biblioteca matematica a punti fissi open source che può essere trovato seguendo i collegamenti seguenti:
È una libreria statica C con un’interfaccia di class C ++ per utenti C ++, implementa le seguenti funzionalità: Trig. Funzioni: sin, cos, tan, asin, acos, atan, atan2 Aritmetica saturi: sadd, ssub, smul, sdiv Altre funzioni: sqrt, exp
Supporta solo 16.16 datatype a virgola fissa .
È un progetto open source triggersmente sviluppato (in cerca di sviluppatori interessati).
Scopri le seguenti due buone implementazioni sulla gestione della rappresentazione a virgola fissa in C ++ (non sono necessarie librerie esterne).
Classe a punto fisso di Peter Schregle. Implementa anche efficientemente le operazioni di base come addizione , moltiplicazione e divisione .
Esempio di codice:
#include using namespace fpml; main() { fixed_point a = 256; fixed_point b = sqrt(a); }
Implementazione di numeri a virgola fissa in C ++ di Khuram Ali.
Proverò http://www.efgh.com/software/fixed.htm tiny lib …
Ho una piccola intestazione c ++. Lo puoi trovare sotto dolce :: Risolto . Basta definire typedef sweet :: Fixed MyFloat; e usarlo come qualsiasi altro valore float. O scambiarlo con qualsiasi tipo di float che desideri in seguito. La class ha due valori a 64 bit. Uno per la parte intera e avanti per la frazione.
Ho un piccolo implector di intestazione di class c ++ 11 in sweet.hpp chiamato fixed.hpp . Usa 32 bit per entrambe le parti.
typedef float MyFloat; // This will feel the same typedef sweet::Fixed MyFloat; // like this
Ecco una libreria a virgola fissa open source su GitHub:
https://github.com/mbedded-ninja/MFixedPoint
Supporta numeri a virgola fissa a 32 e 64 bit (con un quoziente arbitrario) ed entrambi veloci (tutto è un modello, ma un po ‘più manuale) e numeri a virgola fissa lenti (più automatici, ma più lenti).
È orientato verso piattaforms embedded, tuttavia l’ho usato su entrambi i microcontrollori e Linux senza problemi.
Forse potresti provare le librerie GMP o MPFR. Sono abbastanza sicuro che soddisferanno le tue esigenze in termini di prestazioni, ma forse sono troppo per le tue esigenze e desideri qualcosa di più leggero. Ad ogni modo, guarda qui:
Libreria GMP
o qui:
Libreria MPFR
Non ho mai usato SPUC , ma la descrizione richiede tipi di dati a virgola fissa e alcune funzioni matematiche.