Design of the tensor template class

Cem Bassoy via ublas <[email protected]> Mon, 7 May 2018 18:27:08 +0200
Newsgroups gmane.comp.lib.boost.ublas
Message-ID <CADrR+FtoDXZ0HrJaWnH+0wTREbkOnjGoPyL-SY6VuMPesgMWLA@mail.gmail.com>
--===============4825082372035258481==
Content-Type: multipart/alternative; boundary="00000000000024b732056ba02433"

--00000000000024b732056ba02433
Content-Type: text/plain; charset="UTF-8"

the 'extending ublas with tensor' project implementaion is now available at
https://github.com/BoostGSoC18/tensor

My initial design of the tensor template class has three template
parameters that determine the

   - data type and
   - layout type (first-order and last-order storage formats)
   - storage array type (now unbounded array).

It now has three private member variables:

   - the extents class
   - the strides class
   - the data storage class

The

   - rank/order and
   - dimension extents

of a tensor are runtime variable.

If I am fast enough, I could try to implement one with a compile time
extents. However, I would like to go with the runtime variable version
first. Note that the implementation conforms with the matrix and vector
versionso uBLAS.

My approach is to develop test driven. So you can find and check the tensor
implemenation with the corresponding unit tests. Also I try to update the
html documentation.

Cem

P.S. Currently code coverage is not supported.

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

<div dir=3D"ltr"><div dir=3D"auto"><div dir=3D"ltr"><div dir=3D"auto"><font=
 size=3D"2"><span style=3D"font-family:arial,helvetica,sans-serif">the &#39=
;extending ublas with tensor&#39; project implementaion is now available at=
=C2=A0</span></font></div><div dir=3D"auto"><font size=3D"2"><span style=3D=
"font-family:arial,helvetica,sans-serif"><a href=3D"https://github.com/Boos=
tGSoC18/tensor">https://github.com/BoostGSoC18/tensor</a><br></span></font>=
</div><div dir=3D"auto"><font size=3D"2"><span style=3D"font-family:arial,h=
elvetica,sans-serif"><br></span></font></div><div><font size=3D"2"><span st=
yle=3D"font-family:arial,helvetica,sans-serif">My initial design of the ten=
sor template class has three template parameters that determine the</span><=
/font></div><div dir=3D"auto"><ul><li><font size=3D"2"><span style=3D"font-=
family:arial,helvetica,sans-serif">data type and <br></span></font></li><li=
><font size=3D"2"><span style=3D"font-family:arial,helvetica,sans-serif">la=
yout type (first-order and last-order storage formats) <br></span></font></=
li><li><font size=3D"2"><span style=3D"font-family:arial,helvetica,sans-ser=
if">storage array type (now unbounded array).</span></font></li></ul><div d=
ir=3D"auto"><font size=3D"2"><span style=3D"font-family:arial,helvetica,san=
s-serif">It now has three private member variables:</span></font></div><div=
 dir=3D"auto"><ul><li><font size=3D"2"><span style=3D"font-family:arial,hel=
vetica,sans-serif">the extents class</span></font></li><li><font size=3D"2"=
><span style=3D"font-family:arial,helvetica,sans-serif">the strides class=
=C2=A0</span></font></li><li><font size=3D"2"><span style=3D"font-family:ar=
ial,helvetica,sans-serif">the data storage class</span></font></li></ul><di=
v dir=3D"auto"><font size=3D"2"><span style=3D"font-family:arial,helvetica,=
sans-serif">The</span></font></div><div dir=3D"auto"><ul><li><font size=3D"=
2"><span style=3D"font-family:arial,helvetica,sans-serif">rank/order and</s=
pan></font></li><li><font size=3D"2"><span style=3D"font-family:arial,helve=
tica,sans-serif">dimension extents</span></font></li></ul><div dir=3D"auto"=
><font size=3D"2"><span style=3D"font-family:arial,helvetica,sans-serif">of=
 a tensor are runtime variable.</span></font></div></div><div dir=3D"auto">=
<font size=3D"2"><span style=3D"font-family:arial,helvetica,sans-serif"><br=
></span></font></div></div><font size=3D"2"><span style=3D"font-family:aria=
l,helvetica,sans-serif">If I am fast enough, I could try to implement one w=
ith a compile time extents. However, I would like to go with the runtime va=
riable version first. Note that the implementation conforms with the matrix=
 and vector versionso uBLAS.=C2=A0<br></span></font></div><div dir=3D"auto"=
><font size=3D"2"><span style=3D"font-family:arial,helvetica,sans-serif"><b=
r></span></font></div><div dir=3D"auto"><font size=3D"2"><span style=3D"fon=
t-family:arial,helvetica,sans-serif">My approach is to develop test driven.=
 So you can find and check the tensor implemenation with the corresponding =
unit tests. Also I try to update the html documentation.<br><br></span></fo=
nt></div><div><font size=3D"2"><span style=3D"font-family:arial,helvetica,s=
ans-serif">Cem<br></span></font></div><div dir=3D"auto"><font size=3D"2"><s=
pan style=3D"font-family:arial,helvetica,sans-serif"><br></span></font></di=
v><div><font size=3D"2"><span style=3D"font-family:arial,helvetica,sans-ser=
if">P.S. Currently code coverage is not supported.<br></span></font></div><=
div dir=3D"auto"><font size=3D"2"><span style=3D"font-family:arial,helvetic=
a,sans-serif"><br></span></font></div><font size=3D"2"><span style=3D"font-=
family:arial,helvetica,sans-serif"><br></span></font></div></div></div>

--00000000000024b732056ba02433--

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