mrmuldv.ccc
来自「大数运算库」· CCC 代码 · 共 57 行
CCC
57 行
/* Standard C version of mrmuldv.c */
#include <stdio.h>
#include <miracl.h>
mr_small muldiv(mr_small a,mr_small b,mr_small c,mr_small m,mr_small *rp)
{
mr_small q;
mr_large ldres,dble=(mr_large)a*b+c;
q=(mr_small)MR_LROUND(dble/m);
*rp=(mr_small)(dble-(mr_large)q*m);
return q;
}
#ifdef MR_FP_ROUNDING
mr_small imuldiv(mr_small a,mr_small b,mr_small c,mr_small m,mr_large im,mr_small *rp)
{
mr_small q;
mr_large ldres,dble=(mr_large)a*b+c;
q=(mr_small)MR_LROUND(dble*im);
*rp=(mr_small)(dble-(mr_large)q*m);
return q;
}
#endif
#ifndef MR_NOFULLWIDTH
mr_small muldvm(mr_small a,mr_small c,mr_small m,mr_small *rp)
{
mr_small q;
mr_large dble=c;
MR_TOP(dble)=a;
q=(mr_small)(dble/m);
*rp=(mr_small)(dble-(mr_large)q*m);
return q;
}
mr_small muldvd(mr_small a,mr_small b,mr_small c,mr_small *rp)
{
mr_large dble=(mr_large)a*b+c;
*rp=(mr_small)dble;
return MR_TOP(dble);
}
void muldvd2(mr_small a,mr_small b,mr_small *c,mr_small *rp)
{
mr_large dble=(mr_large)a*b+*c+*rp;
*rp=(mr_small)dble;
*c=MR_TOP(dble);
}
#endif
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?