Upload
matsu
View
45
Download
0
Embed Size (px)
DESCRIPTION
IEEE Fast Square Root. Ref: Graphics Gems III; 2 Spring 2003. Motivation. Square root operations are frequently used in many applications (e.g., computer graphics) Usually speed is more important than accuracy Is there any way faster than sqrt( )? Idea: tabulated sqrt!. - PowerPoint PPT Presentation
Citation preview
IEEE Fast Square Root
Ref: Graphics Gems III; 2
Spring 2003
2
Motivation
• Square root operations are frequently used in many applications (e.g., computer graphics)
• Usually speed is more important than accuracy
• Is there any way faster than sqrt( )?– Idea: tabulated sqrt!
3
Math Background
123
24
22222 3), (say, odd is if
22 4), (say,even is if
:partexponent
22
21
21
21
221
21
mmme
e
mmee
For 52-bit mantissa (double), only limited cases need to be computed: 2252 entries; each entry with 52 bits
Negative exponents: same!
4
Abridged Table
• Sacrifice accuracy for smaller tables
• Indexed by first 13 bits of mantissa only– Only 2213 entries; each entry with 20
significant binary bits
• Further accuracy, if required, can be obtained by one or two Newton iterations, using the tabulated value as initial guess
Try this yourself!
5
How Numbers are Stored in Memory
SEEEEEEEEEEEMMMM MMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMM
Conceptually:
Byte swapping: Cautious when exchanging binary files and direct data access;But when we read/operate as the declared data, do not need to worry (it reads backward)
B0 B1 B2 B3 B4 B5 B6 B7
Stored (on PC): byte swapping; Least Significant Byte firstB7 B6 B5 B4 B3 B2 B1 B0
This is why the
examiner works
6
Byte Swapping (cont)
float 3.5: 0x 4060 0000
double 3.5: 0x 400c 0000 0000 0000
short 1029: 0x 0405
int 218+5: 0x 0040 0005
05 04
05 00 40 00
00 00 60 40
00 00 00 00 00 00 0c 40
Use this program to see
for yourself
7
Implementation
Setup Table
Evaluation
8
Details: access M.S.Byte
B7 B6 B5 B4 B3 B2 B1 B0
f fi
9
MMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMM SEEEEEEEEEEEMMMM MMMMMMMMMMMMMMMM
13 7
f fi
10
Evaluation
11
Time a function
12
Example
13
Twice faster; but note the overhead for
building up the tables