Сохранение значений четверной точности в файл

Я пытаюсь запустить осциллятор и сохранить его значения спектра Фурье, с высокой точностью, используя Quad Math в C ++. Я могу вычислить значение высокой точности, но я не могу сохранить его в файл как четверное значение.

Это дает мне ошибку как:

 error: cannot convert âstd::complex<__complex__ __float128>â to â__complex128 {aka __complex__ __float128}â for argument â1â to â__float128 cabsq(__complex128)â

Мой код:

//Fourier transform
int size_dft=size_org;
int size_dfty=2e5;
int increment=0;
int initial_size_dft=0;
double pi2 = -2.0 * M_PI;
double angleTerm,cosineA,sineA;
int N_dft= 1e3;
double y_dft_deeper=0;
double invs = 1.0 / N_dft;
std::vector< std::complex< __complex128 > > output_seq(size_dft);
//std::complex<double> output_seq[size_dft];
for( int y = initial_size_dft;y < size_dfty;y++)
{
output_seq[y] = 0;
y_dft_deeper =2.4316321+(0.0000001*y);
if(y_dft_deeper<2.4318321)
{
int first_1 = 0;
increment = first_1;
for(unsigned int x =5786;x <end_dft;x++)
{
angleTerm = pi2 * y_dft_deeper * x * invs;
cosineA = cosq(angleTerm);
sineA = sinq(angleTerm);
std::real(output_seq[y]) += V2[x] * cosineA ;
std::imag(output_seq[y]) += V2[x] * sineA;
}
output_seq[y] *= invs;
cout<<"iteration = "<<y;//<<" DFT = "<<  output_seq[y]<<"\n";
y=y+increment;
}

//Writing data to file
ofstream myfile_dft;
myfile_dft.open ("aug_colpits_deep_1e8_first20000_quadmath.txt");

for (int i = initial_size_dft; i < size_dfty; i++)
{
if (i<2000)
{
increment=0;
myfile_dft << cabsq(output_seq[i]) <<"\n";
i=i+increment;
}

}
myfile_dft.close();

`

0

Решение

Задача ещё не решена.

Другие решения


По вопросам рекламы [email protected]