Компиляция приложения Windows C ++ с длинными двойниками в VS2010 - PullRequest
3 голосов
/ 22 сентября 2011

На работе у нас есть MSVS2010 Ultimate, и я пишу программу, которая запускает исчерпывающую симуляцию с использованием реальных чисел.Я получаю нетривиальные ошибки округления, и я уже предпринял разумные шаги, чтобы убедиться, что мой алгоритм максимально численно стабилен.

Я бы хотел переключиться на 128-битную плавающую точку четверной точностичисла (long double, верно?), чтобы увидеть, насколько это важно.

Я заменил все соответствующие экземпляры double на long double, перекомпилировал и снова запустил фиктивную симуляцию, ноиметь точно тот же результат, что и раньше.

Это мои (отладочные) параметры компилятора согласно странице свойств моего проекта в C / C ++:

/ ZI / nologo /W3 / WX- / Od / Oy- / D "_MBCS" / Gm / EHsc / RTC1 / GS / fp: точный / Zc: wchar_t / Zc: forScope /Fp"Debug\FFTU.pch "/ Fa" Debug \ "/Fo "Debug \" /Fd"Debug\vc100.pdb "/ Gd / analysis- / errorReport: очередь

Мой процессор dev - это Core2 Duo T7300, но целевой машиной будет i7.Обе установки - Windows 7 64-битная.

1 Ответ

2 голосов
/ 22 сентября 2011

Вы можете переключиться на компилятор стороннего производителя, например gcc, Borland или Intel.Все они распознают long double как 80-битную расширенную точность, собственный внутренний формат 8087.

...