void SH_square_3(const REAL *a,REAL *c) {

          register REAL ta,t;

 

          // [0,0]: 0,

          c[0]  = CONSTANT(0.282094792935999980)*a[0]*a[0];

 

          // [1,1]: 0,6,8,

          ta = CONSTANT(0.564189583546000020)*a[0]+CONSTANT(-0.252313252202000020)*a[6]+CONSTANT(-0.437019372239999980)*a[8];

          c[1]  = ta*a[1];

          t = a[1]*a[1];

          c[0] += CONSTANT(0.282094791773000010)*t;

          c[6]  = CONSTANT(-0.126156626101000010)*t;

          c[8]  = CONSTANT(-0.218509686119999990)*t;

 

          // [1,2]: 5,

          ta = CONSTANT(0.437019372236000010)*a[5];

          c[1] += ta*a[2];

          c[2]  = ta*a[1];

          t = a[1]*a[2];

          c[5]  = CONSTANT(0.437019372236000010)*t;

 

          // [1,3]: 4,

          ta = CONSTANT(0.437019372229999980)*a[4];

          c[1] += ta*a[3];

          c[3]  = ta*a[1];

          t = a[1]*a[3];

          c[4]  = CONSTANT(0.437019372229999980)*t;

 

       // [2,2]: 0,6,

          ta = CONSTANT(0.564189590497999990)*a[0]+CONSTANT(0.504626519973999990)*a[6];

          c[2] += ta*a[2];

          t = a[2]*a[2];

          c[0] += CONSTANT(0.282094795249000000)*t;

          c[6] += CONSTANT(0.252313259986999990)*t;

 

          // [2,3]: 7,

          ta = CONSTANT(0.437019372236000010)*a[7];

          c[2] += ta*a[3];

          c[3] += ta*a[2];

          t = a[2]*a[3];

          c[7]  = CONSTANT(0.437019372236000010)*t;

 

          // [3,3]: 0,6,8,

          ta = CONSTANT(0.564189583546000020)*a[0]+CONSTANT(-0.252313252202000020)*a[6]+CONSTANT(0.437019372239999980)*a[8];

          c[3] += ta*a[3];

          t = a[3]*a[3];

          c[0] += CONSTANT(0.282094791773000010)*t;

          c[6] += CONSTANT(-0.126156626101000010)*t;

          c[8] += CONSTANT(0.218509686119999990)*t;

 

       // [4,4]: 0,6,

          ta = CONSTANT(0.564189583540000040)*a[0]+CONSTANT(-0.360447503152000030)*a[6];

          c[4] += ta*a[4];

          t = a[4]*a[4];

          c[0] += CONSTANT(0.282094791770000020)*t;

          c[6] += CONSTANT(-0.180223751576000010)*t;

 

          // [4,5]: 7,

          ta = CONSTANT(0.312156694452000010)*a[7];

          c[4] += ta*a[5];

          c[5] += ta*a[4];

          t = a[4]*a[5];

          c[7] += CONSTANT(0.312156694452000010)*t;

 

          // [5,5]: 0,6,8,

          ta = CONSTANT(0.564189583547999970)*a[0]+CONSTANT(0.180223751573000000)*a[6]+CONSTANT(-0.312156694455999970)*a[8];

          c[5] += ta*a[5];

          t = a[5]*a[5];

          c[0] += CONSTANT(0.282094791773999990)*t;

          c[6] += CONSTANT(0.090111875786499998)*t;

          c[8] += CONSTANT(-0.156078347227999990)*t;

 

          // [6,6]: 0,6,

          ta = CONSTANT(0.564189595120000000)*a[0];

          c[6] += ta*a[6];

          t = a[6]*a[6];

          c[0] += CONSTANT(0.282094797560000000)*t;

          c[6] += CONSTANT(0.180223764527000010)*t;

 

          // [7,7]: 0,6,8,

          ta = CONSTANT(0.564189583547999970)*a[0]+CONSTANT(0.180223751573000000)*a[6]+CONSTANT(0.312156694455999970)*a[8];

          c[7] += ta*a[7];

          t = a[7]*a[7];

          c[0] += CONSTANT(0.282094791773999990)*t;

          c[6] += CONSTANT(0.090111875786499998)*t;

          c[8] += CONSTANT(0.156078347227999990)*t;

 

          // [8,8]: 0,6,

          ta = CONSTANT(0.564189583540000040)*a[0]+CONSTANT(-0.360447503152000030)*a[6];

          c[8] += ta*a[8];

          t = a[8]*a[8];

          c[0] += CONSTANT(0.282094791770000020)*t;

          c[6] += CONSTANT(-0.180223751576000010)*t;

 

          // entry count=13

          // multiply count=77

          // addition count=43

}