Re: [GSOC2020][Boost.uBLAS] uBLAS DataFrame feature

Aniket Chowdhury via ublas <[email protected]> Fri, 20 Mar 2020 18:22:45 +0530
Newsgroups gmane.comp.lib.boost.ublas
Message-ID <CAD+OSvVyAohsEe+cOaL7AD-X-=nHVms4mNoM+61Nac7u9=jxMQ@mail.gmail.com>
--===============5558564454108493862==
Content-Type: multipart/alternative; boundary="000000000000be138c05a148c3c1"

--000000000000be138c05a148c3c1
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

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 is
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 h=
e
>> does not respond, just follow the instructions on the GSoC page and uplo=
ad
>> your proposal.
>>
>> Please note that we appreciate concrete (with code samples), realistic
>> (regarding time) and referring (to previous or pull requests) proposals.
>> Concrete examples inside the proposal will help us to understand intenti=
on
>> 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 ET?

>
>> 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 ubl=
as <
>> [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 project.
>>>
>>> 1. We could be to keep the existing code base as it is and implement ne=
w
>>> 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 sent=
 the
>>> same to him. I would love to work  I am requesting him to be assigned a=
s a
>>> mentor for the same.
>>> *PFA: *The Project Proposal
>>> <https://docs.google.com/document/d/1wyegbUEbpOopaQSWtFd0a_ch4QeIERKXGV=
X6GJSSdBo/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 and
>>> 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]
>>
>

--000000000000be138c05a148c3c1
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"auto">Hey Cem.=C2=A0<div dir=3D"auto">I went through the draft =
proposal and had some questions.<div dir=3D"auto"><br></div><div dir=3D"aut=
o">Which direction do you think I should pursue? I am more inclined towards=
 refactoring the enitre data_frame because if I believe correctly uBlas is =
moving towards C++20. Should I stick with ETs or can I use Ranges and Conce=
pts?=C2=A0</div><div dir=3D"auto"><br></div><div dir=3D"auto">I was thinkin=
g to stick to standard C++20 Ranges only instead of Eric Neibler&#39;s One =
Ranges 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 Chow=
dhury, &lt;<a href=3D"mailto:[email protected]">8.aniket.chowdhu=
[email protected]</a>&gt; wrote:<br></div><blockquote class=3D"gmail_quote" styl=
e=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div di=
r=3D"ltr">Hey Cem.<div>Thanks for replying. Will do the needful and get bac=
k to you.=C2=A0</div><div>I understand that the proposal could do with a fe=
w 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 via ublas &lt;<a href=3D"mailto:[email protected]" t=
arget=3D"_blank" rel=3D"noreferrer">[email protected]</a>&gt; wrote:<br=
></div><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 dir=3D"ltr"><=
div>Hi Aniket,</div><div><br></div><div>thanks for considering Boost/uBLAS.=
 Your potential mentor is David. If he does not respond, just follow the in=
structions 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. Co=
ncrete examples inside the proposal will help us to understand intention an=
d it will demonstrate your experience and expertise. <br></div></div></bloc=
kquote></div></blockquote></div><div dir=3D"auto">I am pretty cobfident wit=
h the timeline that I have provided with. Again, regarding code examples sh=
ould I add them for both C++20 and/or ET?</div><div class=3D"gmail_quote" d=
ir=3D"auto"><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;bo=
rder-left:1px #ccc solid;padding-left:1ex"><div class=3D"gmail_quote"><bloc=
kquote 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><d=
iv><br></div><div>Additionally, I advise to read </div><div><ul><li>previou=
s gsoc discussions on this or on the general boost mailing list</li><li>for=
mer gsoc student projects and proposals</li></ul><div>to have a good feelin=
g of the requirements.<br></div></div><div><br></div><div>Best,</div><div>C=
em<br></div><div><br></div><div><br></div></div><br><div class=3D"gmail_quo=
te"><div dir=3D"ltr" class=3D"gmail_attr">Am Mo., 16. M=C3=A4rz 2020 um 23:=
15=C2=A0Uhr schrieb Aniket Chowdhury via ublas &lt;<a href=3D"mailto:ublas@=
lists.boost.org" target=3D"_blank" rel=3D"noreferrer">[email protected]=
</a>&gt;:<br></div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0p=
x 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div d=
ir=3D"ltr">Hi,=C2=A0<div>My name is=C2=A0<a href=3D"https://github.com/anik=
et-chowdhury?tab=3Drepositories" target=3D"_blank" rel=3D"noreferrer">Anike=
t Chowdhury</a>=C2=A0and I am second-year undergraduate student.</div><div>=
<br></div><div>I wish to implement the DataFrame library for Boost. I have =
made the project proposal and am attaching the same.</div><div><div><div><d=
iv></div></div></div><div></div></div><div>As, this project is an expansion=
 of the=C2=A0<a href=3D"https://github.com/BoostGSoC19/data_frame" target=
=3D"_blank" rel=3D"noreferrer">previous project</a>=C2=A0there are a few di=
rections 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 top of it.</div><div>2. We could try to r=
estructure the code into=C2=A0<b>Modules</b>(C++20 feature) and then implem=
ent the features.</div><div>3. Or, we could restructure the code without=C2=
=A0ET but rather using=C2=A0<b>C++20 One Ranges</b>. This makes more sense =
to me as I believe that uBlas is being ported to C++20.</div><div><br></div=
><div>The DataFrame would include the 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:tran=
sparent;color:rgb(36,39,41);font-family:&quot;Courier New&quot;;white-space=
:pre-wrap">boost::property_tree to DataFrame</span>)</div><div>3. Operator =
support for=C2=A0<span style=3D"background-color:transparent;color:rgb(0,0,=
0);font-family:&quot;Proxima Nova&quot;,sans-serif;font-weight:700;white-sp=
ace:pre-wrap">addition, subtraction, multiplication, division, modulo and p=
ower, etc </span><span style=3D"background-color:transparent;color:rgb(0,0,=
0);font-family:&quot;Proxima Nova&quot;,sans-serif;white-space:pre-wrap">as=
 well as support for comparison operators.</span></div><div>4. Functions to=
 perform<span style=3D"background-color:transparent;font-variant-numeric:no=
