1563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark/* 2563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark * Copyright (C) 2007 Apple Inc. All rights reserved. 3563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark * 4563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark * Redistribution and use in source and binary forms, with or without 5563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark * modification, are permitted provided that the following conditions 6563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark * are met: 7563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark * 1. Redistributions of source code must retain the above copyright 8563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark * notice, this list of conditions and the following disclaimer. 9563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark * 2. Redistributions in binary form must reproduce the above copyright 10563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark * notice, this list of conditions and the following disclaimer in the 11563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark * documentation and/or other materials provided with the distribution. 12563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark * 13563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY 14563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 15563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 16563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR 17563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 18563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 19563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 20563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY 21563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 22563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 23563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 24563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark */ 25563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark 26563af33bc48281d19dce701398dbb88cb54fd7ecCary Clarkvar loops = 15 27563af33bc48281d19dce701398dbb88cb54fd7ecCary Clarkvar nx = 120 28563af33bc48281d19dce701398dbb88cb54fd7ecCary Clarkvar nz = 120 29563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark 30563af33bc48281d19dce701398dbb88cb54fd7ecCary Clarkfunction morph(a, f) { 31563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark var PI2nx = Math.PI * 8/nx 32563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark var sin = Math.sin 33563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark var f30 = -(50 * sin(f*Math.PI*2)) 34563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark 35563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark for (var i = 0; i < nz; ++i) { 36563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark for (var j = 0; j < nx; ++j) { 37563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark a[3*(i*nx+j)+1] = sin((j-1) * PI2nx ) * -f30 38563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark } 39563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark } 40563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark} 41563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark 42563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark 43563af33bc48281d19dce701398dbb88cb54fd7ecCary Clarkvar a = Array() 44563af33bc48281d19dce701398dbb88cb54fd7ecCary Clarkfor (var i=0; i < nx*nz*3; ++i) 45563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark a[i] = 0 46563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark 47563af33bc48281d19dce701398dbb88cb54fd7ecCary Clarkfor (var i = 0; i < loops; ++i) { 48563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark morph(a, i/loops) 49563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark} 50563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark 51563af33bc48281d19dce701398dbb88cb54fd7ecCary ClarktestOutput = 0; 52563af33bc48281d19dce701398dbb88cb54fd7ecCary Clarkfor (var i = 0; i < nx; i++) 53563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark testOutput += a[3*(i*nx+i)+1]; 54563af33bc48281d19dce701398dbb88cb54fd7ecCary Clarka = null; 55