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

Cem Bassoy via ublas <[email protected]> Fri, 20 Mar 2020 15:04:20 +0100
Newsgroups gmane.comp.lib.boost.ublas
Message-ID <CADrR+FsykpK0hkR8oTUgiSW-0t39GwKduwr14T3YVxX6sfqsnw@mail.gmail.com>
--===============1640217161144649542==
Content-Type: multipart/alternative; boundary="000000000000b4d8e305a149c345"

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

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 ublas =
<
[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 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]=
m>
> 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) proposals=
.
>>> Concrete examples inside the proposal will help us to understand intent=
ion
>>> 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 ub=
las <
>>> [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
>>>> 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++2=
0
>>>> 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 sen=
t 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_ch4QeIERKXG=
VX6GJSSdBo/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]
>>>
>> _______________________________________________
> ublas mailing list
> [email protected]
> https://lists.boost.org/mailman/listinfo.cgi/ublas
> Sent to: [email protected]
>

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

<div dir=3D"ltr"><div>Hello Aniket,</div><div><br></div><div>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.=
 <br></div><div><br></div><div>Clang and GCC still do not officially suppor=
t Ranges - so I would leave that out (<a href=3D"https://en.cppreference.co=
m/w/cpp/compiler_support">https://en.cppreference.com/w/cpp/compiler_suppor=
t</a>).<br></div><div>Right now we should postpone the discussion of concep=
ts 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 u=
blas &lt;<a href=3D"mailto:[email protected]" target=3D"_blank">ublas@l=
ists.boost.org</a>&gt;:<br></div><blockquote class=3D"gmail_quote" style=3D=
"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-le=
ft:1ex"><div dir=3D"auto">Hey Cem.=C2=A0<div dir=3D"auto">I went through th=
e draft proposal and had some questions.<div dir=3D"auto"><br></div><div di=
r=3D"auto">Which direction do you think I should pursue? I am more inclined=
 towards refactoring the enitre data_frame because if I believe correctly u=
Blas is moving towards C++20. Should I stick with ETs or can I use Ranges a=
nd Concepts?=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&#3=
9;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 Anik=
et Chowdhury, &lt;<a href=3D"mailto:[email protected]" target=3D=
"_blank">[email protected]</a>&gt; wrote:<br></div><blockquote c=
lass=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px soli=
d rgb(204,204,204);padding-left:1ex"><div dir=3D"ltr">Hey Cem.<div>Thanks f=
or replying. Will do the needful and get back to you.=C2=A0</div><div>I und=
erstand that the proposal could do with a few more code examples.=C2=A0</di=
v><div>Thanks.</div></div><br><div class=3D"gmail_quote"><div dir=3D"ltr" c=
lass=3D"gmail_attr">On Wed, Mar 18, 2020 at 8:15 PM Cem Bassoy via ublas &l=
t;<a href=3D"mailto:[email protected]" rel=3D"noreferrer" target=3D"_bl=
ank">[email protected]</a>&gt; wrote:<br></div><blockquote class=3D"gma=
il_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,2=
04,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 instructions on the GSoC page and=
 upload your proposal.</div><div><br></div><div>Please note that we appreci=
ate concrete (with code samples), realistic (regarding time) and referring =
(to previous or pull requests) proposals. Concrete examples inside the prop=
osal will help us to understand intention and it will demonstrate your expe=
rience and expertise. <br></div></div></blockquote></div></blockquote></div=
><div dir=3D"auto">I am pretty cobfident with the timeline that I have prov=
ided 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;border-left:1px solid rg=
b(204,204,204);padding-left:1ex"><div class=3D"gmail_quote"><blockquote cla=
ss=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><br></d=
iv><div>Additionally, I advise to read </div><div><ul><li>previous gsoc dis=
cussions on this or on the general boost mailing list</li><li>former gsoc s=
tudent projects and proposals</li></ul><div>to have a good feeling of the r=
equirements.<br></div></div><div><br></div><div>Best,</div><div>Cem<br></di=
v><div><br></div><div><br></div></div><br><div class=3D"gmail_quote"><div d=
ir=3D"ltr" class=3D"gmail_attr">Am Mo., 16. M=C3=A4rz 2020 um 23:15=C2=A0Uh=
r schrieb Aniket Chowdhury via ublas &lt;<a href=3D"mailto:[email protected]=
t.org" rel=3D"noreferrer" target=3D"_blank">[email protected]</a>&gt;:<=
br></div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8e=
x;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir=3D"ltr"=
>Hi,=C2=A0<div>My name is=C2=A0<a href=3D"https://github.com/aniket-chowdhu=
ry?tab=3Drepositories" rel=3D"noreferrer" target=3D"_blank">Aniket Chowdhur=
y</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 p=
roject proposal and am attaching the same.</div><div><div><div><div></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" rel=3D"noreferrer"=
 target=3D"_blank">previous project</a>=C2=A0there are a few directions tha=
