亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

? ??? ?? C++ ?? ? ?? ?? ??? ?? NTT(? ?? ??) ? ??? ??? ??? ???? ? ?????

?? ? ?? ?? ??? ?? NTT(? ?? ??) ? ??? ??? ??? ???? ? ?????

Dec 18, 2024 pm 04:56 PM

How Can I Optimize My Number Theoretic Transform (NTT) and Modular Arithmetic for Fast Squaring of Very Large Numbers?

??? ?? ? NTT(??? DFT) ???

??: ???? ?????. ?? ??? ?? NTT(?? ?? ?? ?? ??), ??? ???? ?? ? ??? ?? .. 12000??? ????.

? ??? ??? ????.


  1. Is NTT ??? ???? ? ?? ??? ????

    ??? ???? ??? ??????. ???(???); ??? ?? ??? ????? ?????.

  2. ?? ?? ??? ?? ? ?? ??? ????

??? NTT? C ?? ?????(???? C?? 100% ?????). ?? ?????? ?? ??? ?????? ???? ???. ?? ??? ??? ????? ?? ?????!!! ?? ??? ????? ??? ?? ????.

//---------------------------------------------------------------------------
class fourier_NTT                                    // Number theoretic transform
    {

public:
    DWORD r,L,p,N;
    DWORD W,iW,rN;
    fourier_NTT(){ r=0; L=0; p=0; W=0; iW=0; rN=0; }

    // main interface
    void  NTT(DWORD *dst,DWORD *src,DWORD n=0);               // DWORD dst[n] = fast  NTT(DWORD src[n])
    void INTT(DWORD *dst,DWORD *src,DWORD n=0);               // DWORD dst[n] = fast INTT(DWORD src[n])

    // Helper functions
    bool init(DWORD n);                                       // init r,L,p,W,iW,rN
    void  NTT_fast(DWORD *dst,DWORD *src,DWORD n,DWORD w);    // DWORD dst[n] = fast  NTT(DWORD src[n])

    // Only for testing
    void  NTT_slow(DWORD *dst,DWORD *src,DWORD n,DWORD w);    // DWORD dst[n] = slow  NTT(DWORD src[n])
    void INTT_slow(DWORD *dst,DWORD *src,DWORD n,DWORD w);    // DWORD dst[n] = slow INTT(DWORD src[n])

    // DWORD arithmetics
    DWORD shl(DWORD a);
    DWORD shr(DWORD a);

    // Modular arithmetics
    DWORD mod(DWORD a);
    DWORD modadd(DWORD a,DWORD b);
    DWORD modsub(DWORD a,DWORD b);
    DWORD modmul(DWORD a,DWORD b);
    DWORD modpow(DWORD a,DWORD b);
    };

//---------------------------------------------------------------------------
void fourier_NTT:: NTT(DWORD *dst,DWORD *src,DWORD n)
    {
    if (n>0) init(n);
    NTT_fast(dst,src,N,W);
//    NTT_slow(dst,src,N,W);
    }

//---------------------------------------------------------------------------
void fourier_NTT::INTT(DWORD *dst,DWORD *src,DWORD n)
    {
    if (n>0) init(n);
    NTT_fast(dst,src,N,iW);
    for (DWORD i=0;i<N;i++) dst[i]=modmul(dst[i],rN);
       //    INTT_slow(dst,src,N,W);
    }

//---------------------------------------------------------------------------
bool fourier_NTT::init(DWORD n)
    {
    // (max(src[])^2)*n < p else NTT overflow can ocur !!!
    r=2; p=0xC0000001; if ((n<2)||(n>0x10000000)) { r=0; L=0; p=0; W=0; iW=0; rN=0; N=0; return false; } L=0x30000000/n; // 32:30 bit best for unsigned 32 bit
//    r=2; p=0x78000001; if ((n<2)||(n>0x04000000)) { r=0; L=0; p=0; W=0; iW=0; rN=0; N=0; return false; } L=0x3c000000/n; // 31:27 bit best for signed 32 bit
//    r=2; p=0x00010001; if ((n<2)||(n>0x00000020)) { r=0; L=0; p=0; W=0; iW=0; rN=0; N=0; return false; } L=0x00000020/n; // 17:16 bit best for 16 bit
//    r=2; p=0x0a000001; if ((n<2)||(n>0x01000000)) { r=0; L=0; p=0; W=0; iW=0; rN=0; N=0; return false; } L=0x01000000/n; // 28:25 bit
     N=n;                // size of vectors [DWORDs]
     W=modpow(r,    L);    // Wn for NTT
    iW=modpow(r,p-1-L);    // Wn for INTT
    rN=modpow(n,p-2  );    // scale for INTT
    return true;
    }

