Ho una stringa a 128 bit e il mio supervisore mi ha chiesto di rappresentare quei 128 bit come un polinomio. Si tratta di una scansione del documento che stava scrivendo su:Come utilizzare i polinomi al posto dei bit per migliorare le prestazioni?
La sua idea è, dal momento che stiamo eliminando gli 0 di questi bit, saremo in grado di eseguire le successive operazioni (la maggior parte dei quali sono XOR tra i bit/polinomi) molto più veloce rispetto a quando lavoravamo su tutti i bit.
Capisco qual è il requisito, e posso farlo su carta, e anche nell'applicazione. Ma la mia strada non raggiungerà il suo obiettivo, che sta migliorando le prestazioni. In realtà ha detto che ci sono già delle biblioteche che lo fanno, ma sfortunatamente non sono riuscito a trovarne. L'unica cosa che ho trovato è stata una classe polinomiale che valuta i polinomi, che non è quello che voglio.
Quindi ragazzi sapete come posso implementarlo per migliorare le prestazioni? Qualsiasi codice/snippet/articoli è molto apprezzato.
L'applicazione è scritta in Java, se questo fa alcuna differenza.
Grazie,
Mota
Aggiornamento:
Il mio supervisore dice che questo C library farà il compito. Non potevo però capire come funziona e come lo farà.
Ho visto questo fatto nelle librerie di crittografia, in particolare i campi di galois. Non posso essere più specifico di questo, è da un po 'che non l'ho visto. –
http://en.wikipedia.org/wiki/Finite_field_arithmetic –
Il problema è che la maggior parte dei bit di processo della macchina è molto veloce e se si tenta di fare qualcos'altro (.e.g *, +, /) deve ancora usare bit. Se l'uso dei polinomi fosse più rapido in ogni causa, si potrebbe prendere la soluzione, spezzarla in bit e poi polinomi e renderla sempre più veloce ad ogni iterazione (invece sospetto che ogni volta sarà più lento) Potrebbero esserci situazioni in cui ciò che suggerisce è più veloce, ma non riesco a pensare a nessuno. –