Click or drag to resize

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.Fourier
Assembly: AltaxoCore (in AltaxoCore.dll) Version: 4.8.3179.0 (4.8.3179.0)
Syntax
C#
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:

C#
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]; // (only if n is even)
See Also