Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Nuova Dacia Spring, del modello precedente resta solo il nome: più grande, più efficiente e ora prodotta in Europa
Nuova Dacia Spring, del modello precedente resta solo il nome: più grande, più efficiente e ora prodotta in Europa
La seconda generazione della citycar elettrica di Dacia passa alla piattaforma RGEV small di Renault Group, cresce di 15 cm in lunghezza e 18 cm in larghezza, adotta un motore da 80 CV e una batteria LFP da 27,5 kWh per 250 km WLTP. Prezzi da 17.900 euro, produzione a Novo Mesto in Slovenia.
BOOX Picco: l'ebook reader minuscolo è una genialata, e si può attaccare allo smartphone
BOOX Picco: l'ebook reader minuscolo è una genialata, e si può attaccare allo smartphone
BOOX ha portato sul mercato Picco, un e-reader da 3,97 pollici che pesa 58 grammi e si aggancia al retro dello smartphone con un anello magnetico. Lo abbiamo usato con Pixel 11 Pro XL e iPhone 18 Pro per capire se un formato così ridotto regga la prova della lettura quotidiana
AMD EPYC Venice: dentro Zen 6, i SoC a 256 core e la sfida al costo della memoria
AMD EPYC Venice: dentro Zen 6, i SoC a 256 core e la sfida al costo della memoria
A Las Vegas AMD ha svelato i dettagli architetturali delle CPU EPYC di sesta generazione, note con il nome in codice Venice. Nuovi core Zen 6 e Zen 6c costruiti a 2 nanometri, fino a 256 core per socket, 16 canali di memoria, interfaccia PCI Express 6.0 e un'intera famiglia di proposte che va da Venice SP7 a Verano. Senza dimenticare la memoria, oggi la voce di costo più pesante in un server: AMD risponde con CXL 3.1 e con la tecnologia software MEXT, che porta la memoria flash dentro la gerarchia della DRAM.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 28-06-2011, 16:07   #1
cndcnd
Junior Member
 
Iscritto dal: Feb 2011
Messaggi: 13
risultati numerici diversi su diverse piattaforme

Ciao,

il mio problema è il seguente. Il mio programma in c++, compilato con

- gcc su windows
- gcc -pg su windows
- microsoft visula studio su windows
- gcc su linux

fornisce risultai numerici leggermente diversi. Qualcuno sa dirmi dove potrebbe essere il problema?

Grazie,

Alessandro
cndcnd è offline   Rispondi citando il messaggio o parte di esso
Old 28-06-2011, 16:09   #2
tuccio`
Senior Member
 
Iscritto dal: Apr 2010
Città: Frosinone
Messaggi: 416
faresti meglio a pastare il codice, ma se cambia già solo compilando con -pg forse usi qualche variabile non inizializzata?
tuccio` è offline   Rispondi citando il messaggio o parte di esso
Old 28-06-2011, 16:25   #3
cndcnd
Junior Member
 
Iscritto dal: Feb 2011
Messaggi: 13
// ellissoid: semi-axes, centre and displacement
hex=cve->hex; kx=2*DPLMAX/2; dx=(int)cve->hex+cve->dpl[0].xx;
hey=cve->hey; ky=2*DPLMAX/2; dy=(int)cve->hey+cve->dpl[7].yy;
hez=cve->hez; kz=2*DPLMAX/2; dz=(int)cve->hez+cve->dpl[0].zz;
// xxxx
fvx=1; //fvx=(1.00+(0.33*(float)edp->cgare[ci].cgo.dgd[7]/63));
fvy=1; //fvy=(1.00+(0.33*(float)edp->cgare[ci].cgo.dgd[7]/63));
fvz=1; //fvz=(1.00+(0.33*(float)edp->cgare[ci].cgo.dgd[7]/63));
// xxxx
for(bz=(kz-(int)hez-1);bz<(kz+(int)hez+1);bz++)
for(by=(ky-(int)hey-1);by<(ky+(int)hey+1);by++)
for(bx=(kx-(int)hex-1);bx<(kx+(int)hex+1);bx++) {
cve->buf0[bx][by][bz]=6; // no signal
// ellissoid
if((pow((bx-kx)/(hex*fvx),2)+pow((by-ky)/(hey*fvy),2)+pow((bz-kz)/(hez*fvz),2))<=1) {
if((edp->cgare[ci].cgo.ms0==1)||(edp->cgare[ci].cgo.ms0==3))
cve->buf0[bx][by][bz]=7; // normal signal
if( edp->cgare[ci].cgo.ms0==2)
cve->buf0[bx][by][bz]=8; // delete signal
if((edp->cgare[ci].cgo.ms0==1)||(edp->cgare[ci].cgo.ms0==3))
if((bx%NDQXXX==0)&&(by%NDQXXX==0)&&(bz%NDQXXX==0))
cve->buf0[bx][by][bz]=9; // driver signal
ivaro=0;
}
}


Questo è un primo pezzo sospetto. Forse le pow danno risultati diversi su diverse piattaforme Questo è un altro pezzo sospetto:

