Forum » Znanost in tehnologija » Digitalna evolucija
Digitalna evolucija
noraguta ::
o ti sveta preproščina , kaj si zopet nabluzil , celo z preverjenjem inputa za 0 je dd3 precej hitrejši od criticalla. edino smiselno kar si objavil do sedaj je bil hibridni dd3 na tega je ciljal zipper v svojem povzetku. vendar zgolj za all-range distribucijo inputa.
Pust' ot pobyedy k pobyedye vyedyot!
Thomas ::
Torej imaš DD3A verzijo, ki dela prav. Praviš da je hitrejša od binaryja (ki ga Critticall iznajde).
Praviš pa tudi, da je hibridna verzija CRI_DD3A še hitrejša?
Praviš pa tudi, da je hibridna verzija CRI_DD3A še hitrejša?
Man muss immer generalisieren - Carl Jacobi
Thomas ::
No, to hibridizacijo, sem si zmislu jest, Thomas.
Noben noraguta ali gamedev.net forumaš, ki ste "tako pametni".
V vsakem primeru, je najhitrejši znan algoritem MOJ.
Hvala lepa za vaš trud.
Noben noraguta ali gamedev.net forumaš, ki ste "tako pametni".
V vsakem primeru, je najhitrejši znan algoritem MOJ.
Hvala lepa za vaš trud.
Man muss immer generalisieren - Carl Jacobi
Thomas ::
> vendar zgolj za all-range distribucijo inputa
Tega, na kakšne drugačne distribucije mislite, niste znali nikoli povedati.
Tega, na kakšne drugačne distribucije mislite, niste znali nikoli povedati.
Man muss immer generalisieren - Carl Jacobi
noraguta ::
hja nisi je , ker tvoja ima napačen output, MOJA ima matematično pravilnega, toja na žalost ne.
glede testov pa pobrskaj po forumu.
glede testov pa pobrskaj po forumu.
Pust' ot pobyedy k pobyedye vyedyot!
Thomas ::
Ko si videl, da je DD3_CRI napačen, si mu popravil šurka.
Zdej praviš, da je (po tvoji meritvi) najhitrejši in TVOJ.
Hehe ...
Zdej praviš, da je (po tvoji meritvi) najhitrejši in TVOJ.
Hehe ...
Man muss immer generalisieren - Carl Jacobi
noraguta ::
jah glej ce greš pomerit funkcijo , vidiš da nekje šepa in mu vrineš en if je ravno toliko inovativno kot, če jo fitaš na podobno preslikavo. v nobenem primeru ne mislim ,da gre za kakršno koli inovacijo.kdor koli kdaj pa kdaj optimizira kodo naredi takšnih popravkov na desetine. no ja popravici povedano tudi "logični" next pow 2 lahko ima svoje prednosti.
še od distribucijah števil , če bo input sestavljen iz bolj majhnih števk se critical zacne obnašat kot počasnela. dd3 pa ima takorekoč konstanten output tudi če ga hraniš z smallom ali int16.
testi niti niso moji vendar še zadleč niso takšna skrpucala, kot si se jih drznil objavlati ti.
še od distribucijah števil , če bo input sestavljen iz bolj majhnih števk se critical zacne obnašat kot počasnela. dd3 pa ima takorekoč konstanten output tudi če ga hraniš z smallom ali int16.
testi niti niso moji vendar še zadleč niso takšna skrpucala, kot si se jih drznil objavlati ti.
Pust' ot pobyedy k pobyedye vyedyot!
Zgodovina sprememb…
- spremenilo: noraguta ()
Thomas ::
Najprej. Tukaj se Critticall ne meri z nikomer. Njegovi algoritmi se.
DD3 je počasnela pa pri drugih inputih, kot tale CRI. Velikih številih, recimo.
Le da Critticall lahko naredi CRI1, CRI2, CRI3, CRI4, CRI5, CRI6, ... za vsako vrsto inputov.
To vam gre v nos.
DD3 je počasnela pa pri drugih inputih, kot tale CRI. Velikih številih, recimo.
Le da Critticall lahko naredi CRI1, CRI2, CRI3, CRI4, CRI5, CRI6, ... za vsako vrsto inputov.
To vam gre v nos.
Man muss immer generalisieren - Carl Jacobi
noraguta ::
glede na to da sta algoritma onpair pri za critical optimalnih pogojih nevem , če se sploh splača,generirati na kupe dreves .mogoče ja, mogoče ne, bog si ga vedi.
Pust' ot pobyedy k pobyedye vyedyot!
Thomas ::
Kdo pa je rekel, da bi moralo biti ravno drevo. Lahko tudi poznamo profil input data streama in ga pričakamo z zanj fine tuned algoritmom.
DD3, ki ga imate tako radi, ni nujno dober za vselej in povsod. Sicer je pa precalculated CRI, kjer se izvajajo bloki ifov naenkrat.
Spet je čas za citiranje Zipsterja:
DD3, ki ga imate tako radi, ni nujno dober za vselej in povsod. Sicer je pa precalculated CRI, kjer se izvajajo bloki ifov naenkrat.
Spet je čas za citiranje Zipsterja:
There, you won. "Your" hybrid turned out to be the fastest with all the optimizations turned on, in addition to when turned off. I just hope I never have to debate with you again, because I don't think I can hold on to my sanity.
Man muss immer generalisieren - Carl Jacobi
noraguta ::
hja to je bilo , sedaj vlda MOJAfunkcija , vis ostali criticali, thomasi in podobni šantavci so iz tega staišča zgolj še zgodovinske anomalije.
zgolj za ples številk v času gre , če se ne znaš obrnit ...
zgolj za ples številk v času gre , če se ne znaš obrnit ...
Pust' ot pobyedy k pobyedye vyedyot!
Thomas ::
Sej pravi, lastiš si kodo algoritma. Izvoli, objavi jo na Gamedev.net kot najhitrejšo.
Ali pa tukaj.
Ali pa tukaj.
Man muss immer generalisieren - Carl Jacobi
OwcA ::
Protestiram proti podtikanjem, češ da vsakdo, ki se s tabo ne strinja nima pojma o matematiki. Dejstvo pa je, da je tista napka zelo lehko odpravljiva (kar so povedali že na gamedev.net).
Nadalje, dokler se podajamo na križarske pohode v imeni znanosti, so izjave kot je
Dodati pogoj je stvar optimizacij glede na vhodne podatke in ne redikalna izbolšava algoritma. Če hibridu ponudimo povečini majhna števila, ga bo ta sila "izboljšava" samo bremenila.
Na gamedev.net, ako me spomin ne vara, so.
Drugače se mi zdravorazumsko zdi obravnavati robne primere in razporeditve za katere se dani algoritem obnese "povprečno".
Nadalje, dokler se podajamo na križarske pohode v imeni znanosti, so izjave kot je
Sicer je [DD3] pa precalculated CRIvse prej kot umestne. DD3 je kvečemu delno vnaprej preračunan binary, ne CRI. )Takšnih "drobnih metafor" so se že posluževali recimo za časa absulutizma, kjer so z njimi izenačili vladarja z utelešenjem pravičnosti).
Dodati pogoj je stvar optimizacij glede na vhodne podatke in ne redikalna izbolšava algoritma. Če hibridu ponudimo povečini majhna števila, ga bo ta sila "izboljšava" samo bremenila.
Tega, na kakšne drugačne distribucije mislite, niste znali nikoli povedati.
Na gamedev.net, ako me spomin ne vara, so.
Drugače se mi zdravorazumsko zdi obravnavati robne primere in razporeditve za katere se dani algoritem obnese "povprečno".
Otroška radovednost - gonilo napredka.
Thomas ::
> ako me spomin ne vara, so.
Te vara.
Jest bi zdej rad samo tahitrejšo kodo vidu. Da bi vidu, če imam kaj zraven.
Te vara.
Jest bi zdej rad samo tahitrejšo kodo vidu. Da bi vidu, če imam kaj zraven.
Man muss immer generalisieren - Carl Jacobi
Thomas ::
>> Sicer je [DD3] pa precalculated CRI
Seveda da je. Prvi blok ifov naenkrat, potem pa še drugi blok.
Jasno.
Seveda da je. Prvi blok ifov naenkrat, potem pa še drugi blok.
Jasno.
Man muss immer generalisieren - Carl Jacobi
OwcA ::
Ni CRI, temveč je binary (kar sem seveda že povedal). Glede na debato dokaj pomembna sematična razlika.
Jasno.
Me ne:
Jasno.
Te vara.
Me ne:
Q : In which context do you use such a function. I just wonder if it's of general use. I thought of mem allocation algos, or putting arbitrary images into power of two texture chuncks, but that's not obvious.
---
Nothing critical, as you guessed, i use this function to convert the resolution of my display to fit in a 2^n texture ...
Otroška radovednost - gonilo napredka.
Thomas ::
Aja. Binary je? Torej ni nobeno originalno Critticallovo (z mojo pomočjo) odkritje? Nekaj kar je bilo znano že prej, v nasprotju z drugimi algoritmi, tam objavljenimi, originalnimi in 100% avtorskimi?
Kaj si pa prebral iz citiranega angleškega teksta, katero resnico vidiš notri, pa ne vem.
Kaj si pa prebral iz citiranega angleškega teksta, katero resnico vidiš notri, pa ne vem.
Man muss immer generalisieren - Carl Jacobi
Vesoljc ::
pomoje distribucijo misli...
se pravi, da rang nekaj tisoc pikslov
se pravi, da rang nekaj tisoc pikslov
Abnormal behavior of abnormal brain makes me normal...
OwcA ::
Aja. Binary je? Torej ni nobeno originalno Critticallovo (z mojo pomočjo) odkritje? Nekaj kar je bilo znano že prej, v nasprotju z drugimi algoritmi, tam objavljenimi, originalnimi in 100% avtorskimi?
Preden začnem mahati okoli s sarkazmom, ali je jasno, da govorimo o DD3 (prvi ga je v temo na gamedev.net prispeval DigitalDelusion).
aj si pa prebral iz citiranega angleškega teksta, katero resnico vidiš notri, pa ne vem.
Tisto, da je bilo povedano o kakšni distribuciji je govora (ta tvoja "nevednost" bi skorajda implicirala, da negiraš kar vse po čez ... Kaj nismo govorili o "znanstvenem" pristopu k argumentiranju in debatiranju?).
Otroška radovednost - gonilo napredka.
OwcA ::
Če misli to, CRIju pomečemo par prvih ifov ven. Ali pa mu jih dodamo nekaj.
Seveda, ali pa dodatmo DD3 en if, oziroma primerno optimiziramo katerikoli drug algoritem. Poanta je v tem, da vsakdo tega potem ne obeša na veliki zvon in se tolče po prsih.
Otroška radovednost - gonilo napredka.
Thomas ::
Vsak ne, jest pa. Če je moj algoritem za NP2 najhitrejši, se tolčem po prsih.
Nisem tako skromen kot ti, ki se ne bi.
Samo sem povedal. To je binary, h kateremu Critticall zna skonvergirat.
Če binarija baše množica ifov, se ga potem morda splača prevest v nekakšen DDX. Ampak samo za manjši del vrednosti.
Nisem tako skromen kot ti, ki se ne bi.
Samo sem povedal. To je binary, h kateremu Critticall zna skonvergirat.
Če binarija baše množica ifov, se ga potem morda splača prevest v nekakšen DDX. Ampak samo za manjši del vrednosti.
Man muss immer generalisieren - Carl Jacobi
OwcA ::
Vsak ne, jest pa.
Če bi zraven ne sodila še podtikanja in poskusi diskreditacij, bi bilo precej bolj prebavljivo.
Samo sem povedal. To je binary, h kateremu Critticall zna skonvergirat.
Točno tako.
A kaj, ko se je presunljivo hitro zgornja izjava zreducirala na "to je CRI"..
Nič ne rečem, lepo je videti, da se CRI hitro dokoplje do najboljših dosedaj znanih rešitev in s tem se lahko mirno hvališ, še pritrdil ti bom, ni pa rešitev, dokler je ekvivalentna, nič boljša.
Otroška radovednost - gonilo napredka.
Thomas ::
Še nekaj.
Če dopustimo, da je program poljubno kompleksen v smislu Kolmogorova, to pomeni, da ima zelo veliko vrstic, po domače ... kar DD3 gotovo ima, potem kje bomo postavili mejo?
Da naredimo kar tabelo za vsa števila? a[]={1,1,2,4 ....2*1048576}.
Potem je program:
return a[x];
Tudi to sem predlagal na Gamedev.net. To je najhitrejše, "sploh ker imajo sodobni procesorji dovolj cachea".
Zakaj DD3 ja, to pa ne? Kje je tista meja?
Če pa ostanemo resni, potem je dober samo neprirejen binary, ki ga Critticall najde.
Se pravi zanke:
The next power of 2 is for the numbers from 0 to 15:
V temle smislu.
Zadeva pride do while zanke, kjer razpolavlja kandidata za return, dokler ga pač mora.
Sapienti sat!
Če dopustimo, da je program poljubno kompleksen v smislu Kolmogorova, to pomeni, da ima zelo veliko vrstic, po domače ... kar DD3 gotovo ima, potem kje bomo postavili mejo?
Da naredimo kar tabelo za vsa števila? a[]={1,1,2,4 ....2*1048576}.
Potem je program:
return a[x];
Tudi to sem predlagal na Gamedev.net. To je najhitrejše, "sploh ker imajo sodobni procesorji dovolj cachea".
Zakaj DD3 ja, to pa ne? Kje je tista meja?
Če pa ostanemo resni, potem je dober samo neprirejen binary, ki ga Critticall najde.
Se pravi zanke:
The next power of 2 is for the numbers from 0 to 15:
p=5;
if (i>=p) {
p=8;
labelcritticall15:;
if (i>p) {
p=p+p;
}
} else {
p=2;
if (i>=p) {
goto labelcritticall15;
}
p=1;
}
i stands for input and p stands for power.
p=8;
if (i>p) {
p=p+p;
} else {
p=5;
if (i>=p) {
p=8;
} else {
p=2;
if (i>=p) {
if (i!=p) {
p=4;
}
} else {
p=1;
}
}
}
Another one. Faster for 5%.
And another 1% better.
p=5;
if (i>=p) {
p=8;
if (i>p) {
p=p+p;
}
} else {
p=2;
if (i>=p) {
if (i>p) {
p=4;
}
} else {
p=1;
}
}
To generalize it now, to any bit number is quite easy. Isn't it?
How we can generalize it to 5 bits numbers?
This is an obvius way:
if (i>16) {p=32;goto over;}
if (i==16) {p=16;goto over;}
p=5;
if (i>=p) {
p=8;
if (i>p) {
p=p+p;
}
} else {
p=2;
if (i>=p) {
if (i>p) {
p=4;
}
} else {
p=1;
}
}
over:;
Critticall will smooth it to:
p=16;
if (i>p) {
p=p+p;
} else {
p=5;
if (i>=p) {
p=8;
if (i>p) {
p=p+p;
}
} else {
p=2;
if (i>=p) {
if (i>p) {
p=4;
}
} else {
p=1;
}
}
}
V temle smislu.
Zadeva pride do while zanke, kjer razpolavlja kandidata za return, dokler ga pač mora.
Sapienti sat!
Man muss immer generalisieren - Carl Jacobi
Thomas ::
> A kaj, ko se je presunljivo hitro zgornja izjava zreducirala na "to je CRI"..
CRI!=Critticall
CRI==Critticall's
(Ime nisem dal jest, pač pa drugi.)
CRI!=Critticall
CRI==Critticall's
(Ime nisem dal jest, pač pa drugi.)
Man muss immer generalisieren - Carl Jacobi
Zgodovina sprememb…
- spremenil: Thomas ()
OwcA ::
Če dopustimo, da je program poljubno kompleksen v smislu Kolmogorova, to pomeni, da ima zelo veliko vrstic, po domače ... kar DD3 gotovo ima, potem kje bomo postavili mejo?
Verjetno je omejitev stroj na katerem se bo program izvajal. Dokler primerjamo algoritme ambstraktno, kot matematične konstrukte, omejitev (vsaj kar se mene tiče) ni, v realni situaciji pa pravzaprav tudi ne, le finesa se spremeni (in niti ni nujno čas izvajanja, lahko je recimo tudi pomnilniška požrešnost).
Tudi CRI se debeli s povečevanjem domene.
CRI!=Critticall
CRI==Critticall's
(Ime nisem dal jest, pač pa drugi.)
Vem, ampak vseeno bi se prilegla kakšna okrajšava tudi za Critticall, lenoba dela svoje.
Otroška radovednost - gonilo napredka.
Thomas ::
> Dokler primerjamo algoritme ambstraktno, kot matematične konstrukte, omejitev (vsaj kar se mene tiče) ni
Prav. Potem pa nič ne poseka tabele a[]={1,1,2,4 ....2*1048576} in
return a[x];
> v realni situaciji pa pravzaprav tudi ne, le finesa se spremeni (in niti ni nujno čas izvajanja, lahko je recimo tudi pomnilniška požrešnost).
Prav. While zanka in deljenje z 2. Druga implementacija binarija.
Prav. Potem pa nič ne poseka tabele a[]={1,1,2,4 ....2*1048576} in
return a[x];
> v realni situaciji pa pravzaprav tudi ne, le finesa se spremeni (in niti ni nujno čas izvajanja, lahko je recimo tudi pomnilniška požrešnost).
Prav. While zanka in deljenje z 2. Druga implementacija binarija.
Man muss immer generalisieren - Carl Jacobi
Thomas ::
Lahko pa naredimo tudi kompromis med CRI in mojo rešitvijo:
int a[]={1,1,2,4,4, ....,1024}
if (n>1048576) return 2097152;
if (n>524288) return 1048576;
if (n>262144) return 524288;
if (n>131072) return 262144;
if (n>65536) return 131072;
if (n>32768) return 65536;
if (n>16384) return 32768;
if (n>8192) return 16384;
if (n>4096) return 8192;
if (n>2048) return 4096;
if (n>1024) return 2048;
return a[x];
Hehe ... zdej samo vprašanje, kje je glede na kakšno mašino in compiler oportuno presekat if blok z returnom vrednosti tabele.
A bo spet kdo užaljen? Sem komu ponovno naredil krivico? Bo trpel koga čut za pravičnost? Bo kdo ponorel, ker sam sploh ne delam benchmarkov?
Simptomatično ...
int a[]={1,1,2,4,4, ....,1024}
if (n>1048576) return 2097152;
if (n>524288) return 1048576;
if (n>262144) return 524288;
if (n>131072) return 262144;
if (n>65536) return 131072;
if (n>32768) return 65536;
if (n>16384) return 32768;
if (n>8192) return 16384;
if (n>4096) return 8192;
if (n>2048) return 4096;
if (n>1024) return 2048;
return a[x];
Hehe ... zdej samo vprašanje, kje je glede na kakšno mašino in compiler oportuno presekat if blok z returnom vrednosti tabele.
A bo spet kdo užaljen? Sem komu ponovno naredil krivico? Bo trpel koga čut za pravičnost? Bo kdo ponorel, ker sam sploh ne delam benchmarkov?
Simptomatično ...
Man muss immer generalisieren - Carl Jacobi
noraguta ::
dani primer je bil ze objavljen na game-dev kot lut 256k. tole kar navajaš je le variacija na temo.
Pust' ot pobyedy k pobyedye vyedyot!
Thomas ::
> return --x > 0xFFFF ? bit[x >> 16] << 16 : bit[x];
Tole, tam tisti Šved smatra za LUT256k.
noraguti je vse variacija, samo njegov if ne.
Tole, tam tisti Šved smatra za LUT256k.
noraguti je vse variacija, samo njegov if ne.
Man muss immer generalisieren - Carl Jacobi
Zgodovina sprememb…
- spremenil: Thomas ()
snow ::
Ja jaz tem tudi enkrat študiral da bi tisti kup ifov na koncu bilo pametno zamenjati s tabelo.
Taka super-duper-mega-large tabela pa seveda zmaga.. ampak to zame ni algoritem.
Na gamedev.net niso povedali kaka je distribucija, govorili so o nekih texturah, noben pa ni povedal razporeditve velikosti textur ali dal kakšnega dela programa, kjer se to izračunava.
Neumno je optimizirati del nekega programa, po enem bornem opisu, namesto da bi optimiziral dejanski algoritem.
Ja, Thomas ko si ravno sam omenil.. zakaj ne delaš benchmarkov? (Ja.. Critticall pove kak hiter je algo? )
Taka super-duper-mega-large tabela pa seveda zmaga.. ampak to zame ni algoritem.
Na gamedev.net niso povedali kaka je distribucija, govorili so o nekih texturah, noben pa ni povedal razporeditve velikosti textur ali dal kakšnega dela programa, kjer se to izračunava.
Neumno je optimizirati del nekega programa, po enem bornem opisu, namesto da bi optimiziral dejanski algoritem.
Ja, Thomas ko si ravno sam omenil.. zakaj ne delaš benchmarkov? (Ja.. Critticall pove kak hiter je algo? )
Random mutation plus nonrandom cumulative natural selection - Richard Dawkins
noraguta ::
snow tudi če bi takšno tabelo lahko imel v ramu taka tabela bo pobrala ene 8 giga , v dandanašnih strojih jih lahko v procesu lahko naslovimo le od 2 do teoreticno 4 .
aja btw tisti ziperjev test je čudaški , on zanko goni do unsigned, se pravi je polovica rezultatov katere vračajo funkcije itak napačnih.
aja btw tisti ziperjev test je čudaški , on zanko goni do unsigned, se pravi je polovica rezultatov katere vračajo funkcije itak napačnih.
Pust' ot pobyedy k pobyedye vyedyot!
Zgodovina sprememb…
- spremenilo: noraguta ()
snow ::
Edit: Hm.. slo-tech dela z zamudo?
Random mutation plus nonrandom cumulative natural selection - Richard Dawkins
Zgodovina sprememb…
- spremenilo: snow ()
snow ::
Kaj če bi lepo pobrali tist benchmark test od Charles-a B?
Tisto je bilo dost na visokem nivoju narejeno...
Tisto je bilo dost na visokem nivoju narejeno...
Random mutation plus nonrandom cumulative natural selection - Richard Dawkins
Thomas ::
Moja poanta je ta, da notranjih 3/4 ifov, ki se vsi skupaj izvajajo v samo 1% primerih, nadomestimo s tabelo. Veliko kakšne megabyte.
Ali pa notranjo polovico ifov, ki se skupaj izvajajo 1 promilo primerov, nadomestimo s par 100 K tabelo.
Če že imamo tabelo, ane?
Od tukaj naprej o tem algoritmu ne vem res nič več povedati. Skleda poglodana do dna.
> .. zakaj ne delaš benchmarkov? (Ja.. Critticall pove kak hiter je algo? )
Jasno. Kako hiter je algo. Sploh še, ker lahko vrednost vsake komande naštelaš, tako da se ti razmerja rezultatov dobro ujemajo s tvojim PC in compilerjem.
Ali pa notranjo polovico ifov, ki se skupaj izvajajo 1 promilo primerov, nadomestimo s par 100 K tabelo.
Če že imamo tabelo, ane?
Od tukaj naprej o tem algoritmu ne vem res nič več povedati. Skleda poglodana do dna.
> .. zakaj ne delaš benchmarkov? (Ja.. Critticall pove kak hiter je algo? )
Jasno. Kako hiter je algo. Sploh še, ker lahko vrednost vsake komande naštelaš, tako da se ti razmerja rezultatov dobro ujemajo s tvojim PC in compilerjem.
Man muss immer generalisieren - Carl Jacobi
Thomas ::
Sem skori pozabu. Zadnjič sem napisal en generator programov za reševanje problema n kraljic.
Tukaj ga lahko potegnete dol.
No, tega generatorja lahko zaženete s parametrom 7 in dal vam bo program za reševanje problema 7 kraljic. Naprimer. Največ 12 in najmanj 1. Default 8.
Ta program lahko potem skompilirate ali pa direktno vlečete v Critticall. V x[] in y[] arrayih dobite rešitve, kako postavljati kraljice.
Critticall vam ga pa tudi zoptimizira.
Tukaj ga lahko potegnete dol.
No, tega generatorja lahko zaženete s parametrom 7 in dal vam bo program za reševanje problema 7 kraljic. Naprimer. Največ 12 in najmanj 1. Default 8.
Ta program lahko potem skompilirate ali pa direktno vlečete v Critticall. V x[] in y[] arrayih dobite rešitve, kako postavljati kraljice.
Critticall vam ga pa tudi zoptimizira.
Man muss immer generalisieren - Carl Jacobi
Thomas ::
Kako z najmanj računanja dobiti globino postavitev na 4 šahovskih tablah tako, da se 32 postavljenih kraljic na vsaki tabli ne tepe in da so postavitve različne, je pa čeznočna optimizacija:
Nehumana, jasno, ampak izvršijo se povprečno manj kot 3 linije računanja na kraljico.
$DECLAREINT y0 critticall1 x4 x3 i y2 critticall3
$DIMENSION x[24] y[24]
$RETVAR y[]
$WEIGHTS commands=1
// int y[24]; int y0=0;int critticall1=0;int x4=0;int x3=0;int i=0;int y2=0;int critticall3=0;
$BES
critticall1=3;
x3=1;
y0=1;
critticall3=5;
x4=1;
goto labelcritticall10;
while (critticall1>y2) {
x4=3;
y0+=1;
if (y2!=x3) {
critticall1=critticall3;
critticall3=1;
}
i+=1;
labelcritticall10:;
y[i]=y0;
i+=1;
y[i]=critticall1;
if (x3==critticall3) {
critticall1=critticall3;
y0|=1;
i+=1;
y[i]=critticall3;
i+=1;
critticall3=4;
x4+=1;
y2=1;
y[i]=x4;
i+=2;
y[i]=y0;
i+=1;
y[i]=y0;
goto labelcritticall2;
}
if (x4>critticall1) {
y2=5;
x4+=-1;
critticall1=0;
labelcritticall2:;
i+=1;
}
i+=1;
x4+=1;
y[i]=critticall3;
critticall1+=1;
i|=1;
y[i]=y2;
i+=1;
y[i]=x4;
i+=1;
y[i]=critticall1;
}
$EES
Nehumana, jasno, ampak izvršijo se povprečno manj kot 3 linije računanja na kraljico.
Man muss immer generalisieren - Carl Jacobi
Fury ::
Kaj si mislim ko berem tole. Skoda topica. Skoda casa (zal sem se zavedel prepozno).
V glavi mam nekaj takega:
#1:
I only come to bash you, as the others did, because you do not want to face simple realities, which is your personnal problem, not something related to coding. This renders any objective discussion with you pointless. Unless you start to act as a scientist.
#2:
I've had enough of you. First it was your arrogance and stubbornness, but I could let that go. Then it was your incapacity to form a well-reasoned argument supported by evidence (a.k.a benchmarks) that made it frustrating to debate with you (I didn't know if I was talking to a human or a machine, all you did was spit out code). And finally it was the gall to tell me I've done a good job as if you're my fuckin' instructor or mentor, even after a I spent the time to rewrite a whole test which ended up showing your method to be statistically faster, if not practically (due to expansion).
in to:
That's enough. Closed.
Naj si to thomas prebere, mogoce se kej nauci. Ne pametuj kar nekaj. Tist tvoj if algoritem zna naredit vsak, ki pozna sintakso C++. In ko se je izkazalo, da ni najhitrejsi, si sel benchat v debug. Bravo. Ko programiras vedno glej, kaksen je koncni rezultat, ne pa kaksna je navidezna kompleksnost same kode.
Pa se nekaj te prosim: Odvadi se hocem link! daj mi link! .edu! tralala, ker s tem nic ne dosezes. Hvala.
V glavi mam nekaj takega:
#1:
I only come to bash you, as the others did, because you do not want to face simple realities, which is your personnal problem, not something related to coding. This renders any objective discussion with you pointless. Unless you start to act as a scientist.
#2:
I've had enough of you. First it was your arrogance and stubbornness, but I could let that go. Then it was your incapacity to form a well-reasoned argument supported by evidence (a.k.a benchmarks) that made it frustrating to debate with you (I didn't know if I was talking to a human or a machine, all you did was spit out code). And finally it was the gall to tell me I've done a good job as if you're my fuckin' instructor or mentor, even after a I spent the time to rewrite a whole test which ended up showing your method to be statistically faster, if not practically (due to expansion).
in to:
That's enough. Closed.
Naj si to thomas prebere, mogoce se kej nauci. Ne pametuj kar nekaj. Tist tvoj if algoritem zna naredit vsak, ki pozna sintakso C++. In ko se je izkazalo, da ni najhitrejsi, si sel benchat v debug. Bravo. Ko programiras vedno glej, kaksen je koncni rezultat, ne pa kaksna je navidezna kompleksnost same kode.
Pa se nekaj te prosim: Odvadi se hocem link! daj mi link! .edu! tralala, ker s tem nic ne dosezes. Hvala.
Thomas ::
Kako grem enim na jetra ... uživam v tem.
Nergači in naysayerji so default. Sklicujejo se eden na drugega ampak zaradi tega nimajo nič bolj prav. Še bolj narobe.
Nergači in naysayerji so default. Sklicujejo se eden na drugega ampak zaradi tega nimajo nič bolj prav. Še bolj narobe.
Man muss immer generalisieren - Carl Jacobi
Fury ::
Ce si tako pameten kot pravis, pojdi na neko hudo univerzo/institut in naredi ze nekaj, kar bo spremenilo svet in odresilo clovestvo vseh muk. Vse tiste tvoje metode nadzora in podobno. Ne zgubljaj dragocenih trenutkov s pisanjem po kar enem forumu. Do zdaj od tebe ni bilo se nicesar konkretnega, ampak samo pametovanje in frajarjenje s tvojo "inteligenco".
Critticall je ql. Brez dvoma. Vendar pa je totalno bedno, ker enostavno ne mores priznati, da ne more vedno doseci najbolsega rezultata, ker C++ koda je le C++ koda in optimalna C++ koda je lahko dalec od optimalne strojne kode. Tega se zavedi enkrat. In zelo ocitno (ceprav to ostro zanikas) vsako kritiko Critticallove superiornosti vzames kot osebno zalitev, kar izpade bedno.
Critticall je ql. Brez dvoma. Vendar pa je totalno bedno, ker enostavno ne mores priznati, da ne more vedno doseci najbolsega rezultata, ker C++ koda je le C++ koda in optimalna C++ koda je lahko dalec od optimalne strojne kode. Tega se zavedi enkrat. In zelo ocitno (ceprav to ostro zanikas) vsako kritiko Critticallove superiornosti vzames kot osebno zalitev, kar izpade bedno.
Thomas ::
Mi je prav žal, ampak benchmark Zipsterja mi je dal prav. Ne morem pomagat.
Kako so pa potem eni hoteli prikazat, da mi gre samo za becnhmark ... Seveda, samo za benchmark mi gre!
Kako so pa potem eni hoteli prikazat, da mi gre samo za becnhmark ... Seveda, samo za benchmark mi gre!
Man muss immer generalisieren - Carl Jacobi
noraguta ::
tomas pa saj smo ze ugotovili, da je zipster malo zameštral definicijsko območje. in to hudo v prid tvoje procedure. ampak na žalost je pol tistih rezultatov napačnih.
4,294,967,295 !=4,294,967,296 pač .
zipster pa je gnal zanko skozi celi unsigned. za dano proceduro je definicisko območe lahko le int.
4,294,967,295 !=4,294,967,296 pač .
zipster pa je gnal zanko skozi celi unsigned. za dano proceduro je definicisko območe lahko le int.
Pust' ot pobyedy k pobyedye vyedyot!
Thomas ::
Kaj se spremeni, če žene samo skozi nenegativne integerje?
Nič.
Ti veš, da se kaj? Imaš kakšen benchmark?
Nič.
Ti veš, da se kaj? Imaš kakšen benchmark?
Man muss immer generalisieren - Carl Jacobi
noraguta ::
Malo preštej na roke koliko krat se kaj izvede ,saj je dokaj očitno. tudi če bi zeleli dobiti takšo obtezitev distribucije števil , tega nacina ne bi uporabili ker preprosto vraća napake.
je pa tovrstna obtežitev bolj ali manj neverjetna ali pa bolj milo rečeno nepredvidljiva.
je pa tovrstna obtežitev bolj ali manj neverjetna ali pa bolj milo rečeno nepredvidljiva.
Pust' ot pobyedy k pobyedye vyedyot!
Thomas ::
Defaultna porazdelitev je vedno enakomerna, če ni drugače navedeno.
Za vsako porazdelitev obstaja optimalna razporeditev ifov in konstant, s katerimi primerja.
To je pravzaprav temelj informacijske teorije, nimamo kaj.
Za vsako porazdelitev obstaja optimalna razporeditev ifov in konstant, s katerimi primerja.
To je pravzaprav temelj informacijske teorije, nimamo kaj.
Man muss immer generalisieren - Carl Jacobi
Thomas ::
> tega nacina ne bi uporabili ker preprosto vraća napake.
Kakšne napake pa vrača??? Smo se že strinjali, da dela prav.
Off topic: kaj ti to govoriš (lomiš) zaen jezik?
Kakšne napake pa vrača??? Smo se že strinjali, da dela prav.
Off topic: kaj ti to govoriš (lomiš) zaen jezik?
Man muss immer generalisieren - Carl Jacobi
noraguta ::
ne dela prav. pa preizkusi po zisterjevem testu če ti vrača pravilne rezultate. stavim da jih je 50% napaćnih.
vse kar je nad int je narobe on pa IIRC vstavlja unsigned v zanko.
..inu vkup stemle ..
...ali katera koli druga procedura bi ze bila.4294967295 = 2^32-1 == MAXUNSIGNED, 2^32 pa ni v zalogi vrednosti in se ji je treba pač odreči.
razumljivo?
zipster je zabluzil ..
(dijalektÌ , dijalektÌ wtf)
vse kar je nad int je narobe on pa IIRC vstavlja unsigned v zanko.
for(n=0;4294967295>n;n++)
{
k += NextPow2_Critticall_all(n);
}
..inu vkup stemle ..
unsigned _stdcall NextPow2_Critticall_all( unsigned n ) {
if (n>1073741824) return 2147483648;
...ali katera koli druga procedura bi ze bila.4294967295 = 2^32-1 == MAXUNSIGNED, 2^32 pa ni v zalogi vrednosti in se ji je treba pač odreči.
razumljivo?
zipster je zabluzil ..
(dijalektÌ , dijalektÌ wtf)
Pust' ot pobyedy k pobyedye vyedyot!
Thomas ::
Če je on (Zipster) zamešal signed in unsigned, to ne spremeni ničesar.
Do nekega števila bitov dela prav. To je vedno tako, z vsakim programom, da nekje vrže ven. Potem se pač prilagodi bitnost spremenljivk, no big deal at all.
Do nekega števila bitov dela prav. To je vedno tako, z vsakim programom, da nekje vrže ven. Potem se pač prilagodi bitnost spremenljivk, no big deal at all.
Man muss immer generalisieren - Carl Jacobi
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | Najhitrejši programski jezik? (strani: 1 2 )Oddelek: Programiranje | 7757 (5577) | Senitel |
» | Funkcija z logičnimi operaterji.... (strani: 1 2 )Oddelek: Programiranje | 5579 (4925) | CaqKa |
» | Petaflopsu naproti (strani: 1 2 3 )Oddelek: Novice / Procesorji | 8877 (8877) | Marjan |
» | cene permutacij help pleaseOddelek: Programiranje | 2076 (1683) | Sergio |
» | kako definirtati prasteviloOddelek: Programiranje | 3800 (3605) | ooux |