Skip to content

Releases: NAVEENMN/inkan

v0.2.0 - Bounded-coordinate stabilization + 2D support

Choose a tag to compare

@NAVEENMN NAVEENMN released this 05 Sep 18:07

Bounded-coordinate stabilization

The normalized coordinate is now clamped to [0, 4] before evaluating the truncated power sum. This prevents the growth of cancellation error at large off-support coordinates,
which caused partition-of-unity errors exceeding 0.88 at grid_size=100 in v0.1.x. With the clamp, errors remain below 1e-5 for grid sizes up to 200.

2D tensor-product surfaces

KANLayer now accepts dim=2 for learning tensor-product B-spline surfaces:

layer = KANLayer(2, 1, dim=2, grid_size=12)  # S(x,y) = b_x^T C b_y                                                                                                                
                                            
Other changes                                                                                                                                                                      
                                                                                                                                                                                 
- spline_order now rejects non-cubic values with a clear error (only k=3 is implemented)                                                                                           
- KANNetwork accepts grid_range parameter
- New plot_surface() visualization for 2D layers                                                                                                                                   
- New examples/surface_fitting.py                                                                                                                                                  
- README updated with stability table, H100 benchmarks, limitations section
                                                                                                                                                                                   
Breaking changes                                                                                                                                                                   
 
None. Existing code using KANLayer and KANNetwork with default arguments works unchanged.