1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/build/pgo/js-input/math-cordic.html Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,145 @@ 1.4 +<!DOCTYPE html> 1.5 +<head> 1.6 +<!-- 1.7 + Copyright (C) 2007 Apple Inc. All rights reserved. 1.8 + 1.9 + Redistribution and use in source and binary forms, with or without 1.10 + modification, are permitted provided that the following conditions 1.11 + are met: 1.12 + 1. Redistributions of source code must retain the above copyright 1.13 + notice, this list of conditions and the following disclaimer. 1.14 + 2. Redistributions in binary form must reproduce the above copyright 1.15 + notice, this list of conditions and the following disclaimer in the 1.16 + documentation and/or other materials provided with the distribution. 1.17 + 1.18 + THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY 1.19 + EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 1.20 + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 1.21 + PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR 1.22 + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 1.23 + EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 1.24 + PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 1.25 + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY 1.26 + OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 1.27 + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 1.28 + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 1.29 +--> 1.30 + 1.31 +<title>SunSpider math-cordic</title> 1.32 + 1.33 +</head> 1.34 + 1.35 +<body> 1.36 +<h3>math-cordic</h3> 1.37 +<div id="console"> 1.38 +</div> 1.39 + 1.40 +<script> 1.41 + 1.42 +var _sunSpiderStartDate = new Date(); 1.43 + 1.44 +/* 1.45 + * Copyright (C) Rich Moore. All rights reserved. 1.46 + * 1.47 + * Redistribution and use in source and binary forms, with or without 1.48 + * modification, are permitted provided that the following conditions 1.49 + * are met: 1.50 + * 1. Redistributions of source code must retain the above copyright 1.51 + * notice, this list of conditions and the following disclaimer. 1.52 + * 2. Redistributions in binary form must reproduce the above copyright 1.53 + * notice, this list of conditions and the following disclaimer in the 1.54 + * documentation and/or other materials provided with the distribution. 1.55 + * 1.56 + * THIS SOFTWARE IS PROVIDED BY CONTRIBUTORS ``AS IS'' AND ANY 1.57 + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 1.58 + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 1.59 + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR 1.60 + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 1.61 + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 1.62 + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 1.63 + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY 1.64 + * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 1.65 + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 1.66 + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 1.67 + */ 1.68 + 1.69 +/////. Start CORDIC 1.70 + 1.71 +var AG_CONST = 0.6072529350; 1.72 + 1.73 +function FIXED(X) 1.74 +{ 1.75 + return X * 65536.0; 1.76 +} 1.77 + 1.78 +function FLOAT(X) 1.79 +{ 1.80 + return X / 65536.0; 1.81 +} 1.82 + 1.83 +function DEG2RAD(X) 1.84 +{ 1.85 + return 0.017453 * (X); 1.86 +} 1.87 + 1.88 +var Angles = [ 1.89 + FIXED(45.0), FIXED(26.565), FIXED(14.0362), FIXED(7.12502), 1.90 + FIXED(3.57633), FIXED(1.78991), FIXED(0.895174), FIXED(0.447614), 1.91 + FIXED(0.223811), FIXED(0.111906), FIXED(0.055953), 1.92 + FIXED(0.027977) 1.93 + ]; 1.94 + 1.95 + 1.96 +function cordicsincos() { 1.97 + var X; 1.98 + var Y; 1.99 + var TargetAngle; 1.100 + var CurrAngle; 1.101 + var Step; 1.102 + 1.103 + X = FIXED(AG_CONST); /* AG_CONST * cos(0) */ 1.104 + Y = 0; /* AG_CONST * sin(0) */ 1.105 + 1.106 + TargetAngle = FIXED(28.027); 1.107 + CurrAngle = 0; 1.108 + for (Step = 0; Step < 12; Step++) { 1.109 + var NewX; 1.110 + if (TargetAngle > CurrAngle) { 1.111 + NewX = X - (Y >> Step); 1.112 + Y = (X >> Step) + Y; 1.113 + X = NewX; 1.114 + CurrAngle += Angles[Step]; 1.115 + } else { 1.116 + NewX = X + (Y >> Step); 1.117 + Y = -(X >> Step) + Y; 1.118 + X = NewX; 1.119 + CurrAngle -= Angles[Step]; 1.120 + } 1.121 + } 1.122 +} 1.123 + 1.124 +///// End CORDIC 1.125 + 1.126 +function cordic( runs ) { 1.127 + var start = new Date(); 1.128 + 1.129 + for ( var i = 0 ; i < runs ; i++ ) { 1.130 + cordicsincos(); 1.131 + } 1.132 + 1.133 + var end = new Date(); 1.134 + 1.135 + return end.getTime() - start.getTime(); 1.136 +} 1.137 + 1.138 +cordic(25000); 1.139 + 1.140 + 1.141 +var _sunSpiderInterval = new Date() - _sunSpiderStartDate; 1.142 + 1.143 +document.getElementById("console").innerHTML = _sunSpiderInterval; 1.144 +</script> 1.145 + 1.146 + 1.147 +</body> 1.148 +</html>