Foundationপ্রথম নীতি থেকে
LEVEL 1 · How Computers Represent Information

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 ছাড়াই।