⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 crt.cpp

📁 miracl-大数运算库,大家使用有什么问题请多多提意见
💻 CPP
字号:
/*
 *   MIRACL Chinese Remainder Thereom routines (for use with crt.h) 
 *
 *   Copyright (c) 1988-1997 Shamus Software Ltd.
 */

#include "crt.h"

Crt::Crt(int r,Big *moduli)
{ /* constructor */
    big *b=(big *)mr_alloc(r,sizeof(big));
    for (int i=0;i<r;i++) b[i]=moduli[i].getbig();
    type=MR_CRT_BIG;
    crt_init(&bc,r,b);
    mr_free(b);
}

Crt::Crt(int r,mr_utype *moduli)
{ /* constructor */
    type=MR_CRT_SMALL; 
    scrt_init(&sc,r,moduli);
}

Big Crt::eval(Big *u)
{           
    Big x;
    big *b=(big *)mr_alloc(bc.NP,sizeof(big));
    for (int i=0;i<bc.NP;i++) b[i]=u[i].getbig();
    crt(&bc,b,x.getbig());
    mr_free(b); 
    return x;
}

Big Crt::eval(mr_utype *u)
{
    Big x;
    scrt(&sc,u,x.getbig());
    return x;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -