FIX: The value that the trigonometric method in a Visual C++ 2008 SP1 application returns on an x86 platform may differ from the value that the same method returns on an x64 platform

Symptoms

Consider the following scenario:

  • You create a Microsoft Visual C++ 2008 Service Pack 1 (SP1) project that contains a trigonometric method. For example, the project contains the sin() method.

  • You build the project to run on the x86 and x64 platforms.

In this scenario, the value that the trigonometric method returns on the x86 platform may differ from the value that the same method returns on the x64 platform.

Cause

This issue occurs because the trigonometric method for the x64 platform is implemented as a C function. Therefore, the trigonometric method is reliant on the compiler-intrinsic and compiler-generated code.

Resolution

To resolve this issue, apply the following hotfix. This hotfix changes the trigonometric method for the x64 platform to implement the method in assembly instead of a C function. The assembly code reduces the reliance on the compiler-intrinsic and compiler-generated code. Therefore, the hotfix improves the accuracy of the trigonometric method.

Hotfix information



A supported hotfix is now available from Microsoft. However, it is intended to correct only the problem that is described in this article. Apply it only to systems that are experiencing this specific problem. This hotfix may receive additional testing. Therefore, if you are not severely affected by this problem, we recommend that you wait for the next software update that contains this hotfix.

To resolve this problem immediately, contact Microsoft Customer Support Services to obtain the hotfix. For a complete list of Microsoft Customer Support Services telephone numbers and information about support costs, visit the following Microsoft website:

http://support.microsoft.com/contactus/?ws=supportNote In special cases, charges that are ordinarily incurred for support calls may be canceled if a Microsoft Support Professional determines that a specific update will resolve your problem. The usual support costs will apply to additional support questions and issues that do not qualify for the specific update in question.

Note To download this hotfix, you can also visit the following Microsoft website:

Download this hotfix package from the Microsoft Connect website

Prerequisites

To apply this hotfix, you must have Microsoft Visual Studio 2008 Service Pack 1 (SP1) installed.

Restart requirement

You must restart the computer after you apply the hotfix if any Visual Studio instance is running.

Hotfix replacement information

This hotfix does not replace any other hotfix.

File information

The English version of this hotfix has the file attributes (or later file attributes) that are listed in the following table. The dates and times for these files are listed in Coordinated Universal Time (UTC). When you view the file information, it is converted to local time. To find the difference between UTC and local time, use the Time Zone tab in the Date and Time item in Control Panel.

File name

File version

File size

Date

Time

Platform

Atl90.dll

9.0.30729.5558

159,048

15-Nov-2010

07:47

x86

Atl90.dll

9.0.30729.5558

176,456

15-Nov-2010

01:11

x64

Atl90.dll

9.0.30729.5558

416,072

15-Nov-2010

02:12

IA-64

array

16,417

29-Oct-2008

10:55

array

16,417

29-Oct-2008

10:55

random

83,273

29-Oct-2008

10:55

random

83,273

29-Oct-2008

10:55

tuple

12,371

29-Oct-2008

10:55

tuple

12,371

29-Oct-2008

10:55

xxfunction

9,845

29-Oct-2008

10:55

xxfunction

9,845

29-Oct-2008

10:55

afxframeimpl.cpp

56,204

24-Oct-2008

14:03

afxglobals.cpp

34,156

24-Oct-2008

14:03

afxglobals.h

10,144

24-Oct-2008

14:03

afxtoolbarimages.cpp

76,665

19-Apr-2010

15:41

almap.dll

18,736

14-Nov-2010

22:41

x86

almap.lib

17,808

14-Nov-2010

22:41

x86

atl.lib

20,012

14-Nov-2010

22:46

x86

atl.lib

21,882

14-Nov-2010

23:01

x86

atl.lib

19,256

14-Nov-2010

23:26

x86

atlassem.h

2,037

14-Nov-2010

22:38

atlbuild.h

572

14-Nov-2010

22:17

atldb.h

384,029

19-Apr-2010

14:47

atldload.lib

396,148

14-Nov-2010

22:46

x86

atldload.lib

493,480

14-Nov-2010

23:01

x86

atldload.lib

429,022

14-Nov-2010

23:26

x86

atls.lib

1,413,006

14-Nov-2010

22:46

x86

atls.lib

1,354,526

14-Nov-2010

23:01

x86

atls.lib

1,114,536

14-Nov-2010

23:26

x86

atlsd.lib

1,784,144

14-Nov-2010

22:46

x86

atlsd.lib

2,031,798

14-Nov-2010

23:01

x86

atlsd.lib

1,605,960

14-Nov-2010

23:26

x86

bardock.cpp

25,372

30-Oct-2009

08:15

crtassem.h

951

14-Nov-2010

22:37

x86

crtassem.h

1,298

14-Nov-2010

22:37

intrin.h

91,683

14-Nov-2010

22:37

libcmt.lib

9,217,408

14-Nov-2010

22:45

x86

libcmt.lib

12,760,908

14-Nov-2010

22:59

x86

libcmt.lib

9,972,556

14-Nov-2010

23:25

x86

libcmtd.lib

11,361,330

14-Nov-2010

22:45

x86

libcmtd.lib

16,469,324

14-Nov-2010

23:00

x86

libcmtd.lib

12,701,228

14-Nov-2010

23:25

x86

libcpmt.lib

5,349,928

14-Nov-2010

22:45

x86

libcpmt.lib

8,755,304

14-Nov-2010

23:00

x86

libcpmt.lib

6,963,462

14-Nov-2010

23:25

x86

libcpmtd.lib

6,781,270

14-Nov-2010

22:45

x86

libcpmtd.lib

11,714,090

14-Nov-2010

23:00

x86

libcpmtd.lib

9,299,518

14-Nov-2010

23:25

x86

mfc90.lib

5,196,148

14-Nov-2010

23:55

x64

mfc90.lib

5,197,224

14-Nov-2010

23:27

x86

mfc90d.lib

6,026,792

14-Nov-2010

23:55

x64

mfc90d.lib

6,017,756

14-Nov-2010

23:28

x86

mfc90u.lib

6,501,186

14-Nov-2010

23:56

x64

mfc90u.lib

6,595,792

14-Nov-2010

23:28

x86

mfc90ud.lib

7,541,862

14-Nov-2010

23:56

x64

mfc90ud.lib

7,622,206

14-Nov-2010

23:28

x86

mfc.bsc

18,705,408

15-Nov-2010

00:56

mfc_loc.manifest

5,882

15-Nov-2010

07:50

x86

mfcassem.h

3,143

14-Nov-2010

23:06

mfcdload.lib

780,354

14-Nov-2010

23:52

x86

mfcm90.lib

43,104

14-Nov-2010

23:57

x64

mfcm90.lib

41,052

14-Nov-2010

23:29

x86

mfcm90d.lib

46,182

14-Nov-2010

23:57

x64

mfcm90d.lib

44,596

14-Nov-2010

23:29

x86

mfcm90u.lib

44,548

14-Nov-2010

23:57

x64

mfcm90u.lib

42,460

14-Nov-2010

23:29

x86

mfcm90ud.lib

47,640

14-Nov-2010

23:57

x64

mfcm90ud.lib

46,014

14-Nov-2010

23:29

x86

mfcs90.lib

1,054,706

14-Nov-2010

23:52

x86

mfcs90.lib

1,048,944

14-Nov-2010

23:25

x86

mfcs90d.lib

1,049,108

14-Nov-2010

23:52

x64

mfcs90d.lib

1,020,312

14-Nov-2010

23:25

x86

mfcs90u.lib

1,068,310

14-Nov-2010

23:53

x64

mfcs90u.lib

1,063,030

14-Nov-2010

23:26

x86

mfcs90ud.lib

1,065,496

14-Nov-2010

23:53

x86

mfcs90ud.lib

1,035,730

14-Nov-2010

23:26

x86

microsoft.vc90.atl.manifest

858

15-Nov-2010

01:15

x64

microsoft.vc90.atl.manifest

857

15-Nov-2010

02:15

IA-64

microsoft.vc90.atl.manifest

856

15-Nov-2010

07:50

x86

microsoft.vc90.crt.manifest

