Finding the eigenvalues and eigenvectors of a symmetric matrix 16#16 is done in the following stages:

- 16#16 is decomposed as 286#286, where 132#132 is unitary,
250#250 is real symmetric tridiagonal, and 136#136 is the
conjugate transpose of 132#132.
132#132 is represented as a product of Householder
transformations, whose vectors are stored in the first
n-1 columns of 245#245, and whose scale factors are in 287#287.
- 250#250 is decomposed as 88#88D1288#288, where 88#88 is real
orthogonal and 289#289 is a real diagonal matrix of eigenvalues.
290#290 is the matrix of eigenvalues computed when 88#88 is not computed.
- The ``PWK'' method is used to compute 291#291, the matrix of eigenvalues,
using a square-root-free method which does not compute 88#88.
- 250#250 is decomposed as 292#292 293#293 294#294, for a symmetric positive
definite tridiagonal matrix.
295#295 is the matrix of eigenvalues computed when 88#88 is not computed.
- Selected eigenvalues (296#296, 297#297, and 298#298) are computed and denote
eigenvalues computed to high absolute accuracy, with different range options.
299#299 will denote eigenvalues computed to high relative
accuracy.
- Given the eigenvalues, the eigenvectors of 250#250 are computed in 141#141.
- 250#250 is factored as 88#88 289#289 288#288.

To check these calculations, the following test ratios are computed
(where banded matrices only compute test ratios 1-4):

300#300 | 301#301 | 302#302 | |

303#303 | |||

304#304 | 301#301 | 305#305 | |

306#306 | |||

307#307 | 301#301 | 302#302 | |

308#308 | |||

309#309 | 301#301 | 305#305 | |

310#310 |

Tests 5-8 are the same as tests 1-4 but for SSPTRD and SOPGTR.

311#311 | 301#301 | 312#312 | |

313#313 | |||

314#314 | 301#301 | 315#315 | |

313#313 | |||

316#316 | 301#301 | 317#317 | |

313#313 | |||

318#318 | 301#301 | 319#319 | |

320#320 | |||

321#321 | 301#301 | 322#322 |

For 250#250 positive definite,

323#323 | 301#301 | 324#324 | |

325#325 | |||

326#326 | 301#301 | 327#327 | |

325#325 | |||

328#328 | 301#301 | 329#329 | |

330#330 |

When 250#250 is also diagonally dominant by a factor 331#331,

332#332 | 301#301 | 333#333 | |

334#334 | |||

335#335 | |||

(1) | |||

336#336 | 301#301 | 337#337 | |

335#335 | |||

338#338 | 301#301 | 339#339 | |

340#340 | |||

341#341 | 301#301 | 342#342 | |

343#343 | |||

344#344 | 301#301 | 345#345 | |

343#343 | |||

346#346 | 301#301 | 347#347 | |

348#348 | |||

349#349 | 301#301 | 350#350 | |

348#348 | |||

351#351 | 301#301 | 347#347 | |

352#352 | |||

353#353 | 301#301 | 350#350 | |

352#352 | |||

354#354 | 301#301 | 355#355 | |

356#356 | |||

357#357 | 301#301 | 358#358 | |

334#334 | |||

359#359 | |||

360#360 | 301#301 | 358#358 | |

334#334 | |||

361#361 | |||

362#362 | 301#301 | 347#347 | |

363#363 | |||

364#364 | 301#301 | 350#350 | |

363#363 | |||

365#365 | 301#301 | 339#339 | |

366#366 | |||

367#367 | 301#301 | 347#347 | |

368#368 | |||

369#369 | 301#301 | 350#350 | |

368#368 | |||

370#370 | 301#301 | 339#339 | |

371#371 | |||

372#372 | 301#301 | 347#347 | |

373#373 | |||

374#374 | 301#301 | 350#350 | |

373#373 | |||

375#375 | 301#301 | 339#339 | |

376#376 |

where the subscript 133#133 indicates that the eigenvalues and eigenvectors were computed at the same time, and 53#53 that they were computed in separate steps. (All norms are 143#143.) The scalings in the test ratios assure that the ratios will be 124#124 (typically less than 10 or 100), independent of 144#144 and 9#9, and nearly independent of 4#4.

As in the nonsymmetric case, the test ratios for each test matrix are compared to a user-specified threshold 145#145, and a message is printed for each test that exceeds this threshold.

**NOTE**: Test 27 is disabled at the moment because SSTEGR does not
guarantee high relative accuracy. Tests 29 through 34 are disabled
at present because SSTEGR does not handle partial spectrum requests.