- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
A few notes.
(1) When You evaluate ' Cos( 1.0 + 10*2*PI)' , it differs then evaluating 'Cos( 63.28301853071795858696 )', because the CPU MUST first compute 10*2*PI, then add it to 1.0, and suffer a round-up-error of 2^(-52)*(62+1) by that operation. So your table of Cos() -errors actually measured the error in addition.
(2) Visual C 6 used the Floating-point processor X87 (FPU) for arithmetic operations. The FPU calculates with internal 80-bits precision. Visual C 2013 calculates everything using the XMM registers and SIMD commands, with (at best) 52-bits precision. Not-vector commands such as a=b+c are executed as 'scalar SIMD operations'.
This trivial difference (FPU versus SIMD) makes a HUGE difference in accuracy. To compare different compilers, one should state, first and foremost, which mode is used - FPU or SIMD.
(3) The Nvidia documentation mentioned is more of a Cipher then a Document. The reader should try this. (chapter 2.3).
For
= 1.0008 , the correct mathematical result is2 − 1 = 1.60064 × . The closest number using only four digits after the decimal point is 10 − 4 . In this case 10 − 4 ( x 2 − 1 ) = 1.6006 × which corresponds to the fused multiply-add operation 10 − 4 ( x × x + ( − 1 ) ) . The alternative is to compute separate multiply and add steps. For the multiply,2 = 1.00160064 , so( x 2 ) = 1.0016 . The final result is( rn ( x 2 ) − 1 ) = 1.6000 × . 10 − 4
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
[ Microsoft C++ compiler ( VS2005 PE ) 32-bit - Release ] ... CRT CrtSin( 45.00 ) = 0.7071067690849304200000 Completed in 0 ticks Normalized TS msF.SinNTS7( 45.00 ) = 0.7071064710617065400000 Completed in 0 ticks Normalized TS msF.SinNTS9( 45.00 ) = 0.7071068286895752000000 Completed in 0 ticks Normalized TS msF.SinNTS11( 45.00 ) = 0.7071067690849304200000 Completed in 0 ticks TMathSet Sine Methods - RTfloat - Passed CRT CrtSin( 45.00 ) = 0.7071067811865474600000 Completed in 0 ticks Normalized TS msD.SinNTS7( 45.00 ) = 0.7071064695751780900000 Completed in 0 ticks Normalized TS msD.SinNTS9( 45.00 ) = 0.7071067829368671300000 Completed in 0 ticks Normalized TS msD.SinNTS11( 45.00 ) = 0.7071067811796194500000 Completed in 0 ticks TMathSet Sine Methods - RTdouble - Passed CRT CrtCos( 45.00 ) = 0.7071067690849304200000 Completed in 0 ticks Normalized TS msF.CosNTS7( 45.00 ) = 0.7071031928062439000000 Completed in 0 ticks Normalized TS msF.CosNTS9( 45.00 ) = 0.7071068286895752000000 Completed in 0 ticks Normalized TS msF.CosNTS11( 45.00 ) = 0.7071067094802856400000 Completed in 0 ticks TMathSet Cosine Methods - RTfloat - Passed CRT CrtCos( 45.00 ) = 0.7071067811865475700000 Completed in 0 ticks Normalized TS msD.CosNTS7( 45.00 ) = 0.7071032148228456600000 Completed in 0 ticks Normalized TS msD.CosNTS9( 45.00 ) = 0.7071068056832943100000 Completed in 0 ticks Normalized TS msD.CosNTS11( 45.00 ) = 0.7071067810719247100000 Completed in 0 ticks TMathSet Cosine Methods - RTdouble - Passed CRT CrtTan( 45.00 ) = 1.0000000000000000000000 Completed in 0 ticks Normalized TS msF.TanNTS7( 45.00 ) = 1.0000046491622925000000 Completed in 0 ticks Normalized TS msF.TanNTS9( 45.00 ) = 1.0000000000000000000000 Completed in 0 ticks Normalized TS msF.TanNTS11( 45.00 ) = 1.0000001192092896000000 Completed in 0 ticks TMathSet Tangent Methods - RTfloat - Passed CRT CrtTan( 45.00 ) = 0.9999999999999998900000 Completed in 0 ticks Normalized TS msD.TanNTS7( 45.00 ) = 1.0000046029381060000000 Completed in 0 ticks Normalized TS msD.TanNTS9( 45.00 ) = 0.9999999678316953100000 Completed in 0 ticks Normalized TS msD.TanNTS11( 45.00 ) = 1.0000000001523033000000 Completed in 0 ticks TMathSet Tangent Methods - RTdouble - Passed ...
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
[ Borland C++ compiler v5.5.1 32-bit - Release ] ... CRT CrtSin( 45.00 ) = 0.7071067690849304576000 Completed in 0 ticks Normalized TS msF.SinNTS7( 45.00 ) = 0.7071064710617065472000 Completed in 0 ticks Normalized TS msF.SinNTS9( 45.00 ) = 0.7071067690849304576000 Completed in 0 ticks Normalized TS msF.SinNTS11( 45.00 ) = 0.7071067690849304576000 Completed in 0 ticks TMathSet Sine Methods - RTfloat - Passed CRT CrtSin( 45.00 ) = 0.7071067811865475072000 Completed in 0 ticks Normalized TS msD.SinNTS7( 45.00 ) = 0.7071064695751781376000 Completed in 0 ticks Normalized TS msD.SinNTS9( 45.00 ) = 0.7071067829368671232000 Completed in 0 ticks Normalized TS msD.SinNTS11( 45.00 ) = 0.7071067811796194304000 Completed in 0 ticks TMathSet Sine Methods - RTdouble - Passed CRT CrtCos( 45.00 ) = 0.7071067690849304576000 Completed in 0 ticks Normalized TS msF.CosNTS7( 45.00 ) = 0.7071031928062439424000 Completed in 0 ticks Normalized TS msF.CosNTS9( 45.00 ) = 0.7071067690849304576000 Completed in 0 ticks Normalized TS msF.CosNTS11( 45.00 ) = 0.7071067690849304576000 Completed in 0 ticks TMathSet Cosine Methods - RTfloat - Passed CRT CrtCos( 45.00 ) = 0.7071067811865476096000 Completed in 0 ticks Normalized TS msD.CosNTS7( 45.00 ) = 0.7071032148228456448000 Completed in 0 ticks Normalized TS msD.CosNTS9( 45.00 ) = 0.7071068056832943104000 Completed in 0 ticks Normalized TS msD.CosNTS11( 45.00 ) = 0.7071067810719247360000 Completed in 0 ticks TMathSet Cosine Methods - RTdouble - Passed CRT CrtTan( 45.00 ) = 1.0000000000000000000000 Completed in 0 ticks Normalized TS msF.TanNTS7( 45.00 ) = 1.0000046491622924288000 Completed in 0 ticks Normalized TS msF.TanNTS9( 45.00 ) = 1.0000000000000000000000 Completed in 0 ticks Normalized TS msF.TanNTS11( 45.00 ) = 1.0000000000000000000000 Completed in 0 ticks TMathSet Tangent Methods - RTfloat - Passed CRT CrtTan( 45.00 ) = 0.9999999999999997952000 Completed in 0 ticks Normalized TS msD.TanNTS7( 45.00 ) = 1.0000046029381060608000 Completed in 0 ticks Normalized TS msD.TanNTS9( 45.00 ) = 0.9999999678316953600000 Completed in 0 ticks Normalized TS msD.TanNTS11( 45.00 ) = 1.0000000001523032064000 Completed in 0 ticks TMathSet Tangent Methods - RTdouble - Passed ...

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page