//---------------------------------------------------------------------------
void fourier_NTT:: NTT_fast(DWORD *dst,DWORD *src,DWORD n,DWORD w)
    {
    if (n<=1) { if (n==1) dst[0]=src[0]; return; }
    DWORD i,j,a0,a1,n2=n>>1,w2=modmul(w,w);
    // reorder even,odd
    for (i=0,j=0;i<n2;i++,j+=2) dst[i]=src[j];
    for (    j=1;i<n ;i++,j+=2) dst[i]=src[j];
    // recursion
    NTT_fast(src   ,dst   ,n2,w2);    // even
    NTT_fast(src+n2,dst+n2,n2,w2);    // odd
    // restore results
    for (w2=1,i=0,j=n2;i<n2;i++,j++,w2=modmul(w2,w))
        {
        a0=src[i];
        a1=modmul(src[j],w2);
        dst[i]=modadd(a0,a1);
        dst[j]=modsub(a0,a1);
        }
    }

//---------------------------------------------------------------------------
void fourier_NTT:: NTT_slow(DWORD *dst,DWORD *src,DWORD n,DWORD w)
    {
    DWORD i,j,wj,wi,a,n2=n>>1;
    for (wj=1,j=0;j<n;j++)
        {
        a=0;
        for (wi=1,i=0;i<n;i++)
            {
            a=modadd(a,modmul(wi,src[i]));
            wi=modmul(wi,wj);
            }
        dst[j]=a;
        wj=modmul(wj,w);
        }
    }

//---------------------------------------------------------------------------
void fourier_NTT::INTT_slow(DWORD *dst,DWORD *src,DWORD n,DWORD w)
    {
    DWORD i,j,wi=1,wj=1,a,n2=n>>1;
    for (wj=1,j=0;j<n;j++)
        {
        a=0;
        for (wi=1,i=0;i<n;i++)
            {
            a=modadd(a,modmul(wi,src[i]));
            wi=modmul(wi,wj);
            }
        dst[j]=modmul(a,rN);
        wj=modmul(wj,iW);
        }
    }

//---------------------------------------------------------------------------

? ??? ?? ? ?? ?? ??? ?? NTT(? ?? ??) ? ??? ??? ??? ???? ? ?????? ?? ?????. ??? ??? PHP ??? ????? ?? ?? ??? ?????!

? ????? ??
? ?? ??? ????? ???? ??? ??????, ???? ?????? ????. ? ???? ?? ???? ?? ??? ?? ????. ???? ??? ???? ???? ??? ?? admin@php.cn?? ?????.

? AI ??

Undresser.AI Undress

Undresser.AI Undress

???? ?? ??? ??? ?? AI ?? ?

AI Clothes Remover

AI Clothes Remover

???? ?? ???? ??? AI ?????.

Video Face Swap

Video Face Swap

??? ??? AI ?? ?? ??? ???? ?? ???? ??? ?? ????!

???

??? ??

???++7.3.1

???++7.3.1

???? ?? ?? ?? ???

SublimeText3 ??? ??

SublimeText3 ??? ??

??? ??, ???? ?? ????.

???? 13.0.1 ???

???? 13.0.1 ???

??? PHP ?? ?? ??

???? CS6

???? CS6

??? ? ?? ??

SublimeText3 Mac ??

SublimeText3 Mac ??

? ??? ?? ?? ?????(SublimeText3)

???

??? ??

??? ????
1597
29
PHP ????
1488
72
NYT ?? ??? ??
131
836
???
std :: Chrono ?? c std :: Chrono ?? c Jul 15, 2025 am 01:30 AM

STD :: Chrono? ?? ?? ??, ?? ?? ??, ?? ?? ? ?? ?? ? ?? ?? ??? ???? C?? ???? ??? ?????. 1. std :: chrono :: system_clock :: now ()? ???? ?? ??? ?? ? ??? ?? ??? ???? ?? ? ? ??? ??? ??? ???? ?? ?? ? ????. 2. std :: Chrono :: steady_clock? ???? ?? ??? ???? ?? ??? ???? duration_cast? ?? ?? ?, ? ? ?? ??? ??????. 3. ?? (time_point) ? ?? (??)? ?? ??? ? ? ??? ?? ??? ? ?? epoch (epoch)???? ???????.

C? ??? ???? ?????? C? ??? ???? ?????? Jul 04, 2025 am 01:09 AM

