This topic has not yet been rated - Rate this topic

# D3DXSHMultiply4 function

Computes the product of two spherical harmonics functions (f and g). Both functions are of order N = 4.

### Syntax

```
FLOAT* D3DXSHMultiply4(
_In_  FLOAT *pOut,
_In_  const FLOAT *pF,
_In_  const FLOAT *pG
);

```

### Parameters

pOut [in]

Type: FLOAT*

Pointer to the output SH coefficients — basis function Ylm is stored at l2 + m + l. The order N determines the length of the array, where there should always be N2 coefficients.

pF [in]

Type: const FLOAT*

Input SH coefficients for first function.

pG [in]

Type: const FLOAT*

Second set of input SH coefficients.

### Return value

Type: FLOAT*

Pointer to SH output coefficients.

### Remarks

The product of two SH functions of order N = 4 generates an SH function of order 2 × N - 1 = 7, but the results are truncated. This means that the product commutes ( f × g = g × f ) but doesn't associate ( f × ( g × h ) ≠ ( f × g ) × h ).

This function uses the following equation:

```
pOut[i] = int(y_i(s) * f(s) * g(s))

```

where y_i(s) is the ith SH basis function, and where f(s) and g(s) use the following SH function:

```
sum_i(y_i(s)*c_i)

```