Lapack: DSYEVR mengembalikan vektor non-ortogonal

Dibuat pada 15 Mei 2017  ·  10Komentar  ·  Sumber: Reference-LAPACK/lapack

Salam,

terima kasih telah memindahkan sumber daya lapack ke github.

i) Saya ingin mengingatkan bug lama yang dilaporkan, http://icl.cs.utk.edu/lapack-forum/viewtopic.php?f=2&t=1820#p11388 , muncul dengan lapack-3.7.0 terbaru, seperti yang saya laporkan di sini, https://github.com/miroi/lapack-dsyevr-test .

Berdasarkan pelacak bug lapack ( http://www.netlib.org/lapack/bug_list.html - bug 126), Anda menangani bug jahat ini, bukan?

ii) Bebas untuk mengambil tes ortogonalitas vektor khusus ini ( https://github.com/miroi/lapack-dsyevr-test ) dan menambahkannya ke tes lapack.

Terbaik, Miro

Documentation

Komentar yang paling membantu

Bug ini terkait dengan kriteria pemisahan yang digunakan dalam DSTEMR, mulai dari baris 606 dalam file sumber yang sesuai (seperti pada LAPACK 3.7.0). Berdasarkan variabel input TRYRAC, subrutin DLARRR mengembalikan INFO=1 (ini tampaknya bertentangan dengan perilaku DLARRR yang diharapkan), yang selanjutnya memicu pemisahan berbahaya dari matriks tridiagonal (khusus) yang diteruskan sebagai input. _Jika kita mengabaikan apa yang dilakukan DLARRR dan menyetel IINFO=0 tepat sebelum "Setel kriteria pemisahan" vektor yang dikembalikan adalah ortogonal, saat menggunakan DLARRF versi baru, lihat edisi 100. Namun, ini bukan perbaikan yang tepat untuk bug ini: kami perlu mencari tahu seperti apa perilaku DLARRR yang benar._)

Semua 10 komentar

Hai Miro, Terima kasih telah menambahkan BUG 126 sebagai masalah GitHub. Ini bagus. Osni ( @oamarques ) sedang mengerjakan #100. Terima kasih telah membagikan kode pengujian Anda kepada kami. Ya, ada rencana untuk mengerjakan test suite baru untuk LAPACK dan matriks jahat apa pun diterima. Osni memiliki banyak matriks seperti itu dan tujuannya adalah untuk menumbuhkan kumpulan matriks tersebut, bersama dengan infrastruktur untuk pengujian. Bagaimanapun, terima kasih telah menambahkan BUG 126 sebagai masalah GitHub. Ini bagus. Selamat, Julien.

Bug ini terkait dengan kriteria pemisahan yang digunakan dalam DSTEMR, mulai dari baris 606 dalam file sumber yang sesuai (seperti pada LAPACK 3.7.0). Berdasarkan variabel input TRYRAC, subrutin DLARRR mengembalikan INFO=1 (ini tampaknya bertentangan dengan perilaku DLARRR yang diharapkan), yang selanjutnya memicu pemisahan berbahaya dari matriks tridiagonal (khusus) yang diteruskan sebagai input. _Jika kita mengabaikan apa yang dilakukan DLARRR dan menyetel IINFO=0 tepat sebelum "Setel kriteria pemisahan" vektor yang dikembalikan adalah ortogonal, saat menggunakan DLARRF versi baru, lihat edisi 100. Namun, ini bukan perbaikan yang tepat untuk bug ini: kami perlu mencari tahu seperti apa perilaku DLARRR yang benar._)

Hai, ada berita tentang pemecahan bug ini?

@oamarques Apakah menggunakan DSTEGR alih-alih DSTEMR yang mendasarinya mengurangi masalah ini?

@uihsnv : pertanyaan bagus. STEGR tidak dipertahankan lagi. Ada masalah dengannya. Kami hanya mengerjakan dan memelihara STEMR. Tapi, ya, itu akan menjadi ide yang baik untuk melihat apa yang dilakukan STEGR pada masalah ini.

@langou Oh! Aku tidak tahu!! Saya menggunakan beberapa contoh STEGR dalam kode saya. Haruskah saya beralih menggunakan STEMR?

