X-Git-Url: https://ginac.de/CLN/cln.git//cln.git?a=blobdiff_plain;f=src%2Finteger%2Felem%2Fcl_I_minus.cc;h=6dd3ad03a5d95c7bc860cdf0f41972fdd48b4438;hb=740c032627dfc7ac87d90d6e75b5e87e78c9e716;hp=8a0fbe101f61c6e9ab9113740fb04370e022675a;hpb=6fdd87f5e762926b273583db2d6440862584596f;p=cln.git diff --git a/src/integer/elem/cl_I_minus.cc b/src/integer/elem/cl_I_minus.cc index 8a0fbe1..6dd3ad0 100644 --- a/src/integer/elem/cl_I_minus.cc +++ b/src/integer/elem/cl_I_minus.cc @@ -1,7 +1,7 @@ // binary operator - // General includes. -#include "cl_sysdep.h" +#include "base/cl_sysdep.h" // Specification. #include "cln/integer.h" @@ -9,8 +9,8 @@ // Implementation. -#include "cl_I.h" -#include "cl_DS.h" +#include "integer/cl_I.h" +#include "base/digitseq/cl_DS.h" namespace cln { @@ -47,7 +47,7 @@ const cl_I operator- (const cl_I& x, const cl_I& y) #endif } else - { // x ist Fixnum, y ist Bignum, also y länger + { // x ist Fixnum, y ist Bignum, also y länger #if (intDsize==64) var sint64 x_ = FN_to_V(x); // Wert von x #else @@ -77,15 +77,15 @@ const cl_I operator- (const cl_I& x, const cl_I& y) var uintD* midptr = LSDptr lspop pFN_maxlength; if (y_new < y_) { // Carry. - if (!FN_V_minusp(x,x_)) // kürzerer Summand war positiv - // Dann ist ein positiver Übertrag weiterzutragen + if (!FN_V_minusp(x,x_)) // kürzerer Summand war positiv + // Dann ist ein positiver Übertrag weiterzutragen // (Beispiel: 0002FFFC + 0007 = 00030003) { DS_1_plus(midptr,len-pFN_maxlength); } } else { // Kein Carry. - if (FN_V_minusp(x,x_)) // kürzerer Summand war negativ - // Dann ist ein negativer Übertrag weiterzutragen + if (FN_V_minusp(x,x_)) // kürzerer Summand war negativ + // Dann ist ein negativer Übertrag weiterzutragen // (Beispiel: 00020003 + FFF5 = 0001FFF8) { DS_minus1_plus(midptr,len-pFN_maxlength); } } } @@ -95,7 +95,7 @@ const cl_I operator- (const cl_I& x, const cl_I& y) else { // x ist Bignum if (fixnump(y)) - { // x ist Bignum, y ist Fixnum, also x länger + { // x ist Bignum, y ist Fixnum, also x länger #if (intDsize==64) var sint64 y_ = FN_to_V(y); // Wert von y #else @@ -123,15 +123,15 @@ const cl_I operator- (const cl_I& x, const cl_I& y) var uintD* midptr = LSDptr lspop pFN_maxlength; if (x_new > x_) { // Carry. - if (!FN_V_minusp(y,y_)) // kürzerer Summand war positiv - // Dann ist ein negativer Übertrag weiterzutragen + if (!FN_V_minusp(y,y_)) // kürzerer Summand war positiv + // Dann ist ein negativer Übertrag weiterzutragen // (Beispiel: 00030003 - 0007 = 0002FFFC) { DS_minus1_plus(midptr,len-pFN_maxlength); } } else { // Kein Carry. - if (FN_V_minusp(y,y_)) // kürzerer Summand war negativ - // Dann ist ein positiver Übertrag weiterzutragen + if (FN_V_minusp(y,y_)) // kürzerer Summand war negativ + // Dann ist ein positiver Übertrag weiterzutragen // (Beispiel: 0002FFF8 - FFF5 = 00030003) { DS_1_plus(midptr,len-pFN_maxlength); } } } @@ -140,36 +140,36 @@ const cl_I operator- (const cl_I& x, const cl_I& y) else { // x und y sind Bignums if (TheBignum(x)->length > TheBignum(y)->length) - { // x das längere von beiden. + { // x das längere von beiden. CL_ALLOCA_STACK; BN_to_NDS_1(x, MSDptr=,len=,LSDptr=); // NDS zu x bilden. var const uintD* yMSDptr; var uintC ylen; var const uintD* yLSDptr; BN_to_NDS_nocopy(y, yMSDptr=,ylen=,yLSDptr=); // NDS zu y bilden. - // yMSDptr/ylen/yLSDptr bilden die DS des kürzeren Arguments y. + // yMSDptr/ylen/yLSDptr bilden die DS des kürzeren Arguments y. // Es ist len>ylen. // subtrahieren: { var uintD* midptr = LSDptr lspop ylen; var uintD carry = subfrom_loop_lsp(yLSDptr,LSDptr,ylen); if (carry) { // Carry. - if ((sintD)mspref(yMSDptr,0) >=0) // kürzerer Summand war positiv - // Dann ist ein negativer Übertrag weiterzutragen + if ((sintD)mspref(yMSDptr,0) >=0) // kürzerer Summand war positiv + // Dann ist ein negativer Übertrag weiterzutragen // (Beispiel: 00030003 - 0007 = 0002FFFC) { DS_minus1_plus(midptr,len-ylen); } } else { // Kein Carry. - if ((sintD)mspref(yMSDptr,0) <0) // kürzerer Summand war negativ - // Dann ist ein positiver Übertrag weiterzutragen + if ((sintD)mspref(yMSDptr,0) <0) // kürzerer Summand war negativ + // Dann ist ein positiver Übertrag weiterzutragen // (Beispiel: 0002FFF8 - FFF5 = 00030003) { DS_1_plus(midptr,len-ylen); } } } return DS_to_I(MSDptr,len); // DS wieder zum Integer machen } else - { // y das längere von beiden. + { // y das längere von beiden. CL_ALLOCA_STACK; BN_to_NDS_1(y, MSDptr=,len=,LSDptr=); // NDS zu y bilden. // vorsorglich 1 Digit mehr belegen: @@ -183,22 +183,22 @@ const cl_I operator- (const cl_I& x, const cl_I& y) var uintC xlen; var const uintD* xLSDptr; BN_to_NDS_nocopy(x, xMSDptr=,xlen=,xLSDptr=); // NDS zu x bilden. - // xMSDptr/xlen/xLSDptr bilden die DS des kürzeren Arguments x. + // xMSDptr/xlen/xLSDptr bilden die DS des kürzeren Arguments x. // Es ist jetzt len>xlen. // addieren: { var uintD* midptr = LSDptr lspop xlen; var uintD carry = addto_loop_lsp(xLSDptr,LSDptr,xlen); if (carry) { // Carry. - if ((sintD)mspref(xMSDptr,0) >=0) // kürzerer Summand war positiv - // Dann ist ein positiver Übertrag weiterzutragen + if ((sintD)mspref(xMSDptr,0) >=0) // kürzerer Summand war positiv + // Dann ist ein positiver Übertrag weiterzutragen // (Beispiel: 0002FFFC + 0007 = 00030003) { DS_1_plus(midptr,len-xlen); } } else { // Kein Carry. - if ((sintD)mspref(xMSDptr,0) <0) // kürzerer Summand war negativ - // Dann ist ein negativer Übertrag weiterzutragen + if ((sintD)mspref(xMSDptr,0) <0) // kürzerer Summand war negativ + // Dann ist ein negativer Übertrag weiterzutragen // (Beispiel: 00020003 + FFF5 = 0001FFF8) { DS_minus1_plus(midptr,len-xlen); } } }