Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Fable e Sol a confronto: due cartoni animati creati su un PC con RTX 3090
Fable e Sol a confronto: due cartoni animati creati su un PC con RTX 3090
Ho affidato ai due modelli lo stesso mestiere ma non lo stesso identico prompt: trasformare una storia illustrata in un video usando una RTX 3090 e modelli locali. Ne sono usciti due film, due applicazioni e due idee opposte di efficienza. Fucina, progettata con Fable 5, colpisce di più nei primi secondi. Storyboard Studio, costruito con ChatGPT/Codex, regge meglio sulla distanza e vince il confronto complessivo, ma di stretta misura
Il tablet rugged leggero e sottile: Lenovo ThinkTab X11 offre resistenza, doppia USB-C e batteria rimovibile
Il tablet rugged leggero e sottile: Lenovo ThinkTab X11 offre resistenza, doppia USB-C e batteria rimovibile
Lenovo ha lanciato il ThinkTab X11 rimettendo piede nel segmento dei tablet Android con il marchio Think dopo oltre un decennio di assenza. Il risultato è un dispositivo che prende una direzione precisa: massima dotazione funzionale, costruzione resistente, autonomia fuori dagli schemi
AMD Advancing AI 2026: l'hardware AMD per le elaborazioni IA del futuro, tra GPU, CPU e robot
AMD Advancing AI 2026: l'hardware AMD per le elaborazioni IA del futuro, tra GPU, CPU e robot
AMD Advancing AI è l'appuntamento annuale con il quale l'azienda americana mostra quelle che sono le proprie novità dal versante datacenter. Tra piattaforma Helios, GPU Instinct MI455X e processori EPYC di sesta generazione tutto quello che serve per processare l'IA sempre più complessa ed esigente
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 13-02-2006, 11:22   #1
swarm
Senior Member
 
L'Avatar di swarm
 
Iscritto dal: Jan 2003
Città: Castellammare di Stabia (NA)
Messaggi: 2031
[Visual C++] Creare una Look-Up Table

Salve

devo risolvere a breve un problema per me gravissimo...

il mio programma legge dei valori da un array, in pratica creo una lookup table della radice quadrata e leggo così i valori...

finora ho dichiarato una variabile globale

static float SQRTTAB[32768];

e la caricavo così

unsigned short val;

for (val=0;val<32768,++val)
SQRTTAB[val] = (float)sqrt((double)val);

però quando la uso, mi ritrovo tutti zeri all'interno....

come devo fare?
__________________
ho fatto affari con: na decina di anime
swarm è offline   Rispondi citando il messaggio o parte di esso
Old 13-02-2006, 15:22   #2
alesnoce
Member
 
Iscritto dal: May 2005
Messaggi: 80
Butto là una risposta:
considerando che la dichiarazione della funzione radice quadrata è

double sqrt(double x);

float sqrtf(float x);

long double sqrtl(long double x);

mentre te hai scritto
Quote:
SQRTTAB[val] = (float)sqrt((double)val);
ti consiglio di definire uno static double[] e fare il cast esterno a double anziché a float
alesnoce è offline   Rispondi citando il messaggio o parte di esso
Old 13-02-2006, 22:03   #3
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
ma guarda te se ancora oggi devo vedere usati sti trucchetti da PC Underground!!!

mitico libro che era quello...
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 14-02-2006, 08:43   #4
alesnoce
Member
 
Iscritto dal: May 2005
Messaggi: 80
Ho cliccato il link a pcunderground e mi ha incuriosito.
Se l'hai letto mi puoi dare per favore qualche esempio di argomento trattato?
In questo momento sto debuggando qualche migliaio di righe di codice c++ e, anche se applico poco e male le buone tecniche di programmazione, sono convinto che in c++ senza conoscere trucchetti pratici non si va da nessuna parte.
Ciao
alesnoce è offline   Rispondi citando il messaggio o parte di esso
Old 14-02-2006, 13:12   #5
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
Quote:
Originariamente inviato da alesnoce
Ho cliccato il link a pcunderground e mi ha incuriosito.
Se l'hai letto mi puoi dare per favore qualche esempio di argomento trattato?
In questo momento sto debuggando qualche migliaio di righe di codice c++ e, anche se applico poco e male le buone tecniche di programmazione, sono convinto che in c++ senza conoscere trucchetti pratici non si va da nessuna parte.
Ciao
non sono molto d'accordo se ho capito cosa intendi per "trucchetti pratici"... moltissimi programmi sono ottimi pur essendo totalmente privi di "hacks".
comunque si tratta di un libro che oggi non leggerebbe più nessuno: è dei tempi di Windows 95 e tratta argomenti e tecniche di programmazione spesso mirate su un risparmio di risorse che con l'hardware di oggi chiunque con un po' di buonsenso considererebbe veramente maniacale
parla molto di programmazione assembly; io quando lo lessi mi interessavo di grafica, e così mi interessava particolarmente il capitolo dove parlava della VGA standard: descriveva ranges di memoria e di IO della VGA e insegnava ad usarla IN ASSEMBLY x86!!!
a volte metteva addirittura pezzi di assembly in programmi Pascal...
oggi credo che quei programmetti neanche funzionerebbero più in modalità protetta... provando ad eseguirli dal CD fornito col libro ricordo che andavano perfettamente su Windows 98 ma già col 2000 qualcuno aveva problemi.
questa storia della tabella delle radici quadrate mi ha ricordato quel libro perché a un certo punto il libro parlando di grafica 3D e parlando di come realizzare le rotazioni, per velocizzare il calcolo di seno e coseno anziché calcolarli lì sul momento ne calcolava tantissimi che metteva poi in una tabella
ovviamente tutto in assembly
roba da masochisti, ti posso veramente assicurare che programmare a quel modo con l'hardware di oggi è assurdo.
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 14-02-2006, 13:34   #6
alesnoce
Member
 
Iscritto dal: May 2005
Messaggi: 80
Mi sono espresso male dicendo trucchetti, forse era meglio dire esperienza di programmazione spicciola.
Per fare un esempio, nel programma che sto debuggando ci sono blocchi di codice che devono leggere stringhe, ed eseguire operazioni differenti a seconda di ciò che le stringhe contengono.
Con la stringa "boolA=false" nel codice seguente viene eseguito l'if iniziale !!!!!
Codice:
      if ( ((_action.find_last_of("true")) > (_action.size()-6)) &&
           ((_action.find_last_of("true")) > equalPosition)  )
      {
             ...................................
      }
      else if ( ((_action.find_last_of("false")) > (_action.size()-7)) &&
                ((_action.find_last_of("false")) > equalPosition)  )
      {
              .....................................
      }
e ho dovuto scrivere invece
Codice:
      if ( ((_action.find_last_of("true")) > (_action.size()-6)) &&
           ((_action.find_last_of("true")) > equalPosition) &&
           ((_action.find("false")) == string::npos) )
      {
            ....................................
      }
      else if ( ((_action.find_last_of("false")) > (_action.size()-7)) &&
                ((_action.find_last_of("false")) > equalPosition) &&
                ((_action.find("true")) == string::npos) )
      {
                  ....................................
      }
per ottenere un funzionamento corretto.

Lo so che è un "trucchetto" inelegante, però funziona
alesnoce è offline   Rispondi citando il messaggio o parte di esso
Old 14-02-2006, 15:16   #7
Qu@ker
Member
 
Iscritto dal: Apr 2004
Messaggi: 130
Quote:
Originariamente inviato da alesnoce
Con la stringa "boolA=false" nel codice seguente viene eseguito l'if iniziale !!!!!
Non capisco, se stanno ricercando l'ultima occorrenza di false o true perche' non utilizzano string::rfind()?
Qu@ker è offline   Rispondi citando il messaggio o parte di esso
Old 14-02-2006, 15:25   #8
alesnoce
Member
 
Iscritto dal: May 2005
Messaggi: 80
Quote:
Originariamente inviato da Qu@ker
Non capisco, se stanno ricercando l'ultima occorrenza di false o true perche' non utilizzano string::rfind()?
Perché sono ignorante..
Con questa osservazione credo tu mi abbia risolto molti problemi, sarà meglio che mi studi meglio i metodi di string
alesnoce è offline   Rispondi citando il messaggio o parte di esso
Old 15-02-2006, 12:41   #9
swarm
Senior Member
 
L'Avatar di swarm
 
Iscritto dal: Jan 2003
Città: Castellammare di Stabia (NA)
Messaggi: 2031
raga mi dispiace di aver sollevato un polverone

cmq vi ringrazio moltissimo, anche se alla fine ho risolto facendo direttamente la sqrt().....

era solo un modo per fare prima, in quanto se ho ben capito la velocità computazionale dell'accesso ai vettori è fissa, mentre quello della funzione può variare...

alla fine nn mi cambia nulla, quindi....

GRAZIE!!
__________________
ho fatto affari con: na decina di anime
swarm è offline   Rispondi citando il messaggio o parte di esso
Old 15-02-2006, 15:17   #10
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
Quote:
Originariamente inviato da swarm
cmq vi ringrazio moltissimo, anche se alla fine ho risolto facendo direttamente la sqrt().....
te l'avevo detto io
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 15-02-2006, 15:23   #11
swarm
Senior Member
 
