Radice quadrata di numeri interi

Pubblicità
Vabbè, al di là di come sia implementata, sqrt() opera su numeri in virgola mobile, a me invece interessa operare con gli interi, anche perché poi ho intenzione di aggiungere la radice quadrata alla mia libreria sui big_int.
Lo so che se la complessità è quella non si possono fare miracoli, semplicemente sono rimasto stupito da una differenza così marcata; la richiesta poi su eventuali margini di miglioramento della mia funzione era una questione a parte, non pretendo certo di renderla cinque volte più
veloce! 😅

Però potresti usare per esempio le intrinsics e fare una terza funzione usando direttamente le istruzioni che mette a disposizione l'architettura (o con assembly inline). 😁 Magari scopri che si accosta molto a quella di libreria.

Eh sì, se c'è hardware dedicato c'è poco da fare! 😅
Comunque a tal proposito qualche tempo fa mi ritrovai a leggere qualcosa in rete circa il fatto che la divisione in virgola mobile fosse più veloce di quella intera, e da quello che ho capito la risposta è che non è vero in assoluto e dipende dall'hardware, anche se la maggior parte delle cpu commerciali tendono a privilegiare alcune operazioni in virgola mobile.

Mi sa che ti riferisci tipo a questo: https://stackoverflow.com/a/55833042
Non sono per niente convinto però in merito alla sua affermazione dove parla di C e C++, riguardo alla promozione dei numeri a 8bit in int.
Andrebbe visto caso per caso, compilatore, ottimizzazioni del compilatore e situazioni... perchè l'architettura prevede l'utilizzo di operandi più piccoli di un int.

Questo secondo me può interessarti comunque: https://forum.nasm.us/index.php?topic=3863.0
Me lo salvo per leggerleo con calma.
 
Non sono per niente convinto però in merito alla sua affermazione dove parla di C e C++, riguardo alla promozione dei numeri a 8bit in int.
io invece non sono sorpreso, si fa anche in Java
tra l'altro questa persona vedo che lavora in "Technical University of Denmark", mi sa che è da prendere sul serio, penso sia un professore
alla sua pagina ricavata dal donload sembrerebbe contenere parecchia documentazione interessante https://www.agner.org/
 
io invece non sono sorpreso, si fa anche in Java
tra l'altro questa persona vedo che lavora in "Technical University of Denmark", mi sa che è da prendere sul serio, penso sia un professore
alla sua pagina ricavata dal donload sembrerebbe contenere parecchia documentazione interessante https://www.agner.org/
Si è fatto dal compilatore quindi.
Effettivamente pensandoci ha senso la promozione a int.

Ah, non avevo nemmeno fatto caso all'utente in sé in realtà...

Hai voglia, quel sito saranno una decina di anni che che lo conosco! È pieno di risorse interessanti per x86_64 e non solo.

Avevo letto parecchio da questa pagina: https://agner.org/optimize/#manuals
 
Questo secondo me può interessarti comunque: https://forum.nasm.us/index.php?topic=3863.0
Me lo salvo per leggerleo con calma.
Ho dato un'occhiata veloce, quindi non so se sia la stessa cosa, ma in tal caso si tratta di una questione che ho già affrontato e di cui abbiamo discusso. Dai un'occhiata da questo post in poi! 😀
Tra l'altro dopo quella discussione ho continuato a riflettere matematicamente sul problema e alla fine penso di averlo dimostrato, il che mi ha anche permesso di implementare il tutto in maniera più precisa e completa.

Mi sa che ti riferisci tipo a questo: https://stackoverflow.com/a/55833042
Sì, tra le varie cose che ho letto, se ben ricordo, c'era anche quel post.
 
Pubblicità
Pubblicità
Indietro
Top