DoubleArray.cs
using System;
using System.Collections.Generic;
using System.Text;
namespace FFT
{
public static class DoubleArray
{
public static void Set(this double[] array, double value)
{
for (int index = 0; index < array.Length; index++)
{
array[index] = value;
}
}
public static void Scale(this double[] array, double value)
{
for (int index = 0; index < array.Length; index++)
{
array[index] *= value;
}
}
public static double Sum(this double[] array)
{
double sum = 0.0;
for (int index = 0; index < array.Length; index++)
{
sum += array[index];
}
return sum;
}
public static double Product(this double[] array, double[] other)
{
double sum = 0.0;
for (int index = 0; index < array.Length; index++)
{
sum += array[index] * other[index];
}
return sum;
}
public static double[] Even(this double[] array)
{
double[] even = new double[array.Length / 2 + array.Length % 2];
for (int index = 0; index < array.Length; index += 2)
{
even[index / 2] = array[index];
}
return even;
}
public static double[] Odd(this double[] array)
{
double[] odd = new double[array.Length / 2];
for (int index = 1; index < array.Length; index += 2)
{
odd[index / 2] = array[index];
}
return odd;
}
public static double[] Add(this double[] array, double[] other)
{
double[] result = new double[array.Length];
for (int index = 0; index < array.Length; index++)
{
result[index] = array[index] + other[index];
}
return result;
}
public static double[] Multiply(this double[] array, double[] other)
{
double[] result = new double[array.Length];
for (int index = 0; index < array.Length; index++)
{
result[index] = array[index] * other[index];
}
return result;
}
}
}