Hi, Eventhough have not been selected, do we still have a chance to continue the project? Without the stipend.
On Tuesday, April 2, 2024 at 7:14:15 AM UTC+5:30 Samith Kavishke wrote: > I have attached the changed version of this project. Thank you! > > On Monday, April 1, 2024 at 2:43:25 PM UTC+5:30 Samith Kavishke wrote: > >> I will go through it and try to suggest a new method if time permits. >> Thank you Francesco you helped a lot to achieve this amount. >> >> On Monday, April 1, 2024 at 2:27:15 PM UTC+5:30 Francesco Bonazzi wrote: >> >>> The issue I see in the proposal is that the methods should probably be >>> functions, not class methods. If we keep class methods we are probably >>> still forced to use subclassing (I would like to avoid that). Anyways, it >>> looks good, this is just a minor issue >>> >>> On Tuesday, March 26, 2024 at 12:07:15 p.m. UTC+1 Francesco Bonazzi >>> wrote: >>> >>>> The base idea is about modifying MatchPy in order to allow easy >>>> integration of MatchPy into SymPy and into the python bindings of >>>> protosym. >>>> Additional extensions to the project idea are welcome, provided there is >>>> enough time to complete them. Trying a translation of MatchPy into Rust >>>> has >>>> the potential of speeding up the library a lot, but it should be >>>> benchmarked. >>>> >>>> On Tuesday, March 26, 2024 at 2:54:23 a.m. UTC+1 samithkar...@gmail.com >>>> wrote: >>>> >>>>> Is it worth for me to mention about the Protosym's architecture, in >>>>> order to strengthen my proposal ? or do I need more contributions in >>>>> sympy >>>>> repositories. >>>>> >>>>> On Sunday, March 24, 2024 at 4:29:40 AM UTC+5:30 Samith Kavishke wrote: >>>>> >>>>>> Hi, >>>>>> Thank you, Francesco for your valuable insights. I have attached my >>>>>> current draft of GSOC 24 proposal. Can you help me with feedbacks for >>>>>> the >>>>>> proposal. >>>>>> >>>>>> >>>>>> On Tuesday, March 19, 2024 at 8:15:07 PM UTC+5:30 Francesco Bonazzi >>>>>> wrote: >>>>>> >>>>>>> No, no parsers are needed. Just a tree traversal for-loop. It's >>>>>>> already implemented: >>>>>>> >>>>>>> >>>>>>> - iterator >>>>>>> >>>>>>> <https://github.com/sympy/sympy/blob/94305f1976f84473f87d1b19d66ed9031b0c7e1f/sympy/utilities/matchpy_connector.py#L90> >>>>>>> - iterator size >>>>>>> >>>>>>> <https://github.com/sympy/sympy/blob/94305f1976f84473f87d1b19d66ed9031b0c7e1f/sympy/utilities/matchpy_connector.py#L99> >>>>>>> >>>>>>> As you see, in the current implementation we need to use >>>>>>> @op_iter.register... because "op_iter" is a MatchPy function that does >>>>>>> not >>>>>>> exist in SymPy... With @op_iter.register we can extend it to a SymPy >>>>>>> object. The problem is: >>>>>>> >>>>>>> 1. @op_iter.register is an almost hackish way to do it, it >>>>>>> messes up with the class inheritance. We need something easier to >>>>>>> use. >>>>>>> 2. The .register method defines the iterator on a class. We may >>>>>>> have cases in which we would like to have different iterators for >>>>>>> the same >>>>>>> class... so it shouldn't be a class method. >>>>>>> >>>>>>> >>>>>>> On Monday, March 18, 2024 at 11:20:10 p.m. UTC+1 >>>>>>> samithkar...@gmail.com wrote: >>>>>>> >>>>>>>> I think, I understood the point you are making. If we are going to >>>>>>>> redefine the tree structure in matchpy using overridable methods, does >>>>>>>> that >>>>>>>> mean we have to use a parser to translate the sympy object type to >>>>>>>> matchpy >>>>>>>> or are there any better way to handle the situation. >>>>>>>> On Saturday, March 16, 2024 at 8:32:03 PM UTC+5:30 Francesco >>>>>>>> Bonazzi wrote: >>>>>>>> >>>>>>>>> I suggest to start the unit tests of MatchPy in debug mode and >>>>>>>>> follow the tree traversal to get some more insight. Indeed, the code >>>>>>>>> is >>>>>>>>> quite complicated, but the debugger may help. MatchPy also provides a >>>>>>>>> tool >>>>>>>>> to dump the state into a GraphViz dot file. >>>>>>>>> >>>>>>>>> The idea is that matchpy_connector should not use all those >>>>>>>>> ".register( )" methods, it should not have objects subclassing >>>>>>>>> MatchPy >>>>>>>>> objects (currently there is Wildcard). >>>>>>>>> >>>>>>>>> On Saturday, March 16, 2024 at 1:52:55 p.m. UTC+1 >>>>>>>>> samithkar...@gmail.com wrote: >>>>>>>>> >>>>>>>>>> Hi, >>>>>>>>>> Still I am in the process of understanding the matchpy code base. >>>>>>>>>> at the moment I understand that, >>>>>>>>>> >>>>>>>>>> - Isinstance logic should replace to overridable method or >>>>>>>>>> any preferred way ( wrappers around classes new classes also >>>>>>>>>> possible >>>>>>>>>> without changing the existing code). >>>>>>>>>> - __iter__ logic should change due to the tree traversal must >>>>>>>>>> change accordingly, because it is rely on the inheritance. >>>>>>>>>> - replace method in the matchpy connector should change >>>>>>>>>> because it is replication of same code twice. >>>>>>>>>> - Enhance the capability of matchpy_connector, because still >>>>>>>>>> does not have the capability of solving calculus, matrices and >>>>>>>>>> more >>>>>>>>>> advanced problems. >>>>>>>>>> >>>>>>>>>> what are the other things that might affect if we add overridable >>>>>>>>>> method to Expressions? any suggestions for me to refer. >>>>>>>>>> On Wednesday, March 13, 2024 at 2:04:20 PM UTC+5:30 Francesco >>>>>>>>>> Bonazzi wrote: >>>>>>>>>> >>>>>>>>>>> On Wednesday, March 13, 2024 at 8:13:27 a.m. UTC+1 Aaron Meurer >>>>>>>>>>> wrote: >>>>>>>>>>> >>>>>>>>>>> As far as we can tell, SymPy is the only thing that uses >>>>>>>>>>> MatchPy, >>>>>>>>>>> outside of the specific research software from that research >>>>>>>>>>> group >>>>>>>>>>> that it was developed for. >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> Indeed, MatchPy is probably very underappreciated. Its >>>>>>>>>>> developers haven't really advertised it enough. >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> If making MatchPy more SymPy specific eases >>>>>>>>>>> the development burden, we should do that, especially if we are >>>>>>>>>>> going >>>>>>>>>>> to fork it anyway. I think the core of it does need to remain >>>>>>>>>>> independent of SymPy's types, especially if we want to try to >>>>>>>>>>> write a >>>>>>>>>>> Rust backend. >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> I would still make an attempt at keeping it generic. The main >>>>>>>>>>> issue is removing all "isinstance( ... )" and "__iter__" statements >>>>>>>>>>> in the >>>>>>>>>>> expression tree traversal algorithms of MatchPy and replace them >>>>>>>>>>> with more >>>>>>>>>>> generalizable statements. I'm confident this can be done and that >>>>>>>>>>> we can >>>>>>>>>>> still keep MatchPy generalizable to other libraries. >>>>>>>>>>> >>>>>>>>>> -- 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 on the web visit https://groups.google.com/d/msgid/sympy/72653f6b-d10d-4281-8fcc-c662c47d942bn%40googlegroups.com.