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
Copy file name to clipboardExpand all lines: README.md
+7-7Lines changed: 7 additions & 7 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,14 +1,14 @@
1
-
# FunKit 🧮
1
+
# MathFlow 🧮
2
2
**A Pythonic Interface for Symbolic and Numerical Mathematics**
3
3
4
-
FunKit bridges the gap between symbolic mathematics (SymPy) and numerical computations (NumPy/SciPy), offering a unified interface that maintains mathematical rigor while providing practical tools for real-world problems.
4
+
MathFlow bridges the gap between symbolic mathematics (SymPy) and numerical computations (NumPy/SciPy), offering a unified interface that maintains mathematical rigor while providing practical tools for real-world problems.
**Ready to revolutionize your mathematical computing workflow?**
10
10
```bash
11
-
pip install funkit
11
+
pip install mathflow
12
12
```
13
13
14
14
**Have Questions? Take a look at the Q&A:**
@@ -23,14 +23,14 @@ pip install funkit
23
23
-**📡 Signal System**: Qt-like signals for tracking expression mutations and clones, enabling reactive programming
24
24
-**🔄 Automatic Type Conversions**: Seamlessly and automatically converts between internal Poly and Expr representations based on context
25
25
-**📦 Lightweight**: ~0.5 MB itself, ~100 MB including dependencies
26
-
-**🧩 Fully backward compatible**: Seamlessly integrate SymPy and FunKit in the same script. All methods that work on SymPy Expr or Poly objects work on FunKit objects
26
+
-**🧩 Fully backward compatible**: Seamlessly integrate SymPy and MathFlow in the same script. All methods that work on SymPy Expr or Poly objects work on MathFlow objects
27
27
-**🔍 Exploratory**: Full IDE support, enabling easy tool finding and minimizing the learning curve.
Copy file name to clipboardExpand all lines: docs/QA.md
+9-9Lines changed: 9 additions & 9 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,12 +1,12 @@
1
-
# FunKit Q&A: Addressing Potential Concerns
1
+
# MathFlow Q&A: Addressing Potential Concerns
2
2
3
3
### Performance & Overhead
4
4
5
5
**Q: Doesn't adding an abstraction layer introduce significant performance overhead compared to using SymPy/NumPy directly?**
6
6
**A:** The overhead is minimal - just one or two `getattr()` calls, which are negligible compared to the actual mathematical computations. Python's attribute lookup is highly optimized, and mathematical operations like integration, differentiation, or root-finding completely dominate any method dispatch overhead.
7
-
In fact, FunKit often provides performance _improvements_ through cached lambdified expressions (eliminating repeated compilation) and automatic algorithm selection (like Horner's method for polynomial evaluation).
7
+
In fact, MathFlow often provides performance _improvements_ through cached lambdified expressions (eliminating repeated compilation) and automatic algorithm selection (like Horner's method for polynomial evaluation).
8
8
9
-
**Q: How does FunKit's performance compare to direct SymPy usage in practice?**
9
+
**Q: How does MathFlow's performance compare to direct SymPy usage in practice?**
10
10
**A:** For typical mathematical workflows, performance is equivalent or better. The `.n` attribute provides direct access to optimized numerical routines without manual lambdification overhead. Any microsecond differences in method dispatch are irrelevant when you're computing integrals or solving equations.
11
11
12
12
**Q: How does automatic type conversion between Poly and Expr work? Could this cause unexpected behavior?**
@@ -15,21 +15,21 @@ In fact, FunKit often provides performance _improvements_ through cached lambdif
15
15
### Practical Usage
16
16
17
17
**Q: How stable is the API?**
18
-
**A:** The core API is designed for stability, following established patterns from libraries like `requests`. The mathematical operations and core classes are unlikely to change significantly. Also, because FunKit has been designed using metaprogramming techniques, any changes to SymPy will naturally present themselves in FunKit.
18
+
**A:** The core API is designed for stability, following established patterns from libraries like `requests`. The mathematical operations and core classes are unlikely to change significantly. Also, because MathFlow has been designed using metaprogramming techniques, any changes to SymPy will naturally present themselves in MathFlow.
19
19
20
20
**Q: What about debugging and error messages?**
21
-
**A:** Since FunKit is built on SymPy, you get the same detailed error messages and debugging capabilities. The abstraction layer preserves the underlying mathematical error handling.
21
+
**A:** Since MathFlow is built on SymPy, you get the same detailed error messages and debugging capabilities. The abstraction layer preserves the underlying mathematical error handling.
22
22
23
23
### Ecosystem & Adoption
24
24
25
25
**Q: Why not just use SymPy directly? What's the compelling advantage?**
26
-
**A:**FunKit eliminates the friction of switching between symbolic and numerical computing. With SymPy, you constantly write boilerplate code for lambdification, handle type conversions, and manage separate workflows. FunKit provides a unified interface where every symbolic expression has numerical methods available via the `.n` attribute. It also adds additional convenience utilities such as the `.n.all_roots()`, `.n.all_poly_roots()`, `.nsolve_all()`, and more.
26
+
**A:**MathFlow eliminates the friction of switching between symbolic and numerical computing. With SymPy, you constantly write boilerplate code for lambdification, handle type conversions, and manage separate workflows. MathFlow provides a unified interface where every symbolic expression has numerical methods available via the `.n` attribute. It also adds additional convenience utilities such as the `.n.all_roots()`, `.n.all_poly_roots()`, `.nsolve_all()`, and more.
27
27
28
28
**Q: Is this just another "wrapper library" that adds complexity?**
29
-
**A:** No - FunKit is fully backward compatible with SymPy. You can seamlessly mix FunKit and SymPy objects in the same script. It's purpose is to add a better and more pythonic interface to existing functionality rather than replacing it. **It is intended to be used alongside SymPy**.
29
+
**A:** No - MathFlow is fully backward compatible with SymPy. You can seamlessly mix MathFlow and SymPy objects in the same script. It's purpose is to add a better and more pythonic interface to existing functionality rather than replacing it. **It is intended to be used alongside SymPy**.
30
30
31
31
**Q: How does this compare to existing solutions like SymEngine or SageMath?**
32
-
**A:** SymEngine focuses on computational speed for symbolic operations. FunKit focuses on workflow ergonomics and the symbolic-numerical interface. They solve different problems and could even be used together. FunKit has also been developed to be minimal and lightweight (~0.5 MB itself, and ~100 MB including dependencies) with a focus toward the analysis of functions and expressions, unlike SageMath (2 GB) or similar libraries which provide comprehensive mathematical tools.
32
+
**A:** SymEngine focuses on computational speed for symbolic operations. MathFlow focuses on workflow ergonomics and the symbolic-numerical interface. They solve different problems and could even be used together. MathFlow has also been developed to be minimal and lightweight (~0.5 MB itself, and ~100 MB including dependencies) with a focus toward the analysis of functions and expressions, unlike SageMath (2 GB) or similar libraries which provide comprehensive mathematical tools.
33
33
34
34
### Design Philosophy
35
35
@@ -43,7 +43,7 @@ In fact, FunKit often provides performance _improvements_ through cached lambdif
43
43
These aren't random features - they're solving real workflow problems.
44
44
45
45
**Q: Is there a learning curve for existing SymPy users?**
46
-
**A:** Minimal. All existing SymPy knowledge transfers directly. FunKit adds convenience features without changing fundamental concepts. Most methods are directly inherited from SymPy's Expr and Poly classes. You can gradually adopt FunKit features while keeping existing SymPy workflows.
46
+
**A:** Minimal. All existing SymPy knowledge transfers directly. MathFlow adds convenience features without changing fundamental concepts. Most methods are directly inherited from SymPy's Expr and Poly classes. You can gradually adopt MathFlow features while keeping existing SymPy workflows.
0 commit comments