t 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 impl=
ement new features on top of it.</div><div>2. We could try to restructure t=
he code into=C2=A0<b>Modules</b>(C++20 feature) and then implement the feat=
ures.</div><div>3. Or, we could restructure the code without=C2=A0ET but ra=
ther using=C2=A0<b>C++20 One Ranges</b>. This makes more sense to me as I b=
elieve that uBlas is being ported to C++20.</div><div><br></div><div>The Da=
taFrame 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:transparent;colo=
r:rgb(36,39,41);font-family:&quot;Courier New&quot;;white-space:pre-wrap">b=
oost::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-fam=
ily:&quot;Proxima Nova&quot;,sans-serif;font-weight:700;white-space:pre-wra=
p">addition, subtraction, multiplication, division, modulo and power, etc <=
/span><span style=3D"background-color:transparent;color:rgb(0,0,0);font-fam=
ily:&quot;Proxima Nova&quot;,sans-serif;white-space:pre-wrap">as well as su=
pport for comparison operators.</span></div><div>4. Functions to perform<sp=
an style=3D"background-color:transparent;font-variant-numeric:normal;font-v=
ariant-east-asian:normal;font-family:&quot;Proxima Nova&quot;,sans-serif;co=
lor:rgb(0,0,0);vertical-align:baseline;white-space:pre-wrap"> </span><span =
style=3D"background-color:transparent;font-variant-numeric:normal;font-vari=
ant-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">a=
pply, apply_element_wise, aggregate, transform and expand</span><span style=
=3D"background-color:transparent;font-variant-numeric:normal;font-variant-e=
ast-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_-73767629861=
48225264gmail-m_-1255839329218212103m_-7149760812391761650gmail-m_-80940123=
15361310134gmail-m_1372898159282983835gmail-m_2539347862788583833gmail-m_-6=
3067745495130108gmail-docs-internal-guid-7ab2eedf-7fff-5324-29fc-108f6de832=
ec"><span style=3D"font-family:&quot;Proxima Nova&quot;,sans-serif;color:rg=
b(0,0,0);background-color:transparent;font-weight:700;font-variant-numeric:=
normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:p=
re-wrap">standard deviation, variance, mean, etc.</span></span><div>6. Re-i=
ndexing methods like=C2=A0<span id=3D"m_-7376762986148225264gmail-m_-125583=
9329218212103m_-7149760812391761650gmail-m_-8094012315361310134gmail-m_1372=
898159282983835gmail-m_2539347862788583833gmail-m_-63067745495130108gmail-d=
ocs-internal-guid-97de9fde-7fff-ff47-7f83-0a08903e6481"><span style=3D"font=
-family:&quot;Proxima Nova&quot;,sans-serif;color:rgb(0,0,0);background-col=
or:transparent;font-weight:700;font-variant-numeric:normal;font-variant-eas=
t-asian:normal;vertical-align:baseline;white-space:pre-wrap">replace, dupli=
cate, filter, etc.</span></span></div><div>7. Reshaping methods for=C2=A0<s=
pan id=3D"m_-7376762986148225264gmail-m_-1255839329218212103m_-714976081239=
1761650gmail-m_-8094012315361310134gmail-m_1372898159282983835gmail-m_25393=
47862788583833gmail-m_-63067745495130108gmail-docs-internal-guid-ed39d162-7=
fff-e164-cd1e-4f0db510492b"><span style=3D"font-family:&quot;Proxima Nova&q=
uot;,sans-serif;color:rgb(0,0,0);background-color:transparent;font-weight:7=
00;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-alig=
n:baseline;white-space:pre-wrap">sorting, append, pivot, etc.</span></span>=
</div></div></blockquote></div></blockquote></div></blockquote></div><div d=
ir=3D"auto"><span style=3D"font-family:sans-serif">Also, could you tell me =
if I am on the right track regarding the free form functions that Boost is =
looking for?</span><br></div><div class=3D"gmail_quote" dir=3D"auto"><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 class=3D"gmail_quote"><b=
lockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-le=
ft:1px solid 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);=
background-color:transparent;font-weight:700;font-variant-numeric:normal;fo=
nt-variant-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 fa=
ce=3D"Proxima Nova, sans-serif" color=3D"#000000"><span style=3D"white-spac=
e:pre-wrap"><b>Full Details</b> of 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 compl=
eted the first draft of the competency check and sent the same to him. I wo=
uld love to work=C2=A0 I am requesting him to be assigned as a mentor for t=
he same.</div></div></div><div><div><b>PFA:=C2=A0</b><a href=3D"https://doc=
s.google.com/document/d/1wyegbUEbpOopaQSWtFd0a_ch4QeIERKXGVX6GJSSdBo/edit?u=
sp=3Dsharing" style=3D"font-weight:bold" rel=3D"noreferrer" target=3D"_blan=
k">The Project Proposal</a>(linked in case the attachment fails)<br></div><=
/div></div></blockquote></div></blockquote></div></blockquote></div><div di=
r=3D"auto">Here was the old proposal.=C2=A0</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" style=3D"margin:0px 0px =
0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div cla=
ss=3D"gmail_quote"><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"><div><div></div><div><br></div><div>This is an official applicat=
ion 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]" rel=3D"noreferrer" target=3D"_blan=
k">[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]" rel=3D"noreferrer" target=
=3D"_blank">[email protected]</a><br>
</blockquote></div>
_______________________________________________<br>
ublas mailing list<br>
<a href=3D"mailto:[email protected]" rel=3D"noreferrer" target=3D"_blan=
k">[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]" rel=3D"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">[email protected]=
t.org</a><br>
<a href=3D"https://lists.boost.org/mailman/listinfo.cgi/ublas" rel=3D"noref=
errer" target=3D"_blank">https://lists.boost.org/mailman/listinfo.cgi/ublas=
</a><br>
Sent to: <a href=3D"mailto:[email protected]" target=3D"_blank">cem.bass=
[email protected]</a><br>
</blockquote></div></div>

--000000000000b4d8e305a149c345--

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