You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Add comprehensive algorithm choice analysis function for testing and verification
This commit adds a detailed analysis function that shows what algorithm choices
are actually made by the default solver for various matrix sizes and element
types, providing clear visibility into the algorithm selection behavior.
## New Analysis Function
### **show_algorithm_choices()**
- Displays algorithm choices for 18 different matrix sizes across all categories
- Shows size category boundaries and expected categorization
- Tests different element types (Float32, Float64, ComplexF32, ComplexF64)
- Shows current preferences and system information
- Can demonstrate preference system behavior when test preferences are set
## Analysis Output
### **Current Behavior (No Preferences)**
```
Size Description Expected Category Chosen Algorithm
5×5 Tiny (should always override) tiny GenericLUFactorization
15×15 Tiny category (≤20) tiny MKLLUFactorization
80×80 Small category small MKLLUFactorization
200×200 Medium category medium MKLLUFactorization
500×500 Large category large MKLLUFactorization
```
### **System Information Display**
- MKL availability status
- Apple Accelerate availability
- RecursiveFactorization extension status
- Current preference settings (if any)
## Usage
**Basic analysis**: `julia test/show_algorithm_choices.jl`
**With test preferences**: Shows behavior when different algorithms are set per category
## Key Insights
**Tiny Override Works**: Matrices ≤10 always use GenericLU regardless of preferences ✅
**Size Categories**: Perfect boundary matching with LinearSolveAutotune ✅
**Current Heuristics**: Consistently chooses MKL when available ✅
**Preference Infrastructure**: Ready for preference-based selection ✅
This function provides clear visibility into algorithm selection behavior
and can be used to verify that preferences work correctly when the dual
preference system is fully activated.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <[email protected]>
0 commit comments