~ubuntu-branches/ubuntu/saucy/mozjs17/saucy

« back to all changes in this revision

Viewing changes to js/src/jit-test/tests/sunspider/check-3d-morph.js

  • Committer: Package Import Robot
  • Author(s): Rico Tzschichholz
  • Date: 2013-05-25 12:24:23 UTC
  • Revision ID: package-import@ubuntu.com-20130525122423-zmxucrhtensw90xy
Tags: upstream-17.0.0
ImportĀ upstreamĀ versionĀ 17.0.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
 * Copyright (C) 2007 Apple Inc.  All rights reserved.
 
3
 *
 
4
 * Redistribution and use in source and binary forms, with or without
 
5
 * modification, are permitted provided that the following conditions
 
6
 * are met:
 
7
 * 1. Redistributions of source code must retain the above copyright
 
8
 *    notice, this list of conditions and the following disclaimer.
 
9
 * 2. Redistributions in binary form must reproduce the above copyright
 
10
 *    notice, this list of conditions and the following disclaimer in the
 
11
 *    documentation and/or other materials provided with the distribution.
 
12
 *
 
13
 * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
 
14
 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 
15
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
 
16
 * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE COMPUTER, INC. OR
 
17
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
 
18
 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
 
19
 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
 
20
 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
 
21
 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 
22
 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 
23
 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
 
24
 */
 
25
 
 
26
var loops = 15
 
27
var nx = 120
 
28
var nz = 120
 
29
 
 
30
function morph(a, f) {
 
31
    var PI2nx = Math.PI * 8/nx
 
32
    var sin = Math.sin
 
33
    var f30 = -(50 * sin(f*Math.PI*2))
 
34
    
 
35
    for (var i = 0; i < nz; ++i) {
 
36
        for (var j = 0; j < nx; ++j) {
 
37
            a[3*(i*nx+j)+1]    = sin((j-1) * PI2nx ) * -f30
 
38
        }
 
39
    }
 
40
}
 
41
 
 
42
    
 
43
var a = Array()
 
44
for (var i=0; i < nx*nz*3; ++i) 
 
45
    a[i] = 0
 
46
 
 
47
for (var i = 0; i < loops; ++i) {
 
48
    morph(a, i/loops)
 
49
}
 
50
 
 
51
testOutput = 0;
 
52
for (var i = 0; i < nx; i++)
 
53
    testOutput += a[3*(i*nx+i)+1];
 
54
a = null;
 
55
 
 
56
/* not based on any mathematical error calculation.*/
 
57
acceptableDelta = 4e-15
 
58
 
 
59
assertEq((testOutput - 6.394884621840902e-14) < acceptableDelta, true);