Metadata-Version: 2.4
Name: IBB_Helper
Version: 0.4.21
Summary: Helper functions for symbolic math, matrix visualization, and plotting
Author-email: "University of Stuttgart, Institute for Structural Mechanics (IBB)" <mvs@ibb.uni-stuttgart.de>
License-Expression: BSD-3-Clause
Project-URL: repository, https://www.ibb.uni-stuttgart.de/en/
Classifier: Programming Language :: Python :: 3
Classifier: Operating System :: OS Independent
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: numpy>=1.19
Requires-Dist: scipy>=1.5
Requires-Dist: sympy>=1.8
Requires-Dist: matplotlib>=3.3
Requires-Dist: plotly>=5.0
Requires-Dist: ipython>=7.0
Dynamic: license-file

## Helper functions for symbolic math, matrix visualization, and plotting

**Author:** University of Stuttgart, Institute for Structural Mechanics (IBB)    
**License:** BSD3  
**Version:** 0.4.21        
**Date:** Sep 08, 2026  

### Description

This helper module currently provides 18 specialized functions for symbolic mathematics, matrix visualization, and plotting operations. Designed for SymPy, NumPy, Matplotlib, and Plotly integration in Jupyter Notebooks and Python environments.

### Helper Functions

1. **animate**           - Animate 2D curves from symbolic expressions or datasets
2. **animate_arrow**     - Animates a moving arrow along a parametric path
3. **combine_plots**     - Stack multiple Matplotlib/Plotly plots into combined figures
4. **contour_plot**      - Plot 2D and 3D contour lines and filled regions from symbolic expressions mirroring Maple's contourplot
5. **display**           - Format scalars, vectors, or matrices in LaTeX for display
6. **display_eigen**     - Compute and display eigenvalues/eigenvectors with LaTeX formatting
7. **display_matrix**    - Display truncated matrices with optional numerical evaluation
8. **extend_plot**       - Merge multiple plots side-by-side with horizontal offsets
9. **minimize**          - General optimization wrapper for symbolic expressions with constraints
10. **newtons_method**     - Newton-Raphson root finding mirroring Maple's Student[Calculus1][NewtonsMethod] with value, sequence, plot, and animation output
11. **num_int**           - Numerically integrate symbolic expressions over 1D domains using composite Gauss quadrature
12. **plot_2d**          - Plot symbolic expressions or datasets in 2D using Matplotlib
13. **plot_3d**          - Plot symbolic 3D surfaces using Plotly for interactive visualization
14. **plot_arrow**       - Plot 2D vectors as arrows mirroring Maple's arrow() command, compatible with combine_plots
15. **plot_inequal**     - Plot 2D regions defined by symbolic inequalities mirroring Maple's inequal() command (with alias `inequal`)
16. **plot_param_grid**  - Plot 2D parametric surface grids with control points
17. **ston**             - Convert symbolic vectors/matrices to NumPy arrays and create *_num variables
18. **symbolic_BSpline** - Generate symbolic B-spline basis functions with plotting  

### Dependencies

- Python 3.8+
- numpy, sympy, matplotlib, plotly, scipy
- IPython (for LaTeX rendering)


### Quick Start
```python
import IBB_Helper as ibb

# Display matrix
ibb.display_matrix(np.array([[1, 2], [3, 4]]), name="A")

# Show symbolic expression  
ibb.display(sp.sin(x)**2 + sp.cos(x)**2, name="Identity")

# Plot 2D curves
ibb.plot_2d([sp.sin(x), sp.cos(x)], var=(x, (-np.pi, np.pi)))

# Plot 3D surface
ibb.plot_3d(sp.sin(x*y), var=(x, (-2, 2), y, (-2, 2)))

# Plot 2D contours
ibb.contour_plot([f1, f2], var=(x, (0, 2000), y, (0, 200)), contours=[0.04, 0.05, 0.06])

# Plot inequality region
ibb.plot_inequal({x + y > 0, x - y <= 1}, var=(x, (-3, 3), y, (-3, 3)))

# Plot vectors as arrows
ibb.plot_arrow([G1, G2], colors=["blue", "blue"], labels=["$g_1$", "$g_2$"])

# Newton's method
ibb.newtons_method(x**3 - x - 2, x, 0.5, output="animation", stoppingcriterion="absolute")

# Symbolic to NumPy conversion
ibb.ston(K, M, D)  # creates K_num, M_num, D_num and returns them
```


### Development Status

This is an **ongoing project** with regular enhancements. Updates might include:

- New helper functions
- Performance optimizations
- Extended compatibility
- Bug fixes and stability improvements


### Notes

- Optimized for education, research, and technical documentation
- Seamless SymPy/NumPy integration
- Enhanced LaTeX formatting for presentations