1,862

15-Nov-2010

01:15

x64

microsoft.vc90.crt.manifest

1,861

15-Nov-2010

02:15

IA-64

microsoft.vc90.crt.manifest

1,860

15-Nov-2010

07:50

x86

microsoft.vc90.debugcrt.manifest

1,870

15-Nov-2010

01:15

x64

microsoft.vc90.debugcrt.manifest

1,869

15-Nov-2010

02:15

IA-64

microsoft.vc90.debugcrt.manifest

1,868

15-Nov-2010

07:50

x86

microsoft.vc90.debugmfc.manifest

2,368

15-Nov-2010

01:15

x64

microsoft.vc90.debugmfc.manifest

2,366

15-Nov-2010

07:50

x86

microsoft.vc90.debugopenmp.manifest

867

15-Nov-2010

07:50

x86

microsoft.vc90.debugopenmp.manifest

868

15-Nov-2010

02:16

x86

microsoft.vc90.debugopenmp.manifest

869

15-Nov-2010

01:15

x86

microsoft.vc90.mfc.manifest

2,359

15-Nov-2010

01:15

x64

microsoft.vc90.mfc.manifest

2,357

15-Nov-2010

07:50

x86

microsoft.vc90.mfcloc.manifest

5,884

15-Nov-2010

01:15

x64

microsoft.vc90.mfcloc.manifest

5,882

15-Nov-2010

07:50

x86

microsoft.vc90.openmp.manifest

861

15-Nov-2010

07:50

x86

microsoft.vc90.openmp.manifest

862

15-Nov-2010

02:16

x86

microsoft.vc90.openmp.manifest

863

15-Nov-2010

01:15

x86

msvcmrt.lib

1,529,808

14-Nov-2010

22:45

x86

msvcmrt.lib

1,697,612

14-Nov-2010

23:25

x86

msvcmrt.lib

1,846,526

14-Nov-2010

23:00

x86

msvcmrtd.lib

1,625,960

14-Nov-2010

22:45

x86

msvcmrtd.lib

1,804,926

14-Nov-2010

23:25

x86

msvcmrtd.lib

1,956,882

14-Nov-2010

23:00

x86

msvcprt.lib

1,654,516

14-Nov-2010

22:45

x86

msvcprt.lib

2,140,986

14-Nov-2010

23:00

x86

msvcprt.lib

1,686,818

14-Nov-2010

23:25

x86

msvcprtd.lib

1,827,186

14-Nov-2010

22:45

x86

msvcprtd.lib

2,369,332

14-Nov-2010

23:00

x86

msvcprtd.lib

1,860,040

14-Nov-2010

23:25

x86

msvcrt.lib

1,360,068

14-Nov-2010

22:45

x86

msvcrt.lib

1,585,296

14-Nov-2010

23:00

x86

msvcrt.lib

1,357,322

14-Nov-2010

23:25

x86

msvcrtd.lib

1,392,990

14-Nov-2010

22:45

x86

msvcrtd.lib

1,642,428

14-Nov-2010

23:00

x86

msvcrtd.lib

1,400,234

14-Nov-2010

23:25

x86

msvcurt.lib

15,375,466

14-Nov-2010

22:45

x86

msvcurt.lib

15,737,148

14-Nov-2010

23:25

x86

msvcurt.lib

15,882,482

14-Nov-2010

23:00

x86

msvcurtd.lib

16,952,226

14-Nov-2010

22:45

x86

msvcurtd.lib

17,303,538

14-Nov-2010

23:25

x86

msvcurtd.lib

17,454,852

14-Nov-2010

23:00

x86

nafxcw.lib

49,963,836

14-Nov-2010

23:28

x86

nafxcw.lib

59,306,388

14-Nov-2010

23:56

x86

nafxcwd.lib

52,949,400

14-Nov-2010

23:28

x86

nafxcwd.lib

66,787,592

14-Nov-2010

23:55

x86

nmmintrin.h

4,091

14-Nov-2010

22:37

x86

ompassem.h

951

14-Nov-2010

23:08

ptrustm.lib

426,518

14-Nov-2010

22:45

x86

ptrustmd.lib

433,690

14-Nov-2010

22:45

x86

ptrustu.lib

426,518

14-Nov-2010

22:45

x86

ptrustud.lib

433,690

14-Nov-2010

22:45

x86

sdknames.lib

7,462

14-Nov-2010

22:41

x86

tcmap.lib

29,676

14-Nov-2010

22:41

x86

tcmapdll.lib

32,058

14-Nov-2010

22:41

x86

uafxcw.lib

50,880,300

14-Nov-2010

23:29

x86

uafxcw.lib

60,097,306

14-Nov-2010

23:56

x86

uafxcwd.lib

54,310,594

14-Nov-2010

23:28

x86

uafxcwd.lib

68,073,040

14-Nov-2010

23:56

x86

vcomp.lib

28,446

14-Nov-2010

23:39

x86

vcomp.lib

27,890

14-Nov-2010

23:58

x86

vcomp.lib

33,220

15-Nov-2010

00:35

x86

vcompd.dll

27,998

14-Nov-2010

23:58

x86

vcompd.lib

28,574

14-Nov-2010

23:39

x86

vcompd.lib

33,330

15-Nov-2010

00:35

x86

Mfc90.dll

9.0.30729.5558

3,765,064

15-Nov-2010

07:47

x86

Mfc90.dll

9.0.30729.5558

5,083,464

15-Nov-2010

01:11

x64

Mfc90chs.dll

9.0.30729.5558

35,664

15-Nov-2010

07:47

x86

Mfc90chs.dll

9.0.30729.5558

35,664

15-Nov-2010

01:11

x64

Mfc90cht.dll

9.0.30729.5558

36,688

15-Nov-2010

07:47

x86

Mfc90cht.dll

9.0.30729.5558

36,688

15-Nov-2010

01:11

x64

Mfc90d.dll

9.0.30729.5558

5,933,896

15-Nov-2010

07:47

x86

Mfc90d.dll

9.0.30729.5558

7,418,184

15-Nov-2010

01:11

x64

Mfc90deu.dll

9.0.30729.5558

63,312

15-Nov-2010

07:47

x86

Mfc90deu.dll

9.0.30729.5558

63,312

15-Nov-2010

01:11

x64

Mfc90enu.dll

9.0.30729.5558

53,584

15-Nov-2010

07:47

x86

Mfc90enu.dll

9.0.30729.5558

53,584

15-Nov-2010

01:11

x64

Mfc90esn.dll

9.0.30729.5558

61,776

15-Nov-2010

07:47

x86

Mfc90esn.dll

9.0.30729.5558

61,776

15-Nov-2010

01:11

x64

Mfc90esp.dll

9.0.30729.5558

61,776

15-Nov-2010

07:47

x86

Mfc90esp.dll

9.0.30729.5558

61,776

15-Nov-2010

01:11

x64

Mfc90fra.dll

9.0.30729.5558

62,800

15-Nov-2010

07:47

x86

Mfc90fra.dll

9.0.30729.5558

62,800

15-Nov-2010

01:11

x64

Mfc90ita.dll

9.0.30729.5558

61,264

15-Nov-2010

07:47

x86

Mfc90ita.dll

9.0.30729.5558

61,264

15-Nov-2010

01:11

x64

Mfc90jpn.dll

9.0.30729.5558

43,344

15-Nov-2010

07:47

x86

Mfc90jpn.dll

9.0.30729.5558

43,344

15-Nov-2010

01:11

x64

Mfc90kor.dll

9.0.30729.5558

42,832

15-Nov-2010

07:47

x86

Mfc90kor.dll

9.0.30729.5558

42,832

15-Nov-2010

01:11

x64

Mfc90rus.dll

9.0.30729.5558

59,728

15-Nov-2010

07:47

x86

Mfc90rus.dll

9.0.30729.5558

59,728

15-Nov-2010

01:11

x64

Mfc90u.dll

9.0.30729.5558

3,780,424

15-Nov-2010

07:47

x86

Mfc90u.dll

9.0.30729.5558

5,102,408

15-Nov-2010

01:11

x64

Mfc90ud.dll

9.0.30729.5558

