1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/build/pgo/js-input/access-binary-trees.html Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,100 @@ 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 access-binary-trees</title> 1.32 + 1.33 +</head> 1.34 + 1.35 +<body> 1.36 +<h3>access-binary-trees</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 +/* The Great Computer Language Shootout 1.45 + http://shootout.alioth.debian.org/ 1.46 + contributed by Isaac Gouy */ 1.47 + 1.48 +function TreeNode(left,right,item){ 1.49 + this.left = left; 1.50 + this.right = right; 1.51 + this.item = item; 1.52 +} 1.53 + 1.54 +TreeNode.prototype.itemCheck = function(){ 1.55 + if (this.left==null) return this.item; 1.56 + else return this.item + this.left.itemCheck() - this.right.itemCheck(); 1.57 +} 1.58 + 1.59 +function bottomUpTree(item,depth){ 1.60 + if (depth>0){ 1.61 + return new TreeNode( 1.62 + bottomUpTree(2*item-1, depth-1) 1.63 + ,bottomUpTree(2*item, depth-1) 1.64 + ,item 1.65 + ); 1.66 + } 1.67 + else { 1.68 + return new TreeNode(null,null,item); 1.69 + } 1.70 +} 1.71 + 1.72 +var ret; 1.73 + 1.74 +for ( var n = 4; n <= 7; n += 1 ) { 1.75 + var minDepth = 4; 1.76 + var maxDepth = Math.max(minDepth + 2, n); 1.77 + var stretchDepth = maxDepth + 1; 1.78 + 1.79 + var check = bottomUpTree(0,stretchDepth).itemCheck(); 1.80 + 1.81 + var longLivedTree = bottomUpTree(0,maxDepth); 1.82 + for (var depth=minDepth; depth<=maxDepth; depth+=2){ 1.83 + var iterations = 1 << (maxDepth - depth + minDepth); 1.84 + 1.85 + check = 0; 1.86 + for (var i=1; i<=iterations; i++){ 1.87 + check += bottomUpTree(i,depth).itemCheck(); 1.88 + check += bottomUpTree(-i,depth).itemCheck(); 1.89 + } 1.90 + } 1.91 + 1.92 + ret = longLivedTree.itemCheck(); 1.93 +} 1.94 + 1.95 + 1.96 +var _sunSpiderInterval = new Date() - _sunSpiderStartDate; 1.97 + 1.98 +document.getElementById("console").innerHTML = _sunSpiderInterval; 1.99 +</script> 1.100 + 1.101 + 1.102 +</body> 1.103 +</html>