Hi SymPy Community!

My name is Khalid Darmadi. I recently graduated with a Physics degree from 
Universitas Gadjah Mada, and now I find myself working as a Full Stack 
Engineer at Bank Rakyat Indonesia—quite the leap, I know! Coming from 
Physics to software engineering forced me to adapt quickly, which basically 
means I’ve become a professional Googler. Jokes aside, I'm genuinely 
excited about diving into open-source contribution, but I'd prefer to do it 
the right way (no one likes accidental git disasters). Google Summer of 
Code feels like the perfect opportunity to properly learn, contribute, and 
become part of a community that's making math accessible to everyone.

For more about my professional adventures, feel free to check out my LinkedIn 
profile <https://www.linkedin.com/in/khalidbagus/>.

As my way of introduction, I have been researching and proposing pull 
requests for these issues that I've found interesting:

*My Contributions*

   - *Issue #23510 <https://github.com/sympy/sympy/issues/23510> — * 
*Fix checksol Rejection for Float-Based Radicals (PR #27742 
   <https://github.com/sympy/sympy/pull/27742>) *For radical equations with 
   float inputs, the unradicalization process can yield a polynomial with both 
   a genuine positive solution and a spurious negative one. My PR 
   modifies checksol to use high-precision RootOf evaluation, combined with an 
   extra residual and sign check, ensuring that the correct branch is 
   recognized without forcing a complete conversion to rationals. 
   - *Issue #27573 <https://github.com/sympy/sympy/issues/27573> * *—* 
* Fix Periodic Inequalities in solveset (PR #27720 
   <https://github.com/sympy/sympy/pull/27720>) *I proposed a new helper 
   function to handle periodic inequalities by “lifting” the one-period 
   solution using an ImageSet. This change addresses the limitation where 
   expressions such as solveset(sin(x) > 0, x, domain=S.Reals) returned only a 
   single interval, by systematically shifting the base interval over ℝ.
   - *Issue #26518 <https://github.com/sympy/sympy/issues/26518> * *—* 
*Enhanced 
   Error Handling in function_range*
*(PR #27718 <https://github.com/sympy/sympy/pull/27718>) *Addressing errors 
   like TypeError: 'ConditionSet' object is not iterable, my PR 
   improves function_range by checking whether the computed set of critical 
   points (from solving f ′(x) = 0) is finite and iterable. If the derivative 
   remains unsolvable—even after applying simplify()—the function now raises a 
   detailed NotImplementedError that includes the unsolvable derivative 
   expression and suggests alternatives, such as using numerical methods or 
   monotonicity analysis. Additionally, I see potential in refining the 
   specialized routines (like _solve_radical) to detect unsolvable cases more 
   robustly, which could help resolve errors like “TypeError: The computation 
   had not completed because of the undecidable set membership is found in 
   every candidate.”

*Next Steps and Vision:*

Building on the insights gained from PR #27720 
<https://github.com/sympy/sympy/pull/27720> and PR #27742 
<https://github.com/sympy/sympy/pull/27742>, my plan is to tackle the 
broader challenge of creating a new explicit inequality solver that unifies 
the treatment of periodic inequalities and radical equations. The silver 
lining between these issues is that both highlight the need for robust 
candidate verification under floating-point limitations without sacrificing 
numerical performance. My approach involves developing a solver that:

   - Leverages high-precision verification techniques (using RootOf and 
   similar tools) to accurately check candidate solutions.
   - Handles periodicity by lifting base solutions over ℝ, ensuring that 
   all valid intervals are returned.
   - Avoids a full conversion to exact arithmetic, thereby preserving the 
   float-based workflow for numerical tasks.

I look forward to collaborating further on refining these ideas and would 
welcome any guidance or suggestions from the community on this unified 
approach.

Thank you for your time and support.

My warmest regards,
Khalid Darmadi (Link to my GitHub profile <https://github.com/khalidbagus>)

-- 
You received this message because you are subscribed to the Google Groups 
"sympy" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sympy+unsubscr...@googlegroups.com.
To view this discussion visit 
https://groups.google.com/d/msgid/sympy/e453f619-3fda-49b7-bc7d-4a5789b0c104n%40googlegroups.com.

Reply via email to