Index: chrome/test/data/dromaeo/tests/sunspider-math-cordic.html |
=================================================================== |
--- chrome/test/data/dromaeo/tests/sunspider-math-cordic.html (revision 0) |
+++ chrome/test/data/dromaeo/tests/sunspider-math-cordic.html (revision 0) |
@@ -0,0 +1,103 @@ |
+<html> |
+<head> |
+<script src="../htmlrunner.js"></script> |
+<script> |
+/* |
+ * Copyright (C) Rich Moore. All rights reserved. |
+ * |
+ * Redistribution and use in source and binary forms, with or without |
+ * modification, are permitted provided that the following conditions |
+ * are met: |
+ * 1. Redistributions of source code must retain the above copyright |
+ * notice, this list of conditions and the following disclaimer. |
+ * 2. Redistributions in binary form must reproduce the above copyright |
+ * notice, this list of conditions and the following disclaimer in the |
+ * documentation and/or other materials provided with the distribution. |
+ * |
+ * THIS SOFTWARE IS PROVIDED BY CONTRIBUTORS ``AS IS'' AND ANY |
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR |
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR |
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, |
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, |
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR |
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY |
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
+ */ |
+ |
+/////. Start CORDIC |
+ |
+var AG_CONST = 0.6072529350; |
+ |
+function FIXED(X) |
+{ |
+ return X * 65536.0; |
+} |
+ |
+function FLOAT(X) |
+{ |
+ return X / 65536.0; |
+} |
+ |
+function DEG2RAD(X) |
+{ |
+ return 0.017453 * (X); |
+} |
+ |
+var Angles = [ |
+ FIXED(45.0), FIXED(26.565), FIXED(14.0362), FIXED(7.12502), |
+ FIXED(3.57633), FIXED(1.78991), FIXED(0.895174), FIXED(0.447614), |
+ FIXED(0.223811), FIXED(0.111906), FIXED(0.055953), |
+ FIXED(0.027977) |
+ ]; |
+ |
+ |
+function cordicsincos() { |
+ var X; |
+ var Y; |
+ var TargetAngle; |
+ var CurrAngle; |
+ var Step; |
+ |
+ X = FIXED(AG_CONST); /* AG_CONST * cos(0) */ |
+ Y = 0; /* AG_CONST * sin(0) */ |
+ |
+ TargetAngle = FIXED(28.027); |
+ CurrAngle = 0; |
+ for (Step = 0; Step < 12; Step++) { |
+ var NewX; |
+ if (TargetAngle > CurrAngle) { |
+ NewX = X - (Y >> Step); |
+ Y = (X >> Step) + Y; |
+ X = NewX; |
+ CurrAngle += Angles[Step]; |
+ } else { |
+ NewX = X + (Y >> Step); |
+ Y = -(X >> Step) + Y; |
+ X = NewX; |
+ CurrAngle -= Angles[Step]; |
+ } |
+ } |
+} |
+ |
+///// End CORDIC |
+ |
+function cordic( runs ) { |
+ for ( var i = 0 ; i < runs ; i++ ) { |
+ cordicsincos(); |
+ } |
+} |
+ |
+window.onload = function(){ startTest("sunspider-math-cordic", ''); |
+ |
+test("Cordic", function(){ |
+ cordic(2500); |
+}); |
+ |
+endTest(); }; |
+</script> |
+</head> |
+<body></body> |
+</html> |