Branch Coverage

Decimal128.xs
Criterion Covered Total %
branch 674 1160 58.1


line true false branch
85 49527 38 if(x == x) return 0;
90 0 49574 if(x != x) return 0; /* NaN */
91 377 49197 if(x == 0.DL) return 0; /* Zero */
92 76 49121 if(x/x != x/x) {
93 34 42 if(x < 0.DL) return -1;
129 226352 1284 if(d128 != 0.0DL) {
130 0 226352 if(d128 * -1.0DL == 0.0DL) return 1; /* it's a -0 */
137 720 564 if(((unsigned char*)p)[n - 1] >= 128) return 1;
143 0 0 if(SvNV(x) == SvNV(x)) return newSViv(0);
0 0 if(SvNV(x) == SvNV(x)) return newSViv(0);
0 0 if(SvNV(x) == SvNV(x)) return newSViv(0);
148 0 0 if(SvNV(x) != SvNV(x)) return 0; /* NaN */
0 0 if(SvNV(x) != SvNV(x)) return 0; /* NaN */
0 0 if(SvNV(x) != SvNV(x)) return 0; /* NaN */
149 0 0 if(SvNV(x) == 0.0) return newSViv(0); /* Zero */
0 0 if(SvNV(x) == 0.0) return newSViv(0); /* Zero */
150 0 0 if(SvNV(x)/SvNV(x) != SvNV(x)/SvNV(x)) {
0 0 if(SvNV(x)/SvNV(x) != SvNV(x)/SvNV(x)) {
0 0 if(SvNV(x)/SvNV(x) != SvNV(x)/SvNV(x)) {
0 0 if(SvNV(x)/SvNV(x) != SvNV(x)/SvNV(x)) {
0 0 if(SvNV(x)/SvNV(x) != SvNV(x)/SvNV(x)) {
151 0 0 if(SvNV(x) < 0.0) return newSViv(-1);
0 0 if(SvNV(x) < 0.0) return newSViv(-1);
160 0 0 if(SvNV(x) != 0.0) return newSViv(0);
0 0 if(SvNV(x) != 0.0) return newSViv(0);
162 0 0 sprintf(buffer, "%.0f", (double)SvNV(x));
164 0 0 if(strcmp(buffer, "-0")) {
175 22554 24600 if(power < 0) {
176 0 22554 while(power < -1000) {
180 62246 22554 while(power < -100) {
184 186746 22554 while(power < -10) {
188 175301 22554 while(power) {
194 0 24600 while(power > 1000) {
198 62229 24600 while(power > 100) {
202 167363 24600 while(power > 10) {
206 101376 24600 while(power) {
215 17 72 if(sign < 0) return -1.DL/0.DL;
234 1 48985 if(!strcmp(s, "0 but true")) return 0.DL;
236 29 49001 while(s[0] == ' ' || s[0] == '\t' || s[0] == '\n' || s[0] == '\r' || s[0] == '\f') s++;
4 48997 while(s[0] == ' ' || s[0] == '\t' || s[0] == '\n' || s[0] == '\r' || s[0] == '\f') s++;
4 48993 while(s[0] == ' ' || s[0] == '\t' || s[0] == '\n' || s[0] == '\r' || s[0] == '\f') s++;
4 48989 while(s[0] == ' ' || s[0] == '\t' || s[0] == '\n' || s[0] == '\r' || s[0] == '\f') s++;
4 48985 while(s[0] == ' ' || s[0] == '\t' || s[0] == '\n' || s[0] == '\r' || s[0] == '\f') s++;
238 24456 24529 if(s[0] == '-') {
243 11 24518 if(s[0] == '+') s++;
246 48965 20 if((s[0] == 'i' || s[0] == 'I') && (s[1] == 'n' || s[1] == 'N') && (s[2] == 'f' || s[2] == 'F')) {
1 48964 if((s[0] == 'i' || s[0] == 'I') && (s[1] == 'n' || s[1] == 'N') && (s[2] == 'f' || s[2] == 'F')) {
0 21 if((s[0] == 'i' || s[0] == 'I') && (s[1] == 'n' || s[1] == 'N') && (s[2] == 'f' || s[2] == 'F')) {
0 0 if((s[0] == 'i' || s[0] == 'I') && (s[1] == 'n' || s[1] == 'N') && (s[2] == 'f' || s[2] == 'F')) {
0 21 if((s[0] == 'i' || s[0] == 'I') && (s[1] == 'n' || s[1] == 'N') && (s[2] == 'f' || s[2] == 'F')) {
0 0 if((s[0] == 'i' || s[0] == 'I') && (s[1] == 'n' || s[1] == 'N') && (s[2] == 'f' || s[2] == 'F')) {
247 18 3 if((s[3] == 'i' || s[3] == 'I') && (s[4] == 'n' || s[4] == 'N') && (s[5] == 'i' || s[5] == 'I') &&
0 18 if((s[3] == 'i' || s[3] == 'I') && (s[4] == 'n' || s[4] == 'N') && (s[5] == 'i' || s[5] == 'I') &&
0 3 if((s[3] == 'i' || s[3] == 'I') && (s[4] == 'n' || s[4] == 'N') && (s[5] == 'i' || s[5] == 'I') &&
0 0 if((s[3] == 'i' || s[3] == 'I') && (s[4] == 'n' || s[4] == 'N') && (s[5] == 'i' || s[5] == 'I') &&
0 3 if((s[3] == 'i' || s[3] == 'I') && (s[4] == 'n' || s[4] == 'N') && (s[5] == 'i' || s[5] == 'I') &&
0 0 if((s[3] == 'i' || s[3] == 'I') && (s[4] == 'n' || s[4] == 'N') && (s[5] == 'i' || s[5] == 'I') &&
1 2 if((s[3] == 'i' || s[3] == 'I') && (s[4] == 'n' || s[4] == 'N') && (s[5] == 'i' || s[5] == 'I') &&
248 1 0 (s[6] == 't' || s[6] == 'T') && (s[7] == 'y' || s[7] == 'Y')) count = 5;
1 2 (s[6] == 't' || s[6] == 'T') && (s[7] == 'y' || s[7] == 'Y')) count = 5;
0 1 (s[6] == 't' || s[6] == 'T') && (s[7] == 'y' || s[7] == 'Y')) count = 5;
250 17 8 if(s[i] == 0) return _get_inf(negative);
251 4 4 if(s[i] != ' ' && s[i] != '\t' && s[i] != '\n' && s[i] != '\r' && s[i] != '\f') {
4 0 if(s[i] != ' ' && s[i] != '\t' && s[i] != '\n' && s[i] != '\r' && s[i] != '\f') {
4 0 if(s[i] != ' ' && s[i] != '\t' && s[i] != '\n' && s[i] != '\r' && s[i] != '\f') {
4 0 if(s[i] != ' ' && s[i] != '\t' && s[i] != '\n' && s[i] != '\r' && s[i] != '\f') {
4 0 if(s[i] != ' ' && s[i] != '\t' && s[i] != '\n' && s[i] != '\r' && s[i] != '\f') {
253 4 0 if(SvIV(get_sv("Math::Decimal128::NNW", 0)))
0 4 if(SvIV(get_sv("Math::Decimal128::NNW", 0)))
260 48950 14 if((s[0] == 'n' || s[0] == 'N') && (s[1] == 'a' || s[1] == 'A') && (s[2] == 'n' || s[2] == 'N')) {
0 48950 if((s[0] == 'n' || s[0] == 'N') && (s[1] == 'a' || s[1] == 'A') && (s[2] == 'n' || s[2] == 'N')) {
0 14 if((s[0] == 'n' || s[0] == 'N') && (s[1] == 'a' || s[1] == 'A') && (s[2] == 'n' || s[2] == 'N')) {
0 0 if((s[0] == 'n' || s[0] == 'N') && (s[1] == 'a' || s[1] == 'A') && (s[2] == 'n' || s[2] == 'N')) {
0 14 if((s[0] == 'n' || s[0] == 'N') && (s[1] == 'a' || s[1] == 'A') && (s[2] == 'n' || s[2] == 'N')) {
0 0 if((s[0] == 'n' || s[0] == 'N') && (s[1] == 'a' || s[1] == 'A') && (s[2] == 'n' || s[2] == 'N')) {
262 14 0 if(s[i] == 0) return _get_nan();
263 0 0 if(s[i] != ' ' && s[i] != '\t' && s[i] != '\n' && s[i] != '\r' && s[i] != '\f') {
0 0 if(s[i] != ' ' && s[i] != '\t' && s[i] != '\n' && s[i] != '\r' && s[i] != '\f') {
0 0 if(s[i] != ' ' && s[i] != '\t' && s[i] != '\n' && s[i] != '\r' && s[i] != '\f') {
0 0 if(s[i] != ' ' && s[i] != '\t' && s[i] != '\n' && s[i] != '\r' && s[i] != '\f') {
0 0 if(s[i] != ' ' && s[i] != '\t' && s[i] != '\n' && s[i] != '\r' && s[i] != '\f') {
265 0 0 if(SvIV(get_sv("Math::Decimal128::NNW", 0)))
0 0 if(SvIV(get_sv("Math::Decimal128::NNW", 0)))
273 995 47955 if(!isdigit(s[0]) && s[0] != '.') {
7 988 if(!isdigit(s[0]) && s[0] != '.') {
275 7 0 if(SvIV(get_sv("Math::Decimal128::NNW", 0)))
0 7 if(SvIV(get_sv("Math::Decimal128::NNW", 0)))
277 3 4 result = negative ? result * -1.DL : result;
281 605155 48943 for(; isdigit(*s); s++) {
286 24721 24222 if(s[0] == '.') {
288 214409 24721 for(i = 0; isdigit(s[i]) ;i++) {
295 24443 24500 if(negative) result *= -1.DL;
297 13566 35377 if(s[i] == 'e' || s[i] == 'E') {
11777 1789 if(s[i] == 'e' || s[i] == 'E') {
299 22554 24600 if(*s == '-') {
301 84930 22554 for(i = 0; isdigit(s[i]);i++) exponent = (exponent * 10) + (s[i] - '0');
302 119826793 22554 while(exponent > 398) {
311 22553 1 if(s[i] == 0) return result;
312 1 0 if(s[i] != ' ' && s[i] != '\t' && s[i] != '\n' && s[i] != '\r' && s[i] != '\f') {
1 0 if(s[i] != ' ' && s[i] != '\t' && s[i] != '\n' && s[i] != '\r' && s[i] != '\f') {
1 0 if(s[i] != ' ' && s[i] != '\t' && s[i] != '\n' && s[i] != '\r' && s[i] != '\f') {
1 0 if(s[i] != ' ' && s[i] != '\t' && s[i] != '\n' && s[i] != '\r' && s[i] != '\f') {
1 0 if(s[i] != ' ' && s[i] != '\t' && s[i] != '\n' && s[i] != '\r' && s[i] != '\f') {
314 1 0 if(SvIV(get_sv("Math::Decimal128::NNW", 0)))
0 1 if(SvIV(get_sv("Math::Decimal128::NNW", 0)))
321 6 24594 if(*s == '+') s++;
322 88096 24600 for(i = 0; isdigit(s[i]);i++) exponent = (exponent * 10) + (s[i] - '0');
323 120271857 24600 while(exponent > 384) {
333 24597 4 if(s[i] == 0) return result;
334 3 1 if(s[i] != ' ' && s[i] != '\t' && s[i] != '\n' && s[i] != '\r' && s[i] != '\f') {
3 0 if(s[i] != ' ' && s[i] != '\t' && s[i] != '\n' && s[i] != '\r' && s[i] != '\f') {
3 0 if(s[i] != ' ' && s[i] != '\t' && s[i] != '\n' && s[i] != '\r' && s[i] != '\f') {
3 0 if(s[i] != ' ' && s[i] != '\t' && s[i] != '\n' && s[i] != '\r' && s[i] != '\f') {
3 0 if(s[i] != ' ' && s[i] != '\t' && s[i] != '\n' && s[i] != '\r' && s[i] != '\f') {
336 3 0 if(SvIV(get_sv("Math::Decimal128::NNW", 0)))
0 3 if(SvIV(get_sv("Math::Decimal128::NNW", 0)))
346 1782 10 if(s[i] == 0) return result;
347 7 3 if(s[i] != ' ' && s[i] != '\t' && s[i] != '\n' && s[i] != '\r' && s[i] != '\f') {
7 0 if(s[i] != ' ' && s[i] != '\t' && s[i] != '\n' && s[i] != '\r' && s[i] != '\f') {
7 0 if(s[i] != ' ' && s[i] != '\t' && s[i] != '\n' && s[i] != '\r' && s[i] != '\f') {
7 0 if(s[i] != ' ' && s[i] != '\t' && s[i] != '\n' && s[i] != '\r' && s[i] != '\f') {
7 0 if(s[i] != ' ' && s[i] != '\t' && s[i] != '\n' && s[i] != '\r' && s[i] != '\f') {
349 7 0 if(SvIV(get_sv("Math::Decimal128::NNW", 0)))
0 7 if(SvIV(get_sv("Math::Decimal128::NNW", 0)))
361 0 8 if(d128 == NULL) croak("Failed to allocate memory in DEC128_MAX() function");
379 0 9 if(d128 == NULL) croak("Failed to allocate memory in DEC128_MIN() function");
398 0 30 if(d128 == NULL) croak("Failed to allocate memory in NaND128 function");
415 0 18 if(d128 == NULL) croak("Failed to allocate memory in InfD128 function");
432 0 47722 if(d128 == NULL) croak("Failed to allocate memory in ZeroD128 function");
438 23859 23863 if(sign < 0) *d128 *= -1;
450 0 2429 if(d128 == NULL) croak("Failed to allocate memory in UnityD128 function");
457 2426 3 if(sign < 0) *d128 *= -1;
475 0 4868 if(d128 == NULL) croak("Failed to allocate memory in Exp10() function");
481 1804 3064 if(power < 0) {
482 2448 1804 while(power < -1000) {
486 2513 1804 while(power < -100) {
490 11348 1804 while(power < -10) {
494 9865 1804 while(power) {
500 2256 3064 while(power > 1000) {
504 2522 3064 while(power > 100) {
508 14141 3064 while(power > 10) {
512 13924 3064 while(power) {
528 0 0 if(d128 == NULL) croak("Failed to allocate memory in _testvalD128() function");
535 0 0 if(sign < 0) *d128 *= -1;
548 0 2 if(d128 == NULL) croak("Failed to allocate memory in _testvalD128() function");
555 1 1 if(sign < 0) *d128 *= -1;
567 0 0 if(d128 == NULL) croak("Failed to allocate memory in _testvalD128() function");
574 0 0 if(sign < 0) *d128 *= -1;
586 0 0 if(d128 == NULL) croak("Failed to allocate memory in _testvalD128() function");
593 0 0 if(sign < 0) *d128 *= -1;
604 373638 0 int exp = (int)SvIV(exponent), i;
608 0 373638 if(d128 == NULL) croak("Failed to allocate memory in MEtoD128() function");
622 190078 183560 if(exp < 0) {
623 167752184 190078 for(i = 0; i > exp; --i) *d128 *= 1e-1DL;
626 163972140 183560 for(i = 0; i < exp; ++i) *d128 *= 10.DL;
636 11 0 int exp = (int)SvIV(c), i;
650 6 5 if(exp < 0) {
651 9 6 for(i = 0; i > exp; --i) *(INT2PTR(D128 *, M_D128_SvIV(SvRV(a)))) *= 1e-1DL;
654 14802 5 for(i = 0; i < exp; ++i) *(INT2PTR(D128 *, M_D128_SvIV(SvRV(a)))) *= 10.DL;
664 0 65 if(d128 == NULL) croak("Failed to allocate memory in NVtoD128 function");
669 62 3 *d128 = (D128)SvNV(x);
682 0 17 if(d128 == NULL) croak("Failed to allocate memory in UVtoD128 function");
687 16 1 *d128 = (D128)SvUV(x);
700 0 18 if(d128 == NULL) croak("Failed to allocate memory in IVtoD128 function");
705 18 0 *d128 = (D128)SvIV(x);
717 0 23800 if(d128 == NULL) croak("Failed to allocate memory in PVtoD128 function");
769 2 0 if(sv_isobject(a)) {
770 2 0 const char * h = HvNAME(SvSTASH(SvRV(a)));
2 0 const char * h = HvNAME(SvSTASH(SvRV(a)));
0 2 const char * h = HvNAME(SvSTASH(SvRV(a)));
0 0 const char * h = HvNAME(SvSTASH(SvRV(a)));
2 0 const char * h = HvNAME(SvSTASH(SvRV(a)));
0 2 const char * h = HvNAME(SvSTASH(SvRV(a)));
771 2 0 if(strEQ(h, "Math::Decimal128")) {
772 2 0 *(INT2PTR(D128 *, M_D128_SvIV(SvRV(a)))) = (D128)SvIV(val);
782 1 0 if(sv_isobject(a)) {
783 1 0 const char * h = HvNAME(SvSTASH(SvRV(a)));
1 0 const char * h = HvNAME(SvSTASH(SvRV(a)));
0 1 const char * h = HvNAME(SvSTASH(SvRV(a)));
0 0 const char * h = HvNAME(SvSTASH(SvRV(a)));
1 0 const char * h = HvNAME(SvSTASH(SvRV(a)));
0 1 const char * h = HvNAME(SvSTASH(SvRV(a)));
784 1 0 if(strEQ(h, "Math::Decimal128")) {
785 0 1 *(INT2PTR(D128 *, M_D128_SvIV(SvRV(a)))) = (D128)SvUV(val);
795 2 0 if(sv_isobject(a)) {
796 2 0 const char * h = HvNAME(SvSTASH(SvRV(a)));
2 0 const char * h = HvNAME(SvSTASH(SvRV(a)));
0 2 const char * h = HvNAME(SvSTASH(SvRV(a)));
0 0 const char * h = HvNAME(SvSTASH(SvRV(a)));
2 0 const char * h = HvNAME(SvSTASH(SvRV(a)));
0 2 const char * h = HvNAME(SvSTASH(SvRV(a)));
797 2 0 if(strEQ(h, "Math::Decimal128")) {
798 2 0 *(INT2PTR(D128 *, M_D128_SvIV(SvRV(a)))) = (D128)SvNV(val);
812 1 0 if(sv_isobject(a) && sv_isobject(val)) {
1 0 if(sv_isobject(a) && sv_isobject(val)) {
813 1 0 const char * h = HvNAME(SvSTASH(SvRV(a)));
1 0 const char * h = HvNAME(SvSTASH(SvRV(a)));
0 1 const char * h = HvNAME(SvSTASH(SvRV(a)));
0 0 const char * h = HvNAME(SvSTASH(SvRV(a)));
1 0 const char * h = HvNAME(SvSTASH(SvRV(a)));
0 1 const char * h = HvNAME(SvSTASH(SvRV(a)));
814 1 0 const char * hh = HvNAME(SvSTASH(SvRV(val)));
1 0 const char * hh = HvNAME(SvSTASH(SvRV(val)));
0 1 const char * hh = HvNAME(SvSTASH(SvRV(val)));
0 0 const char * hh = HvNAME(SvSTASH(SvRV(val)));
1 0 const char * hh = HvNAME(SvSTASH(SvRV(val)));
0 1 const char * hh = HvNAME(SvSTASH(SvRV(val)));
815 1 0 if(strEQ(h, "Math::Decimal128") && strEQ(hh, "Math::Decimal128")) {
1 0 if(strEQ(h, "Math::Decimal128") && strEQ(hh, "Math::Decimal128")) {
826 2 0 if(sv_isobject(a)) {
827 2 0 const char * h = HvNAME(SvSTASH(SvRV(a)));
2 0 const char * h = HvNAME(SvSTASH(SvRV(a)));
0 2 const char * h = HvNAME(SvSTASH(SvRV(a)));
0 0 const char * h = HvNAME(SvSTASH(SvRV(a)));
2 0 const char * h = HvNAME(SvSTASH(SvRV(a)));
0 2 const char * h = HvNAME(SvSTASH(SvRV(a)));
828 2 0 if(strEQ(h, "Math::Decimal128")) {
838 4 0 if(sv_isobject(a)) {
839 4 0 const char * h = HvNAME(SvSTASH(SvRV(a)));
4 0 const char * h = HvNAME(SvSTASH(SvRV(a)));
0 4 const char * h = HvNAME(SvSTASH(SvRV(a)));
0 0 const char * h = HvNAME(SvSTASH(SvRV(a)));
4 0 const char * h = HvNAME(SvSTASH(SvRV(a)));
0 4 const char * h = HvNAME(SvSTASH(SvRV(a)));
840 4 0 if(strEQ(h, "Math::Decimal128")) {
854 0 41 if(d128 == NULL) croak("Failed to allocate memory in _overload_add function");
862 0 41 if(SvUOK(b)) {
867 3 38 if(SvIOK(b)) {
872 17 21 if(SvPOK(b) && !SvNOK(b)) {
17 0 if(SvPOK(b) && !SvNOK(b)) {
873 17 0 *d128 = *(INT2PTR(D128 *, M_D128_SvIV(SvRV(a)))) + _atodecimal(aTHX_ SvPV_nolen(b));
877 21 0 if(sv_isobject(b)) {
878 21 0 const char *h = HvNAME(SvSTASH(SvRV(b)));
21 0 const char *h = HvNAME(SvSTASH(SvRV(b)));
0 21 const char *h = HvNAME(SvSTASH(SvRV(b)));
0 0 const char *h = HvNAME(SvSTASH(SvRV(b)));
21 0 const char *h = HvNAME(SvSTASH(SvRV(b)));
0 21 const char *h = HvNAME(SvSTASH(SvRV(b)));
879 21 0 if(strEQ(h, "Math::Decimal128")) {
894 0 2502 if(d128 == NULL) croak("Failed to allocate memory in _overload_mul function");
902 3 2499 if(SvUOK(b)) {
907 65 2434 if(SvIOK(b)) {
912 1 2433 if(SvPOK(b) && !SvNOK(b)) {
1 0 if(SvPOK(b) && !SvNOK(b)) {
913 1 0 *d128 = *(INT2PTR(D128 *, M_D128_SvIV(SvRV(a)))) * _atodecimal(aTHX_ SvPV_nolen(b));
917 2433 0 if(sv_isobject(b)) {
918 2433 0 const char *h = HvNAME(SvSTASH(SvRV(b)));
2433 0 const char *h = HvNAME(SvSTASH(SvRV(b)));
0 2433 const char *h = HvNAME(SvSTASH(SvRV(b)));
0 0 const char *h = HvNAME(SvSTASH(SvRV(b)));
2433 0 const char *h = HvNAME(SvSTASH(SvRV(b)));
0 2433 const char *h = HvNAME(SvSTASH(SvRV(b)));
919 2433 0 if(strEQ(h, "Math::Decimal128")) {
934 0 34 if(d128 == NULL) croak("Failed to allocate memory in _overload_sub function");
942 0 34 if(SvUOK(b)) {
943 0 0 if(third == &PL_sv_yes) *d128 = (D128)M_D128_SvUV(b) - *(INT2PTR(D128 *, M_D128_SvIV(SvRV(a))));
948 4 30 if(SvIOK(b)) {
949 1 3 if(third == &PL_sv_yes) *d128 = (D128)M_D128_SvIV(b) - *(INT2PTR(D128 *, M_D128_SvIV(SvRV(a))));
954 14 16 if(SvPOK(b) && !SvNOK(b)) {
14 0 if(SvPOK(b) && !SvNOK(b)) {
955 0 14 if(third == &PL_sv_yes) *d128 = _atodecimal(aTHX_ SvPV_nolen(b)) - *(INT2PTR(D128 *, M_D128_SvIV(SvRV(a))));
0 0 if(third == &PL_sv_yes) *d128 = _atodecimal(aTHX_ SvPV_nolen(b)) - *(INT2PTR(D128 *, M_D128_SvIV(SvRV(a))));
956 14 0 else *d128 = *(INT2PTR(D128 *, M_D128_SvIV(SvRV(a)))) - _atodecimal(aTHX_ SvPV_nolen(b));
960 16 0 if(sv_isobject(b)) {
961 16 0 const char *h = HvNAME(SvSTASH(SvRV(b)));
16 0 const char *h = HvNAME(SvSTASH(SvRV(b)));
0 16 const char *h = HvNAME(SvSTASH(SvRV(b)));
0 0 const char *h = HvNAME(SvSTASH(SvRV(b)));
16 0 const char *h = HvNAME(SvSTASH(SvRV(b)));
0 16 const char *h = HvNAME(SvSTASH(SvRV(b)));
962 16 0 if(strEQ(h, "Math::Decimal128")) {
983 0 4 if(d128 == NULL) croak("Failed to allocate memory in _overload_sub function");
1001 0 28 if(d128 == NULL) croak("Failed to allocate memory in _overload_div function");
1009 0 28 if(SvUOK(b)) {
1010 0 0 if(third == &PL_sv_yes) *d128 = (D128)M_D128_SvUV(b) / *(INT2PTR(D128 *, M_D128_SvIV(SvRV(a))));
1015 1 27 if(SvIOK(b)) {
1016 1 0 if(third == &PL_sv_yes) *d128 = (D128)M_D128_SvIV(b) / *(INT2PTR(D128 *, M_D128_SvIV(SvRV(a))));
1021 1 26 if(SvPOK(b) && !SvNOK(b)) {
1 0 if(SvPOK(b) && !SvNOK(b)) {
1022 0 1 if(third == &PL_sv_yes) *d128 = _atodecimal(aTHX_ SvPV_nolen(b)) / *(INT2PTR(D128 *, M_D128_SvIV(SvRV(a))));
0 0 if(third == &PL_sv_yes) *d128 = _atodecimal(aTHX_ SvPV_nolen(b)) / *(INT2PTR(D128 *, M_D128_SvIV(SvRV(a))));
1023 1 0 else *d128 = *(INT2PTR(D128 *, M_D128_SvIV(SvRV(a)))) / _atodecimal(aTHX_ SvPV_nolen(b));
1027 26 0 if(sv_isobject(b)) {
1028 26 0 const char *h = HvNAME(SvSTASH(SvRV(b)));
26 0 const char *h = HvNAME(SvSTASH(SvRV(b)));
0 26 const char *h = HvNAME(SvSTASH(SvRV(b)));
0 0 const char *h = HvNAME(SvSTASH(SvRV(b)));
26 0 const char *h = HvNAME(SvSTASH(SvRV(b)));
0 26 const char *h = HvNAME(SvSTASH(SvRV(b)));
1029 26 0 if(strEQ(h, "Math::Decimal128")) {
1042 0 103 if(SvUOK(b)) {
1046 1 102 if(SvIOK(b)) {
1051 1 101 if(SvPOK(b) && !SvNOK(b)) {
1 0 if(SvPOK(b) && !SvNOK(b)) {
1052 1 0 *(INT2PTR(D128 *, M_D128_SvIV(SvRV(a)))) += _atodecimal(aTHX_ SvPV_nolen(b));
1056 101 0 if(sv_isobject(b)) {
1057 101 0 const char *h = HvNAME(SvSTASH(SvRV(b)));
101 0 const char *h = HvNAME(SvSTASH(SvRV(b)));
0 101 const char *h = HvNAME(SvSTASH(SvRV(b)));
0 0 const char *h = HvNAME(SvSTASH(SvRV(b)));
101 0 const char *h = HvNAME(SvSTASH(SvRV(b)));
0 101 const char *h = HvNAME(SvSTASH(SvRV(b)));
1058 101 0 if(strEQ(h, "Math::Decimal128")) {
1073 0 4878 if(SvUOK(b)) {
1077 7 4871 if(SvIOK(b)) {
1082 1 4870 if(SvPOK(b) && !SvNOK(b)) {
1 0 if(SvPOK(b) && !SvNOK(b)) {
1083 1 0 *(INT2PTR(D128 *, M_D128_SvIV(SvRV(a)))) *= _atodecimal(aTHX_ SvPV_nolen(b));
1087 4870 0 if(sv_isobject(b)) {
1088 4870 0 const char *h = HvNAME(SvSTASH(SvRV(b)));
4870 0 const char *h = HvNAME(SvSTASH(SvRV(b)));
0 4870 const char *h = HvNAME(SvSTASH(SvRV(b)));
0 0 const char *h = HvNAME(SvSTASH(SvRV(b)));
4870 0 const char *h = HvNAME(SvSTASH(SvRV(b)));
0 4870 const char *h = HvNAME(SvSTASH(SvRV(b)));
1089 4870 0 if(strEQ(h, "Math::Decimal128")) {
1104 0 7368192 if(SvUOK(b)) {
1108 2 7368190 if(SvIOK(b)) {
1113 1 7368189 if(SvPOK(b) && !SvNOK(b)) {
1 0 if(SvPOK(b) && !SvNOK(b)) {
1114 1 0 *(INT2PTR(D128 *, M_D128_SvIV(SvRV(a)))) -= _atodecimal(aTHX_ SvPV_nolen(b));
1118 7368189 0 if(sv_isobject(b)) {
1119 7368189 0 const char *h = HvNAME(SvSTASH(SvRV(b)));
7368189 0 const char *h = HvNAME(SvSTASH(SvRV(b)));
0 7368189 const char *h = HvNAME(SvSTASH(SvRV(b)));
0 0 const char *h = HvNAME(SvSTASH(SvRV(b)));
7368189 0 const char *h = HvNAME(SvSTASH(SvRV(b)));
0 7368189 const char *h = HvNAME(SvSTASH(SvRV(b)));
1120 7368189 0 if(strEQ(h, "Math::Decimal128")) {
1135 0 22 if(SvUOK(b)) {
1139 4 18 if(SvIOK(b)) {
1144 1 17 if(SvPOK(b) && !SvNOK(b)) {
1 0 if(SvPOK(b) && !SvNOK(b)) {
1145 1 0 *(INT2PTR(D128 *, M_D128_SvIV(SvRV(a)))) /= _atodecimal(aTHX_ SvPV_nolen(b));
1149 17 0 if(sv_isobject(b)) {
1150 17 0 const char *h = HvNAME(SvSTASH(SvRV(b)));
17 0 const char *h = HvNAME(SvSTASH(SvRV(b)));
0 17 const char *h = HvNAME(SvSTASH(SvRV(b)));
0 0 const char *h = HvNAME(SvSTASH(SvRV(b)));
17 0 const char *h = HvNAME(SvSTASH(SvRV(b)));
0 17 const char *h = HvNAME(SvSTASH(SvRV(b)));
1151 17 0 if(strEQ(h, "Math::Decimal128")) {
1164 1 122 if(SvUOK(b)) {
1165 1 0 if(*(INT2PTR(D128 *, M_D128_SvIV(SvRV(a)))) == (D128)M_D128_SvUV(b)) return newSViv(1);
1169 4 118 if(SvIOK(b)) {
1170 4 0 if(*(INT2PTR(D128 *, M_D128_SvIV(SvRV(a)))) == (D128)M_D128_SvIV(b)) return newSViv(1);
1174 9 109 if(SvPOK(b) && !SvNOK(b)) {
9 0 if(SvPOK(b) && !SvNOK(b)) {
1175 9 0 if(*(INT2PTR(D128 *, M_D128_SvIV(SvRV(a)))) == _atodecimal(aTHX_ SvPV_nolen(b))) return newSViv(1);
9 0 if(*(INT2PTR(D128 *, M_D128_SvIV(SvRV(a)))) == _atodecimal(aTHX_ SvPV_nolen(b))) return newSViv(1);
1179 108 1 if(sv_isobject(b)) {
1180 108 0 const char *h = HvNAME(SvSTASH(SvRV(b)));
108 0 const char *h = HvNAME(SvSTASH(SvRV(b)));
0 108 const char *h = HvNAME(SvSTASH(SvRV(b)));
0 0 const char *h = HvNAME(SvSTASH(SvRV(b)));
108 0 const char *h = HvNAME(SvSTASH(SvRV(b)));
0 108 const char *h = HvNAME(SvSTASH(SvRV(b)));
1181 108 0 if(strEQ(h, "Math::Decimal128")) {
1182 103 5 if(*(INT2PTR(D128 *, M_D128_SvIV(SvRV(a)))) == *(INT2PTR(D128 *, M_D128_SvIV(SvRV(b))))) return newSViv(1);
1192 1 232102 if(SvUOK(b)) {
1193 1 0 if(*(INT2PTR(D128 *, M_D128_SvIV(SvRV(a)))) != (D128)M_D128_SvUV(b)) return newSViv(1);
1197 1 232101 if(SvIOK(b)) {
1198 1 0 if(*(INT2PTR(D128 *, M_D128_SvIV(SvRV(a)))) != (D128)M_D128_SvIV(b)) return newSViv(1);
1202 3 232098 if(SvPOK(b) && !SvNOK(b)) {
3 0 if(SvPOK(b) && !SvNOK(b)) {
1203 3 0 if(*(INT2PTR(D128 *, M_D128_SvIV(SvRV(a)))) != _atodecimal(aTHX_ SvPV_nolen(b))) return newSViv(1);
3 0 if(*(INT2PTR(D128 *, M_D128_SvIV(SvRV(a)))) != _atodecimal(aTHX_ SvPV_nolen(b))) return newSViv(1);
1207 232098 0 if(sv_isobject(b)) {
1208 232098 0 const char *h = HvNAME(SvSTASH(SvRV(b)));
232098 0 const char *h = HvNAME(SvSTASH(SvRV(b)));
0 232098 const char *h = HvNAME(SvSTASH(SvRV(b)));
0 0 const char *h = HvNAME(SvSTASH(SvRV(b)));
232098 0 const char *h = HvNAME(SvSTASH(SvRV(b)));
0 232098 const char *h = HvNAME(SvSTASH(SvRV(b)));
1209 232098 0 if(strEQ(h, "Math::Decimal128")) {
1210 232079 19 if(*(INT2PTR(D128 *, M_D128_SvIV(SvRV(a)))) == *(INT2PTR(D128 *, M_D128_SvIV(SvRV(b))))) return newSViv(0);
1220 2 23873 if(SvUOK(b)) {
1221 1 1 if(third == &PL_sv_yes) {
1222 1 0 if(*(INT2PTR(D128 *, M_D128_SvIV(SvRV(a)))) > (D128)M_D128_SvUV(b)) return newSViv(1);
1225 1 0 if(*(INT2PTR(D128 *, M_D128_SvIV(SvRV(a)))) < (D128)M_D128_SvUV(b)) return newSViv(1);
1229 2 23871 if(SvIOK(b)) {
1230 1 1 if(third == &PL_sv_yes) {
1231 1 0 if(*(INT2PTR(D128 *, M_D128_SvIV(SvRV(a)))) > (D128)M_D128_SvIV(b)) return newSViv(1);
1234 1 0 if(*(INT2PTR(D128 *, M_D128_SvIV(SvRV(a)))) < (D128)M_D128_SvIV(b)) return newSViv(1);
1238 3 23868 if(SvPOK(b) && !SvNOK(b)) {
3 0 if(SvPOK(b) && !SvNOK(b)) {
1239 1 2 if(third == &PL_sv_yes) {
1240 1 0 if(*(INT2PTR(D128 *, M_D128_SvIV(SvRV(a)))) > _atodecimal(aTHX_ SvPV_nolen(b))) return newSViv(1);
1 0 if(*(INT2PTR(D128 *, M_D128_SvIV(SvRV(a)))) > _atodecimal(aTHX_ SvPV_nolen(b))) return newSViv(1);
1243 2 0 if(*(INT2PTR(D128 *, M_D128_SvIV(SvRV(a)))) < _atodecimal(aTHX_ SvPV_nolen(b))) return newSViv(1);
2 0 if(*(INT2PTR(D128 *, M_D128_SvIV(SvRV(a)))) < _atodecimal(aTHX_ SvPV_nolen(b))) return newSViv(1);
1247 23867 1 if(sv_isobject(b)) {
1248 23867 0 const char *h = HvNAME(SvSTASH(SvRV(b)));
23867 0 const char *h = HvNAME(SvSTASH(SvRV(b)));
0 23867 const char *h = HvNAME(SvSTASH(SvRV(b)));
0 0 const char *h = HvNAME(SvSTASH(SvRV(b)));
23867 0 const char *h = HvNAME(SvSTASH(SvRV(b)));
0 23867 const char *h = HvNAME(SvSTASH(SvRV(b)));
1249 23867 0 if(strEQ(h, "Math::Decimal128")) {
1250 23865 2 if(*(INT2PTR(D128 *, M_D128_SvIV(SvRV(a)))) < *(INT2PTR(D128 *, M_D128_SvIV(SvRV(b))))) return newSViv(1);
1260 2 6444818 if(SvUOK(b)) {
1261 1 1 if(third == &PL_sv_yes) {
1262 1 0 if(*(INT2PTR(D128 *, M_D128_SvIV(SvRV(a)))) < (D128)M_D128_SvUV(b)) return newSViv(1);
1265 1 0 if(*(INT2PTR(D128 *, M_D128_SvIV(SvRV(a)))) > (D128)M_D128_SvUV(b)) return newSViv(1);
1269 6444804 14 if(SvIOK(b)) {
1270 1 6444803 if(third == &PL_sv_yes) {
1271 1 0 if(*(INT2PTR(D128 *, M_D128_SvIV(SvRV(a)))) < (D128)M_D128_SvIV(b)) return newSViv(1);
1274 4179346 2265457 if(*(INT2PTR(D128 *, M_D128_SvIV(SvRV(a)))) > (D128)M_D128_SvIV(b)) return newSViv(1);
1278 4 10 if(SvPOK(b) && !SvNOK(b)) {
4 0 if(SvPOK(b) && !SvNOK(b)) {
1279 1 3 if(third == &PL_sv_yes) {
1280 1 0 if(*(INT2PTR(D128 *, M_D128_SvIV(SvRV(a)))) < _atodecimal(aTHX_ SvPV_nolen(b))) return newSViv(1);
1 0 if(*(INT2PTR(D128 *, M_D128_SvIV(SvRV(a)))) < _atodecimal(aTHX_ SvPV_nolen(b))) return newSViv(1);
1283 3 0 if(*(INT2PTR(D128 *, M_D128_SvIV(SvRV(a)))) > _atodecimal(aTHX_ SvPV_nolen(b))) return newSViv(1);
3 0 if(*(INT2PTR(D128 *, M_D128_SvIV(SvRV(a)))) > _atodecimal(aTHX_ SvPV_nolen(b))) return newSViv(1);
1287 9 1 if(sv_isobject(b)) {
1288 9 0 const char *h = HvNAME(SvSTASH(SvRV(b)));
9 0 const char *h = HvNAME(SvSTASH(SvRV(b)));
0 9 const char *h = HvNAME(SvSTASH(SvRV(b)));
0 0 const char *h = HvNAME(SvSTASH(SvRV(b)));
9 0 const char *h = HvNAME(SvSTASH(SvRV(b)));
0 9 const char *h = HvNAME(SvSTASH(SvRV(b)));
1289 9 0 if(strEQ(h, "Math::Decimal128")) {
1290 8 1 if(*(INT2PTR(D128 *, M_D128_SvIV(SvRV(a)))) > *(INT2PTR(D128 *, M_D128_SvIV(SvRV(b))))) return newSViv(1);
1300 3 21 if(SvUOK(b)) {
1301 2 1 if(third == &PL_sv_yes) {
1302 2 0 if(*(INT2PTR(D128 *, M_D128_SvIV(SvRV(a)))) >= (D128)M_D128_SvUV(b)) return newSViv(1);
1305 1 0 if(*(INT2PTR(D128 *, M_D128_SvIV(SvRV(a)))) <= (D128)M_D128_SvUV(b)) return newSViv(1);
1309 3 18 if(SvIOK(b)) {
1310 2 1 if(third == &PL_sv_yes) {
1311 2 0 if(*(INT2PTR(D128 *, M_D128_SvIV(SvRV(a)))) >= (D128)M_D128_SvIV(b)) return newSViv(1);
1314 1 0 if(*(INT2PTR(D128 *, M_D128_SvIV(SvRV(a)))) <= (D128)M_D128_SvIV(b)) return newSViv(1);
1318 4 14 if(SvPOK(b) && !SvNOK(b)) {
4 0 if(SvPOK(b) && !SvNOK(b)) {
1319 2 2 if(third == &PL_sv_yes) {
1320 2 0 if(*(INT2PTR(D128 *, M_D128_SvIV(SvRV(a)))) >= _atodecimal(aTHX_ SvPV_nolen(b))) return newSViv(1);
2 0 if(*(INT2PTR(D128 *, M_D128_SvIV(SvRV(a)))) >= _atodecimal(aTHX_ SvPV_nolen(b))) return newSViv(1);
1323 2 0 if(*(INT2PTR(D128 *, M_D128_SvIV(SvRV(a)))) <= _atodecimal(aTHX_ SvPV_nolen(b))) return newSViv(1);
2 0 if(*(INT2PTR(D128 *, M_D128_SvIV(SvRV(a)))) <= _atodecimal(aTHX_ SvPV_nolen(b))) return newSViv(1);
1327 13 1 if(sv_isobject(b)) {
1328 13 0 const char *h = HvNAME(SvSTASH(SvRV(b)));
13 0 const char *h = HvNAME(SvSTASH(SvRV(b)));
0 13 const char *h = HvNAME(SvSTASH(SvRV(b)));
0 0 const char *h = HvNAME(SvSTASH(SvRV(b)));
13 0 const char *h = HvNAME(SvSTASH(SvRV(b)));
0 13 const char *h = HvNAME(SvSTASH(SvRV(b)));
1329 13 0 if(strEQ(h, "Math::Decimal128")) {
1330 12 1 if(*(INT2PTR(D128 *, M_D128_SvIV(SvRV(a)))) <= *(INT2PTR(D128 *, M_D128_SvIV(SvRV(b))))) return newSViv(1);
1340 3 11547553 if(SvUOK(b)) {
1341 2 1 if(third == &PL_sv_yes) {
1342 2 0 if(*(INT2PTR(D128 *, M_D128_SvIV(SvRV(a)))) <= (D128)M_D128_SvUV(b)) return newSViv(1);
1345 1 0 if(*(INT2PTR(D128 *, M_D128_SvIV(SvRV(a)))) >= (D128)M_D128_SvUV(b)) return newSViv(1);
1349 3 11547550 if(SvIOK(b)) {
1350 2 1 if(third == &PL_sv_yes) {
1351 2 0 if(*(INT2PTR(D128 *, M_D128_SvIV(SvRV(a)))) <= (D128)M_D128_SvIV(b)) return newSViv(1);
1354 1 0 if(*(INT2PTR(D128 *, M_D128_SvIV(SvRV(a)))) >= (D128)M_D128_SvIV(b)) return newSViv(1);
1358 4 11547546 if(SvPOK(b) && !SvNOK(b)) {
4 0 if(SvPOK(b) && !SvNOK(b)) {
1359 2 2 if(third == &PL_sv_yes) {
1360 2 0 if(*(INT2PTR(D128 *, M_D128_SvIV(SvRV(a)))) <= _atodecimal(aTHX_ SvPV_nolen(b))) return newSViv(1);
2 0 if(*(INT2PTR(D128 *, M_D128_SvIV(SvRV(a)))) <= _atodecimal(aTHX_ SvPV_nolen(b))) return newSViv(1);
1363 2 0 if(*(INT2PTR(D128 *, M_D128_SvIV(SvRV(a)))) >= _atodecimal(aTHX_ SvPV_nolen(b))) return newSViv(1);
2 0 if(*(INT2PTR(D128 *, M_D128_SvIV(SvRV(a)))) >= _atodecimal(aTHX_ SvPV_nolen(b))) return newSViv(1);
1367 11547545 1 if(sv_isobject(b)) {
1368 11547545 0 const char *h = HvNAME(SvSTASH(SvRV(b)));
11547545 0 const char *h = HvNAME(SvSTASH(SvRV(b)));
0 11547545 const char *h = HvNAME(SvSTASH(SvRV(b)));
0 0 const char *h = HvNAME(SvSTASH(SvRV(b)));
11547545 0 const char *h = HvNAME(SvSTASH(SvRV(b)));
0 11547545 const char *h = HvNAME(SvSTASH(SvRV(b)));
1369 11547545 0 if(strEQ(h, "Math::Decimal128")) {
1370 7368199 4179346 if(*(INT2PTR(D128 *, M_D128_SvIV(SvRV(a)))) >= *(INT2PTR(D128 *, M_D128_SvIV(SvRV(b))))) return newSViv(1);
1380 15 32 if(third == &PL_sv_yes) reversal = -1;
1382 9 38 if(SvUOK(b)) {
1383 2 7 if(*(INT2PTR(D128 *, M_D128_SvIV(SvRV(a)))) > (D128)M_D128_SvUV(b)) return newSViv( 1 * reversal);
1384 2 5 if(*(INT2PTR(D128 *, M_D128_SvIV(SvRV(a)))) < (D128)M_D128_SvUV(b)) return newSViv(-1 * reversal);
1385 3 2 if(*(INT2PTR(D128 *, M_D128_SvIV(SvRV(a)))) == (D128)M_D128_SvUV(b)) return newSViv(0);
1389 9 29 if(SvIOK(b)) {
1390 2 7 if(*(INT2PTR(D128 *, M_D128_SvIV(SvRV(a)))) > (D128)M_D128_SvIV(b)) return newSViv( 1 * reversal);
1391 2 5 if(*(INT2PTR(D128 *, M_D128_SvIV(SvRV(a)))) < (D128)M_D128_SvIV(b)) return newSViv(-1 * reversal);
1392 3 2 if(*(INT2PTR(D128 *, M_D128_SvIV(SvRV(a)))) == (D128)M_D128_SvIV(b)) return newSViv(0);
1396 9 20 if(SvPOK(b) && !SvNOK(b)) {
9 0 if(SvPOK(b) && !SvNOK(b)) {
1397 9 0 if(*(INT2PTR(D128 *, M_D128_SvIV(SvRV(a)))) > _atodecimal(aTHX_ SvPV_nolen(b))) return newSViv( 1 * reversal);
2 7 if(*(INT2PTR(D128 *, M_D128_SvIV(SvRV(a)))) > _atodecimal(aTHX_ SvPV_nolen(b))) return newSViv( 1 * reversal);
1398 7 0 if(*(INT2PTR(D128 *, M_D128_SvIV(SvRV(a)))) < _atodecimal(aTHX_ SvPV_nolen(b))) return newSViv(-1 * reversal);
2 5 if(*(INT2PTR(D128 *, M_D128_SvIV(SvRV(a)))) < _atodecimal(aTHX_ SvPV_nolen(b))) return newSViv(-1 * reversal);
1399 5 0 if(*(INT2PTR(D128 *, M_D128_SvIV(SvRV(a)))) == _atodecimal(aTHX_ SvPV_nolen(b))) return newSViv(0);
3 2 if(*(INT2PTR(D128 *, M_D128_SvIV(SvRV(a)))) == _atodecimal(aTHX_ SvPV_nolen(b))) return newSViv(0);
1403 19 1 if(sv_isobject(b)) {
1404 19 0 const char *h = HvNAME(SvSTASH(SvRV(b)));
19 0 const char *h = HvNAME(SvSTASH(SvRV(b)));
0 19 const char *h = HvNAME(SvSTASH(SvRV(b)));
0 0 const char *h = HvNAME(SvSTASH(SvRV(b)));
19 0 const char *h = HvNAME(SvSTASH(SvRV(b)));
0 19 const char *h = HvNAME(SvSTASH(SvRV(b)));
1405 19 0 if(strEQ(h, "Math::Decimal128")) {
1406 4 15 if(*(INT2PTR(D128 *, M_D128_SvIV(SvRV(a)))) < *(INT2PTR(D128 *, M_D128_SvIV(SvRV(b))))) return newSViv(-1 * reversal);
1407 4 11 if(*(INT2PTR(D128 *, M_D128_SvIV(SvRV(a)))) > *(INT2PTR(D128 *, M_D128_SvIV(SvRV(b))))) return newSViv( 1 * reversal);
1408 6 5 if(*(INT2PTR(D128 *, M_D128_SvIV(SvRV(a)))) == *(INT2PTR(D128 *, M_D128_SvIV(SvRV(b))))) return newSViv(0);
1422 0 188597 if(d128 == NULL) croak("Failed to allocate memory in _overload_copy function");
1437 25 0 if(sv_isobject(a)) {
1438 25 0 const char *h = HvNAME(SvSTASH(SvRV(a)));
25 0 const char *h = HvNAME(SvSTASH(SvRV(a)));
0 25 const char *h = HvNAME(SvSTASH(SvRV(a)));
0 0 const char *h = HvNAME(SvSTASH(SvRV(a)));
25 0 const char *h = HvNAME(SvSTASH(SvRV(a)));
0 25 const char *h = HvNAME(SvSTASH(SvRV(a)));
1439 25 0 if(strEQ(h, "Math::Decimal128")) {
1442 0 25 if(d128 == NULL) croak("Failed to allocate memory in D128toD128 function");
1459 2 4 if(_is_nan(*(INT2PTR(D128 *, M_D128_SvIV(SvRV(a)))))) return newSViv(0);
1460 3 1 if(*(INT2PTR(D128 *, M_D128_SvIV(SvRV(a)))) != 0.DL) return newSViv(1);
1465 1 63 if(_is_nan(*(INT2PTR(D128 *, M_D128_SvIV(SvRV(a)))))) return newSViv(1);
1466 49 14 if(*(INT2PTR(D128 *, M_D128_SvIV(SvRV(a)))) != 0.DL) return newSViv(0);
1476 0 2 if(d128 == NULL) croak("Failed to allocate memory in _overload_abs function");
1485 1 1 if(_is_neg_zero(*d128) || *d128 < 0 ) *d128 *= -1.DL;
1 0 if(_is_neg_zero(*d128) || *d128 < 0 ) *d128 *= -1.DL;
1502 14 135 if(SvUOK(a)) return newSVuv(1);
1503 16 119 if(SvIOK(a)) return newSVuv(2);
1504 4 115 if(SvNOK(a)) return newSVuv(3);
1505 74 41 if(SvPOK(a)) return newSVuv(4);
1506 41 0 if(sv_isobject(a)) {
1507 41 0 const char *h = HvNAME(SvSTASH(SvRV(a)));
41 0 const char *h = HvNAME(SvSTASH(SvRV(a)));
0 41 const char *h = HvNAME(SvSTASH(SvRV(a)));
0 0 const char *h = HvNAME(SvSTASH(SvRV(a)));
41 0 const char *h = HvNAME(SvSTASH(SvRV(a)));
0 41 const char *h = HvNAME(SvSTASH(SvRV(a)));
1508 37 4 if(strEQ(h, "Math::Decimal128")) return newSVuv(34);
1514 49495 0 if(sv_isobject(b)) {
1515 49495 0 const char *h = HvNAME(SvSTASH(SvRV(b)));
49495 0 const char *h = HvNAME(SvSTASH(SvRV(b)));
0 49495 const char *h = HvNAME(SvSTASH(SvRV(b)));
0 0 const char *h = HvNAME(SvSTASH(SvRV(b)));
49495 0 const char *h = HvNAME(SvSTASH(SvRV(b)));
0 49495 const char *h = HvNAME(SvSTASH(SvRV(b)));
1516 49495 0 if(strEQ(h, "Math::Decimal128"))
1523 49574 0 if(sv_isobject(b)) {
1524 49574 0 const char *h = HvNAME(SvSTASH(SvRV(b)));
49574 0 const char *h = HvNAME(SvSTASH(SvRV(b)));
0 49574 const char *h = HvNAME(SvSTASH(SvRV(b)));
0 0 const char *h = HvNAME(SvSTASH(SvRV(b)));
49574 0 const char *h = HvNAME(SvSTASH(SvRV(b)));
0 49574 const char *h = HvNAME(SvSTASH(SvRV(b)));
1525 49574 0 if(strEQ(h, "Math::Decimal128"))
1532 227634 0 if(sv_isobject(b)) {
1533 227634 0 const char *h = HvNAME(SvSTASH(SvRV(b)));
227634 0 const char *h = HvNAME(SvSTASH(SvRV(b)));
0 227634 const char *h = HvNAME(SvSTASH(SvRV(b)));
0 0 const char *h = HvNAME(SvSTASH(SvRV(b)));
227634 0 const char *h = HvNAME(SvSTASH(SvRV(b)));
0 227634 const char *h = HvNAME(SvSTASH(SvRV(b)));
1534 227634 0 if(strEQ(h, "Math::Decimal128"))
1535 719 226915 if (_is_neg_zero(*(INT2PTR(D128 *, M_D128_SvIV(SvRV(b)))))) return newSViv(-1);
1536 564 226351 if (*(INT2PTR(D128 *, M_D128_SvIV(SvRV(b)))) == 0.DL) return newSViv(1);
1562 3190224 199389 for (i = n - 1; i >= 0; i--) {
1566 0 3190224 XPUSHs(sv_2mortal(newSVpv(buff, 0)));
1581 0 184691 if(d128 == NULL) croak("Failed to allocate memory in _bid_mant function");
1583 21054774 184691 for(i = 0; i <= imax; i++)
1584 0 21054774 if(SvIV(*(av_fetch((AV*)SvRV(bin), i, 0)))) val += add_on[i];
5095027 15959747 if(SvIV(*(av_fetch((AV*)SvRV(bin), i, 0)))) val += add_on[i];
1590 0 184691 if(val > 9999999999999999999999999999999999e0DL) val = 0.DL;
1620 0 6 if(d128 == NULL) croak("Failed to allocate memory in DPDtoD128 function");
1625 96 6 for (i = n - 1; i >= 0; i--)
1648 96 6 for (i = n - 1; i >= 0; i--)
1655 6 0 *(INT2PTR(D128 *, SvIV(SvRV(a)))) = out;
1672 0 0 if(looks_like_number(x)) return 1;
1800 11 0 if (PL_markstack_ptr != temp) {
1862 828554 0 if (PL_markstack_ptr != temp) {
1879 2 0 if (PL_markstack_ptr != temp) {
1896 1 0 if (PL_markstack_ptr != temp) {
1913 2 0 if (PL_markstack_ptr != temp) {
1930 25101 0 if (PL_markstack_ptr != temp) {
1947 1 0 if (PL_markstack_ptr != temp) {
1963 2 0 if (PL_markstack_ptr != temp) {
1980 4 0 if (PL_markstack_ptr != temp) {
2243 0 199389 if (PL_markstack_ptr != temp) {
2281 6 0 if (PL_markstack_ptr != temp) {
2301 1 0 if (PL_markstack_ptr != temp) {
2317 1 0 if (PL_markstack_ptr != temp) {