Machine epsilon
مشین ایپسیلون یا مشین کی درستگی فلوٹنگ پوائنٹ ریاضی میں گول کرنے کی وجہ سے متعلقہ تخمینہ کی غلطی پر ایک اوپری باؤنڈ ہے۔ یہ قدر عددی تجزیہ کے میدان میں اور کمپیوٹیشنل سائنس کے موضوع میں توسیع کے ذریعے کمپیوٹر ریاضی کی خصوصیت رکھتی ہے۔ اس مقدار کو مچپس بھی کہا جاتا ہے اور اس میں یونانی ایپسلون کی علامتیں ہوتی ہیں۔ دو مروجہ تعریفیں ہیں۔ عددی تجزیے میں، مشین ایپسلون کا انحصار استعمال شدہ گول کی قسم پر ہوتا ہے اور اسے یونٹ راؤنڈ آف بھی کہا جاتا ہے، جس کی علامت بولڈ رومن یو ہوتی ہے۔ تاہم، کم رسمی، لیکن زیادہ وسیع پیمانے پر استعمال ہونے والی تعریف کے مطابق، مشین ایپسلون گول کرنے کے طریقہ سے آزاد ہے اور یہ یو یا 2 یو کے مساوی ہو سکتا ہے۔ معیاری ہارڈ ویئر ریاضی کے لیے اقدار درج ذیل جدول میں معیاری فلوٹنگ پوائنٹ فارمیٹس کے لیے مشین ایپسلون اقدار کی فہرست دی گئی ہے۔ ہر فارمیٹ راؤنڈ ٹو نیئرسٹ کا استعمال کرتا ہے۔ رسمی تعریف راؤنڈنگ فلوٹنگ پوائنٹ نمبر سسٹم میں حقیقی نمبر کی نمائندگی کو منتخب کرنے کا ایک طریقہ کار ہے۔ نمبر سسٹم اور راؤنڈنگ کے طریقہ کار کے لیے، مشین ایپسیلون منتخب کردہ راؤنڈنگ کے طریقہ کار کی زیادہ سے زیادہ رشتہ دار غلطی ہے۔ اس تعریف سے قدر کا تعین کرنے کے لیے کچھ پس منظر کی ضرورت ہے۔ فلوٹنگ پوائنٹ نمبر سسٹم کی خصوصیت ریڈکس ہوتی ہے جسے بیس بھی کہا جاتا ہے، اور درستگی سے، یعنی۔ معنی کے ریڈیکس ہندسوں کی تعداد (بشمول کوئی بھی اہم مضمر بٹ)۔ ایک ہی ایکسپونینٹ والے تمام نمبروں میں فاصلہ ہے،۔ ان اعداد پر فاصلہ تبدیل ہوتا ہے جو کامل طاقتیں ہیں۔ بڑی شدت کی طرف کا فاصلہ چھوٹی شدت کی طرف کے فاصلے سے کئی گنا بڑا ہوتا ہے۔ چونکہ مشین ایپسلون رشتہ دار غلطی کا پابند ہے، اس لیے ایکسپوینٹ کے ساتھ نمبروں پر غور کرنا کافی ہے۔ مثبت اعداد پر غور کرنا بھی کافی ہے۔ عام راؤنڈ سے قریب ترین قسم کے راؤنڈنگ کے لیے، مطلق راؤنڈنگ کی غلطی زیادہ سے زیادہ نصف فاصلے پر ہوتی ہے، یا۔ یہ قدر رشتہ دار غلطی کے لیے سب سے بڑا ممکنہ عدد ہے۔ رشتہ دار غلطی میں ڈینومینیٹر وہ نمبر ہے جسے گول کیا جا رہا ہے، جو رشتہ دار غلطی کو بڑا بنانے کے لیے جتنا ممکن ہو اتنا چھوٹا ہونا چاہیے۔ اس لیے بدترین رشتہ دار غلطی اس وقت ہوتی ہے جب راؤنڈنگ کا اطلاق فارم کے نمبروں پر کیا جاتا ہے جہاں اور کے درمیان ہوتا ہے۔ یہ تمام اعداد متعلقہ غلطی کے ساتھ گول ہوتے ہیں۔ زیادہ سے زیادہ اس وقت ہوتا ہے جب اس کی حد کے اوپری سرے پر ہوتا ہے۔ ڈینومینیٹر میں عدد کے مقابلے میں نہ ہونے کے برابر ہے، اس لیے اسے مستعدی کے لیے چھوڑ دیا جاتا ہے، اور اسے صرف مشین ایپسلون کے طور پر لیا جاتا ہے۔ جیسا کہ یہاں دکھایا گیا ہے، متعلقہ غلطی ان نمبروں کے لیے بدترین ہے جو گول ہوتے ہیں، اس لیے مشین ایپسیلون کو یونٹ راؤنڈ آف بھی کہا جاتا ہے جس کا مطلب ہے کہ تقریبا "زیادہ سے زیادہ غلطی جو یونٹ ویلیو پر گول کرتے وقت ہو سکتی ہے"۔ اس طرح، ایک نارملائزڈ فلوٹنگ پوائنٹ نمبر، اور ایک ملحقہ نارملائزڈ نمبر کے درمیان زیادہ سے زیادہ فاصلہ ہے۔ ریاضیاتی ماڈل عددی تجزیہ گول غلطی کے اثرات کا مطالعہ کرنے کے لیے مشین ایپسلون کا استعمال کرتا ہے۔ مشین ریاضی کی اصل غلطیاں اتنی پیچیدہ ہیں کہ ان کا براہ راست مطالعہ نہیں کیا جا سکتا، اس لیے اس کے بجائے مندرجہ ذیل سادہ ماڈل استعمال کیا جاتا ہے۔ آئی ای ای ای ریاضی کا معیار کہتا ہے کہ تمام فلوٹنگ پوائنٹ آپریشنز اس طرح کیے جاتے ہیں جیسے کہ لامحدود صحت سے متعلق آپریشن انجام دینا ممکن ہو، اور پھر، نتیجہ کو فلوٹنگ پوائنٹ نمبر پر گول کیا جاتا ہے۔ فرض کریں کہ (1)، فلوٹنگ پوائنٹ نمبر ہیں، (2) فلوٹنگ پوائنٹ نمبروں پر ایک ریاضی کا عمل ہے جیسے کہ اضافہ یا ضرب، اور (3) لامحدود درستگی کا عمل ہے۔ معیار کے مطابق، کمپیوٹر حساب لگاتا ہے: مشین ایپسلون کے معنی سے، راؤنڈنگ کی رشتہ دار غلطی زیادہ سے زیادہ مشین ایپسلون شدت میں ہوتی ہے، لہذا: جہاں مطلق شدت میں زیادہ سے زیادہ یا u ہے۔ حوالہ جات میں ڈیمل اور ہائیم کی کتابوں سے مشورہ کیا جا سکتا ہے کہ یہ دیکھنے کے لیے کہ اس ماڈل کو گوسیائی خاتمے کی غلطیوں کا تجزیہ کرنے کے لیے کس طرح استعمال کیا جاتا ہے۔ متغیر تعریفیں IEEE معیار مشین ایپسلون اور یونٹ راؤنڈ آف کی اصطلاحات کی وضاحت نہیں کرتا ہے، اس لیے ان اصطلاحات کی مختلف تعریفیں استعمال میں ہیں، جو کچھ الجھن کا سبب بن سکتی ہیں۔ مشین ایپسلون کی رسمی تعریف وہ ہے جو پروفیسر جیمز ڈیمل نے لیکچر اسکرپٹ، لیپک لکیری الجبرا پیکیج، عددی تحقیقی مقالے اور کچھ سائنسی کمپیوٹنگ سافٹ ویئر میں استعمال کی ہے۔ زیادہ تر عددی تجزیہ کار اس معنی کے ساتھ مشین ایپسیلون اور یونٹ راؤنڈ آف کے الفاظ کا استعمال کرتے ہیں۔ یہ متبادل تعریف اکیڈمیا سے باہر بہت زیادہ وسیع ہے: مشین ایپسلون 1 اور اگلے بڑے فلوٹنگ پوائنٹ نمبر کے درمیان فرق ہے۔ اس تعریف کے مطابق، 1 کے مقابلے میں آخری جگہ پر یونٹ کی قیمت کے برابر ہے، یعنی۔ (جہاں فلوٹنگ پوائنٹ سسٹم کی بنیاد ہے اور درستگی ہے) اور یونٹ راؤنڈ آف یو ہے، راؤنڈ ٹو نیئرسٹ موڈ فرض کرتے ہوئے، اور یو، راؤنڈ بائی چوپ فرض کرتے ہوئے۔ اس تعریف کا پھیلاؤ فلوٹنگ پوائنٹ کی اقسام سے متعلق مستقل اور دیگر پروگرامنگ زبانوں میں متعلقہ مستقل کے لیے آئی ایس او سی معیار میں اس کے استعمال میں جڑا ہوا ہے۔ یہ سائنسی کمپیوٹنگ سافٹ ویئر، اور اعداد و شمار اور کمپیوٹنگ ادب میں بھی بڑے پیمانے پر استعمال ہوتا ہے۔ مشین ایپسلون کا تعین کیسے کیا جائے جہاں معیاری کتب خانے پہلے سے کمپیوٹیڈ ویلیوز فراہم نہیں کرتے ہیں (جیسا کہ <float.h C کے لیے FLT _ EPSILON، DBL _ EPSILON اور LDBL _ EPSILON کے ساتھ کرتا ہے اور <حدود> STD کے ساتھ کرتا ہے:: عددی _ حدود <T>: Epsilon () C + + میں)، مشین ایپسلون کا تعین کرنے کا بہترین طریقہ یہ ہے کہ اوپر کی میز کا حوالہ دیا جائے، اور مناسب پاور فارمولا استعمال کیا جائے۔ کمپیوٹنگ مشین ایپسیلون کو اکثر نصابی کتاب کی مشق کے طور پر دیا جاتا ہے۔ مندرجہ ذیل مثالیں مشین ایپسیلون کا حساب یونٹ راؤنڈ آف کے معنی کے بجائے 1 پر فلوٹنگ پوائنٹ نمبروں کے فاصلے کے معنی میں کرتی ہیں۔ نوٹ کریں کہ نتائج کا انحصار استعمال شدہ مخصوص فلوٹنگ پوائنٹ فارمیٹ پر ہوتا ہے، جیسے کہ فلوٹ، ڈبل، لانگ ڈبل، یا اسی طرح جیسا کہ پروگرامنگ زبان، مرتب کرنے والا، اور اصل پلیٹ فارم کے لیے رن ٹائم لائبریری کی طرف سے سپورٹ کیا جاتا ہے۔ پروسیسر کے ذریعے سپورٹ کیے گئے کچھ فارمیٹس کو منتخب کردہ مرتب اور آپریٹنگ سسٹم کے ذریعے سپورٹ نہیں کیا جا سکتا ہے۔ رن ٹائم لائبریری کے ذریعے دیگر فارمیٹس کی تقلید کی جا سکتی ہے، بشمول کچھ زبانوں اور لائبریریوں میں دستیاب صوابدیدی صحت سے متعلق ریاضی۔ سخت معنوں میں مشین ایپسیلون کی اصطلاح کا مطلب ہے پروسیسر (یا کوپروسیسر) کے ذریعے براہ راست سپورٹ کی جانے والی درستگی، کسی مخصوص آپریٹنگ سسٹم کے لیے کسی مخصوص مرتب کے ذریعے سپورٹ کی جانے والی کچھ درستگی نہیں، جب تک کہ یہ بہترین فارمیٹ استعمال کرنے کے لیے نہ جانا جائے۔ آئی ای ای ای 754 فلوٹنگ پوائنٹ فارمیٹس میں یہ خاصیت ہوتی ہے کہ، جب ایک ہی چوڑائی کے دو کے تکمیل عدد کے طور پر دوبارہ تشریح کی جاتی ہے، تو وہ یکسانیت سے مثبت اقدار میں اضافہ کرتے ہیں اور منفی اقدار پر یکسانیت سے کم ہوتے ہیں (32 بٹ فلوٹس کی بائنری نمائندگی دیکھیں)۔ ان کے پاس وہ خاصیت بھی ہے جو، اور (جہاں مذکورہ بالا عدد کی دوبارہ تشریح ہے)۔ ایسی زبانوں میں جو ٹائپ پننگ کی اجازت دیتی ہیں اور ہمیشہ IEEE 754-1985 استعمال کرتی ہیں، ہم مستقل وقت میں مشین ایپسلون کا حساب لگانے کے لیے اس کا فائدہ اٹھا سکتے ہیں۔ مثال کے طور پر، سی میں: ٹائپ ڈیف یونین {لمبا لمبا i64 ؛ ڈبل d64 ؛} dbl _ 64 ؛ ڈبل مشین _ ایپس (ڈبل ویلیو) {dbl _ 64s ؛ s.d64 = ویلیو ؛ s.i64 + + ؛ ریٹرن s.d64-ویلیو ؛} ازگر میں مثال: ڈیف مشین ایپسیلون (فنک = فلوٹ): مشین _ ایپسیلون = فنک (1) جبکہ فنک (1) + مشین _ ایپسیلون! = فنک (1): مشین _ ایپسیلون _ آخری = مشین _ ایپسیلون مشین _ ایپسیلون = فنک (مشین _ ایپسیلون)/فنک (2) ریٹرن مشین اگر مثبت نتیجہ ہمیشہ مطلوب رہتا ہے، تو مشین ایپس کے واپسی کے بیان کو اس سے تبدیل کیا جا سکتا ہے: واپسی (s.i64 <0؟ ویلیو-s.d64: s.d64-ویلیو) ؛ 64 بٹ ڈبلز 2.220446e-16 دیتے ہیں، جو کہ توقع کے مطابق 2−52 ہے۔ تخمینہ مندرجہ ذیل سادہ الگورتھم کو لکیری سرچ کا استعمال کرتے ہوئے مشین ایپسیلون کو اس کی حقیقی قیمت کے دو (شدت کی ایک ترتیب) کے عنصر کے اندر تخمینہ لگانے کے لیے استعمال کیا جا سکتا ہے۔ ایپسلون = 1.0 ؛ جبکہ (1.0 + 0.0 * ایپسلون) 1.0: ایپسلون = 0.0 * ایپسلون مشین ایپسلون کا حساب محض مینٹیسا کے لیے استعمال ہونے والے بٹس کی تعداد کی منفی طاقت سے دو کے طور پر بھی لگایا جا سکتا ہے۔ مطلق رشتہ دار غلطی سے تعلق اگر کسی نمبر کی مشین کی نمائندگی ہے تو نمائندگی میں مطلق رشتہ دار غلطی ثبوت ہے۔ درج ذیل ثبوت مثبت نمبروں اور مشین کی نمائندگی تک محدود ہے جو راؤنڈ بائی چوپ کا استعمال کرتے ہیں۔ اگر ایک مثبت عدد ہے جس کی ہم نمائندگی کرنا چاہتے ہیں، تو یہ نیچے دیے گئے مشین نمبر اور اوپر دیے گئے مشین نمبر کے درمیان ہوگا۔ اگر، معنی کی شدت کے لیے استعمال ہونے والے بٹس کی تعداد کہاں ہے، تو: چونکہ کی نمائندگی یا تو ہوگی یا، اگرچہ یہ ثبوت مثبت نمبروں اور راؤنڈ بہ راؤنڈ تک محدود ہے، اسی طریقہ کو منفی نمبروں اور راؤنڈ سے قریب ترین مشین کی نمائندگی کے سلسلے میں عدم مساوات کو ثابت کرنے کے لیے استعمال کیا جا سکتا ہے۔ فلوٹنگ پوائنٹ، آخری مقام پر فلوٹنگ پوائنٹ ریاضی یونٹ میں درستگی کے مسائل کی عمومی بحث (یو ایل پی) نوٹ اور حوالہ جات اینڈرسن، ای۔ لیپک صارفین گائیڈ، سوسائٹی فار انڈسٹریل اینڈ اپلائیڈ میتھمیٹکس (ایس آئی اے ایم)، فلاڈیلفیا، پی اے، تیسرا ایڈیشن، 1999 بھی دیکھیں۔ کوڈی، ولیم جے۔ ؛ ماچار: اے سوبروٹین ٹو ڈائنامکلی ڈیٹمین مشین پیرامیٹرز، اے سی ایم ٹرانزیکشنز آن میتھمیٹیکل سافٹ ویئر، جلد۔ 14 (4)، 1988، 303-311۔ بیسسیٹ، ڈیڈیئر ایچ۔ آبجیکٹ پر مبنی عددی طریقوں کا نفاذ، مورگن اور کافمین، سان فرانسسکو، سی اے، 2000۔ ڈیمل، جیمز ڈبلیو۔، اپلائیڈ عددی لکیری الجبرا، سوسائٹی فار انڈسٹریل اینڈ اپلائیڈ میتھمیٹکس (ایس آئی اے ایم)، فلاڈیلفیا، پی اے، 1997۔ ہائیم، نکولس جے۔ عددی الگورتھم کی درستگی اور استحکام، سوسائٹی فار انڈسٹریل اینڈ اپلائیڈ میتھمیٹکس (ایس آئی اے ایم)، فلاڈیلفیا، پی اے، دوسرا ایڈیشن، 2002۔ پریس، ولیم ایچ۔ ؛ ٹیوکولسکی، ساؤل اے۔ ؛ ویٹرلنگ، ولیم ٹی۔ ؛ اور فلنری، برائن پی۔ ؛ فورٹرن 77 میں عددی ترکیبیں، دوسرا ایڈیشن۔، چیپ۔ 20. 2، پی پی۔ 881-886 فورسیتھی، جارج ای۔ ؛ میلکم، مائیکل اے۔ ؛ مولر، کلیو بی۔ ؛ "کمپیوٹر میتھڈز فار میتھمیٹیکل کمپیوٹیشنز"، پرینٹس-ہال، 1977 بیرونی روابط MACHAR، ایک معمول (C اور فورٹرن میں) "متحرک طور پر مشین کے مستقلات کا حساب لگانا" (ACM الگورتھم 722) فلوٹنگ پوائنٹ کے حسابات کی درستگی کی تشخیص، اجزاء پاسکل میں MACHAR کا نفاذ اور عددی ترکیبوں (پریس اور دیگر، 1992) میں شائع MACHAR کے فورٹرن 77 ورژن پر مبنی اوبرون۔ کمپیوٹر ریاضی کے مضامین مثال کے طور پر C کوڈ کے ساتھ: Epsilon d macchina