Jump to content

Xstreme

Members
  • Posts

    201
  • Joined

  • Last visited

Everything posted by Xstreme

  1. come dicevo...un pò spartano.... ma bravo se vuoi approfondire l'argomento sul D reputo questo sito eccellente : (5 stelle) Useless Software
  2. ah...lui ? guarda questo... mi ha sempre fatto morire sto video.... [video=google;-7073020265668105471]http://video.google.com/videoplay?docid=-7073020265668105471&q=walter+bright&total=45&start=0&num=10&so=0&type=search&plindex=0 #
  3. certo , comunque è un registro implicito, cioè ax contiene sempre la metà di bx ...o l'inverso ? non mi ricordo piu !!! ..la vecchiaia....!!! NOTA: mettendo più a fuoco.... Quanti lustri ha quel codice ? sembra roba epoca " 1000 spartani" anche se devo dire che l'idea non e malaccio , anche se ....spartana .... :asd::asd:
  4. m,anca il registro BX senza il registro BX AX e inutilizzabile NAN #include #include "mex.h" void mexFunction( int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[]) { int i, n; double *pr, *pi; double inf, nan; /* Check for proper number of input and output arguments */ if (nrhs != 1) { mexErrMsgTxt("One input argument required."); } if(nlhs > 1){ mexErrMsgTxt("Too many output arguments."); } /* Check data type of input argument */ if (!mxIsDouble(prhs[0]) || mxIsComplex(prhs[0])) { mexErrMsgTxt("Input argument must be of type real double."); } /* Duplicate input array */ plhs[0]=mxDuplicateArray(prhs[0]); pr = mxGetPr(plhs[0]); pi = mxGetPi(plhs[0]); n = mxGetNumberOfElements(plhs[0]); inf = mxGetInf(); nan=mxGetNaN(); /* Check for 0, in real part of data, if the data is zero, replace with NaN. Also check for INT_MAX and INT_MIN and replace with INF/-INF respectively. */ for(i=0; i = INT_MAX){ pr[i]=inf; } else if (pr[i]
  5. #include #include "general.h" #include "Complex.h" #include "BigInt.h" real MaxError; real *LongNum1=NULL, *LongNum2=NULL; extern void RealFFT(real*, ulong, int); void FastMulInit(ulong Len) { ulong MaxLen; if ((Len & -Len) == Len) MaxLen = Len; else { MaxLen = 2; do MaxLen*=2; while (MaxLen C.SizeMax ) Len=C.SizeMax; MaxError = 0; for (x = 0; x MaxError) MaxError = PyramidError; Carry = floor(Pyramid / BASE); c[x] = (short)(Pyramid - Carry * BASE); } do { x--; } while (c[x]==0); C.Size = x+1; } void RealFFTScalar(real *LongNum1, const real *LongNum2, ulong Len) { Complex *CF1=(Complex*)LongNum1; const Complex *CF2=(Complex*)LongNum2; LongNum1[0] = LongNum1[0] * LongNum2[0]; LongNum1[1] = LongNum1[1] * LongNum2[1]; for (ulong x = 1; x questo è un moltiplicatore FFT void CarryNormalize(real *Convolution, ulong Len, BigInt &C) { real inv = 0.5 / Len; real RawPyramid, Pyramid, PyramidError, Carry = 0; ulong x; ushort *c = C.Coef; if ( Len > C.SizeMax ) Len=C.SizeMax; MaxError = 0; for (x = 0; x MaxError) MaxError = PyramidError; Carry = floor(Pyramid / BASE); c[x] = (short)(Pyramid - Carry * BASE); } do { x--; } while (c[x]==0); C.Size = x+1; } void FHTConvolution(real *LongNum1, const real *LongNum2, ulong Len) { ulong Step=2, Step2=Step*2; ulong x,y; LongNum1[0] = LongNum1[0] * 2.0 * LongNum2[0]; LongNum1[1] = LongNum1[1] * 2.0 * LongNum2[1]; while (Step questa è la routine di splitting binario o convoluzione, che in base ad una certa ampiezza mi taglia porzioni di frequenza, tipo fare una torta a fette identiche con due coltelli ed entrambe le mani
  6. come vedi la tua velocita non cambia nella visual bar..quindi dovrebbe essere ok....
  7. 23 secondi , dopo la virgola > 50 = 23 secondi e mezzo dopo la virgola nel tuo caso la varianza è di 10 centesimi di secondo, considerato che putroppo windows ha i suoi tempi... e il multitasking ....è un ignoto... di più nun pozzo fà
  8. io lavorando su primecores sono molto limitato con il mio sistema, devi contare che quando programmi a 48 cores ti servono risorse come per 48 PC mono-core, per memorizzare una matrice con solo 2 miliardi di interi servono ben 8000000000 byte....e ti mancano altri 47 cores
  9. io credo sia cosi, ma lo ho chiesto a lui propnendogli questo: binary splitting method Easy programs for constants computation a domani
  10. in dettaglio ? ok Special values [edit] Signed zero Main article: Signed zero In the IEEE 754 standard, zero is signed, meaning that there exist both a "positive zero" (+0) and a "negative zero" (-0). In most run-time environments, positive zero is usually printed as "0", while negative zero may be printed as "-0". The two values behave as equal in numerical comparisons, but some operations return different results for +0 and ?0. For instance, 1/(?0) returns negative infinity (exactly), while 1/+0 returns positive infinity (exactly); these two operations are however accompanied by "divide by zero" exception. A sign symmetric arccot operation will give different results for +0 and ?0 without any exception. The difference between +0 and ?0 is mostly noticeable for complex operations at so-called branch cuts. [edit] Subnormal numbers Main article: Subnormal numbers Subnormal values fill the underflow gap with values where the absolute distance between them are the same as for adjacent values just outside of the underflow gap. This is an improvement over the older practice to just have zero in the underflow gap, and where underflowing results were replaced by zero (flush to zero). Modern floating point hardware usually handles subnormal values (as well as normal values), and does not require software emulation for subnormals. [edit] Infinities Main article: Infinity The infinities of the extended real number line can be represented in IEEE floating point datatypes, just like ordinary floating point values like 1, 1.5 etc. They are not error values in any way, though they are often (but not always, as it depends on the rounding) used as replacement values when there is an overflow. Upon a divide by zero exception, a positive or negative infinity is returned as an exact result. An infinity can also be introduced as a numeral (like C's "INFINITY" macro, or "?" if the programming language allows that syntax). IEEE 754 requires infinities to be handled in a reasonable way, such as (+?) + (+7) = (+?) (+?) × (?2) = (??) But: (+?) × 0 = NaN—there is no meaningful thing to do [edit] NaNs Main article: NaN IEEE 754 specifies a special value called "Not a Number" (NaN) to be returned as the result of certain "invalid" operations, such as 0/0, ?×0, or sqrt(-1). There are actually two kinds of NaNs, signalling and quiet. Using a signalling NaN in any arithmetic operation (including numerical comparisons) will cause an "invalid" exception. Using a quiet NaN merely causes the result to be NaN too. The representation of NaNs specified by the standard has some unspecified bits that could be used to encode the type of error; but there is no standard for that encoding. In theory, signalling NaNs could be used by a runtime system to extend the floating-point numbers with other special values, without slowing down the computations with ordinary values. Such extensions do not seem to be common, though. :asd::asd:
  11. facciamo il 6.x il discorso con poke349 si fà sempre più interessante , dai un occhiatina agli ultimi post New Multi-Threaded Pi Program - Faster than SuperPi and PiFast - Page 13 - XtremeSystems Forums
  12. grazie 1000 quello che mi servirebbe sarebbe un bel test con SixView, per vedere se compara in modo corretto i test caricati da diverse macchine in teoria se io divido il tempo impiegato per il numero di cores dovrei avere un risultato che indifferentemente dal livello del test e dalla cpu impiegata (cores) mi dia un indice di velocità univoco a visualizzi in modo preciso il sistema più veloce caricato in SixView, spero di essermi spiegato come si deve
  13. risposta : per ora è impossibile, questa non è manco un versione ALPHA, è un accrocco dicono da queste parti .... ma ci sto lavorando....
  14. vuol dire che in quei 7 secondi il refresh della tua scheda grafica richiedeva un tempo pericoloso che avebbe potuto incidere sul tempo finale del test, ecco perche ti disabilito la visualizzazione del tempo a video, la riprendo (la visualizzazione) solo quando il refresh è inferiore alla soglia che ho impostato io, che sono 25 millisecondi, non decimi, ne centesimi, per dirla breve sono io che tolgo la corrente al display del crono, non sono i cicli a bloccarlo, spero di essermi spiegato.... se fai le prove e vedi che la soglia che ho impostato è poca, provo a passarla da 25 a 15, io dalle prove che ho fatto 25 ms mi sembravano accettabili, ma due menti sono meglio di una
  15. http://www.xstreme.it/primes64.zip my first attempt...
  16. se il refresh a schermo supera la soglia di 25 hz , bufferizzo senza visualizzare, quando la soglia scende sotto i 25 hz, rivisualizzo il buffer, questo è quello che vedi, credo sia accettabile.. no ? :cheazz: :cheazz:
  17. perche mi stanno arrivando visite a pacchi da quel i.p.
  18. ok hai letto il readme nella patch 3.1.1 ? sei conforme ?
  19. informazioni : qualcuno conosce questo sito ? http://www.qr.cz/ mi potete illuminare ? è un sito importante ?
  20. (OT) X Toto : Quote: Originally Posted by bonis62 Indeed, the difference is small, (bit) i often wonder whether it is worth making two versions (64 / 32) for this applications type , since the difference is minimal... >> poke349 As of our current implementations, the difference is small. But a more optimized version that stays in cache and uses hard-coded loop-unrolling will benefit a lot from the x64 registers. x64 also lets you go over 2GB of ram. .....As of our current implementations..... :perfido::perfido::perfido::perfido:
  21. pubblicati.... mi hanno mandato i css anche quelli di majorgeek e di softpedia eheheheheheh pubblicati anche quelli
  22. Riferimento: PrimeCores 2010 per la V 3.1.0 è disponibile la seguente patch : http://www.xstreme.it/update.htm
×
×
  • Create New...