Re: [GSOC2020][Boost.uBLAS] uBLAS DataFrame feature
Aniket Chowdhury via ublas <[email protected]> Fri, 20 Mar 2020 19:38:58 +0530
| Newsgroups | gmane.comp.lib.boost.ublas |
|---|---|
| Message-ID | <CAD+OSvWEExSzF8AgeF9PMx1J2WLXAUbfE1-_=R0+9QcXD=7TGw@mail.gmail.com> |
--===============5294124112575335195== Content-Type: multipart/alternative; boundary="00000000000055a72e05a149d45c" --00000000000055a72e05a149d45c Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Oh okay. GCC 10 is supposed to have the support for Ranges. The beta version supports Ranges and os going to get released in April. But, I guess we can avoid that if they don't. Thanks. On Fri, 20 Mar 2020, 19:35 Cem Bassoy via ublas, <[email protected]> wrote: > Hello Aniket, > > I cannot tell you which direction is the best for you. However, I > recommend a topic that you are really interested in and that you want to > continue even after GSOC. > > Clang and GCC still do not officially support Ranges - so I would leave > that out (https://en.cppreference.com/w/cpp/compiler_support). > Right now we should postpone the discussion of concepts for the tensor > type. > > Best, > CB > > Am Fr., 20. M=C3=A4rz 2020 um 13:54 Uhr schrieb Aniket Chowdhury via ubla= s < > [email protected]>: > >> Hey Cem. >> I went through the draft proposal and had some questions. >> >> Which direction do you think I should pursue? I am more inclined towards >> refactoring the enitre data_frame because if I believe correctly uBlas i= s >> moving towards C++20. Should I stick with ETs or can I use Ranges and >> Concepts? >> >> I was thinking to stick to standard C++20 Ranges only instead of Eric >> Neibler's One Ranges v3 library considering std to be more relevant. >> >> >> >> On Wed, 18 Mar 2020, 23:49 Aniket Chowdhury, < >> [email protected]> wrote: >> >>> Hey Cem. >>> Thanks for replying. Will do the needful and get back to you. >>> I understand that the proposal could do with a few more code examples. >>> Thanks. >>> >>> On Wed, Mar 18, 2020 at 8:15 PM Cem Bassoy via ublas < >>> [email protected]> wrote: >>> >>>> Hi Aniket, >>>> >>>> thanks for considering Boost/uBLAS. Your potential mentor is David. If >>>> he does not respond, just follow the instructions on the GSoC page and >>>> upload your proposal. >>>> >>>> Please note that we appreciate concrete (with code samples), realistic >>>> (regarding time) and referring (to previous or pull requests) proposal= s. >>>> Concrete examples inside the proposal will help us to understand inten= tion >>>> and it will demonstrate your experience and expertise. >>>> >>> I am pretty cobfident with the timeline that I have provided with. >> Again, regarding code examples should I add them for both C++20 and/or E= T? >> >>> >>>> Additionally, I advise to read >>>> >>>> - previous gsoc discussions on this or on the general boost mailing >>>> list >>>> - former gsoc student projects and proposals >>>> >>>> to have a good feeling of the requirements. >>>> >>>> Best, >>>> Cem >>>> >>>> >>>> >>>> Am Mo., 16. M=C3=A4rz 2020 um 23:15 Uhr schrieb Aniket Chowdhury via u= blas < >>>> [email protected]>: >>>> >>>>> Hi, >>>>> My name is Aniket Chowdhury >>>>> <https://github.com/aniket-chowdhury?tab=3Drepositories> and I am >>>>> second-year undergraduate student. >>>>> >>>>> I wish to implement the DataFrame library for Boost. I have made the >>>>> project proposal and am attaching the same. >>>>> As, this project is an expansion of the previous project >>>>> <https://github.com/BoostGSoC19/data_frame> there are a few >>>>> directions that I would like to work in whichever adds more to the pr= oject. >>>>> >>>>> 1. We could be to keep the existing code base as it is and implement >>>>> new features on top of it. >>>>> 2. We could try to restructure the code into *Modules*(C++20 feature) >>>>> and then implement the features. >>>>> 3. Or, we could restructure the code without ET but rather using *C++= 20 >>>>> One Ranges*. This makes more sense to me as I believe that uBlas is >>>>> being ported to C++20. >>>>> >>>>> The DataFrame would include the following features: >>>>> 1. All the features already present(union, combine, join). >>>>> 2. Read/write from *DataFrame using JSON*(boost::property_tree to >>>>> DataFrame) >>>>> 3. Operator support for addition, subtraction, multiplication, >>>>> division, modulo and power, etc as well as support for comparison >>>>> operators. >>>>> 4. Functions to perform apply, apply_element_wise, aggregate, >>>>> transform and expand on a given DataFrame. >>>>> 5. Data analysis tools for standard deviation, variance, mean, etc. >>>>> 6. Re-indexing methods like replace, duplicate, filter, etc. >>>>> 7. Reshaping methods for sorting, append, pivot, etc. >>>>> >>>> Also, could you tell me if I am on the right track regarding the free >> form functions that Boost is looking for? >> >>> >>>>> *Full Details* of the same can be found in the *Project Proposal*. >>>>> >>>>> I have been in contact with David Bellot for the past week regarding >>>>> GSoC. I have completed the first draft of the competency check and se= nt the >>>>> same to him. I would love to work I am requesting him to be assigned= as a >>>>> mentor for the same. >>>>> *PFA: *The Project Proposal >>>>> <https://docs.google.com/document/d/1wyegbUEbpOopaQSWtFd0a_ch4QeIERKX= GVX6GJSSdBo/edit?usp=3Dsharing>(linked >>>>> in case the attachment fails) >>>>> >>>> Here was the old proposal. >> >>> >>>>> This is an official application for the GSoC' 20. I am open to any an= d >>>>> all suggestions. >>>>> >>>>> Aniket Chowdhury >>>>> _______________________________________________ >>>>> ublas mailing list >>>>> [email protected] >>>>> https://lists.boost.org/mailman/listinfo.cgi/ublas >>>>> Sent to: [email protected] >>>>> >>>> _______________________________________________ >>>> ublas mailing list >>>> [email protected] >>>> https://lists.boost.org/mailman/listinfo.cgi/ublas >>>> Sent to: [email protected] >>>> >>> _______________________________________________ >> ublas mailing list >> [email protected] >> https://lists.boost.org/mailman/listinfo.cgi/ublas >> Sent to: [email protected] >> > _______________________________________________ > ublas mailing list > [email protected] > https://lists.boost.org/mailman/listinfo.cgi/ublas > Sent to: [email protected] > --00000000000055a72e05a149d45c Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable <div dir=3D"auto">Oh okay. GCC 10 is supposed to have the support for Range= s. The beta version supports Ranges and os going to get released in April. = But, I guess we can avoid that if they don't. Thanks.=C2=A0</div><br><d= iv class=3D"gmail_quote"><div dir=3D"ltr" class=3D"gmail_attr">On Fri, 20 M= ar 2020, 19:35 Cem Bassoy via ublas, <<a href=3D"mailto:[email protected]= t.org">[email protected]</a>> wrote:<br></div><blockquote class=3D"g= mail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-l= eft:1ex"><div dir=3D"ltr"><div>Hello Aniket,</div><div><br></div><div>I can= not tell you which direction is the best for you. However, I recommend a to= pic that you are really interested in and that you want to continue even af= ter GSOC. <br></div><div><br></div><div>Clang and GCC still do not official= ly support Ranges - so I would leave that out (<a href=3D"https://en.cppref= erence.com/w/cpp/compiler_support" target=3D"_blank" rel=3D"noreferrer">htt= ps://en.cppreference.com/w/cpp/compiler_support</a>).<br></div><div>Right n= ow we should postpone the discussion of concepts for the tensor type.<br></= div><div><br></div><div>Best,</div><div>CB<br></div><br><div class=3D"gmail= _quote"><div dir=3D"ltr" class=3D"gmail_attr">Am Fr., 20. M=C3=A4rz 2020 um= 13:54=C2=A0Uhr schrieb Aniket Chowdhury via ublas <<a href=3D"mailto:ub= [email protected]" target=3D"_blank" rel=3D"noreferrer">[email protected]= .org</a>>:<br></div><blockquote class=3D"gmail_quote" style=3D"margin:0p= x 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><d= iv dir=3D"auto">Hey Cem.=C2=A0<div dir=3D"auto">I went through the draft pr= oposal and had some questions.<div dir=3D"auto"><br></div><div dir=3D"auto"= >Which direction do you think I should pursue? I am more inclined towards r= efactoring the enitre data_frame because if I believe correctly uBlas is mo= ving towards C++20. Should I stick with ETs or can I use Ranges and Concept= s?=C2=A0</div><div dir=3D"auto"><br></div><div dir=3D"auto">I was thinking = to stick to standard C++20 Ranges only instead of Eric Neibler's One Ra= nges v3 library considering std to be more relevant.=C2=A0</div><div dir=3D= "auto"><br></div></div><br><br><div class=3D"gmail_quote" dir=3D"auto"><div= dir=3D"ltr" class=3D"gmail_attr">On Wed, 18 Mar 2020, 23:49 Aniket Chowdhu= ry, <<a href=3D"mailto:[email protected]" target=3D"_blank" r= el=3D"noreferrer">[email protected]</a>> wrote:<br></div><blo= ckquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left= :1px solid rgb(204,204,204);padding-left:1ex"><div dir=3D"ltr">Hey Cem.<div= >Thanks for replying. Will do the needful and get back to you.=C2=A0</div><= div>I understand that the proposal could do with a few more code examples.= =C2=A0</div><div>Thanks.</div></div><br><div class=3D"gmail_quote"><div dir= =3D"ltr" class=3D"gmail_attr">On Wed, Mar 18, 2020 at 8:15 PM Cem Bassoy vi= a ublas <<a href=3D"mailto:[email protected]" rel=3D"noreferrer nore= ferrer" target=3D"_blank">[email protected]</a>> wrote:<br></div><bl= ockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-lef= t:1px solid rgb(204,204,204);padding-left:1ex"><div dir=3D"ltr"><div>Hi Ani= ket,</div><div><br></div><div>thanks for considering Boost/uBLAS. Your pote= ntial mentor is David. If he does not respond, just follow the instructions= on the GSoC page and upload your proposal.</div><div><br></div><div>Please= note that we appreciate concrete (with code samples), realistic (regarding= time) and referring (to previous or pull requests) proposals. Concrete exa= mples inside the proposal will help us to understand intention and it will = demonstrate your experience and expertise. <br></div></div></blockquote></d= iv></blockquote></div><div dir=3D"auto">I am pretty cobfident with the time= line that I have provided with. Again, regarding code examples should I add= them for both C++20 and/or ET?</div><div class=3D"gmail_quote" dir=3D"auto= "><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;borde= r-left:1px solid rgb(204,204,204);padding-left:1ex"><div class=3D"gmail_quo= te"><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;bor= der-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir=3D"ltr"><div= ></div><div><br></div><div>Additionally, I advise to read </div><div><ul><l= i>previous gsoc discussions on this or on the general boost mailing list</l= i><li>former gsoc student projects and proposals</li></ul><div>to have a go= od feeling of the requirements.<br></div></div><div><br></div><div>Best,</d= iv><div>Cem<br></div><div><br></div><div><br></div></div><br><div class=3D"= gmail_quote"><div dir=3D"ltr" class=3D"gmail_attr">Am Mo., 16. M=C3=A4rz 20= 20 um 23:15=C2=A0Uhr schrieb Aniket Chowdhury via ublas <<a href=3D"mail= to:[email protected]" rel=3D"noreferrer noreferrer" target=3D"_blank">u= [email protected]</a>>:<br></div><blockquote class=3D"gmail_quote" st= yle=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padd= ing-left:1ex"><div dir=3D"ltr">Hi,=C2=A0<div>My name is=C2=A0<a href=3D"htt= ps://github.com/aniket-chowdhury?tab=3Drepositories" rel=3D"noreferrer nore= ferrer" target=3D"_blank">Aniket Chowdhury</a>=C2=A0and I am second-year un= dergraduate student.</div><div><br></div><div>I wish to implement the DataF= rame library for Boost. I have made the project proposal and am attaching t= he same.</div><div><div><div><div></div></div></div><div></div></div><div>A= s, this project is an expansion of the=C2=A0<a href=3D"https://github.com/B= oostGSoC19/data_frame" rel=3D"noreferrer noreferrer" target=3D"_blank">prev= ious project</a>=C2=A0there are a few directions that I would like to work = in whichever adds more to the project.</div><div><br></div><div>1. We could= be to keep the existing code base as it is and implement new features on t= op of it.</div><div>2. We could try to restructure the code into=C2=A0<b>Mo= dules</b>(C++20 feature) and then implement the features.</div><div>3. Or, = we could restructure the code without=C2=A0ET but rather using=C2=A0<b>C++2= 0 One Ranges</b>. This makes more sense to me as I believe that uBlas is be= ing ported to C++20.</div><div><br></div><div>The DataFrame would include t= he following features:</div><div>1. All the features already present(union,= combine, join).</div><div>2. Read/write from=C2=A0<b>DataFrame using JSON<= /b>(<span style=3D"background-color:transparent;color:rgb(36,39,41);font-fa= mily:"Courier New";white-space:pre-wrap">boost::property_tree to = DataFrame</span>)</div><div>3. Operator support for=C2=A0<span style=3D"bac= kground-color:transparent;color:rgb(0,0,0);font-family:"Proxima Nova&q= uot;,sans-serif;font-weight:700;white-space:pre-wrap">addition, subtraction= , multiplication, division, modulo and power, etc </span><span style=3D"bac= kground-color:transparent;color:rgb(0,0,0);font-family:"Proxima Nova&q= uot;,sans-serif;white-space:pre-wrap">as well as support for comparison ope= rators.</span></div><div>4. Functions to perform<span style=3D"background-c= olor:transparent;font-variant-numeric:normal;font-variant-east-asian:normal= ;font-family:"Proxima Nova",sans-serif;color:rgb(0,0,0);vertical-= align:baseline;white-space:pre-wrap"> </span><span style=3D"background-colo= r:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;fo= nt-family:"Proxima Nova",sans-serif;color:rgb(0,0,0);font-weight:= 700;vertical-align:baseline;white-space:pre-wrap">apply, apply_element_wise= , aggregate, transform and expand</span><span style=3D"background-color:tra= nsparent;font-variant-numeric:normal;font-variant-east-asian:normal;font-fa= mily:"Proxima Nova",sans-serif;color:rgb(0,0,0);vertical-align:ba= seline;white-space:pre-wrap"> on a given DataFrame.</span><br></div>5. Data= analysis tools for=C2=A0<span id=3D"m_-8301385799675461752m_-7376762986148= 225264gmail-m_-1255839329218212103m_-7149760812391761650gmail-m_-8094012315= 361310134gmail-m_1372898159282983835gmail-m_2539347862788583833gmail-m_-630= 67745495130108gmail-docs-internal-guid-7ab2eedf-7fff-5324-29fc-108f6de832ec= "><span style=3D"font-family:"Proxima Nova",sans-serif;color:rgb(= 0,0,0);background-color:transparent;font-weight:700;font-variant-numeric:no= rmal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre= -wrap">standard deviation, variance, mean, etc.</span></span><div>6. Re-ind= exing methods like=C2=A0<span id=3D"m_-8301385799675461752m_-73767629861482= 25264gmail-m_-1255839329218212103m_-7149760812391761650gmail-m_-80940123153= 61310134gmail-m_1372898159282983835gmail-m_2539347862788583833gmail-m_-6306= 7745495130108gmail-docs-internal-guid-97de9fde-7fff-ff47-7f83-0a08903e6481"= ><span style=3D"font-family:"Proxima Nova",sans-serif;color:rgb(0= ,0,0);background-color:transparent;font-weight:700;font-variant-numeric:nor= mal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-= wrap">replace, duplicate, filter, etc.</span></span></div><div>7. Reshaping= methods for=C2=A0<span id=3D"m_-8301385799675461752m_-7376762986148225264g= mail-m_-1255839329218212103m_-7149760812391761650gmail-m_-80940123153613101= 34gmail-m_1372898159282983835gmail-m_2539347862788583833gmail-m_-6306774549= 5130108gmail-docs-internal-guid-ed39d162-7fff-e164-cd1e-4f0db510492b"><span= style=3D"font-family:"Proxima Nova",sans-serif;color:rgb(0,0,0);= background-color:transparent;font-weight:700;font-variant-numeric:normal;fo= nt-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">= sorting, append, pivot, etc.</span></span></div></div></blockquote></div></= blockquote></div></blockquote></div><div dir=3D"auto"><span style=3D"font-f= amily:sans-serif">Also, could you tell me if I am on the right track regard= ing the free form functions that Boost is looking for?</span><br></div><div= class=3D"gmail_quote" dir=3D"auto"><blockquote class=3D"gmail_quote" style= =3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding= -left:1ex"><div class=3D"gmail_quote"><blockquote class=3D"gmail_quote" sty= le=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);paddi= ng-left:1ex"><div class=3D"gmail_quote"><blockquote class=3D"gmail_quote" s= tyle=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);pad= ding-left:1ex"><div dir=3D"ltr"><div><span style=3D"font-family:"Proxi= ma Nova",sans-serif;color:rgb(0,0,0);background-color:transparent;font= -weight:700;font-variant-numeric:normal;font-variant-east-asian:normal;vert= ical-align:baseline;white-space:pre-wrap"></span></div><div><font face=3D"P= roxima Nova, sans-serif" color=3D"#000000"><span style=3D"white-space:pre-w= rap"><br></span></font></div><div><font face=3D"Proxima Nova, sans-serif" c= olor=3D"#000000"><span style=3D"white-space:pre-wrap"><b>Full Details</b> o= f the same can be found in the <b>Project Proposal</b>.<b><br></b></span></= font><div><div><br></div><div>I have been in contact with David Bellot for = the past week regarding GSoC. I have completed the first draft of the compe= tency check and sent the same to him. I would love to work=C2=A0 I am reque= sting him to be assigned as a mentor for the same.</div></div></div><div><d= iv><b>PFA:=C2=A0</b><a href=3D"https://docs.google.com/document/d/1wyegbUEb= pOopaQSWtFd0a_ch4QeIERKXGVX6GJSSdBo/edit?usp=3Dsharing" style=3D"font-weigh= t:bold" rel=3D"noreferrer noreferrer" target=3D"_blank">The Project Proposa= l</a>(linked in case the attachment fails)<br></div></div></div></blockquot= e></div></blockquote></div></blockquote></div><div dir=3D"auto">Here was th= e old proposal.=C2=A0</div><div class=3D"gmail_quote" dir=3D"auto"><blockqu= ote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px= solid rgb(204,204,204);padding-left:1ex"><div class=3D"gmail_quote"><block= quote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1= px solid rgb(204,204,204);padding-left:1ex"><div class=3D"gmail_quote"><blo= ckquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left= :1px solid rgb(204,204,204);padding-left:1ex"><div dir=3D"ltr"><div><div></= div><div><br></div><div>This is an official application for the GSoC' 2= 0. I am open to any and all suggestions.=C2=A0</div><font color=3D"#888888"= ><div><br></div></font></div><font color=3D"#888888"><div>Aniket Chowdhury<= /div></font></div> _______________________________________________<br> ublas mailing list<br> <a href=3D"mailto:[email protected]" rel=3D"noreferrer noreferrer" targ= et=3D"_blank">[email protected]</a><br> <a href=3D"https://lists.boost.org/mailman/listinfo.cgi/ublas" rel=3D"noref= errer noreferrer noreferrer" target=3D"_blank">https://lists.boost.org/mail= man/listinfo.cgi/ublas</a><br> Sent to: <a href=3D"mailto:[email protected]" rel=3D"noreferrer noreferr= er" target=3D"_blank">[email protected]</a><br> </blockquote></div> _______________________________________________<br> ublas mailing list<br> <a href=3D"mailto:[email protected]" rel=3D"noreferrer noreferrer" targ= et=3D"_blank">[email protected]</a><br> <a href=3D"https://lists.boost.org/mailman/listinfo.cgi/ublas" rel=3D"noref= errer noreferrer noreferrer" target=3D"_blank">https://lists.boost.org/mail= man/listinfo.cgi/ublas</a><br> Sent to: <a href=3D"mailto:[email protected]" rel=3D"noreferrer = noreferrer" target=3D"_blank">[email protected]</a><br> </blockquote></div> </blockquote></div></div> _______________________________________________<br> ublas mailing list<br> <a href=3D"mailto:[email protected]" target=3D"_blank" rel=3D"noreferre= r">[email protected]</a><br> <a href=3D"https://lists.boost.org/mailman/listinfo.cgi/ublas" rel=3D"noref= errer noreferrer" target=3D"_blank">https://lists.boost.org/mailman/listinf= o.cgi/ublas</a><br> Sent to: <a href=3D"mailto:[email protected]" target=3D"_blank" rel=3D"n= oreferrer">[email protected]</a><br> </blockquote></div></div> _______________________________________________<br> ublas mailing list<br> <a href=3D"mailto:[email protected]" target=3D"_blank" rel=3D"noreferre= r">[email protected]</a><br> <a href=3D"https://lists.boost.org/mailman/listinfo.cgi/ublas" rel=3D"noref= errer noreferrer" target=3D"_blank">https://lists.boost.org/mailman/listinf= o.cgi/ublas</a><br> Sent to: <a href=3D"mailto:[email protected]" target=3D"_blank" = rel=3D"noreferrer">[email protected]</a><br> </blockquote></div> --00000000000055a72e05a149d45c-- --===============5294124112575335195== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline