729 {
731
732 bool all_numeric = true;
735 bool has_float = false;
736 bool has_float_beyond_precision = false;
737
738 for (const auto& elem : arr) {
739 if (!elem) {
740 all_numeric = false;
741 break;
742 }
743
744 if (elem->is_int()) {
745 auto val = elem->as_int();
746 if (val) {
748 min_val = (v < min_val) ? v : min_val;
749 max_val = (v > max_val) ? v : max_val;
750 } else {
751 all_numeric = false;
752 break;
753 }
754 } else if (elem->is_float()) {
755 has_float = true;
756 auto val = elem->as_float();
757 if (!val) {
758 all_numeric = false;
759 break;
760 }
761
762
765 has_float_beyond_precision = true;
766 }
767 } else {
768 all_numeric = false;
769 break;
770 }
771 }
772
774
775
776 if (has_float) {
777
778 if (has_float_beyond_precision) {
780 }
782 }
783
784
785 if (min_val >= 0 && max_val <= 255) {
787 }
788
789 if (min_val >= -32768 && max_val <= 32767) {
791 }
792
793
794
795 if (min_val >= -16777216 && max_val <= 16777216) {
797 }
798
800}
bool empty() const FL_NO_EXCEPT
static bool float_bits_magnitude_exceeds_2_24(u32 bits) FL_NO_EXCEPT
To bit_cast(const From &from) FL_NO_EXCEPT
static constexpr T min() FL_NO_EXCEPT
static constexpr T max() FL_NO_EXCEPT