Tizen 2.0 Release
[samples/web/NPRuntime.git] / js / main.js
1 /*
2  *      Copyright 2012  Samsung Electronics Co., Ltd
3  *
4  *      Licensed under the Flora License, Version 1.0 (the "License");
5  *      you may not use this file except in compliance with the License.
6  *      You may obtain a copy of the License at
7  *
8  *              http://www.tizenopensource.org/license
9  *
10  *      Unless required by applicable law or agreed to in writing, software
11  *      distributed under the License is distributed on an "AS IS" BASIS,
12  *      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  *      See the License for the specific language governing permissions and
14  *      limitations under the License.
15  */
16
17 var matA = new Array();
18 var matB = new Array();
19 var matResult = new Array();
20
21 function createArray() {
22         var matLength = parseInt(document.getElementById('length_btn').value);;
23
24         for (var i=0; i<matLength; i++) {
25                 matA[i] = new Array();
26                 matB[i] = new Array();
27                 matResult[i] = new Array();
28         }
29
30         for (var i=0; i<matLength; i++) {
31                 for (var j=0; j<matLength; j++) {
32                         matA[i][j] = Math.ceil(Math.random()*100-1);
33                         matB[i][j] = Math.ceil(Math.random()*100-1);
34                 }
35         }
36
37     NPPluginMatrix.setMatrixA(matA);
38     NPPluginMatrix.setMatrixB(matB);
39
40         document.getElementById('resultByJS_div').innerHTML = "Javascript : Calculating...";
41         document.getElementById('resultByPlugin_div').innerHTML = "NPPlugin : Calculating...";
42         setTimeout("getResult()", 10);
43 }
44
45 function getResult() {
46         var before = new Date();
47         for (var i=0; i<matA.length; i++) {
48                 for (var j=0; j<matA[i].length; j++) {
49                         var sum = 0;
50                         for (var k=0; k<matA[i].length; k++) {
51                                 sum = sum + (matA[i][k] *matB[k][j]);
52                         }
53                         matResult[i][j] = sum;
54                 }
55         }
56         var after = new Date();
57         document.getElementById('resultByJS_div').innerHTML = "Javascript : " + (after.getTime() - before.getTime()) + "ms";
58
59     var beforeP = new Date();
60     NPPluginMatrix.multiplication();
61         var afterP = new Date();
62         document.getElementById('resultByPlugin_div').innerHTML = "NPPlugin : " + (afterP.getTime() - beforeP.getTime()) + "ms";
63
64         //document.getElementById('array1').innerHTML = "matA :<br>" + matA + "<br>";
65         //document.getElementById('array2').innerHTML = "matB :<br>" + matB + "<br>";
66         //document.getElementById('array3').innerHTML = "matResult JS :<br>" + matResult + "<br>";
67         //document.getElementById('array4').innerHTML = "matResult Plugin :<br>" + NPPluginMatrix.getMatrixResult() + "<br>";
68
69         document.getElementById('result_btn').style.display = "block";
70 }
71
72 function resultFunction() {
73         document.getElementById('resultByJS_div').innerHTML = "Javascript :";
74         document.getElementById('resultByPlugin_div').innerHTML = "NPPlugin :";
75         var inputValue =  parseInt(document.getElementById('length_btn').value);
76         if( inputValue > 500 || inputValue < 100) {
77                 alert("input value 100 ~ 500");
78                 document.getElementById('length_btn').value = 100;
79                 return;
80         }
81         document.getElementById('result_btn').style.display = "none";
82         document.getElementById('resultByJS_div').innerHTML = "Javascript : Creating matrix...";
83         document.getElementById('resultByPlugin_div').innerHTML = "NPPlugin : Creating matrix...";
84         setTimeout("createArray()", 10);
85 }
86
87 function check_input_onkeydown(){
88         var theForm=document.frm1;
89         if( !( (event.keyCode >= 48 && event.keyCode<=57) || (event.keyCode >= 96 && event.keyCode <= 105) || event.keyCode==8 )  ){
90                 event.returnValue=false;
91         }
92 }