Здравствуйте, RIVATNT, Вы писали:
RIV>Ребята помогите превести код из C# в C++ как положено, в последнем нифига не шарю...
RIV>...
Возможно медвежью услугу оказываю... Ну да ладно

Код практически один в один. Весь контроль значений, проверки и т.п. на твоей совести.
#include <vector>
#include <cmath>
class GaussianDistribution
{
public:
explicit GaussianDistribution(double standardDeviation)
: standardDeviation_(standardDeviation)
{}
void TapArray(std::vector<float> & weights, int numberOfTaps) const
{
numberOfTaps = (numberOfTaps - 1) / 2 + 1;
std::vector<double> tempWeights(numberOfTaps);
double sum = 0;
for(int i = 0; i < numberOfTaps; ++i)
{
tempWeights[i] = Gaussian1D(i);
sum += tempWeights[i] * 2;
}
sum -= tempWeights[0];
double augmentationFactor = 1.0 / sum;
weights.resize(numberOfTaps);
for(int i = 0; i < numberOfTaps; ++i)
{
weights[i] = float(tempWeights[i] * augmentationFactor);
}
}
double getStandardDeviation() const
{
return standardDeviation_;
}
void setStandardDeviation(double value)
{
standardDeviation_ = value;
}
private:
double standardDeviation_;
double Gaussian1D(int distance) const
{
return 1. / (sqrt(2 * M_PI) * standardDeviation_) * exp(pow(distance, 2.) / (2 * pow(standardDeviation_, 2.)));
}
};