-
Notifications
You must be signed in to change notification settings - Fork 55
/
cordic.html
300 lines (273 loc) · 8.38 KB
/
cordic.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
<html>
<head>
<title>
CORDIC - Approximation of Elementary Functions
</title>
</head>
<body bgcolor="#eeeeee" link="#cc0000" alink="#ff3300" vlink="#000055">
<h1 align = "center">
CORDIC <br> Approximation of Elementary Functions
</h1>
<hr>
<p>
<b>CORDIC</b>
is a MATLAB library which
uses the CORDIC algorithm to evaluate
certain functions, in particular the sine and cosine.
</p>
<h3 align = "center">
Licensing:
</h3>
<p>
The computer code and data files described and made available on this web page
are distributed under
<a href = "../../txt/gnu_lgpl.txt">the GNU LGPL license.</a>
</p>
<h3 align = "center">
Languages:
</h3>
<p>
<b>CORDIC</b> is available in
<a href = "../../c_src/cordic/cordic.html">a C version</a> and
<a href = "../../cpp_src/cordic/cordic.html">a C++ version</a> and
<a href = "../../f77_src/cordic/cordic.html">a FORTRAN77 version</a> and
<a href = "../../f_src/cordic/cordic.html">a FORTRAN90 version</a> and
<a href = "../../m_src/cordic/cordic.html">a MATLAB version</a>.
</p>
<h3 align = "center">
Related Data and Programs:
</h3>
<p>
<a href = "../../m_src/fn/fn.html">
FN</a>,
a MATLAB library which
approximates elementary and special functions using Chebyshev polynomials,
by Wayne Fullerton.
</p>
<p>
<a href = "../../m_src/polpak/polpak.html">
POLPAK</a>,
a MATLAB library which
evaluates a variety of mathematical functions.
</p>
<p>
<a href = "../../f_src/specfun/specfun.html">
SPECFUN</a>,
a FORTRAN90 library which
evaluates certain special functions
using fitted data.
</p>
<p>
<a href = "../../m_src/test_values/test_values.html">
TEST_VALUES</a>,
a MATLAB library which
returns some tabulated values of various functions.
</p>
<h3 align = "center">
Reference:
</h3>
<p>
<ol>
<li>
Pitts Jarvis,<br>
Implementing CORDIC Algorithms,<br>
Dr. Dobb's Journal,<br>
October 1990.
</li>
<li>
Jean-Michel Muller,<br>
Elementary Functions: Algorithms and Implementation,<br>
Second Edition,<br>
Birkhaeuser, 2006,<br>
ISBN13: 978-0-8176-4372-0,<br>
LC: QA331.M866.
</li>
<li>
Allan Sultan,<br>
CORDIC: How Hand Calculators Calculate,<br>
The College Mathematics Journal,<br>
Volume 40, Number 2, March 2009, pages 87-92.
</li>
<li>
Jack Volder,<br>
The CORDIC Computing Technique,<br>
IRE Transactions on Electronic Computers,<br>
Volume 8, Number 3, pages 330-334, 1959.
</li>
<li>
Jack Volder,<br>
The Birth of CORDIC,<br>
Journal of VLSI Signal Processing Systems,<br>
Volume 25, Number 2, pages 101-105, June 2000.
</li>
<li>
Anthony Williams,<br>
Optimizing Math-Intensive Applications with Fixed-Point Arithmetic,<br>
Dr Dobb's Journal,<br>
Volume 33, Number 4, April 2008, pages 38-43.
</li>
</ol>
</p>
<h3 align = "center">
Source Code:
</h3>
<p>
<ul>
<li>
<a href = "angle_shift.m">angle_shift.m</a>,
shifts an angle so it lies between BETA and BETA+2*PI.
</li>
<li>
<a href = "arccos_cordic.m">arccos_cordic.m</a>,
computes the arccosine, using the CORDIC method.
</li>
<li>
<a href = "arccos_values.m">arccos_values.m</a>,
returns some tabulated values of the arccosine function.
</li>
<li>
<a href = "arcsin_cordic.m">arcsin_cordic.m</a>,
computes the arcsine, using the CORDIC method.
</li>
<li>
<a href = "arcsin_values.m">arcsin_values.m</a>,
returns some tabulated values of the arcsine function.
</li>
<li>
<a href = "arctan_cordic.m">arctan_cordic.m</a>,
computes the arctangent, using the CORDIC method.
</li>
<li>
<a href = "arctan_values.m">arctan_values.m</a>,
returns some tabulated values of the arctangent function.
</li>
<li>
<a href = "cbrt_cordic.m">cbrt_cordic.m</a>,
estimates the cube root function using the CORDIC algorithm.
</li>
<li>
<a href = "cbrt_values.m">cbrt_values.m</a>,
returns some tabulated values of the cube root function.
</li>
<li>
<a href = "cos_values.m">cos_values.m</a>,
returns some tabulated values of the cosine function.
</li>
<li>
<a href = "cossin_cordic.m">cossin_cordic.m</a>,
computes the cosine and sine of an angle,
using the CORDIC method.
</li>
<li>
<a href = "exp_cordic.m">exp_cordic.m</a>,
computes the exponential function,
using the CORDIC method.
</li>
<li>
<a href = "exp_values.m">exp_values.m</a>,
returns some tabulated values of the exponential function.
</li>
<li>
<a href = "ln_cordic.m">ln_cordic.m</a>,
computes the natural logarithm function,
using the CORDIC method.
</li>
<li>
<a href = "ln_values.m">ln_values.m</a>,
returns some tabulated values of the natural logarithm function.
</li>
<li>
<a href = "r8_uniform_01.m">r8_uniform_01.m</a>,
returns a unit pseudorandom value.
</li>
<li>
<a href = "sin_values.m">sin_values.m</a>,
returns some tabulated values of the sine function.
</li>
<li>
<a href = "sqrt_cordic.m">sqrt_cordic.m</a>,
estimates the square root function using the CORDIC algorithm.
</li>
<li>
<a href = "sqrt_values.m">sqrt_values.m</a>,
returns some tabulated values of the square root function.
</li>
<li>
<a href = "tan_cordic.m">tan_cordic.m</a>,
computes the tangent of an angle,
using the CORDIC method.
</li>
<li>
<a href = "tan_values.m">tan_values.m</a>,
returns some tabulated values of the tangent function.
</li>
<li>
<a href = "timestamp.m">timestamp.m</a>,
prints the current YMDHMS date as a time stamp.
</li>
</ul>
</p>
<h3 align = "center">
Examples and Tests:
</h3>
<p>
<ul>
<li>
<a href = "cordic_test.m">cordic_test.m</a>, calls all the tests;
</li>
<li>
<a href = "cordic_test_output.txt">cordic_test_output.txt</a>, the sample output.
</li>
<li>
<a href = "cordic_test001.m">cordic_test001.m</a>,
tests COSSIN_CORDIC for calculating the cosine;
</li>
<li>
<a href = "cordic_test002.m">cordic_test002.m</a>,
tests COSSIN_CORDIC for calculating the sine;
</li>
<li>
<a href = "cordic_test003.m">cordic_test003.m</a>,
tests ARCTAN_CORDIC;
</li>
<li>
<a href = "cordic_test004.m">cordic_test004.m</a>,
tests ARCCOS_CORDIC;
</li>
<li>
<a href = "cordic_test005.m">cordic_test005.m</a>,
tests ARCSIN_CORDIC;
</li>
<li>
<a href = "cordic_test006.m">cordic_test006.m</a>,
tests TAN_CORDIC;
</li>
<li>
<a href = "cordic_test007.m">cordic_test007.m</a>,
tests EXP_CORDIC;
</li>
<li>
<a href = "cordic_test008.m">cordic_test008.m</a>,
tests LN_CORDIC;
</li>
<li>
<a href = "cordic_test009.m">cordic_test009.m</a>,
tests SQRT_CORDIC;
</li>
<li>
<a href = "cordic_test010.m">cordic_test010.m</a>,
tests CBRT_CORDIC;
</li>
</ul>
</p>
<p>
You can go up one level to <a href = "../m_src.html">
the MATLAB source codes</a>.
</p>
<hr>
<i>
Last modified on 23 January 2012.
</i>
<!-- John Burkardt -->
</body>
</html>