L'Avatar di swarm
 
Iscritto dal: Jan 2003
Città: Castellammare di Stabia (NA)
Messaggi: 2031
Quote:
Originariamente inviato da 71104
te l'avevo detto io
infatti ora ho riletto con calma il tuo post...

la "tecnica" della look-up table infatti era usata da un vecchio software scritto in C su un 386-25Mhz.....

byez
__________________
ho fatto affari con: na decina di anime
swarm è offline   Rispondi citando il messaggio o parte di esso
Old 17-02-2006, 09:30   #12
alexanderf
Junior Member
 
Iscritto dal: Feb 2006
Messaggi: 11
Salve ragazzi co sto programmino in java che mi visualizza i numeri primi però no riesco a far visualizzare i suoi divisori. Esempio ciò 3 e divisible solo con 3 oppure cio 4 e divisibile con 2 e 4 ecc.
public class NumeriPrimi{
static int primo;
static int i;
public static String numeroPrimo(int primo){
if(primo==2){
return"è un numero primo";
}else if (primo==3){
return "è un numero primo";
}else if (primo==5){
return "è un numero primo";
}

if ((primo%2)==0) {

return"non è numero primo";
}else if ((primo%3)==0){
return"non è un numero primo";
}else if ((primo%5)==0){
return"non è un numero primo";
}
return"é un numero primo";

}

public static void main(String args[])
{
//NumeriPrimi primo = new NumeriPrimi();
String risposta=NumeriPrimi.numeroPrimo(3) System.out.println(risposta);
}
}
alexanderf è offline   Rispondi citando il messaggio o parte di esso
Old 17-02-2006, 12:42   #13
swarm
Senior Member
 
L'Avatar di swarm
 
Iscritto dal: Jan 2003
Città: Castellammare di Stabia (NA)
Messaggi: 2031
Quote:
Originariamente inviato da alexanderf
Salve ragazzi co sto programmino in java che mi visualizza i numeri primi però no riesco a far visualizzare i suoi divisori. Esempio ciò 3 e divisible solo con 3 oppure cio 4 e divisibile con 2 e 4 ecc.
public class NumeriPrimi{
static int primo;
static int i;
public static String numeroPrimo(int primo){
if(primo==2){
return"è un numero primo";
}else if (primo==3){
return "è un numero primo";
}else if (primo==5){
return "è un numero primo";
}

if ((primo%2)==0) {

return"non è numero primo";
}else if ((primo%3)==0){
return"non è un numero primo";
}else if ((primo%5)==0){
return"non è un numero primo";
}
return"é un numero primo";

}

public static void main(String args[])
{
//NumeriPrimi primo = new NumeriPrimi();
String risposta=NumeriPrimi.numeroPrimo(3) System.out.println(risposta);
}
}
aridaglie
__________________
ho fatto affari con: na decina di anime
swarm è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Fable e Sol a confronto: due cartoni animati creati su un PC con RTX 3090 Fable e Sol a confronto: due cartoni animati cre...
Il tablet rugged leggero e sottile: Lenovo ThinkTab X11 offre resistenza, doppia USB-C e batteria rimovibile Il tablet rugged leggero e sottile: Lenovo Think...
AMD Advancing AI 2026: l'hardware AMD per le elaborazioni IA del futuro, tra GPU, CPU e robot AMD Advancing AI 2026: l'hardware AMD per le ela...
Tascabile e con Android: BOOX Go 6 Gen II è diverso da tutti gli altri e-reader Tascabile e con Android: BOOX Go 6 Gen II &egrav...
Recensione Lenovo Idea Tab Plus: il tablet da 12 pollici che costa meno di 300 euro Recensione Lenovo Idea Tab Plus: il tablet da 12...
NVIDIA, Samsung, SK hynix e Broadcom: a ...
Sony rompe il silenzio: God of War Laufe...
iPhone Ultra, lancio ritardato per il pi...
Microsoft rafforza l'attivazione di Wind...
Galaxy S27 e S27+: Samsung starebbe test...
macOS più sicuro di Windows? Il n...
L'UE punta il dito contro TikTok: ecco c...
Qualcomm aumenterà i prezzi dei c...
TOP 12 Amazon weekend: al top una stampa...
Come sfruttare le offerte di Amazon per ...
Intelligenza artificiale: le Big Tech sa...
Xbox Game Pass, il mese di luglio 2026 s...
Smartphone troppo cari: Qualcomm ripensa...
Age of Empires III: Definitive Edition t...
GitHub contro i report fatti dall'IA: ri...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 13:38.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v