NaN
ন্যান
Not a Number — exponent field সব 1, mantissa অ-শূন্য। কোনো অর্থবহ ফলাফল নেই এমন operation-এর (0/0, ∞−∞) জন্য IEEE 754-এর সংরক্ষিত bit pattern।
also: not a number, quiet nan, signaling nan
দুই ধরনের NaN, mantissa-র MSB দিয়ে আলাদা (IEEE 754-2008 convention, x86/ARM-এ ব্যবহৃত):
| ধরন | Mantissa MSB | আচরণ |
|---|---|---|
| quiet (qNaN) | 1 | নীরবে propagate করে |
| signaling (sNaN) | 0 (কিন্তু অ-শূন্য) | ব্যবহার করলে trap তৈরি করতে পারে |
Canonical float32 quiet NaN: 0x7FC00000 (sign 0, exponent
11111111, mantissa 10000000000000000000000)।
সবচেয়ে অদ্ভুত property: NaN != NaN — এমনকি নিজের সাথে
তুলনায়ও false। এটা bug নয়, ইচ্ছাকৃত সংজ্ঞা — দুইটা “সংজ্ঞাহীন”
জিনিস একই কি না বলাটাই অর্থহীন। এই একটা নিয়মই দশকের পুরনো
NaN-checking idiom-এর ভিত্তি:
def is_nan(x): return x != x
[[ieee-754]]-এর NaN-propagation নিয়ম (যেকোনো operation-এ NaN জড়ালে ফলাফল NaN) বাস্তবে ব্যবহৃত হয় — NumPy/pandas-এ NaN প্রায়ই “missing data” বোঝাতে ব্যবহার হয়, আর propagation স্বয়ংক্রিয়ভাবে “অজানা” মান পুরো হিসাবে ছড়িয়ে দেয়, manual check ছাড়াই।