Juga, saya telah membuat beberapa modifikasi pada tes yang dibagikan @miroi , yang jika dia menerimanya, Anda dapat melihat perbedaannya.

Saya menggunakan beberapa contoh STEGR dalam kode saya. Haruskah saya beralih menggunakan STEMR?

Aku pikir begitu. Saya harap @oamarques akan segera menindaklanjuti hal ini bersama kami.

Juga, saya telah membuat beberapa modifikasi pada tes yang dibagikan @miroi , yang jika dia menerimanya, Anda dapat melihat perbedaannya.

Akan sangat bagus untuk membagikan tes yang dimodifikasi dengan @oamarques

Halo, apakah ada berita tentang bug ini? Dan mengapa diberi label "Dokumentasi"?

Namun, lapack baru memberikan kesalahan ini (diuji dengan gfortran 4.9.2 , https://github.com/miroi/lapack-dsyevr-test ):

~~~
Selamat datang di program pengujian untuk rutinitas diagonalisasi DIRAC!
baca N= 9 NZ= 1
matriks untuk diagonalisasi dibaca
array untuk subrutin RS dialokasikan
Nilai eigen RS Eispack:
1 -1,50000000000000062
2 -1,5000000000000002
3 -1.4999999999999982
4 0.49999999999999772
5 0.49999999999999856
6 0.49999999999999994
7 0.500000000000000033
8 0.50000000000000122
9 2.4999999999999969
*EISPACKRS*
U^{+} A U - eps ?= 0> norma/diag:0.1912D-15 norma/offdiag:0.1008D-15
U^{+} U - I ?= 0> norma/diag:0.2344D-15 norma/offdiag:0.7239D-16U U^{+} - I ?= 0> norma/diag:0.9869D-16 norma/offdiag:0.9320D-16
Nilai eigen LAPACK DSYEVR:
1 -1,50000000000000056
2 -1,50000000000000009
3 -1.4999999999999973
4 0.49999999999999523
5 0.49999999999999867
6 0.499999999999999939
7 0.499999999999999950
8 0.500000000000000100
9 2.4999999999999862
* LAPACK DSYEVR *
U^{+} A U - eps ?= 0> norma/diag:0.1807D-14 norma/offdiag:0.9012D-07
U^{+} U - I ?= 0> norma/diag:0.2591D-15 norma/offdiag:0.1802D-06U U^{+} - I ?= 0> norma/diag:0.7543D-06 norma/offdiag:0.4951D-06
Nilai eigen LAPACK DSTEGR:
1 -1,50000000000000056
2 -1,50000000000000009
3 -1.4999999999999973
4 0.49999999999999523
5 0.49999999999999867
6 0.499999999999999939
7 0.499999999999999950
8 0.500000000000000100
9 2.4999999999999862
* LAPAK DSYTRD+DSTEGR *
U^{+} A U - eps ?= 0> norma/diag:0.1617D+01 norma/offdiag:0.1644D+00
U^{+} U - I ?= 0> norma/diag:0.1234D-15 norma/offdiag:0.1802D-06U U^{+} - I ?= 0> norma/ diag:0.5411D-06 norma/ offdiag:0.2301D-06

~~~

Saat membaca ulang ini, tampaknya memperbaikinya bergantung pada perbaikan # 100 yang disebabkan oleh upaya untuk memperbaiki loop tak terbatas (merasa saya mengkhususkan diri dalam mengusulkan solusi teknologi rendah yang lumpuh untuk itu akhir-akhir ini) dan semuanya masuk ke loop tak terbatas keraguan tentang solusi yang ideal. Adakah yang kembali ke 3.5.0 dan memeriksa bagaimana kasus ini berperilaku sebelum perubahan variabel flag yang disinggung di #100 ?

Apakah halaman ini membantu?
0 / 5 - 0 peringkat

Masalah terkait

pablosanjose picture pablosanjose  ·  41Komentar

5tefan picture 5tefan  ·  3Komentar

hokb picture hokb  ·  16Komentar

Dichloromethane picture Dichloromethane  ·  11Komentar

JHenneberg picture JHenneberg  ·  10Komentar