Articles of floating point

Cosa significano F e D alla fine dei valori letterali numerici?

Ho visto alcuni di questi simboli, ma non riesco a trovare nulla di strano con esso, double d = 5D; float f = 3.0F; Cosa significa esattamente la D e la F dietro 5?

Ottimizza per moltiplicazione rapida ma aggiunta lenta: FMA e doubledouble

Quando ho avuto un processore Haswell per la prima volta ho provato a implementare FMA per determinare il set Mandelbrot. L’algoritmo principale è questo: intn = 0; for(int32_t i=0; i<maxiter; i++) { floatn x2 = square(x), y2 = square(y); //square(x) = x*x floatn r2 = x2 + y2; booln mask = r2<cut; //booln is in […]

Guai a sum doppia precisione Java

Vorrei sapere perché ottengo questo errore. (questo è il registro di visualizzazione del debug di Eclipse) var (double) 2.8 tot.getIva() (java.lang.Double) 0.17 var+tot.get() (double) 2.9699999999999998 Non riesco a capire perché non ho ottenuto semplicemente 1,97!

Come eseguire efficientemente conversioni double / int64 con SSE / AVX?

SSE2 ha istruzioni per convertire i vettori tra float a precisione singola e interi a 32 bit. _mm_cvtps_epi32() _mm_cvtepi32_ps() Ma non ci sono equivalenti per la precisione doppia e gli interi a 64 bit. In altre parole, mancano: _mm_cvtpd_epi64() _mm_cvtepi64_pd() Sembra che AVX non li abbia neanche. Qual è il modo più efficace per simulare […]

Perché i numeri in virgola mobile vengono stampati in modo così diverso?

È abbastanza comune sapere che (la maggior parte) i numeri in virgola mobile non vengono memorizzati con precisione (quando viene utilizzato il formato IEEE-754). Quindi non si dovrebbe fare questo: 0.3 – 0.2 === 0.1; // very wrong … come risultato false , a meno che non sia stato usato un tipo / class specifico […]

C #: Converte l’array Byte in un float

Ho una matrice di byte di dimensione 4 byte[] source = new byte[4]; Ora volevo convertire questa sorgente in un valore float di 4 byte … Qualcuno può dirmi come farlo…

Perché la conversione da float a double cambia il valore?

Ho cercato di scoprire il motivo, ma non potevo. Qualcuno può aiutarmi? Guarda il seguente esempio. float f; f = 125.32f; System.out.println(“value of f = ” + f); double d = (double) 125.32f; System.out.println(“value of d = ” + d); Questo è l’output: valore di f = 125,32 valore di d = 125,31999969482422

Cosa fa realmente gf’s ffast-math?

Capisco che il –ffast-math di gcc –ffast-math può aumentare notevolmente la velocità per le –ffast-math e va oltre gli standard IEEE, ma non riesco a trovare informazioni su ciò che sta realmente accadendo quando è acceso. Qualcuno può spiegare alcuni dettagli e magari dare un chiaro esempio di come qualcosa cambierebbe se la bandiera fosse […]

Perché questa sottrazione non è uguale a zero?

Mi sono imbattuto in questi valori nel mio codice ColdFusion ma il calcolatore di Google sembra avere lo stesso “bug” in cui la differenza è diversa da zero. 416582.2850 – 411476.8100 – 5105.475 = -2.36468622461E-011 http://www.google.com/search?hl=en&rlz=1C1GGLS_enUS340US340&q=416582.2850+-+411476.8100+-+5105.475&aq=f&oq=&aqi= JavaCast’ing questi a long / float / double non aiuta – si traduce in altre differenze diverse da zero.

Perché non possiamo usare ‘==’ per confrontare due numeri float o double

Sto leggendo Efficace java di Joshua Bloch e nell’articolo 8: Rispetto al contratto generale quando si esegue l’override uguale , questa affermazione è scritta per i campi float, utilizzare il metodo Float.compare; e per i campi doppi, utilizzare Double.compare. Il trattamento speciale dei campi float e double è reso necessario dall’esistenza di Float.NaN, -0.0f e […]