Lapack: تقوم DSYEVR بإرجاع ناقلات غير متعامدة

تم إنشاؤها على ١٥ مايو ٢٠١٧  ·  10تعليقات  ·  مصدر: Reference-LAPACK/lapack

تحيات،

شكرًا لنقل موارد lapack إلى جيثب.

i) أرغب في تذكير الخطأ القديم الذي تم الإبلاغ عنه ، http://icl.cs.utk.edu/lapack-forum/viewtopic.php؟f=2&t=1820#p11388 ، بالظهور بأحدث lapack-3.7.0 ، بينما أقوم بالإبلاغ هنا ، https://github.com/miroi/lapack-dsyevr-test .

استنادًا إلى أداة تعقب الأخطاء lapack (http://www.netlib.org/lapack/bug_list.html - bug 126) ، أنت تعتني بهذا الخطأ الشرير ، أليس كذلك؟

ب) حرة حرة في إجراء اختبار التعامد المتجهات هذا (https://github.com/miroi/lapack-dsyevr-test) وإضافته إلى اختبارات lapack.

أفضل ، ميرو

Documentation

التعليق الأكثر فائدة

يرتبط هذا الخطأ بمعيار التقسيم المستخدم في DSTEMR ، بدءًا من السطر 606 في الملف المصدر المقابل (كما في LAPACK 3.7.0). استنادًا إلى متغير الإدخال TRYRAC ، يقوم الروتين الفرعي DLARRR بإرجاع INFO = 1 (يبدو أن هذا يتعارض مع السلوك المتوقع لـ DLARRR) ، مما يؤدي لاحقًا إلى حدوث انقسام ضار للمصفوفة ثلاثية الأضلاع (الخاصة) التي تم تمريرها كمدخلات. _ إذا تجاهلنا ما يفعله DLARRR وقمنا بتعيين IINFO = 0 مباشرةً قبل "تعيين معيار التقسيم" ، فإن المتجهات التي تم إرجاعها تكون متعامدة ، عند استخدام إصدار جديد من DLARRF ، راجع الإصدار 100. ومع ذلك ، هذا ليس إصلاحًا مناسبًا لهذا الخطأ: نحن بحاجة إلى معرفة ما يجب أن يكون عليه السلوك الصحيح لـ DLARRR. _)

ال 10 كومينتر

مرحبًا ميرو ، شكرًا لإضافة BUG 126 كإصدار GitHub. هذا عظيم. Osni ( oamarques ) تعمل على # 100. شكرا لتقاسم رمز الاختبار الخاص بك معنا. نعم ، هناك خطة للعمل على مجموعة اختبار جديدة لـ LAPACK وأي مصفوفة سيئة مرحب بها. لدى Osni العديد من مثل هذه المصفوفات وسيكون الهدف هو تنمية مجموعة من هذه المصفوفات ، جنبًا إلى جنب مع بنية تحتية للاختبار. على أي حال ، نشكرك على إضافة BUG 126 كمسألة GitHub. هذا عظيم. في صحتك ، جوليان.

يرتبط هذا الخطأ بمعيار التقسيم المستخدم في DSTEMR ، بدءًا من السطر 606 في الملف المصدر المقابل (كما في LAPACK 3.7.0). استنادًا إلى متغير الإدخال TRYRAC ، يقوم الروتين الفرعي DLARRR بإرجاع INFO = 1 (يبدو أن هذا يتعارض مع السلوك المتوقع لـ DLARRR) ، مما يؤدي لاحقًا إلى حدوث انقسام ضار للمصفوفة ثلاثية الأضلاع (الخاصة) التي تم تمريرها كمدخلات. _ إذا تجاهلنا ما يفعله DLARRR وقمنا بتعيين IINFO = 0 مباشرةً قبل "تعيين معيار التقسيم" ، فإن المتجهات التي تم إرجاعها تكون متعامدة ، عند استخدام إصدار جديد من DLARRF ، راجع الإصدار 100. ومع ذلك ، هذا ليس إصلاحًا مناسبًا لهذا الخطأ: نحن بحاجة إلى معرفة ما يجب أن يكون عليه السلوك الصحيح لـ DLARRR. _)

مرحبا ، هل من أخبار تتعلق بحل هذا الخطأ؟

oamarques هل استخدام DSTEGR بدلاً من DSTEMR الأساسي يخفف من هذه المشكلة؟

uihsnv : سؤال جيد. لم يعد يتم الاحتفاظ بـ STEGR. هناك مشاكل معها. نحن نعمل فقط على STEMR وصيانته. لكن ، نعم ، سيكون من الجيد معرفة ما تفعله STEGR بشأن هذه المشكلة.

