pub fn is_valid_kernel_matrix(
kernel_matrix: &[Vec<f64>],
tolerance: f64,
) -> Result<bool>Expand description
Check if a kernel matrix is valid (symmetric and positive semi-definite).
A valid kernel matrix must be:
- Square
- Symmetric:
K[i,j] = K[j,i] - Positive semi-definite (all eigenvalues ≥ 0)
Note: This function only checks symmetry. Full PSD checking requires eigendecomposition which is expensive.
§Arguments
kernel_matrix- Matrix to validatetolerance- Tolerance for symmetry check
§Returns
trueif matrix is valid
§Examples
use tensorlogic_sklears_kernels::kernel_utils::is_valid_kernel_matrix;
let K = vec![
vec![1.0, 0.8, 0.6],
vec![0.8, 1.0, 0.7],
vec![0.6, 0.7, 1.0],
];
assert!(is_valid_kernel_matrix(&K, 1e-10).unwrap());