for(ix=0;ix<2;ix++)
for(iy=0;iy<2;iy++)
for(iz=0;iz<2;iz++)
for(bz=(kz-(int)hez-1);bz<(kz+(int)hez+1);bz++)
for(by=(ky-(int)hey-1);by<(ky+(int)hey+1);by++)
for(bx=(kx-(int)hex-1);bx<(kx+(int)hex+1);bx++) {
if((bx==0)&&(by==0)&&(bz==0)) first=YA; else first=NO;
bufval=cve->buf0[bx][by][bz];
if(bufval!=6) {
if(ix==0) ax=vx+dx+(int)floor(cve->rt[0]*(bx-kx)+cve->rt[1]*(by-ky)+cve->rt[2]*(bz-kz));
else ax=vx+dx+(int)ceil (cve->rt[0]*(bx-kx)+cve->rt[1]*(by-ky)+cve->rt[2]*(bz-kz));
if(iy==0) ay=vy+dy+(int)floor(cve->rt[3]*(bx-kx)+cve->rt[4]*(by-ky)+cve->rt[5]*(bz-kz));
else ay=vy+dy+(int)ceil (cve->rt[3]*(bx-kx)+cve->rt[4]*(by-ky)+cve->rt[5]*(bz-kz));
if(iz==0) az=vz+dz+(int)floor(cve->rt[6]*(bx-kx)+cve->rt[7]*(by-ky)+cve->rt[8]*(bz-kz));
else az=vz+dz+(int)ceil (cve->rt[6]*(bx-kx)+cve->rt[7]*(by-ky)+cve->rt[8]*(bz-kz));
if((ax<0)||(ax>=GRIDXX)||(ay<0)||(ay>=GRIDYY)||(az<0)||(az>=GRIDZZ))
goto GTLBBB;
if((bufval==7)||(bufval==8)) { //normal (7) or delete (8) signal
if(bufval==7) { Moccopy(&moc[0],&mocmother[0]); clcnd=CLSLEEP; }
if(bufval==8) { Moccopy(&moc[0],&edp->moc0[0]); clcnd=CLNOCL0; }
if(done==YA) goto GTLAAA;
if(bufval==7) { cve->smocnew=+1; } // normal
if(bufval==8) { cve->smocnew=-1; } // delete
Dharupd(thid,cve,gi,&edp->cgare[ci],&moc[0],as,0,NO,edp->moclp.marko);
done=YA;
GTLAAA:cvar=cvar;
Daughter(thid,cve,gi,ci,ax,ay,az,clcnd,NO,dhnrnor,edp->moclp.marko);
Dthrmnet(thid,cve,gi,ci,ax,ay,az,clcnd,NO,dhnrnor,edp->moclp.marko);
}
if((ix==1)&&(iy==1)&&(iz==1)) // last cycle to avoid drv get cancelled
if((bufval==9)||(first==YA)) { // driver signal
cve->smocnew++; clcnd=CLSLEEP; // also on mother pos, just once
Moccopy(&moc[0],&mocmother[0]);
Dharupd(thid,cve,gi,&edp->cgare[ci],&moc[0],as,1,YA,edp->moclp.marko);
if(bufval==9) { qx=ax; qy=ay; qz=az; }
if(first==YA) { qx=vx; qy=vy; qz=vz; }
Daughter(thid,cve,gi,ci,qx,qy,qz,clcnd,YA,-1,edp->moclp.marko);
Dthrmnet(thid,cve,gi,ci,qx,qy,qz,clcnd,YA,-1,edp->moclp.marko);
}
GTLBBB:cvar=cvar;
}
}


Anche qui, forse la floor e la ceil sono piattaforma-dipendenti. Se cambio la precisione di alcune variabili, portandole da float a double, i risultati cambiano ancora. Boh!
cndcnd è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Nuova Dacia Spring, del modello precedente resta solo il nome: più grande, più efficiente e ora prodotta in Europa Nuova Dacia Spring, del modello precedente resta...
BOOX Picco: l'ebook reader minuscolo è una genialata, e si può attaccare allo smartphone BOOX Picco: l'ebook reader minuscolo è un...
AMD EPYC Venice: dentro Zen 6, i SoC a 256 core e la sfida al costo della memoria AMD EPYC Venice: dentro Zen 6, i SoC a 256 core ...
HONOR Pad X9 Max recensione, schermo ultra large a meno di 400 euro HONOR Pad X9 Max recensione, schermo ultra large...
Lenovo ThinkPad X1 Carbon Gen 14: il business ultraleggero si rinnova dall’interno Lenovo ThinkPad X1 Carbon Gen 14: il business ul...
SpaceX e Tesla verso la fusione del seco...
One UI 9.5 arriva anche su Galaxy S25: S...
Kimi K3 gira in casa senza GPU, sulla me...
Il futuro di GeForce dopo Huang: NVIDIA ...
Windows, un bug lascia aperte le conness...
HONOR conquista il mercato cinese: la se...
Milioni di siti a rischio hacking: Apach...
La nuova mossa di Huawei: un secondo bra...
Nissan Leaf cambia pelle: la terza gener...
AliExpress 11.11, pioggia di offerte su ...
Nuova promo DAZN: piano Family a meno di...
Pixel, l'aggiornamento di novembre blocc...
Xiaomi alle ATP Finals di Torino: in mos...
Scarsità di schede video Radeon i...
Occhiali smart e AirPods con telecamera,...
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: 14:25.


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