langou أوه! لا يوجد لدي فكرة!! أنا أستخدم بضع حالات من STEGR في الكود الخاص بي. هل يجب أن أتحول إلى استخدام STEMR؟

أيضًا ، لقد أجريت بعض التعديلات على الاختبار الذي شاركهmiroi ، والذي إذا قبله ، يمكنك رؤية الاختلافات.

أنا أستخدم بضع حالات من STEGR في الكود الخاص بي. هل يجب أن أتحول إلى استخدام STEMR؟

أعتقد ذلك. آمل أن يتابعoamarques قريبًا هذا معنا.

أيضًا ، لقد أجريت بعض التعديلات على الاختبار الذي شاركهmiroi ، والذي إذا قبله ، يمكنك رؤية الاختلافات.

سيكون من الرائع مشاركة الاختبار المعدل مع oamarques

مرحبا ، هل من أخبار بخصوص هذا الخطأ؟ ولماذا سمي "التوثيق"؟

ومع ذلك ، فإن lapack الجديد يعطي sthis الخطأ (تم اختباره باستخدام gfortran 4.9.2 ، https://github.com/miroi/lapack-dsyevr-test):

~~~
مرحبًا بك في برنامج اختبار إجراءات القطر الخاصة بـ DIRAC!
اقرأ N = 9 NZ = 1
تمت قراءة مصفوفة قطرية
المصفوفات الخاصة بالروتين الفرعي RS المخصص
قيم RS eigenvalues ​​Eispack:
1 -1.5000000000000062
2 -1.5000000000000002
3 -1.4999999999999982
4 0.49999999999999772
5 0.49999999999999856
6 0.49999999999999994
7 0.50000000000000033
8 0.50000000000000122
9 2.4999999999999969
* EISPACK RS *
U ^ {+} A U - eps؟ = 0> معيار / رسم: 0.1912D-15 معيار / offdiag: 0.1008D-15
U ^ {+} U - I؟ = 0> معيار / رسم: 0.2344D-15 معيار / offdiag: 0.7239D-16U U ^ {+} - I؟ = 0> معيار / رسم: 0.9869D-16 معيار / offdiag: 0.9320D-16
قيم LAPACK DSYEVR الذاتية:
1 -1.5000000000000056
2 -1.5000000000000009
3 -1.4999999999999973
4 0.49999999999999523
5 0.49999999999999867
6 0.49999999999999939
7 0.49999999999999950
8 0.50000000000000100
9 2.4999999999999862
* LAPACK DSYEVR *
U ^ {+} A U - eps؟ = 0> معيار / رسم: 0.1807D-14 معيار / offdiag: 0.9012D-07
U ^ {+} U - I؟ = 0> معيار / رسم: 0.2591D-15 معيار / offdiag: 0.1802D-06U U ^ {+} - I؟ = 0> معيار / رسم: 0.7543D-06 معيار / offdiag: 0.4951D-06
قيم LAPACK DSTEGR الذاتية:
1 -1.5000000000000056
2 -1.5000000000000009
3 -1.4999999999999973
4 0.49999999999999523
5 0.49999999999999867
6 0.49999999999999939
7 0.49999999999999950
8 0.50000000000000100
9 2.4999999999999862
* LAPACK DSYTRD + DSTEGR *
U ^ {+} A U - eps؟ = 0> معيار / رسم: 0.1617D + 01 معيار / offdiag: 0.1644D + 00
U ^ {+} U - I؟ = 0> معيار / رسم: 0.1234D-15 معيار / offdiag: 0.1802D-06U U ^ {+} - I؟ = 0> معيار / علامة: 0.5411D-06 معيار / offdiag: 0.2301D-06

~~~

عند إعادة قراءة هذا ، يبدو أن إصلاحه يتوقف على الإصلاح رقم 100 الذي نتج عن محاولة إصلاح حلقة لا نهائية (أشعر أنني متخصص في اقتراح حلول منخفضة التقنية عرجاء لهؤلاء مؤخرًا) وذهب الأمر برمته إلى حلقة لا نهائية من شكوك حول ما يمكن أن يكون الحل المثالي. هل عاد أي شخص إلى 3.5.0 وتحقق من كيفية تصرف هذه الحالة قبل تغيير متغير العلامة المشار إليه في # 100؟

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات

القضايا ذات الصلة

hokb picture hokb  ·  16تعليقات

oxydicer picture oxydicer  ·  6تعليقات

christoph-conrads picture christoph-conrads  ·  26تعليقات

weslleyspereira picture weslleyspereira  ·  5تعليقات

Peter9606 picture Peter9606  ·  7تعليقات