ArrayMathMultiplySplittedComplexArraysCrossed Method |
Multiplies two splitted complex arrays which are the result of Fourier transformations in inverse order like result=x[w]*x[-w] (w is frequency) and stores the result in a splitted complex array.
Note that this is not simply x[i]*x[n-i], since there are the special points i=0 and i=n/2. Furthermore, this operation is not
transitive, i.e. multiplying src1 with src2 gives not the same result as multipying src2 with src1. See remarks for detail.
Namespace: Altaxo.Calc.FourierAssembly: AltaxoCore (in AltaxoCore.dll) Version: 4.8.3179.0 (4.8.3179.0)
Syntax public static void MultiplySplittedComplexArraysCrossed(
double[] src1real,
double[] src1imag,
double[] src2real,
double[] src2imag,
double[] destreal,
double[] destimag,
int n,
double scale
)
Parameters
- src1real Double
- Real part of the first input array. Must be at least of length n.
- src1imag Double
- Imaginary part of the first input array. Must be at least of length n.
- src2real Double
- Real part of the first input array. Must be at least of length n.
- src2imag Double
- Imaginary part of the first input array. Must be at least of length n.
- destreal Double
- Real part of the resulting array. Must be at least of length n.
- destimag Double
- Imaginary part of the resulting array. Must be at least of length n.
- n Int32
- Normally, the size of the arrays. The multiplication is done from index 0 to n-1. See remarks for details.
- scale Double
- A factor the result is multiplied with.
Remarks 1. The resulting array may be identical to one of the input arrays.
This operation is defined as follows:
result[i] = scale * src1[i] * src2[j]; with i=1..(n-1) and j=(n-1)..1
result[0] = scale * src1[0] * src2[0];
result[n/2] = scale * src1[n/2]* src2[n/2];
See Also