当前位置: 首页>>代码示例>>C++>>正文


C++ MR_IN函数代码示例

本文整理汇总了C++中MR_IN函数的典型用法代码示例。如果您正苦于以下问题:C++ MR_IN函数的具体用法?C++ MR_IN怎么用?C++ MR_IN使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。


在下文中一共展示了MR_IN函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: froot

BOOL froot(_MIPD_ flash x,int n,flash w)
{ /* extract nth root of x  - w=x^(1/n) using Newtons method */
    BOOL minus,rn,rm,hack;
    int nm,dn,s,op[5];
#ifdef MR_OS_THREADS
    miracl *mr_mip=get_mip();
#endif
    copy(x,w);
    if (mr_mip->ERNUM || n==1) return TRUE;
    if (n==(-1))
    {
        frecip(_MIPP_ w,w);
        return TRUE;
    }

    MR_IN(52)

    minus=FALSE;
    if (n<0)
    {
        minus=TRUE;
        n=(-n);
    }
    s=exsign(w);
    if (n%2==0 && s==MINUS)
    {
        mr_berror(_MIPP_ MR_ERR_NEG_ROOT);
        MR_OUT
        return FALSE;
    }
开发者ID:CodeMason,项目名称:skype_part3_source,代码行数:30,代码来源:mrflsh1.c

示例2: zzn2_qr

BOOL zzn2_qr(_MIPD_ zzn2 *u)
{
    int j;
#ifdef MR_OS_THREADS
    miracl *mr_mip=get_mip();
#endif

    if (mr_mip->ERNUM) return FALSE;
    if (zzn2_iszero(u)) return TRUE;
    if (size(u->b)==0) return TRUE;

    if (mr_mip->qnr==-1 && size(u->a)==0) return TRUE;
    

    MR_IN(203)  

    nres_modmult(_MIPP_ u->b,u->b,mr_mip->w1);
    if (mr_mip->qnr==-2) nres_modadd(_MIPP_ mr_mip->w1,mr_mip->w1,mr_mip->w1);
    nres_modmult(_MIPP_ u->a,u->a,mr_mip->w2);
    nres_modadd(_MIPP_ mr_mip->w1,mr_mip->w2,mr_mip->w1);
    redc(_MIPP_ mr_mip->w1,mr_mip->w1); 
    j=jack(_MIPP_ mr_mip->w1,mr_mip->modulus);

    MR_OUT
    if (j==1) return TRUE; 
    return FALSE; 
}
开发者ID:J0s3f,项目名称:FiSH-irssi,代码行数:27,代码来源:mrzzn2b.c

示例3: strong_bigrand

void strong_bigrand(_MIPD_ csprng *rng,big w,big x)
{
	int i, m;
	mr_small r;
    unsigned int ran;
    unsigned int ch;

#ifdef MR_OS_THREADS
    miracl *mr_mip=get_mip();
#endif
    if (mr_mip->ERNUM) return;
    MR_IN(20)
	
	m = 0;
    zero(mr_mip->w1);
	
    do
    {
		m++;
		mr_mip->w1->len=m;
		for (r = 0, i = 0; i < sizeof(mr_small); i++) {
			ch=(unsigned char)strong_rng(rng);
			ran=ch;
			r = (r << 8) ^ ran;
		}
        if (mr_mip->base==0) mr_mip->w1->w[m-1]=r;
        else                 mr_mip->w1->w[m-1]=MR_REMAIN(r,mr_mip->base);
    } while (mr_compare(mr_mip->w1,w)<0);
	mr_lzero(mr_mip->w1);
    divide(_MIPP_ mr_mip->w1,w,w);
	
    copy(mr_mip->w1,x);
    MR_OUT
}
开发者ID:stoneskill,项目名称:mix-O_AllWin,代码行数:34,代码来源:mrstrong.c

示例4: fexp

void fexp(_MIPD_ flash x,flash y)
{ /* calculates y=exp(x) */
    int i,n,nsq,m,sqrn,op[5];
    BOOL minus,rem;
#ifndef MR_GENERIC_MT
    miracl *mr_mip=get_mip();
#endif
    if (mr_mip->ERNUM) return;
    if (size(x)==0)
    {
        convert(_MIPP_ 1,y);
        return;
    }
    copy(x,y);

    MR_IN(54)

    minus=FALSE;
    if (size(y)<0)
    {
        minus=TRUE;
        negate(y,y);
    }
    ftrunc(_MIPP_ y,y,mr_mip->w9);
    n=size(y);
    if (n==MR_TOOBIG)
    {
        mr_berror(_MIPP_ MR_ERR_FLASH_OVERFLOW);
        MR_OUT
        return;
    }
开发者ID:flomar,项目名称:CrypTool-VS2015,代码行数:31,代码来源:MRFLSH2.C

示例5: zzn3_div2

void zzn3_div2(_MIPD_ zzn3 *w)
{
#ifdef MR_OS_THREADS
    miracl *mr_mip=get_mip();
#endif
    if (mr_mip->ERNUM) return;
    MR_IN(188)
    copy(w->a,mr_mip->w1);
    if (remain(_MIPP_ mr_mip->w1,2)!=0)
        add(_MIPP_ mr_mip->w1,mr_mip->modulus,mr_mip->w1);
    subdiv(_MIPP_ mr_mip->w1,2,mr_mip->w1);
    copy(mr_mip->w1,w->a);

    copy(w->b,mr_mip->w1);
    if (remain(_MIPP_ mr_mip->w1,2)!=0)
        add(_MIPP_ mr_mip->w1,mr_mip->modulus,mr_mip->w1);
    subdiv(_MIPP_ mr_mip->w1,2,mr_mip->w1);
    copy(mr_mip->w1,w->b);

    copy(w->c,mr_mip->w1);
    if (remain(_MIPP_ mr_mip->w1,2)!=0)
        add(_MIPP_ mr_mip->w1,mr_mip->modulus,mr_mip->w1);
    subdiv(_MIPP_ mr_mip->w1,2,mr_mip->w1);
    copy(mr_mip->w1,w->c);

    MR_OUT
}
开发者ID:FlexCOS,项目名称:code,代码行数:27,代码来源:mrzzn3.c

示例6: frand

void frand(_MIPD_ flash x)
{ /* generates random flash number 0<x<1 */
    int i;
#ifdef MR_FP
    mr_small dres;
#endif
#ifdef MR_OS_THREADS
    miracl *mr_mip=get_mip();
#endif
    if (mr_mip->ERNUM) return;

    MR_IN(46)

    zero(mr_mip->w6);
    mr_mip->w6->len=mr_mip->nib;
    for (i=0;i<mr_mip->nib;i++) 
    { /* generate a full width random number */
        if (mr_mip->base==0) mr_mip->w6->w[i]=brand(_MIPPO_ );
        else                 mr_mip->w6->w[i]=MR_REMAIN(brand(_MIPPO_ ),mr_mip->base);
    }
    mr_mip->check=OFF;
    bigrand(_MIPP_ mr_mip->w6,mr_mip->w5);
    mr_mip->check=ON;
    mround(_MIPP_ mr_mip->w5,mr_mip->w6,x);

    MR_OUT
}
开发者ID:BingyZhang,项目名称:CommutEnc,代码行数:27,代码来源:mrfrnd.c

示例7: zzn4_inv

void zzn4_inv(_MIPD_ zzn4 *w)
{
#ifdef MR_OS_THREADS
    miracl *mr_mip=get_mip();
#endif
	zzn2 t1,t2;
    if (mr_mip->ERNUM) return;
    if (w->unitary)
    {
        zzn4_conj(_MIPP_ w,w);
        return;
    }
	MR_IN(FUNC_BASE+10)

    t1.a=mr_mip->w8;
    t1.b=mr_mip->w9;
    t2.a=mr_mip->w10;
    t2.b=mr_mip->w11; 
    zzn2_mul(_MIPP_ &(w->a),&(w->a),&t1);
    zzn2_mul(_MIPP_ &(w->b),&(w->b),&t2);
    zzn2_txx(_MIPP_ &t2);
    zzn2_sub(_MIPP_ &t1,&t2,&t1);
    zzn2_inv(_MIPP_ &t1);
    zzn2_mul(_MIPP_ &(w->a),&t1,&(w->a));
    zzn2_negate(_MIPP_ &t1,&t1);
    zzn2_mul(_MIPP_ &(w->b),&t1,&(w->b));

	MR_OUT
}
开发者ID:FlexCOS,项目名称:code,代码行数:29,代码来源:mrzzn4.c

示例8: nres_powltr

void nres_powltr(_MIPD_ int x,big y,big w)
{ /* calculates w=x^y mod z using Left to Right Method   */
  /* uses only n^2 modular squarings, because x is small */
  /* Note: x is NOT an nresidue */
    int i,nb;
#ifndef MR_GENERIC_MT
    miracl *mr_mip=get_mip();
#endif

    if (mr_mip->ERNUM) return;
    copy(y,mr_mip->w1);

    MR_IN(86)

    zero(w);
    if (x==0) 
    {
        if (size(mr_mip->w1)==0) 
        { /* 0^0 = 1 */
            convert(_MIPP_ 1,w);
            nres(_MIPP_ w,w);
        }
        MR_OUT
        return;
    }

    convert(_MIPP_ 1,w);
    nres(_MIPP_ w,w);
    if (size(mr_mip->w1)==0) 
    {
        MR_OUT
        return;
    }
开发者ID:karllen,项目名称:Windows_Program,代码行数:33,代码来源:MRPOWER.C

示例9: zzn4_mul

void zzn4_mul(_MIPD_ zzn4 *x,zzn4 *y,zzn4 *w)
{
#ifdef MR_OS_THREADS
    miracl *mr_mip=get_mip();
#endif
    zzn2 t1,t2,t3;
    if (mr_mip->ERNUM) return;
	if (x==y) {zzn4_sqr(_MIPP_ x,w); return; }
    MR_IN(FUNC_BASE+9)

    t1.a=mr_mip->w12;
    t1.b=mr_mip->w13;
    t2.a=mr_mip->w8;
    t2.b=mr_mip->w9;
    t3.a=mr_mip->w10;
    t3.b=mr_mip->w11;
    zzn2_copy(&(x->a),&t1);
    zzn2_copy(&(x->b),&t2);
    zzn2_mul(_MIPP_ &t1,&(y->a),&t1);   /* t1= x->a * y->a */
    zzn2_mul(_MIPP_ &t2,&(y->b),&t2);   /* t2 = x->b * y->b */
    zzn2_copy(&(y->a),&t3);
    zzn2_add(_MIPP_ &t3,&(y->b),&t3);   /* y->a + y->b */

    zzn2_add(_MIPP_ &(x->b),&(x->a),&(w->b)); /* x->a + x->b */
    zzn2_mul(_MIPP_ &(w->b),&t3,&(w->b));     /* t3= (x->a + x->b)*(y->a + y->b) */
    zzn2_sub(_MIPP_ &(w->b),&t1,&(w->b));
    zzn2_sub(_MIPP_ &(w->b),&t2,&(w->b));     /*  w->b = t3-(t1+t2) */
    zzn2_copy(&t1,&(w->a));
    zzn2_txx(_MIPP_ &t2);
    zzn2_add(_MIPP_ &(w->a),&t2,&(w->a));	/* w->a = t1+tx(t2) */
    if (x->unitary && y->unitary) w->unitary=TRUE;
    else w->unitary=FALSE;

    MR_OUT
}
开发者ID:FlexCOS,项目名称:code,代码行数:35,代码来源:mrzzn4.c

示例10: sftbit

void sftbit(_MIPD_ big x,int n,big z)
{ /* shift x by n bits */
    int m;
    mr_small sm;
#ifdef MR_OS_THREADS
    miracl *mr_mip=get_mip();
#endif
    if (mr_mip->ERNUM) return;
    copy(x,z);
    if (n==0) return;

    MR_IN(47)

    m=mr_abs(n);
    sm=mr_shiftbits((mr_small)1,m%mr_mip->lg2b);
    if (n>0)
    { /* shift left */

#ifndef MR_ALWAYS_BINARY
        if (mr_mip->base==mr_mip->base2)
        {
#endif
            mr_shift(_MIPP_ z,n/mr_mip->lg2b,z);
            mr_pmul(_MIPP_ z,sm,z);
#ifndef MR_ALWAYS_BINARY
        }
        else
        {
            expb2(_MIPP_ m,mr_mip->w1);
            multiply(_MIPP_ z,mr_mip->w1,z);
        }
#endif
    }
    else
    { /* shift right */

#ifndef MR_ALWAYS_BINARY
        if (mr_mip->base==mr_mip->base2)
        {
#endif
            mr_shift(_MIPP_ z,n/mr_mip->lg2b,z);
#ifdef MR_FP_ROUNDING
            mr_sdiv(_MIPP_ z,sm,mr_invert(sm),z);
#else
            mr_sdiv(_MIPP_ z,sm,z);
#endif

#ifndef MR_ALWAYS_BINARY
        }
        else
        {
            expb2(_MIPP_ m,mr_mip->w1);
            divide(_MIPP_ z,mr_mip->w1,z);
        }
#endif
    }
    MR_OUT
}
开发者ID:JacobBarthelmeh,项目名称:supercop,代码行数:58,代码来源:mrbits.c

示例11: zzn3_ssub

void zzn3_ssub(_MIPD_ zzn3 *x,big y,zzn3 *w)
{
#ifdef MR_OS_THREADS
    miracl *mr_mip=get_mip();
#endif
    if (mr_mip->ERNUM) return;
    MR_IN(183)
    nres_modsub(_MIPP_ x->a,y,w->a);
    MR_OUT
}
开发者ID:FlexCOS,项目名称:code,代码行数:10,代码来源:mrzzn3.c

示例12: zzn2_sadd

void zzn2_sadd(_MIPD_ zzn2 *x,big y,zzn2 *w)
{
#ifdef MR_OS_THREADS
    miracl *mr_mip=get_mip();
#endif
    if (mr_mip->ERNUM) return;
    MR_IN(169)
    nres_modadd(_MIPP_ x->a,y,w->a);
    MR_OUT
}              
开发者ID:J0s3f,项目名称:FiSH-irssi,代码行数:10,代码来源:mrzzn2.c

示例13: zzn4_powq

void zzn4_powq(_MIPD_ zzn2 *fr,zzn4 *w)
{
#ifdef MR_OS_THREADS
    miracl *mr_mip=get_mip();
#endif
	MR_IN(FUNC_BASE+12)
	zzn2_conj(_MIPP_ &(w->a),&(w->a));
    zzn2_conj(_MIPP_ &(w->b),&(w->b));
	zzn2_mul(_MIPP_ &(w->b),fr,&(w->b));
	MR_OUT
}
开发者ID:FlexCOS,项目名称:code,代码行数:11,代码来源:mrzzn4.c

示例14: zzn4_sadd

void zzn4_sadd(_MIPD_ zzn4 *x,zzn2 *y,zzn4 *w)
{
#ifdef MR_OS_THREADS
    miracl *mr_mip=get_mip();
#endif
    if (mr_mip->ERNUM) return;
    MR_IN(FUNC_BASE+4)
    zzn2_add(_MIPP_ &(x->a),y,&(w->a));
	w->unitary=FALSE;
    MR_OUT
} 
开发者ID:FlexCOS,项目名称:code,代码行数:11,代码来源:mrzzn4.c

示例15: zzn4_negate

void zzn4_negate(_MIPD_ zzn4 *x,zzn4 *w)
{
#ifdef MR_OS_THREADS
    miracl *mr_mip=get_mip();
#endif
    if (mr_mip->ERNUM) return;
    MR_IN(FUNC_BASE+1)
    zzn4_copy(x,w);
    zzn2_negate(_MIPP_ &(w->a),&(w->a));
    zzn2_negate(_MIPP_ &(w->b),&(w->b));
    MR_OUT
}
开发者ID:FlexCOS,项目名称:code,代码行数:12,代码来源:mrzzn4.c


注:本文中的MR_IN函数示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。