rmal;font-variant-east-asian:normal;font-family:&quot;Proxima Nova&quot;,sa=
ns-serif;color:rgb(0,0,0);vertical-align:baseline;white-space:pre-wrap"> </=
span><span style=3D"background-color:transparent;font-variant-numeric:norma=
l;font-variant-east-asian:normal;font-family:&quot;Proxima Nova&quot;,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:transparent;font-variant-numeric:normal;fon=
t-variant-east-asian:normal;font-family:&quot;Proxima Nova&quot;,sans-serif=
;color:rgb(0,0,0);vertical-align:baseline;white-space:pre-wrap"> on a given=
 DataFrame.</span><br></div>5. Data analysis tools for=C2=A0<span id=3D"m_-=
7149760812391761650gmail-m_-8094012315361310134gmail-m_1372898159282983835g=
mail-m_2539347862788583833gmail-m_-63067745495130108gmail-docs-internal-gui=
d-7ab2eedf-7fff-5324-29fc-108f6de832ec"><span style=3D"font-family:&quot;Pr=
oxima Nova&quot;,sans-serif;color:rgb(0,0,0);background-color:transparent;f=
ont-weight:700;font-variant-numeric:normal;font-variant-east-asian:normal;v=
ertical-align:baseline;white-space:pre-wrap">standard deviation, variance, =
mean, etc.</span></span><div>6. Re-indexing methods like=C2=A0<span id=3D"m=
_-7149760812391761650gmail-m_-8094012315361310134gmail-m_137289815928298383=
5gmail-m_2539347862788583833gmail-m_-63067745495130108gmail-docs-internal-g=
uid-97de9fde-7fff-ff47-7f83-0a08903e6481"><span style=3D"font-family:&quot;=
Proxima Nova&quot;,sans-serif;color:rgb(0,0,0);background-color:transparent=
;font-weight:700;font-variant-numeric:normal;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_-7=
149760812391761650gmail-m_-8094012315361310134gmail-m_1372898159282983835gm=
ail-m_2539347862788583833gmail-m_-63067745495130108gmail-docs-internal-guid=
-ed39d162-7fff-e164-cd1e-4f0db510492b"><span style=3D"font-family:&quot;Pro=
xima Nova&quot;,sans-serif;color:rgb(0,0,0);background-color:transparent;fo=
nt-weight:700;font-variant-numeric:normal;font-variant-east-asian:normal;ve=
rtical-align:baseline;white-space:pre-wrap">sorting, append, pivot, etc.</s=
pan></span></div></div></blockquote></div></blockquote></div></blockquote><=
/div><div dir=3D"auto"><span style=3D"font-family:sans-serif">Also, could y=
ou tell me if I am on the right track regarding the free form functions tha=
t Boost is looking for?</span><br></div><div class=3D"gmail_quote" dir=3D"a=
uto"><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-le=
ft:1px #ccc solid;padding-left:1ex"><div class=3D"gmail_quote"><blockquote =
class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px sol=
id rgb(204,204,204);padding-left:1ex"><div class=3D"gmail_quote"><blockquot=
e class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px s=
olid rgb(204,204,204);padding-left:1ex"><div dir=3D"ltr"><div><span style=
=3D"font-family:&quot;Proxima Nova&quot;,sans-serif;color:rgb(0,0,0);backgr=
ound-color:transparent;font-weight:700;font-variant-numeric:normal;font-var=
iant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap"></span=
></div><div><font face=3D"Proxima Nova, sans-serif" color=3D"#000000"><span=
 style=3D"white-space:pre-wrap"><br></span></font></div><div><font face=3D"=
Proxima Nova, sans-serif" color=3D"#000000"><span style=3D"white-space:pre-=
wrap"><b>Full Details</b> of the same can be found in the <b>Project Propos=
al</b>.<b><br></b></span></font><div><div><br></div><div>I have been in con=
tact with David Bellot for the past week regarding GSoC. I have completed t=
he first draft of the competency check and sent the same to him. I would lo=
ve to work=C2=A0 I am requesting him to be assigned as a mentor for the sam=
e.</div></div></div><div><div><b>PFA:=C2=A0</b><a href=3D"https://docs.goog=
le.com/document/d/1wyegbUEbpOopaQSWtFd0a_ch4QeIERKXGVX6GJSSdBo/edit?usp=3Ds=
haring" style=3D"font-weight:bold" target=3D"_blank" rel=3D"noreferrer">The=
 Project Proposal</a>(linked in case the attachment fails)<br></div></div><=
/div></blockquote></div></blockquote></div></blockquote></div><div dir=3D"a=
uto">Here was the old proposal.=C2=A0</div><div class=3D"gmail_quote" dir=
=3D"auto"><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;bord=
er-left:1px #ccc solid;padding-left:1ex"><div class=3D"gmail_quote"><blockq=
uote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1p=
x solid rgb(204,204,204);padding-left:1ex"><div class=3D"gmail_quote"><bloc=
kquote 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></d=
iv><div><br></div><div>This is an official application for the GSoC&#39; 20=
. 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]" 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>
_______________________________________________<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>
</blockquote></div></div>

--000000000000be138c05a148c3c1--

--===============5558564454108493862==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline