1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
//! Extended precision eigenvalue computations
//!
//! This module provides functions for computing eigenvalues and eigenvectors
//! using extended precision arithmetic for improved accuracy.
//!
//! # Overview
//!
//! This module contains implementations for:
//!
//! * Computing eigenvalues of general matrices with extended precision
//! * Computing eigenvalues and eigenvectors of general matrices with extended precision
//! * Computing eigenvalues of symmetric/Hermitian matrices with extended precision
//! * Computing eigenvalues and eigenvectors of symmetric/Hermitian matrices with extended precision
//!
//! These functions are particularly useful for handling ill-conditioned matrices where
//! standard precision computations may suffer from numerical instability.
//!
//! # Examples
//!
//! ```
//! use scirs2_core::ndarray::array;
//! use scirs2_linalg::extended_precision::eigen::{extended_eigvalsh, extended_eigh};
//!
//! // Create a symmetric matrix
//! let a = array![
//! [2.0_f32, 1.0, 0.0],
//! [1.0, 2.0, 1.0],
//! [0.0, 1.0, 2.0]
//! ];
//!
//! // Compute eigenvalues only
//! let eigvals = extended_eigvalsh::<_, f64>(&a.view(), None, None).expect("Operation failed");
//! println!("Eigenvalues: {:?}", eigvals);
//!
//! // Compute both eigenvalues and eigenvectors
//! let (eigvals, eigvecs) = extended_eigh::<_, f64>(&a.view(), None, None).expect("Operation failed");
//! println!("Eigenvalues: {:?}", eigvals);
//! println!("Eigenvectors shape: {:?}", eigvecs.shape());
//! ```
// Re-export the main public functions
pub use ;
pub use advanced_precision_eigh;
// Internal functions are available to each other
pub use *;
pub use *;