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
}