5,979,472

15-Nov-2010

07:47

x86

Mfc90ud.dll

9.0.30729.5558

7,463,248

15-Nov-2010

01:11

x64

Mfcm90.dll

9.0.30729.5558

59,904

15-Nov-2010

07:47

x86

Mfcm90.dll

9.0.30729.5558

67,072

15-Nov-2010

01:12

x64

Mfcm90d.dll

9.0.30729.5558

80,896

15-Nov-2010

07:47

x86

Mfcm90d.dll

9.0.30729.5558

93,184

15-Nov-2010

01:12

x64

Mfcm90u.dll

9.0.30729.5558

59,904

15-Nov-2010

07:47

x86

Mfcm90u.dll

9.0.30729.5558

67,072

15-Nov-2010

01:12

x64

Mfcm90ud.dll

9.0.30729.5558

80,896

15-Nov-2010

07:47

x86

Mfcm90ud.dll

9.0.30729.5558

93,696

15-Nov-2010

01:12

x64

Msvcm90.dll

9.0.30729.5558

225,280

15-Nov-2010

07:47

x86

Msvcm90.dll

9.0.30729.5558

245,760

15-Nov-2010

01:12

x64

Msvcm90.dll

9.0.30729.5558

324,096

15-Nov-2010

02:12

IA-64

Msvcm90d.dll

9.0.30729.5558

312,832

15-Nov-2010

07:47

x86

Msvcm90d.dll

9.0.30729.5558

333,312

15-Nov-2010

01:12

x64

Msvcm90d.dll

9.0.30729.5558

429,568

15-Nov-2010

02:12

IA-64

Msvcp90.dll

9.0.30729.5558

569,680

15-Nov-2010

07:47

x86

Msvcp90.dll

9.0.30729.5558

853,328

15-Nov-2010

01:11

x64

Msvcp90.dll

9.0.30729.5558

1,466,192

15-Nov-2010

02:12

IA-64

Msvcp90d.dll

9.0.30729.5558

871,760

15-Nov-2010

07:47

x86

Msvcp90d.dll

9.0.30729.5558

1,120,592

15-Nov-2010

01:11

x64

Msvcp90d.dll

9.0.30729.5558

2,515,280

15-Nov-2010

02:12

IA-64

Msvcr90.dll

9.0.30729.5558

653,136

15-Nov-2010

07:47

x86

Msvcr90.dll

9.0.30729.5558

641,360

15-Nov-2010

01:11

x64

Msvcr90.dll

9.0.30729.5558

1,505,616

15-Nov-2010

02:12

IA-64

Msvcr90d.dll

9.0.30729.5558

1,178,448

15-Nov-2010

07:47

x86

Msvcr90d.dll

9.0.30729.5558

1,359,184

15-Nov-2010

01:11

x64

Msvcr90d.dll

9.0.30729.5558

3,603,280

15-Nov-2010

02:12

IA-64

Vcomp90.dll

9.0.30729.5558

51,024

15-Nov-2010

07:47

x86

Vcomp90.dll

9.0.30729.5558

56,656

15-Nov-2010

01:11

x64

Vcomp90.dll

9.0.30729.5558

141,648

15-Nov-2010

02:12

IA-64

Vcomp90d.dll

9.0.30729.5558

88,400

15-Nov-2010

07:47

x86

Vcomp90d.dll

9.0.30729.5558

104,784

15-Nov-2010

01:11

x64

Vcomp90d.dll

9.0.30729.5558

316,240

15-Nov-2010

02:12

IA-64

Vcredist_ia64.exe

9.0.30729.5074

4,657,496

23-Nov-2010

12:35

IA-64

Vcredist_x64.exe

9.0.30729.5074

5,213,528

23-Nov-2010

12:30

x64

Vcredist_x86.exe

9.0.30729.5074

4,477,272

23-Nov-2010

12:40

x86

Status

Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the "Applies to" section.

Need more help?

Expand your skills
Explore Training
Get new features first
Join Microsoft Insiders

Was this information helpful?

Thank you for your feedback!

Thank you for your feedback! It sounds like it might be helpful to connect you to one of our Office support agents.

×