???? ?????? ??? ?? ???? ?? ? ??? ????? ???? ????? ??????. 1. ??? ?? ???? ????, ?? ??? ?? ?? ??? ????? (??? ?? C? std :: atomic? ?????). 2. ? ???? ??? ?? ? ?? ?? ???? ?? ???. 3. ??? ?? ??? ???? ???? ??? ????? ?? ? ??? ????? ??????. 4. ?????,? ?? ??? ?? ????? ?? ?? ??? ??? ?? ?? ?? ???? ?????. 5. ??? ?? ?? ??? ?? ? ? ??? ??? ??? ??? ??? ????.

C?? ?? ??? ?? ??? C?? ?? ??? ?? ??? Jul 07, 2025 am 01:41 AM

C : 1?? ?? ????? ?? ??? ?? ??? ????. Linux ????? Backtrace ? Backtrace_symbols ??? ??????. ?? ?? ? ?? ?? ??? ???? ??? ? ? -rdynamic ?? ??? ???????. 2. Windows ????? CaptUreStackBackTrace ??? ???? DBGHELP.LIB? ???? PDB ??? ???? ?? ??? ?? ???????. 3. GoogleBreakPad ?? Boost.StackTrace? ?? ?? ?????? ???? ?? ??? ? ?? ?? ??? ??????. 4. ?? ???? ?? ??? ???? ?? ???? ?? ??? ???? ?????.

C? POD (?? ?? ???) ??? ?????? C? POD (?? ?? ???) ??? ?????? Jul 12, 2025 am 02:15 AM

C??, POD (PANDALDATA) ??? ??? ??? ?? ??? ???? C ?? ??? ??? ?????. ??? ? ?? ??? ????????. ??? ??? ?? ???? ???, ?? memcpy? ?? ?? ? ? ????. ?? ????? ?? ??? ??? ??? ? ????. ?? ?? ???? ??? ?????. ?? ? ?? ??? ??, ??? ?? ??? ?? ???, ?? ?? ?? ?? ??? ?? ? ?? ? ?? ?? ??? ?????. ?? ?? structpoint {intx; inty;}? pod???. ??? ???? ???? I/O, C ?? ???, ?? ??? ?? ?????. std :: is_pod? ?? ??? POD?? ??? ? ??? C 11 ??? std :: is_trivia? ???? ?? ????.

C?? Python? ???? ??? C?? Python? ???? ??? Jul 08, 2025 am 12:40 AM

C?? Python Code? ????? ?? ???? ??? ? ?? ???, ?? ?? ?? ??? ???? ?? ??? ?? ? ? ????. 1. Py_Initialize ()? ?????? ????? py_finalize ()? ????. 2. pyrun_simplefile? ???? ??? ?? ?? pyrun_simplefile? ?????. 3. pyimport_importmodule? ?? ?? ?? ??, pyobject_getattrstring? ?? ??? ???? py_buildvalue? ?? ??? ???? ??? ???? ???? ??

C? ??? ??? ??? ?????? C? ??? ??? ??? ?????? Jul 05, 2025 am 01:44 AM

functionhiding alkes ressaMenaMeAsabaseClassFunctions? henaderivedClassDefinesAftunction, theBaseInAccessibleThroughTheDerivedClass.thishAppenswhentheBaseFunctionis notvirtualorsignaturesdon n'tmatchforevered, and nousingdeclarationis

C? ? ??? ? ?????? C? ? ??? ? ?????? Jul 09, 2025 am 02:38 AM

anullpointerinc isaspecialValueindicating thatapointerspointtoanyvalidmorylocation, anditusiusedToSafelyManageNageanDcheckPointersbeforedEereferencing.1.Beforec 11,0ornull? WASSED, BUTNULLPTRISFREFERREDFORITYONDTYPESAFETY.SUNULLPOINTETYTETETENULUNULPENTETETETENGE

C?? ??? ?? ??? ???? ??? ?????? C?? ??? ?? ??? ???? ??? ?????? Jul 12, 2025 am 01:34 AM

C?? ??? ?? ??? ???? ? ?? ?? ??? ???? : ?? ??? ??, std :: ?? ? ?? ??? ? ??? ???. 1. ?? ???? ?? ???? ???? ??? ???? ?? C ?????? ????? ???? ?? ????. 2. STD :: LAMBDA ???? ?? ? ??? ?? C?? ???? ???? ??? ?? ??? ??? ???? ??-?????. 3. ??? ?? ??? ?? ???? ????? ?? ?? ?? ??? ????? ??? ??? ?? ??? ???? ? ????. ????? ???? ??? std :: ?? ?? ???? ?? ??????? ?? ???? ?? ?? ? ? ????.

See all articles