XDL Standard Library Implementation Status
Last Updated: 2025-12-31
Overview
This document tracks the implementation progress of the XDL (eXtensible Data Language) standard library, a Rust-based implementation of IDL/GDL functionality.
Completion Summary
Fully Completed Phases ✅
- Phase 5: Array Manipulation (100%)
- Phase 6: Mathematics (100%) ✅ NEW
- Phase 7: Statistics (100%) - GPU-accelerated ✅ NEW
- Phase 8: String Operations (100%)
- Phase 9: File I/O (100%) ✅ NEW
- Phase 10: Image I/O (100%) ✅ NEW - PNG, JPEG, TIFF, BMP, GIF
- Phase 11: Signal Processing (100%) ✅ NEW
- Phase 12: Linear Algebra (100%) ✅ NEW
- Phase 13: Image Processing (100%) ✅ NEW
- Phase 14: Time & Date (100%) ✅ NEW
- Phase 15: Type Conversion (100%) ✅ NEW - Pointer/Object management
- Phase 16: Data Structures (100%) ✅ NEW - LIST, ORDEREDHASH, CREATE_STRUCT
- Phase 17: Complex Numbers (100%) ✅ NEW
- Phase 18: System & Control (100%) ✅ NEW
Object-Oriented Syntax ✅ NEW
- Array Methods: 17+ methods (
arr->Sum(),arr->Mean(),arr->Sort(), etc.) - String Methods: 16+ methods (
str->ToUpper(),str->Contains(), etc.) - DataFrame Methods: 15+ methods (
df->Head(),df->Column(), etc.) - Struct Field Access:
point.x,point.y
MATLAB Compatibility ✅
- MATLAB Transpiler: 28/28 unit tests passing
- Basic MATLAB Execution: Working (.m files execute directly)
- Function Mapping: ~80 MATLAB functions mapped to XDL equivalents
- Syntax Conversion: 1-based → 0-based indexing, element-wise operators
GPU Acceleration ✅ NEW
- xdl-amp Backend: Multi-backend GPU support
- Accelerated Functions: MIN, MAX, MEAN, TOTAL, MEDIAN, VARIANCE, STDDEV
- Performance: 10-50x speedup for large arrays (>10K elements)
- Smart Dispatch: Automatic CPU/GPU selection based on array size
xdl-amp GPU Backends
| Platform | Backends | Priority |
|---|---|---|
| macOS | MLX ✅, Metal, MPS, CoreML | MLX > MPS > Metal > CoreML |
| Windows | DirectX 12, DirectML, CUDA, cuDNN, Vulkan | cuDNN > CUDA > DirectML > DirectX12 |
| Linux | CUDA, cuDNN, ROCm, OpenCL, Vulkan | cuDNN > CUDA > ROCm > OpenCL |
Apple MLX Backend ✅ NEW (v0.1.5)
- Unified memory architecture (no CPU/GPU transfers)
- Lazy evaluation with JIT compilation
- Optimized for Apple Silicon (M1/M2/M3/M4)
- Complete FFT and linear algebra support
- Requires full Xcode installation
MLX Performance Benchmarks (Apple Silicon)
Matrix Multiplication Performance (vs CPU baseline):
| Matrix Size | CPU | Metal | MLX | MLX vs Metal |
|---|---|---|---|---|
| 100×100 | 0.94ms | 0.44ms (2.2x) | 0.55ms (1.7x) | Metal faster |
| 316×316 | 28.8ms | 1.5ms (19x) | 0.65ms (44x) | MLX 2.4x faster |
| 1000×1000 | 995ms | 7.4ms (135x) | 2.6ms (388x) | MLX 2.9x faster |
| 3162×3162 | 58.4s | 171ms (341x) | 38.5ms (1517x) | MLX 4.4x faster |
Key Findings:
- MLX excels at matrix multiplication - Up to 4.4x faster than Metal for large matrices
- GPU overhead for small arrays - CPU faster for arrays <100K elements
- MLX unified memory advantage - No explicit CPU↔GPU transfers required
Recommended Usage:
- Use MLX for matrix-heavy computations (linear algebra, ML inference)
- Use Metal for thread-safe operations requiring parallel access
- Use CPU for small arrays (<10K elements) to avoid GPU dispatch overhead
Run benchmark: cargo run --example mlx_benchmark --features mlx -p xdl-amp --release
Function Keyword Arguments ✅ NEW
- Parser Support:
NAME=valueand/FLAGsyntax in function calls - Array Generation: All 12 functions support
STARTandINCREMENTkeywords - MAKE_ARRAY: Flexible array creation with
DIMENSION,VALUE,/INDEXkeywords - Example:
arr = FINDGEN(5, START=10, INCREMENT=2)→[10, 12, 14, 16, 18]
Partial/Deferred Phases ⏸️
- Phase 10: Image I/O (Requires external image crates)
- Phase 19: Graphics (Extensive - partially complete via existing modules)
Detailed Phase Breakdown
Phase 5: Array Manipulation ✅ 100%
Status: Complete
Implemented Functions:
ARRAY_INDICES- Get indices for array reshapingARRAY_EQUAL- Compare arrays for equalityUNIQ- Find unique elementsPERMUTE- Permute array dimensionsCONGRID- Resample/resize arraysINTERPOL- Linear interpolationWHERE- Find elements matching conditionN_ELEMENTS- Get total number of elementsREFORM- Reshape arraysTRANSPOSE- Transpose arraysROTATE- Rotate arraysSHIFT- Shift array elementsREBIN- Resize arrays by integer factorsREPLICATE- Replicate valuesHISTOGRAM- Compute histogramMESHGRID- Generate coordinate matricesREVERSE- Reverse array orderSORT- Sort array elements
Phase 6: Mathematics ✅ 100%
Status: Complete
Implemented Functions:
Trigonometric:
SIN,COS,TANASIN,ACOS,ATAN,ATAN2SINH,COSH,TANHASINH,ACOSH,ATANH
Exponential/Logarithmic:
EXP,ALOG(LN),ALOG10,ALOG2SQRT,ABS,POW
Rounding:
FLOOR,CEIL,ROUND
Special Functions:
GAMMA,LNGAMMAERF,ERFCBESSEL_J(Bessel function)BETA- Beta functionFACTORIALGCD,LCM- Greatest common divisor, Least common multiplePOLY- Polynomial evaluationBINOMIAL- Binomial coefficientPRIME- Primality testPRIMES- Generate prime numbersPRODUCT- Array product
Array Generation:
FINDGEN,INDGEN,DINDGEN,BINDGENLINDGEN,UINDGEN,ULINDGEN,L64INDGENRANDOMU,RANDOMN
Calculus:
DERIV- Numerical derivativeINT_TABULATED- Numerical integration (trapezoidal)
Validation:
FINITE- Test for finite valuesCHECK_MATH- Check math errorsMACHAR- Machine arithmetic parameters
Phase 7: Statistics ✅ 100%
Status: Complete with GPU Acceleration
Implemented Functions:
VARIANCE,STDDEV- Variance and standard deviation (GPU-accelerated)MEDIAN- Median value (GPU-accelerated)MOMENT- Statistical momentsMEANABSDEV- Mean absolute deviationSKEWNESS,KURTOSIS- Distribution shapeCORRELATE- Correlation coefficientR_CORRELATE- Spearman rank correlation ✅ NEWA_CORRELATE- Auto-correlation (in signal.rs)C_CORRELATE- Cross-correlation (in signal.rs)REGRESS- Linear regressionLINFIT- Linear least squares fitPOLY_FIT- Polynomial fittingCURVEFIT- Levenberg-Marquardt curve fitting ✅ NEWLADFIT- L1 regression (least absolute deviations) ✅ NEWSVDFIT- SVD-based fitting ✅ NEWPERCENTILES- Compute percentilesROBUST_MEAN- Robust mean estimatorTRIMMED_MEAN- Mean with outliers removedRESISTANT_MEAN- Resistant meanRANDOM_POISSON- Poisson random numbers
GPU-Accelerated Functions (via xdl-amp):
MIN,MAX,MEAN,TOTAL- 10-50x speedup for large arraysMEDIAN,VARIANCE,STDDEV- SIMD-optimized with parallel execution
Probability Distributions:
GAUSS_PDF- Gaussian probability densityT_PDF- Student’s t distributionCHISQR_PDF- Chi-square distribution
Note: All statistical functions support MultiDimArray types for N-dimensional array operations.
Phase 8: String Operations ✅ 100%
Status: Complete
Implemented Functions:
STRLEN- String lengthSTRPOS- Find substring positionSTRMID- Extract substringSTRUPCASE,STRLOWCASE- Case conversionSTRTRIM- Trim whitespaceSTRJOIN- Join stringsSTRSPLIT- Split stringsSTRCMP- String comparisonSTRCOMPRESS- Compress whitespaceSTRMATCH- Wildcard pattern matchingSTRING- Convert to stringSTRREPLACE- Replace substringsSTRPUT- Insert/overlay stringSTRMESSAGE- Error message textFORMAT_AXIS_VALUES- Format numeric labelsSTREGEX- Regular expression matching (uses Rust regex crate)
OOP String Methods (via arrow syntax):
str->ToUpper(),str->ToLower(),str->Length()str->Contains(),str->IndexOf(),str->Split()str->StartsWith(),str->EndsWith(),str->Trim()str->Replace(),str->Substring(),str->Match()
All string operations complete.
Phase 9: File I/O ✅ 100%
Status: Complete
Implemented Functions:
File Operations:
FILE_BASENAME- Extract filenameFILE_DIRNAME- Extract directoryFILE_MKDIR- Create directoryFILE_DELETE- Delete filesFILE_COPY- Copy filesFILE_MOVE- Move filesFILE_TEST- Test file existenceFILE_LINES- Count file linesFILE_INFO- Get file metadataFILE_EXPAND_PATH- Expand path with home directory ✅ NEWFILE_SAME- Test if paths refer to same file ✅ NEWFILE_CHMOD- Change file permissions (Unix) ✅ NEWFINDFILE- Search for files in PATH ✅ NEW
I/O Operations:
GET_LUN- Get logical unit numberFREE_LUN- Free logical unitOPEN,OPENR,OPENW,OPENU- Open filesCLOSE- Close filesREADF,READU- Read formatted/unformattedWRITEF,PRINTF,WRITEU- Write operationsFLUSH- Flush output bufferPOINT_LUN- Position file pointerEOF- End of file testASSOC- Associate file with arrayFILEPATH- Locate filesREAD_JPEG- Read JPEG images
Phase 12: Linear Algebra ✅ 100%
Status: Complete with nalgebra
Implemented Functions:
IDENTITY- Identity matrixINVERT- Matrix inversionDETERM- DeterminantCROSSP- Cross product (3D vectors)DOTP- Dot productNORM- Vector/matrix normDIAGONAL- Extract diagonalTRACE- Matrix traceSVDC- Singular value decompositionLA_EIGENVAL- EigenvaluesLA_EIGENVEC- Eigenvectors ✅ NEWLUDC- LU decompositionLUSOL- LU solve linear systemLA_LINEAR_EQUATION- Solve Ax=b ✅ NEWLA_LEAST_SQUARES- Least squares solution ✅ NEWLA_CHOLESKY- Cholesky decomposition ✅ NEWLA_TRIDC- Tridiagonal decomposition ✅ NEWQR- QR decomposition ✅ NEWRANK- Matrix rank ✅ NEWCRAMER- Cramer’s rule solver ✅ NEWMATRIX_MULTIPLY- Matrix multiplication ✅ NEWCOND- Condition number ✅ NEWPINV- Moore-Penrose pseudoinverse ✅ NEW
Phase 11: Signal Processing ✅ 100%
Status: Complete
Implemented Functions:
FFT- Fast Fourier Transform (1D, forward and inverse)FFT_2D/FFT2- 2D Fast Fourier Transform ✅ NEWA_CORRELATE- Auto-correlationC_CORRELATE- Cross-correlationSMOOTH- Boxcar smoothingCONVOL- 1D/2D convolutionDIGITAL_FILTER- Filter coefficient generationHILBERT- Hilbert transform (phase-shift approximation)MEDIAN_FILTER- Median filteringBUTTERWORTH- Butterworth filter design ✅ NEWHANNING- Hanning window function ✅ NEWHAMMING- Hamming window function ✅ NEWBLACKMAN- Blackman window function ✅ NEWSAVGOL- Savitzky-Golay smoothing filter ✅ NEWLEEFILT- Lee filter for speckle noise ✅ NEWWV_HAAR- Haar wavelet transform ✅ NEWWV_IHAAR- Inverse Haar wavelet ✅ NEWWV_DWT- Discrete wavelet transform (Daubechies) ✅ NEWPOWER_SPECTRUM- Power spectral density ✅ NEW
Uses: rustfft crate for FFT operations
Phase 13: Image Processing ✅ 100%
Status: Complete
Implemented Functions:
Edge Detection:
SOBEL- Sobel edge detectionROBERTS- Roberts cross edge detectionPREWITT- Prewitt edge detectionCANNY- Canny edge detection ✅ NEWLAPLACIAN- Laplacian edge detection ✅ NEWEDGE_DOG- Difference of Gaussians ✅ NEW
Morphological Operations:
DILATE- Morphological dilationERODE- Morphological erosionMORPH_OPEN- Morphological opening ✅ NEWMORPH_CLOSE- Morphological closing ✅ NEW
Filtering:
CONVOL- 2D convolutionGAUSSIAN_FILTER- Gaussian blurTHRESHOLD- Binary thresholdingMEDIAN_2D- 2D median filter ✅ NEWHIST_EQUAL- Histogram equalization ✅ NEW
Transforms:
HOUGH- Hough transform for lines ✅ NEWRADON- Radon transform ✅ NEW
Segmentation:
WATERSHED- Watershed segmentation ✅ NEWLABEL_REGION- Connected component labeling ✅ NEW
Phase 14: Time & Date ✅ 100%
Status: Complete
Implemented Functions:
SYSTIME- System timeJULDAY- Julian day numberCALDAT- Calendar date from JulianBIN_DATE- Binary date/time arrayTIMESTAMP- Generate ISO 8601 timestamp ✅ NEWTIMEGEN- Generate time array ✅ NEWDAYOFYEAR- Day of year from date ✅ NEWJS2JD- Julian seconds to Julian date ✅ NEWWEEKDAY- Day of week from Julian date ✅ NEWTIC- Start timerTOC- Stop timer and report
Phase 15: Type Conversion ✅ 100%
Status: Complete
Implemented Functions:
BYTE,INT(FIX),LONGFLOAT(FLT),DOUBLE(DBL)UINT- Unsigned 16-bit integerULONG- Unsigned 32-bit integerLONG64- Signed 64-bit integerULONG64- Unsigned 64-bit integer
Pointer Management: ✅ NEW
PTR_NEW- Create heap pointerPTR_VALID- Check pointer validityPTR_FREE- Free pointerPTR_DEREF- Dereference pointer
Object Management: ✅ NEW
OBJ_NEW- Create object instanceOBJ_VALID- Check object validityOBJ_DESTROY- Destroy objectOBJ_CLASS- Get object class nameOBJ_ISA- Check object inheritance
Phase 16: Data Structures ✅ 100%
Status: Complete
Implemented Functions:
SIZE- Variable size and type infoN_PARAMS- Number of parametersTAG_NAMES- Structure field namesN_TAGS- Number of structure tagsHASH- Hash table creation
Collections: ✅ NEW
LIST- Create listLIST_ADD- Add item to listLIST_COUNT- Get list lengthORDEREDHASH- Ordered hash tableDICTIONARY- Dictionary (alias for hash)
Structures: ✅ NEW
CREATE_STRUCT- Create structure with fieldsSTRUCT_ASSIGN- Assign values to structure
Heap Management: ✅ NEW
HEAP_GC- Garbage collectionHEAP_FREE- Free all heap memory
Phase 17: Complex Numbers ✅ 100%
Status: Complete
Implemented Functions:
COMPLEX- Create complex numberDCOMPLEX- Create double-precision complex ✅ NEWREAL- Real partIMAGINARY(IMAG) - Imaginary partCONJ- Complex conjugateARG/PHASE- Phase/argument ✅ NEWCOMPLEXARR- Complex array creation ✅ NEWDCOMPLEXARR- Double complex array ✅ NEWPOLAR- Create from polar coordinates ✅ NEWCOMPLEX_EXP- Complex exponential ✅ NEWCOMPLEX_LOG- Complex logarithm ✅ NEWCOMPLEX_SQRT- Complex square root ✅ NEWCOMPLEX_SIN- Complex sine ✅ NEWCOMPLEX_COS- Complex cosine ✅ NEW
Phase 18: System & Control ✅ 100%
Status: Complete
Implemented Functions:
MESSAGE- Print message/error ✅ NEWON_ERROR- Error handling mode ✅ NEWMEMORY- Memory usage info ✅ NEWEXIT- Exit session ✅ NEWSTOP- Halt executionRETALL- Return to top level ✅ NEWROUTINE_INFO- Query routine information ✅ NEWHELP- Display helpCD- Change directorySPAWN- Execute system commandsWAIT- Pause executionEXECUTE- Execute string as command ✅ NEWN_PARAMS- Number of procedure parameters ✅ NEW
Control Flow Statements (fully implemented):
CONTINUE- Continue to next loop iterationBREAK- Break out of loop- Works in FOR, WHILE, REPEAT loops and CASE statements
Note: Advanced heap and scope management (HEAP_GC, SCOPE_*) deferred.
Deferred/Skipped Phases
Phase 10: Image I/O ✅ 100%
Status: Complete (requires image-io feature)
Implemented Functions:
READ_PNG,WRITE_PNG- PNG format ✅ NEWREAD_JPEG,WRITE_JPEG- JPEG format ✅ NEWREAD_TIFF,WRITE_TIFF- TIFF format ✅ NEWREAD_BMP,WRITE_BMP- BMP format ✅ NEWREAD_GIF,WRITE_GIF- GIF format ✅ NEWREAD_IMAGE,WRITE_IMAGE- Auto-detect format ✅ NEWQUERY_IMAGE- Get image dimensions ✅ NEWTV,TVSCL- Display image (placeholder) ✅ NEW
Phase 19: Graphics 🔄
Status: Partially complete via existing graphics modules Note: Core plotting already implemented in graphics_procs.rs
Statistics
Total Functions Implemented
- Core Functions: ~300+ (including 110+ newly implemented)
- ML Functions: 75+ (separate ML module with Linfa integration)
- Graphics Procedures: 50+ (separate graphics module)
- GPU Backends: 12 production-ready backends
- Total: 500+ functions/procedures
Code Metrics
- Lines of Code: ~15,000+ (stdlib only)
- Test Coverage: Growing (unit tests in each module)
- Build Status: ✅ Clean build with all features
Testing Infrastructure ✅
- Comprehensive Test Suite: 5 major test files covering all language features
- MATLAB Compatibility Tests: 28 unit tests for transpilation pipeline
- MATLAB Execution Tests: Direct .m file execution verification
- Automated Test Runner:
tests/test_all.shfor comprehensive validation - Parser Fixes: Resolved complex control flow syntax issues
Next Steps
High Priority
- ✅ Complete remaining string functions (regex support)
- ✅ Complete Phase 11 signal processing basics
- ✅ Add more image processing filters
- ✅ Extend linear algebra functions
Medium Priority
- Add full structure support for Phase 16
- Implement pointer/object management (PTR_NEW, OBJ_NEW)
- ✅ Complete time/date utilities
- Add Phase 10 image I/O (with image crate integration)
Low Priority
- Extended graphics functions
- ✅ Advanced statistical functions
- Performance optimization passes
Dependencies
Core Dependencies
xdl-core- Core types and error handlingnalgebra- Linear algebra operationsnum-complex- Complex number supportrand- Random number generation
GPU Acceleration (xdl-amp)
mlx-rs- Apple MLX bindings (macOS, optional, requires Xcode)metal- Apple Metal GPU (macOS)cudarc- NVIDIA CUDA (optional)ash- Vulkan (optional)
Development Dependencies
cargo-test- Unit testingcriterion- Benchmarking (future)
Testing Strategy
Each module includes:
- Unit tests for individual functions
- Integration tests for complex workflows
- Example scripts in
/examples - Test data in
/tests
Run tests: cargo test --all
Contributing
When adding new functions:
- Add to appropriate module (math.rs, array.rs, etc.)
- Register in
lib.rsdispatch tables - Add unit tests
- Update this status document
- Run
cargo fmt --allbefore committing
Version History
- v0.1.0 (2025-01) - Initial implementation with 220+ functions
- Phases 5-18 mostly complete
- Core mathematical, array, string, and I/O operations functional
- Linear algebra with nalgebra integration
- Time/date handling
-
System control and error handling
- v0.1.1 (2025-11) - GPU acceleration and MultiDimArray support
- Added GPU acceleration for MIN, MAX, MEAN, TOTAL functions (10-50x speedup)
- Extended statistical functions to support MultiDimArray types
- Improved CT visualization with proper windowing and normalization
- Added 3D volume visualization to medical imaging demo
-
Added comprehensive user guides for medical and geophysical demos
- v0.1.2 (2025-12) - OOP syntax, GPU acceleration, and keyword arguments
- Full Object-Oriented syntax support (
arr->Sum(),str->ToUpper(), etc.) - Added 17+ Array methods, 16+ String methods, 15+ DataFrame methods
- GPU acceleration for MEDIAN, VARIANCE, STDDEV (SIMD-optimized)
- STREGEX regular expression support complete
- CONTINUE/BREAK control flow statements complete
- Function keyword arguments (
NAME=value,/FLAGsyntax) - MAKE_ARRAY function with DIMENSION, VALUE, /INDEX keywords
- All array generation functions support START/INCREMENT keywords
-
Documentation updates for 70+ new functions
- v0.1.3 (2025-12) - Major stdlib expansion: 80+ new functions
- Phase 6 Mathematics: PRIME, PRIMES, BINOMIAL, GCD, LCM, BETA, DERIV, INT_TABULATED, POLY, PRODUCT, MACHAR, CHECK_MATH, FINITE
- Phase 7 Statistics: R_CORRELATE, LADFIT, SVDFIT, CURVEFIT, PERCENTILES, ROBUST_MEAN, TRIMMED_MEAN, RESISTANT_MEAN, RANDOM_POISSON
- Phase 9 File I/O: FILE_EXPAND_PATH, FILE_SAME, FILE_CHMOD, FINDFILE, FILE_BASENAME, FILE_DIRNAME, FILE_LINES, POINT_LUN, READU, WRITEU, ASSOC
- Phase 11 Signal: FFT_2D, HANNING, HAMMING, BLACKMAN, BUTTERWORTH, SAVGOL, LEEFILT, WV_HAAR, WV_IHAAR, WV_DWT, POWER_SPECTRUM
- Phase 12 Linear Algebra: LA_EIGENVEC, LA_LINEAR_EQUATION, LA_LEAST_SQUARES, LA_CHOLESKY, LA_TRIDC, QR, RANK, CRAMER, MATRIX_MULTIPLY, COND, PINV
- Phase 13 Image: CANNY, HOUGH, RADON, WATERSHED, LABEL_REGION, MORPH_OPEN, MORPH_CLOSE, HIST_EQUAL, EDGE_DOG, LAPLACIAN, MEDIAN_2D
- Phase 14 Time: WEEKDAY, BIN_DATE, TIMESTAMP, TIMEGEN, DAYOFYEAR, JS2JD
- Phase 17 Complex: DCOMPLEX, COMPLEXARR, DCOMPLEXARR, ARG, POLAR, COMPLEX_EXP/LOG/SQRT/SIN/COS
-
Phase 18 System: MEMORY, EXIT, RETALL, ROUTINE_INFO, MESSAGE, ON_ERROR, EXECUTE, N_PARAMS
- v0.1.4 (2025-12) - Complete stdlib implementation: 30+ additional functions
- Phase 10 Image I/O: READ_PNG, WRITE_PNG, READ_JPEG, WRITE_JPEG, READ_TIFF, WRITE_TIFF, READ_BMP, WRITE_BMP, READ_GIF, WRITE_GIF, READ_IMAGE, WRITE_IMAGE, QUERY_IMAGE, TV, TVSCL
- Phase 15 Pointer/Object: PTR_NEW, PTR_VALID, PTR_FREE, PTR_DEREF, OBJ_NEW, OBJ_VALID, OBJ_DESTROY, OBJ_CLASS, OBJ_ISA
- Phase 16 Data Structures: LIST, LIST_ADD, LIST_COUNT, ORDEREDHASH, DICTIONARY, CREATE_STRUCT, STRUCT_ASSIGN, HEAP_GC, HEAP_FREE
-
Added comprehensive unit test suite (29 tests covering all new functions)
- v0.1.5 (2025-12) - Apple MLX backend for xdl-amp
- Added Apple MLX backend with unified memory architecture
- MLX base operations: add, sub, mul, div, pow, matmul, sin, cos, exp, log, sqrt
- MLX reductions: sum, max, min, median, variance, stddev
- MLX extended operations (new capabilities):
- FFT: fft_1d, ifft_1d, fft_2d, rfft_1d
- Linear algebra: qr, svd, cholesky, inv, solve, eigh, norm
- Activations: sigmoid, softmax, tanh, erf
- Updated backend priority on macOS: MLX > MPS > Metal > CoreML
- Requires full Xcode installation (not Command Line Tools)
-
Performance benchmark: MLX up to 1517x faster than CPU, 4.4x faster than Metal for large matrix multiplication
- v0.1.6 (2025-12) - OpenCL and DirectX 12 GPU backends
- OpenCL backend fully implemented with complete kernel support
- DirectX 12 backend via DirectML delegation
- All 12 GPU backends now production-ready
- Vulkan backend with compute shader support
-
Updated GPU documentation for all platforms
- v0.1.7 (2025-12) - Documentation consolidation and updates
- Updated all GPU documentation for implemented backends
- Fixed ML documentation formatting issues
- Consolidated documentation structure
- Total functions now exceeds 500+
References
- IDL Documentation: https://www.l3harrisgeospatial.com/docs/routines.html
- GDL Project: https://github.com/gnudatalanguage/gdl
- nalgebra: https://nalgebra.org/
- Apple MLX: https://github.com/ml-explore/mlx
- mlx-rs (Rust bindings): https://github.com/oxideai/mlx-rs