<html>#2907: Arith uses very generic names for its (global) include files
<table style='border-spacing: 1ex 0pt; '>
<tr><td style='text-align:right'> Reporter:</td><td>Roland Haas</td></tr>
<tr><td style='text-align:right'>   Status:</td><td>new</td></tr>
<tr><td style='text-align:right'>Milestone:</td><td></td></tr>
<tr><td style='text-align:right'>  Version:</td><td></td></tr>
<tr><td style='text-align:right'>     Type:</td><td>bug</td></tr>
<tr><td style='text-align:right'> Priority:</td><td>minor</td></tr>
<tr><td style='text-align:right'>Component:</td><td>CarpetX</td></tr>
</table>

<p>Thorn <code>Arith</code> in <code>CarpetX</code> provides a number of helper functions for arithmetic operations. However it uses a large number of include files in its <code>interface.ccl</code> <code>INCLUDES HEADER</code> section. Since these file names are globally visible (not even restriction to other thorns <code>REQUIRE</code>ing <code>Arith</code> or having a <code>USES HEADER</code> in their <code>interface.ccl</code>, this pollutes (a) global name space (namely the <code>configs/sim/bindings/include/</code> which <em>all</em> thorns use to search for include files using a <code>-I</code> compiler option). Right now the files are:</p>
<p>‌</p>
<div class="codehilite"><pre><span></span><code><span>INCLUDES HEADER: arr.hxx IN arr.hxx</span>
<span>INCLUDES HEADER: cons.hxx IN cons.hxx</span>
<span>INCLUDES HEADER: cplx.hxx IN cplx.hxx</span>
<span>INCLUDES HEADER: defs.hxx IN defs.hxx</span>
<span>INCLUDES HEADER: div.hxx IN div.hxx</span>
<span>INCLUDES HEADER: dual.hxx IN dual.hxx</span>
<span>INCLUDES HEADER: mat.hxx IN mat.hxx</span>
<span>INCLUDES HEADER: rational.hxx IN rational.hxx</span>
<span>INCLUDES HEADER: rten.hxx IN rten.hxx</span>
<span>INCLUDES HEADER: simd.hxx IN simd.hxx</span>
<span>INCLUDES HEADER: smallvector.hxx IN smallvector.hxx</span>
<span>INCLUDES HEADER: spvect.hxx IN spvect.hxx</span>
<span>INCLUDES HEADER: sum.hxx IN sum.hxx</span>
<span>INCLUDES HEADER: ten3.hxx IN ten3.hxx</span>
<span>INCLUDES HEADER: tuple.hxx IN tuple.hxx</span>
<span>INCLUDES HEADER: vec.hxx IN vec.hxx</span>
<span>INCLUDES HEADER: vect.hxx IN vect.hxx</span>
</code></pre></div>

<p>of which <code>vec.hxx</code> and <code>vect.hxx</code> seem to be the most problematic.  </p>
<p>It may be a good idea to consolidate these into fewer files and / or prefixing with <code>arith_</code> or so to create a namespace.</p>
<p>--<br/>
Ticket URL: <a href='https://bitbucket.org/einsteintoolkit/tickets/issues/2907/arith-uses-very-generic-names-for-its'>https://bitbucket.org/einsteintoolkit/tickets/issues/2907/arith-uses-very-generic-names-for-its</a></p>
</html>