[GSOC2020][Boost.uBLAS] uBLAS DataFrame feature

Aniket Chowdhury via ublas <[email protected]> Tue, 17 Mar 2020 03:44:35 +0530
Newsgroups gmane.comp.lib.boost.ublas
Message-ID <CAD+OSvXN4iJsXVYQE0fSH4tWiPLzg+-zpP8AmUddQp5Av-6tXg@mail.gmail.com>
--===============8494795016854451940==
Content-Type: multipart/alternative; boundary="0000000000009c163605a10025c5"

--0000000000009c163605a10025c5
Content-Type: text/plain; charset="UTF-8"

Hi,
My name is Aniket Chowdhury
<https://github.com/aniket-chowdhury?tab=repositories> 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++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.

*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 as a
mentor for the same.
*PFA: *The Project Proposal
<https://docs.google.com/document/d/1wyegbUEbpOopaQSWtFd0a_ch4QeIERKXGVX6GJSSdBo/edit?usp=sharing>(linked
in case the attachment fails)

This is an official application for the GSoC' 20. I am open to any and all
suggestions.

Aniket Chowdhury

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

<div dir=3D"ltr">Hi,=C2=A0<div>My name is=C2=A0<a href=3D"https://github.co=
m/aniket-chowdhury?tab=3Drepositories" target=3D"_blank">Aniket Chowdhury</=
a>=C2=A0and I am second-year undergraduate student.</div><div><br></div><di=
v>I wish to implement the DataFrame library for Boost. I have made the proj=
ect proposal and am attaching the same.</div><div><div><div><div></div></di=
v></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">pre=
vious 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 coul=
d 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 restructure the code into=C2=A0<b>M=
odules</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++=
20 One Ranges</b>. This makes more sense to me as I believe that uBlas is b=
eing 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:transparent;color:rgb(36,39,41);font-f=
amily:&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"ba=
ckground-color:transparent;color:rgb(0,0,0);font-family:&quot;Proxima Nova&=
quot;,sans-serif;font-weight:700;white-space:pre-wrap">addition, subtractio=
n, multiplication, division, modulo and power, etc </span><span style=3D"ba=
ckground-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 op=
erators.</span></div><div>4. Functions to perform<span style=3D"background-=
color:transparent;font-variant-numeric:normal;font-variant-east-asian:norma=
l;font-family:&quot;Proxima Nova&quot;,sans-serif;color:rgb(0,0,0);vertical=
-align:baseline;white-space:pre-wrap"> </span><span style=3D"background-col=
or:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;f=
ont-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_wis=
e, aggregate, transform and expand</span><span style=3D"background-color:tr=
ansparent;font-variant-numeric:normal;font-variant-east-asian:normal;font-f=
amily:&quot;Proxima Nova&quot;,sans-serif;color:rgb(0,0,0);vertical-align:b=
aseline;white-space:pre-wrap"> on a given DataFrame.</span><br></div>5. Dat=
a analysis tools for=C2=A0<span id=3D"gmail-m_-63067745495130108gmail-docs-=
internal-guid-7ab2eedf-7fff-5324-29fc-108f6de832ec"><span style=3D"font-fam=
ily:&quot;Proxima Nova&quot;,sans-serif;color:rgb(0,0,0);background-color:t=
ransparent;font-weight:700;font-variant-numeric:normal;font-variant-east-as=
ian:normal;vertical-align:baseline;white-space:pre-wrap">standard deviation=
, variance, mean, etc.</span></span><div>6. Re-indexing methods like=C2=A0<=
span id=3D"gmail-m_-63067745495130108gmail-docs-internal-guid-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:b=
aseline;white-space:pre-wrap">replace, duplicate, filter, etc.</span></span=
></div><div>7. Reshaping methods for=C2=A0<span id=3D"gmail-m_-630677454951=
30108gmail-docs-internal-guid-ed39d162-7fff-e164-cd1e-4f0db510492b"><span s=
tyle=3D"font-family:&quot;Proxima Nova&quot;,sans-serif;color:rgb(0,0,0);ba=
ckground-color:transparent;font-weight:700;font-variant-numeric:normal;font=
-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">so=
rting, append, pivot, etc.</span></span></div><div><span style=3D"font-fami=
ly:&quot;Proxima Nova&quot;,sans-serif;color:rgb(0,0,0);background-color:tr=
ansparent;font-weight:700;font-variant-numeric:normal;font-variant-east-asi=
an:normal;vertical-align:baseline;white-space:pre-wrap"></span></div><div><=
font color=3D"#000000" face=3D"Proxima Nova, sans-serif"><span style=3D"whi=
te-space:pre-wrap"><br></span></font></div><div><font color=3D"#000000" fac=
e=3D"Proxima Nova, sans-serif"><span style=3D"white-space: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 Dav=
id Bellot for the past week regarding GSoC. I have completed the first draf=
t of the competency check and sent the same to him. I would love to work=C2=
=A0 I am requesting him to be assigned as a mentor for the same.</div></div=
></div><div><div><b>PFA:=C2=A0</b><a href=3D"https://docs.google.com/docume=
nt/d/1wyegbUEbpOopaQSWtFd0a_ch4QeIERKXGVX6GJSSdBo/edit?usp=3Dsharing" targe=
t=3D"_blank" style=3D"font-weight:bold">The Project Proposal</a>(linked in =
case the attachment fails)<br></div><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>

--0000000000009c163605a10025c5--

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