3 <script src=
"../htmlrunner.js"></script>
6 * Copyright (C) Rich Moore. All rights reserved.
8 * Redistribution and use in source and binary forms, with or without
9 * modification, are permitted provided that the following conditions
11 * 1. Redistributions of source code must retain the above copyright
12 * notice, this list of conditions and the following disclaimer.
13 * 2. Redistributions in binary form must reproduce the above copyright
14 * notice, this list of conditions and the following disclaimer in the
15 * documentation and/or other materials provided with the distribution.
17 * THIS SOFTWARE IS PROVIDED BY CONTRIBUTORS ``AS IS'' AND ANY
18 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
20 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
21 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
22 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
23 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
24 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
25 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
26 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
27 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
32 var AG_CONST
= 0.6072529350;
46 return 0.017453 * (X
);
50 FIXED(45.0), FIXED(26.565), FIXED(14.0362), FIXED(7.12502),
51 FIXED(3.57633), FIXED(1.78991), FIXED(0.895174), FIXED(0.447614),
52 FIXED(0.223811), FIXED(0.111906), FIXED(0.055953),
57 function cordicsincos() {
64 X
= FIXED(AG_CONST
); /* AG_CONST * cos(0) */
65 Y
= 0; /* AG_CONST * sin(0) */
67 TargetAngle
= FIXED(28.027);
69 for (Step
= 0; Step
< 12; Step
++) {
71 if (TargetAngle
> CurrAngle
) {
72 NewX
= X
- (Y
>> Step
);
75 CurrAngle
+= Angles
[Step
];
77 NewX
= X
+ (Y
>> Step
);
80 CurrAngle
-= Angles
[Step
];
87 function cordic( runs
) {
88 for ( var i
= 0 ; i
< runs
; i
++ ) {
93 window
.onload = function(){ startTest("sunspider-math-cordic", '211c9ee6');
95 test("Cordic", function(){