📄 dilog.java
字号:
case 3:
Prod0 = Prod1 = Prod2 = 0;
TestNbr2 = TestNbr[2];
Nbr2_0 = Nbr2[0];
Nbr2_1 = Nbr2[1];
Nbr2_2 = Nbr2[2];
i = 0;
do {
Nbr = Nbr1[i];
Pr = Nbr*Nbr2_0 + Prod0;
ProdB0 = Pr & DosALa32_1;
Pr = (Pr >>> 32) + Nbr*Nbr2_1 + Prod1;
Prod0 = Pr & DosALa32_1;
Pr = (Pr >>> 32) + Nbr*Nbr2_2 + Prod2;
Prod1 = Pr & DosALa32_1;
Prod2 = (Pr >>> 32);
Nbr = (ProdB0 * MontgomeryMultN) & DosALa32_1;
Pr = ((Nbr*TestNbr0 + ProdB0) >>> 32) + Nbr*TestNbr1 + Prod0;
Prod0 = Pr & DosALa32_1;
Pr = (Pr >>> 32) + Nbr*TestNbr2 + Prod1;
Prod1 = Pr & DosALa32_1;
Prod2 += (Pr >>> 32);
i++;
} while (i<3);
if (Prod2 > TestNbr2 || Prod2 == TestNbr2 &&
(Prod1 > TestNbr1 || Prod1 == TestNbr1 &&
(Prod0 >= TestNbr0))) {
Pr = Prod0 - TestNbr0;
Prod0 = Pr & DosALa32_1;
Pr = (Pr>=0?0:-1) + Prod1 - TestNbr1;
Prod1 = Pr & DosALa32_1;
Pr = (Pr>=0?0:-1) + Prod2 - TestNbr2;
Prod2 = Pr & DosALa32_1;
}
Prod[0] = Prod0;
Prod[1] = Prod1;
Prod[2] = Prod2;
break;
case 4:
Prod0 = Prod1 = Prod2 = Prod3 = 0;
TestNbr2 = TestNbr[2];
TestNbr3 = TestNbr[3];
Nbr2_0 = Nbr2[0];
Nbr2_1 = Nbr2[1];
Nbr2_2 = Nbr2[2];
Nbr2_3 = Nbr2[3];
i = 0;
do {
Nbr = Nbr1[i];
Pr = Nbr*Nbr2_0 + Prod0;
ProdB0 = Pr & DosALa32_1;
Pr = (Pr >>> 32) + Nbr*Nbr2_1 + Prod1;
Prod0 = Pr & DosALa32_1;
Pr = (Pr >>> 32) + Nbr*Nbr2_2 + Prod2;
Prod1 = Pr & DosALa32_1;
Pr = (Pr >>> 32) + Nbr*Nbr2_3 + Prod3;
Prod2 = Pr & DosALa32_1;
Prod3 = (Pr >>> 32);
Nbr = (ProdB0 * MontgomeryMultN) & DosALa32_1;
Pr = ((Nbr*TestNbr0 + ProdB0) >>> 32) + Nbr*TestNbr1 + Prod0;
Prod0 = Pr & DosALa32_1;
Pr = (Pr >>> 32) + Nbr*TestNbr2 + Prod1;
Prod1 = Pr & DosALa32_1;
Pr = (Pr >>> 32) + Nbr*TestNbr3 + Prod2;
Prod2 = Pr & DosALa32_1;
Prod3 += (Pr >>> 32);
i++;
} while (i<4);
if (Prod3 > TestNbr3 || Prod3 == TestNbr3 &&
(Prod2 > TestNbr2 || Prod2 == TestNbr2 &&
(Prod1 > TestNbr1 || Prod1 == TestNbr1 &&
(Prod0 >= TestNbr0)))) {
Pr = Prod0 - TestNbr0;
Prod0 = Pr & DosALa32_1;
Pr = (Pr>=0?0:-1) + Prod1 - TestNbr1;
Prod1 = Pr & DosALa32_1;
Pr = (Pr>=0?0:-1) + Prod2 - TestNbr2;
Prod2 = Pr & DosALa32_1;
Pr = (Pr>=0?0:-1) + Prod3 - TestNbr3;
Prod3 = Pr & DosALa32_1;
}
Prod[0] = Prod0;
Prod[1] = Prod1;
Prod[2] = Prod2;
Prod[3] = Prod3;
break;
case 5:
Prod0 = Prod1 = Prod2 = Prod3 = Prod4 = 0;
TestNbr2 = TestNbr[2];
TestNbr3 = TestNbr[3];
TestNbr4 = TestNbr[4];
Nbr2_0 = Nbr2[0];
Nbr2_1 = Nbr2[1];
Nbr2_2 = Nbr2[2];
Nbr2_3 = Nbr2[3];
Nbr2_4 = Nbr2[4];
i = 0;
do {
Nbr = Nbr1[i];
Pr = Nbr*Nbr2_0 + Prod0;
ProdB0 = Pr & DosALa32_1;
Pr = (Pr >>> 32) + Nbr*Nbr2_1 + Prod1;
Prod0 = Pr & DosALa32_1;
Pr = (Pr >>> 32) + Nbr*Nbr2_2 + Prod2;
Prod1 = Pr & DosALa32_1;
Pr = (Pr >>> 32) + Nbr*Nbr2_3 + Prod3;
Prod2 = Pr & DosALa32_1;
Pr = (Pr >>> 32) + Nbr*Nbr2_4 + Prod4;
Prod3 = Pr & DosALa32_1;
Prod4 = (Pr >>> 32);
Nbr = (ProdB0 * MontgomeryMultN) & DosALa32_1;
Pr = ((Nbr*TestNbr0 + ProdB0) >>> 32) + Nbr*TestNbr1 + Prod0;
Prod0 = Pr & DosALa32_1;
Pr = (Pr >>> 32) + Nbr*TestNbr2 + Prod1;
Prod1 = Pr & DosALa32_1;
Pr = (Pr >>> 32) + Nbr*TestNbr3 + Prod2;
Prod2 = Pr & DosALa32_1;
Pr = (Pr >>> 32) + Nbr*TestNbr4 + Prod3;
Prod3 = Pr & DosALa32_1;
Prod4 += (Pr >>> 32);
i++;
} while (i<5);
if (Prod4 > TestNbr4 || Prod4 == TestNbr4 &&
(Prod3 > TestNbr3 || Prod3 == TestNbr3 &&
(Prod2 > TestNbr2 || Prod2 == TestNbr2 &&
(Prod1 > TestNbr1 || Prod1 == TestNbr1 &&
(Prod0 >= TestNbr0))))) {
Pr = Prod0 - TestNbr0;
Prod0 = Pr & DosALa32_1;
Pr = (Pr>=0?0:-1) + Prod1 - TestNbr1;
Prod1 = Pr & DosALa32_1;
Pr = (Pr>=0?0:-1) + Prod2 - TestNbr2;
Prod2 = Pr & DosALa32_1;
Pr = (Pr>=0?0:-1) + Prod3 - TestNbr3;
Prod3 = Pr & DosALa32_1;
Pr = (Pr>=0?0:-1) + Prod4 - TestNbr4;
Prod4 = Pr & DosALa32_1;
}
Prod[0] = Prod0;
Prod[1] = Prod1;
Prod[2] = Prod2;
Prod[3] = Prod3;
Prod[4] = Prod4;
break;
case 6:
Prod0 = Prod1 = Prod2 = Prod3 = Prod4 = Prod5 = 0;
TestNbr2 = TestNbr[2];
TestNbr3 = TestNbr[3];
TestNbr4 = TestNbr[4];
TestNbr5 = TestNbr[5];
Nbr2_0 = Nbr2[0];
Nbr2_1 = Nbr2[1];
Nbr2_2 = Nbr2[2];
Nbr2_3 = Nbr2[3];
Nbr2_4 = Nbr2[4];
Nbr2_5 = Nbr2[5];
i = 0;
do {
Nbr = Nbr1[i];
Pr = Nbr*Nbr2_0 + Prod0;
ProdB0 = Pr & DosALa32_1;
Pr = (Pr >>> 32) + Nbr*Nbr2_1 + Prod1;
Prod0 = Pr & DosALa32_1;
Pr = (Pr >>> 32) + Nbr*Nbr2_2 + Prod2;
Prod1 = Pr & DosALa32_1;
Pr = (Pr >>> 32) + Nbr*Nbr2_3 + Prod3;
Prod2 = Pr & DosALa32_1;
Pr = (Pr >>> 32) + Nbr*Nbr2_4 + Prod4;
Prod3 = Pr & DosALa32_1;
Pr = (Pr >>> 32) + Nbr*Nbr2_5 + Prod5;
Prod4 = Pr & DosALa32_1;
Prod5 = (Pr >>> 32);
Nbr = (ProdB0 * MontgomeryMultN) & DosALa32_1;
Pr = ((Nbr*TestNbr0 + ProdB0) >>> 32) + Nbr*TestNbr1 + Prod0;
Prod0 = Pr & DosALa32_1;
Pr = (Pr >>> 32) + Nbr*TestNbr2 + Prod1;
Prod1 = Pr & DosALa32_1;
Pr = (Pr >>> 32) + Nbr*TestNbr3 + Prod2;
Prod2 = Pr & DosALa32_1;
Pr = (Pr >>> 32) + Nbr*TestNbr4 + Prod3;
Prod3 = Pr & DosALa32_1;
Pr = (Pr >>> 32) + Nbr*TestNbr5 + Prod4;
Prod4 = Pr & DosALa32_1;
Prod5 += (Pr >>> 32);
i++;
} while (i<6);
if (Prod5 > TestNbr5 || Prod5 == TestNbr5 &&
(Prod4 > TestNbr4 || Prod4 == TestNbr4 &&
(Prod3 > TestNbr3 || Prod3 == TestNbr3 &&
(Prod2 > TestNbr2 || Prod2 == TestNbr2 &&
(Prod1 > TestNbr1 || Prod1 == TestNbr1 &&
(Prod0 >= TestNbr0)))))) {
Pr = Prod0 - TestNbr0;
Prod0 = Pr & DosALa32_1;
Pr = (Pr>=0?0:-1) + Prod1 - TestNbr1;
Prod1 = Pr & DosALa32_1;
Pr = (Pr>=0?0:-1) + Prod2 - TestNbr2;
Prod2 = Pr & DosALa32_1;
Pr = (Pr>=0?0:-1) + Prod3 - TestNbr3;
Prod3 = Pr & DosALa32_1;
Pr = (Pr>=0?0:-1) + Prod4 - TestNbr4;
Prod4 = Pr & DosALa32_1;
Pr = (Pr>=0?0:-1) + Prod5 - TestNbr5;
Prod5 = Pr & DosALa32_1;
}
Prod[0] = Prod0;
Prod[1] = Prod1;
Prod[2] = Prod2;
Prod[3] = Prod3;
Prod[4] = Prod4;
Prod[5] = Prod5;
break;
case 7:
Prod0 = Prod1 = Prod2 = Prod3 = Prod4 = Prod5 = Prod6 = 0;
TestNbr2 = TestNbr[2];
TestNbr3 = TestNbr[3];
TestNbr4 = TestNbr[4];
TestNbr5 = TestNbr[5];
TestNbr6 = TestNbr[6];
Nbr2_0 = Nbr2[0];
Nbr2_1 = Nbr2[1];
Nbr2_2 = Nbr2[2];
Nbr2_3 = Nbr2[3];
Nbr2_4 = Nbr2[4];
Nbr2_5 = Nbr2[5];
Nbr2_6 = Nbr2[6];
i = 0;
do {
Nbr = Nbr1[i];
Pr = Nbr*Nbr2_0 + Prod0;
ProdB0 = Pr & DosALa32_1;
Pr = (Pr >>> 32) + Nbr*Nbr2_1 + Prod1;
Prod0 = Pr & DosALa32_1;
Pr = (Pr >>> 32) + Nbr*Nbr2_2 + Prod2;
Prod1 = Pr & DosALa32_1;
Pr = (Pr >>> 32) + Nbr*Nbr2_3 + Prod3;
Prod2 = Pr & DosALa32_1;
Pr = (Pr >>> 32) + Nbr*Nbr2_4 + Prod4;
Prod3 = Pr & DosALa32_1;
Pr = (Pr >>> 32) + Nbr*Nbr2_5 + Prod5;
Prod4 = Pr & DosALa32_1;
Pr = (Pr >>> 32) + Nbr*Nbr2_6 + Prod6;
Prod5 = Pr & DosALa32_1;
Prod6 = (Pr >>> 32);
Nbr = (ProdB0 * MontgomeryMultN) & DosALa32_1;
Pr = ((Nbr*TestNbr0 + ProdB0) >>> 32) + Nbr*TestNbr1 + Prod0;
Prod0 = Pr & DosALa32_1;
Pr = (Pr >>> 32) + Nbr*TestNbr2 + Prod1;
Prod1 = Pr & DosALa32_1;
Pr = (Pr >>> 32) + Nbr*TestNbr3 + Prod2;
Prod2 = Pr & DosALa32_1;
Pr = (Pr >>> 32) + Nbr*TestNbr4 + Prod3;
Prod3 = Pr & DosALa32_1;
Pr = (Pr >>> 32) + Nbr*TestNbr5 + Prod4;
Prod4 = Pr & DosALa32_1;
Pr = (Pr >>> 32) + Nbr*TestNbr6 + Prod5;
Prod5 = Pr & DosALa32_1;
Prod6 += (Pr >>> 32);
i++;
} while (i<7);
if (Prod6 > TestNbr6 || Prod6 == TestNbr6 &&
(Prod5 > TestNbr5 || Prod5 == TestNbr5 &&
(Prod4 > TestNbr4 || Prod4 == TestNbr4 &&
(Prod3 > TestNbr3 || Prod3 == TestNbr3 &&
(Prod2 > TestNbr2 || Prod2 == TestNbr2 &&
(Prod1 > TestNbr1 || Prod1 == TestNbr1 &&
(Prod0 >= TestNbr0))))))) {
Pr = Prod0 - TestNbr0;
Prod0 = Pr & DosALa32_1;
Pr = (Pr>=0?0:-1) + Prod1 - TestNbr1;
Prod1 = Pr & DosALa32_1;
Pr = (Pr>=0?0:-1) + Prod2 - TestNbr2;
Prod2 = Pr & DosALa32_1;
Pr = (Pr>=0?0:-1) + Prod3 - TestNbr3;
Prod3 = Pr & DosALa32_1;
Pr = (Pr>=0?0:-1) + Prod4 - TestNbr4;
Prod4 = Pr & DosALa32_1;
Pr = (Pr>=0?0:-1) + Prod5 - TestNbr5;
Prod5 = Pr & DosALa32_1;
Pr = (Pr>=0?0:-1) + Prod6 - TestNbr6;
Prod6 = Pr & DosALa32_1;
}
Prod[0] = Prod0;
Prod[1] = Prod1;
Prod[2] = Prod2;
Prod[3] = Prod3;
Prod[4] = Prod4;
Prod[5] = Prod5;
Prod[6] = Prod6;
break;
case 8:
Prod0 = Prod1 = Prod2 = Prod3 = Prod4 = Prod5 = Prod6 = Prod7 = 0;
TestNbr2 = TestNbr[2];
TestNbr3 = TestNbr[3];
TestNbr4 = TestNbr[4];
TestNbr5 = TestNbr[5];
TestNbr6 = TestNbr[6];
TestNbr7 = TestNbr[7];
Nbr2_0 = Nbr2[0];
Nbr2_1 = Nbr2[1];
Nbr2_2 = Nbr2[2];
Nbr2_3 = Nbr2[3];
Nbr2_4 = Nbr2[4];
Nbr2_5 = Nbr2[5];
Nbr2_6 = Nbr2[6];
Nbr2_7 = Nbr2[7];
i = 0;
do {
Nbr = Nbr1[i];
Pr = Nbr*Nbr2_0 + Prod0;
ProdB0 = Pr & DosALa32_1;
Pr = (Pr >>> 32) + Nbr*Nbr2_1 + Prod1;
Prod0 = Pr & DosALa32_1;
Pr = (Pr >>> 32) + Nbr*Nbr2_2 + Prod2;
Prod1 = Pr & DosALa32_1;
Pr = (Pr >>> 32) + Nbr*Nbr2_3 + Prod3;
Prod2 = Pr & DosALa32_1;
Pr = (Pr >>> 32) + Nbr*Nbr2_4 + Prod4;
Prod3 = Pr & DosALa32_1;
Pr = (Pr >>> 32) + Nbr*Nbr2_5 + Prod5;
Prod4 = Pr & DosALa32_1;
Pr = (Pr >>> 32) + Nbr*Nbr2_6 + Prod6;
Prod5 = Pr & DosALa32_1;
Pr = (Pr >>> 32) + Nbr*Nbr2_7 + Prod7;
Prod6 = Pr & DosALa32_1;
Prod7 = (Pr >>> 32);
Nbr = (ProdB0 * MontgomeryMultN) & DosALa32_1;
Pr = ((Nbr*TestNbr0 + ProdB0) >>> 32) + Nbr*TestNbr1 + Prod0;
Prod0 = Pr & DosALa32_1;
Pr = (Pr >>> 32) + Nbr*TestNbr2 + Prod1;
Prod1 = Pr & DosALa32_1;
Pr = (Pr >>> 32) + Nbr*TestNbr3 + Prod2;
Prod2 = Pr & DosALa32_1;
Pr = (Pr >>> 32) + Nbr*TestNbr4 + Prod3;
Prod3 = Pr & DosALa32_1;
Pr = (Pr >>> 32) + Nbr*TestNbr5 + Prod4;
Prod4 = Pr & DosALa32_1;
Pr = (Pr >>> 32) + Nbr*TestNbr6 + Prod5;
Prod5 = Pr & DosALa32_1;
Pr = (Pr >>> 32) + Nbr*TestNbr7 + Prod6;
Prod6 = Pr & DosALa32_1;
Prod7 += (Pr >>> 32);
i++;
} while (i<8);
if (Prod7 > TestNbr7 || Prod7 == TestNbr7 &&
(Prod6 > TestNbr6 || Prod6 == TestNbr6 &&
(Prod5 > TestNbr5 || Prod5 == TestNbr5 &&
(Prod4 > TestNbr4 || Prod4 == TestNbr4 &&
(Prod3 > TestNbr3 || Prod3 == TestNbr3 &&
(Prod2 > TestNbr2 || Prod2 == TestNbr2 &&
(Prod1 > TestNbr1 || Prod1 == TestNbr1 &&
(Prod0 >= TestNbr0)))))))) {
Pr = Prod0 - TestNbr0;
Prod0 = Pr & DosALa32_1;
Pr = (Pr>=0?0:-1) + Prod1 - TestNbr1;
Prod1 = Pr & DosALa32_1;
Pr = (Pr>=0?0:-1) + Prod2 - TestNbr2;
Prod2 = Pr & DosALa32_1;
Pr = (Pr>=0?0:-1) + Prod3 - TestNbr3;
Prod3 = Pr & DosALa32_1;
Pr = (Pr>=0?0:-1) + Prod4 - TestNbr4;
Prod4 = Pr & DosALa32_1;
Pr = (Pr>=0?0:-1) + Prod5 - TestNbr5;
Prod5 = Pr & DosALa32_1;
Pr = (Pr>=0?0:-1) + Prod6 - TestNbr6;
Prod6 = Pr & DosALa32_1;
Pr = (Pr>=0?0:-1) + Prod7 - TestNbr7;
Prod7 = Pr & DosALa32_1;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -