Mercurial > octave
comparison libinterp/corefcn/pr-output.cc @ 27451:ce0399fa017a
Display only 5 significant digits for "format short" at all times (bug #56936).
* pr-output.cc (make_real_format): Change "if (digits > 0)/else" to
"if (digits > 0)/else if (digits < 0)/else" tree where final else handles
special case of digits==0.
* pr-output.cc (make_real_matrix_format, make_complex_format,
make_complex_matrix_format, make_range_format): Change if/else to if/else
if/else tree when examining x_max and x_min. Final else clause provides
special behavior for x_max or x_min == 0.
author | Rik <rik@octave.org> |
---|---|
date | Fri, 27 Sep 2019 13:57:11 -0700 |
parents | 251056aeba5d |
children | 05f84e5cb08a |
comparison
equal
deleted
inserted
replaced
27450:c3ea5c772a84 | 27451:ce0399fa017a |
---|---|
401 if (digits > 0) | 401 if (digits > 0) |
402 { | 402 { |
403 ld = digits; | 403 ld = digits; |
404 rd = (prec > digits ? prec - digits : prec); | 404 rd = (prec > digits ? prec - digits : prec); |
405 } | 405 } |
406 else | 406 else if (digits < 0) |
407 { | 407 { |
408 ld = 1; | 408 ld = 1; |
409 rd = (prec > digits ? prec - digits : prec); | 409 rd = (prec > digits ? prec - digits : prec); |
410 } | |
411 else | |
412 { | |
413 ld = 1; | |
414 rd = (prec > digits ? prec - 1 : prec); | |
410 } | 415 } |
411 | 416 |
412 fw = 1 + ld + 1 + rd; | 417 fw = 1 + ld + 1 + rd; |
413 } | 418 } |
414 | 419 |
544 { | 549 { |
545 ld_max = x_max; | 550 ld_max = x_max; |
546 rd_max = (prec > x_max ? prec - x_max : prec); | 551 rd_max = (prec > x_max ? prec - x_max : prec); |
547 x_max++; | 552 x_max++; |
548 } | 553 } |
549 else | 554 else if (x_max < 0) |
550 { | 555 { |
551 ld_max = 1; | 556 ld_max = 1; |
552 rd_max = (prec > x_max ? prec - x_max : prec); | 557 rd_max = (prec > x_max ? prec - x_max : prec); |
553 x_max = -x_max + 1; | 558 x_max = -x_max + 1; |
554 } | 559 } |
560 else | |
561 { | |
562 ld_max = 1; | |
563 rd_max = (prec > 1 ? prec - 1 : prec); | |
564 x_max = 1; | |
565 } | |
555 | 566 |
556 int ld_min, rd_min; | 567 int ld_min, rd_min; |
557 if (x_min > 0) | 568 if (x_min > 0) |
558 { | 569 { |
559 ld_min = x_min; | 570 ld_min = x_min; |
560 rd_min = (prec > x_min ? prec - x_min : prec); | 571 rd_min = (prec > x_min ? prec - x_min : prec); |
561 x_min++; | 572 x_min++; |
562 } | 573 } |
563 else | 574 else if (x_min < 0) |
564 { | 575 { |
565 ld_min = 1; | 576 ld_min = 1; |
566 rd_min = (prec > x_min ? prec - x_min : prec); | 577 rd_min = (prec > x_min ? prec - x_min : prec); |
567 x_min = -x_min + 1; | 578 x_min = -x_min + 1; |
579 } | |
580 else | |
581 { | |
582 ld_min = 1; | |
583 rd_min = (prec > 1 ? prec - 1 : prec); | |
584 x_min = 1; | |
568 } | 585 } |
569 | 586 |
570 ld = (ld_max > ld_min ? ld_max : ld_min); | 587 ld = (ld_max > ld_min ? ld_max : ld_min); |
571 rd = (rd_max > rd_min ? rd_max : rd_min); | 588 rd = (rd_max > rd_min ? rd_max : rd_min); |
572 | 589 |
719 { | 736 { |
720 ld_max = x_max; | 737 ld_max = x_max; |
721 rd_max = (prec > x_max ? prec - x_max : prec); | 738 rd_max = (prec > x_max ? prec - x_max : prec); |
722 x_max++; | 739 x_max++; |
723 } | 740 } |
724 else | 741 else if (x_max < 0) |
725 { | 742 { |
726 ld_max = 1; | 743 ld_max = 1; |
727 rd_max = (prec > x_max ? prec - x_max : prec); | 744 rd_max = (prec > x_max ? prec - x_max : prec); |
728 x_max = -x_max + 1; | 745 x_max = -x_max + 1; |
729 } | 746 } |
747 else | |
748 { | |
749 ld_max = 1; | |
750 rd_max = (prec > 1 ? prec - 1 : prec); | |
751 x_max = 1; | |
752 } | |
730 | 753 |
731 int ld_min, rd_min; | 754 int ld_min, rd_min; |
732 if (x_min > 0) | 755 if (x_min > 0) |
733 { | 756 { |
734 ld_min = x_min; | 757 ld_min = x_min; |
735 rd_min = (prec > x_min ? prec - x_min : prec); | 758 rd_min = (prec > x_min ? prec - x_min : prec); |
736 x_min++; | 759 x_min++; |
737 } | 760 } |
738 else | 761 else if (x_min < 0) |
739 { | 762 { |
740 ld_min = 1; | 763 ld_min = 1; |
741 rd_min = (prec > x_min ? prec - x_min : prec); | 764 rd_min = (prec > x_min ? prec - x_min : prec); |
742 x_min = -x_min + 1; | 765 x_min = -x_min + 1; |
766 } | |
767 else | |
768 { | |
769 ld_min = 1; | |
770 rd_min = (prec > 1 ? prec - 1 : prec); | |
771 x_min = 1; | |
743 } | 772 } |
744 | 773 |
745 ld = (ld_max > ld_min ? ld_max : ld_min); | 774 ld = (ld_max > ld_min ? ld_max : ld_min); |
746 rd = (rd_max > rd_min ? rd_max : rd_min); | 775 rd = (rd_max > rd_min ? rd_max : rd_min); |
747 | 776 |
938 { | 967 { |
939 ld_max = x_max; | 968 ld_max = x_max; |
940 rd_max = (prec > x_max ? prec - x_max : prec); | 969 rd_max = (prec > x_max ? prec - x_max : prec); |
941 x_max++; | 970 x_max++; |
942 } | 971 } |
943 else | 972 else if (x_max < 0) |
944 { | 973 { |
945 ld_max = 1; | 974 ld_max = 1; |
946 rd_max = (prec > x_max ? prec - x_max : prec); | 975 rd_max = (prec > x_max ? prec - x_max : prec); |
947 x_max = -x_max + 1; | 976 x_max = -x_max + 1; |
948 } | 977 } |
978 else | |
979 { | |
980 ld_max = 1; | |
981 rd_max = (prec > 1 ? prec - 1 : prec); | |
982 x_max = 1; | |
983 } | |
949 | 984 |
950 int ld_min, rd_min; | 985 int ld_min, rd_min; |
951 if (x_min > 0) | 986 if (x_min > 0) |
952 { | 987 { |
953 ld_min = x_min; | 988 ld_min = x_min; |
954 rd_min = (prec > x_min ? prec - x_min : prec); | 989 rd_min = (prec > x_min ? prec - x_min : prec); |
955 x_min++; | 990 x_min++; |
956 } | 991 } |
957 else | 992 else if (x_min < 0) |
958 { | 993 { |
959 ld_min = 1; | 994 ld_min = 1; |
960 rd_min = (prec > x_min ? prec - x_min : prec); | 995 rd_min = (prec > x_min ? prec - x_min : prec); |
961 x_min = -x_min + 1; | 996 x_min = -x_min + 1; |
997 } | |
998 else | |
999 { | |
1000 ld_min = 1; | |
1001 rd_min = (prec > 1 ? prec - 1 : prec); | |
1002 x_min = 1; | |
962 } | 1003 } |
963 | 1004 |
964 ld = (ld_max > ld_min ? ld_max : ld_min); | 1005 ld = (ld_max > ld_min ? ld_max : ld_min); |
965 rd = (rd_max > rd_min ? rd_max : rd_min); | 1006 rd = (rd_max > rd_min ? rd_max : rd_min); |
966 | 1007 |
1152 { | 1193 { |
1153 ld_max = x_max; | 1194 ld_max = x_max; |
1154 rd_max = (prec > x_max ? prec - x_max : prec); | 1195 rd_max = (prec > x_max ? prec - x_max : prec); |
1155 x_max++; | 1196 x_max++; |
1156 } | 1197 } |
1157 else | 1198 else if (x_max < 0) |
1158 { | 1199 { |
1159 ld_max = 1; | 1200 ld_max = 1; |
1160 rd_max = (prec > x_max ? prec - x_max : prec); | 1201 rd_max = (prec > x_max ? prec - x_max : prec); |
1161 x_max = -x_max + 1; | 1202 x_max = -x_max + 1; |
1162 } | 1203 } |
1204 else | |
1205 { | |
1206 ld_max = 1; | |
1207 rd_max = (prec > 1 ? prec - 1 : prec); | |
1208 x_max = 1; | |
1209 } | |
1163 | 1210 |
1164 int ld_min, rd_min; | 1211 int ld_min, rd_min; |
1165 if (x_min > 0) | 1212 if (x_min > 0) |
1166 { | 1213 { |
1167 ld_min = x_min; | 1214 ld_min = x_min; |
1168 rd_min = (prec > x_min ? prec - x_min : prec); | 1215 rd_min = (prec > x_min ? prec - x_min : prec); |
1169 x_min++; | 1216 x_min++; |
1170 } | 1217 } |
1171 else | 1218 else if (x_min < 0) |
1172 { | 1219 { |
1173 ld_min = 1; | 1220 ld_min = 1; |
1174 rd_min = (prec > x_min ? prec - x_min : prec); | 1221 rd_min = (prec > x_min ? prec - x_min : prec); |
1175 x_min = -x_min + 1; | 1222 x_min = -x_min + 1; |
1223 } | |
1224 else | |
1225 { | |
1226 ld_min = 1; | |
1227 rd_min = (prec > 1 ? prec - 1 : prec); | |
1228 x_min = 1; | |
1176 } | 1229 } |
1177 | 1230 |
1178 ld = (ld_max > ld_min ? ld_max : ld_min); | 1231 ld = (ld_max > ld_min ? ld_max : ld_min); |
1179 rd = (rd_max > rd_min ? rd_max : rd_min); | 1232 rd = (rd_max > rd_min ? rd_max : rd_min); |
1180 | 1233 |