Hi,<br>Hope everyone's doing fine !<br><br>Please go through this code :<br><br><br>#include &lt;iostream&gt;<br>#include &lt;ginac/ginac.h&gt;<br>using namespace std;<br>using namespace GiNaC;<br><br>int main()<br>{<br>&nbsp;&nbsp;&nbsp; symbol i_sym(&quot;i&quot;), j_sym(&quot;j&quot;), e(&quot;e&quot;), a(&quot;a&quot;), b(&quot;b&quot;) ;
<br>&nbsp;&nbsp;&nbsp; idx i(i_sym, 3), j( j_sym, 3) ;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //defining indices i and j<br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; scalar_products sp;<br>&nbsp;&nbsp;&nbsp; sp.add( indexed(e, i), indexed(e, j), delta_tensor(i,j) );&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // e.i * e.j = delta_tensor.i.j<br>&nbsp;&nbsp;&nbsp; 
<br>&nbsp;&nbsp;&nbsp; cout &lt;&lt; (indexed(e,i)*indexed(e,j)).simplify_indexed(sp) &lt;&lt;endl ;<br><br>&nbsp;&nbsp;&nbsp; return 0;<br>}<br><br>does NOT give delta.j.i instead just gives e.i * e.j - why?<br><br>Basically, i want to define an orthonormal basis vector set {
e.i}.<br>If i have vector_a = indexed(a, i) * indexed(e, i) and vector_b = indexed(b, j) * indexed(e, j) , then i want adotb to reduce to a.i * b.i ( ofcoure after i apply simplify_indexed(sp) to adotb )  <br><br>Thanks a lot for going through this mail.
<br>