/// <summary> /// Shift (offset) the elements in the array /// </summary> /// <param name="array"></param> /// <param name="offset"></param> static public void Shift(ComplexF[] array, int offset) { Debug.Assert(array != null); Debug.Assert(offset >= 0); Debug.Assert(offset < array.Length); if (offset == 0) { return; } int length = array.Length; ComplexF[] workspace = null; ComplexArray.LockWorkspaceF(length, ref workspace); for (int i = 0; i < length; i++) { workspace[(i + offset) % length] = array[i]; } for (int i = 0; i < length; i++) { array[i] = workspace[i]; } ComplexArray.UnlockWorkspaceF(ref workspace); }
/// <summary> /// Divide each element in target array with corresponding element in rhs array /// </summary> /// <param name="target"></param> /// <param name="rhs"></param> static public void Divide(ComplexF[] target, ComplexF[] rhs) { ComplexArray.Divide(target, rhs, target); }
/// <summary> /// Multiply each element in target array with corresponding element in rhs array /// </summary> /// <param name="target"></param> /// <param name="rhs"></param> static public void Multiply(ComplexF[] target, ComplexF[] rhs) { ComplexArray.Multiply(target, rhs, target); }