| #------------------------------------------------------------- |
| # |
| # Licensed to the Apache Software Foundation (ASF) under one |
| # or more contributor license agreements. See the NOTICE file |
| # distributed with this work for additional information |
| # regarding copyright ownership. The ASF licenses this file |
| # to you under the Apache License, Version 2.0 (the |
| # "License"); you may not use this file except in compliance |
| # with the License. You may obtain a copy of the License at |
| # |
| # http://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, |
| # software distributed under the License is distributed on an |
| # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| # KIND, either express or implied. See the License for the |
| # specific language governing permissions and limitations |
| # under the License. |
| # |
| #------------------------------------------------------------- |
| |
| test_num = $in_test_num; |
| row_part = $in_rp; |
| |
| if(row_part) { |
| X = rbind(read($in_X1), read($in_X2)); |
| } |
| else { |
| X = cbind(read($in_X1), read($in_X2)); |
| } |
| |
| if(test_num == 1) { |
| # X ... 6x4 matrix |
| Y = matrix(1, rows=4, cols=1); |
| lamda = sum(X); |
| |
| Z = t(X) %*% (X %*% (lamda * Y)); |
| } |
| else if(test_num == 2) { |
| # X ... 6x2 matrix |
| U = matrix(1, rows=2, cols=1); |
| Y = matrix( "1 1 1 4 5 6 7 8 9 10 11 12", rows=6, cols=2); |
| lambda = sum(Y); |
| |
| Z = t(X) %*% (lambda * (X %*% U)); |
| } |
| else if(test_num == 3) { |
| # X ... 6x4 matrix |
| U = matrix(1,rows=4,cols=1); |
| V = matrix( "1 2 3 4 5 6", rows=6, cols=1); |
| W = matrix( "3 3 3 3 3 3", rows=6, cols=1); |
| |
| Z = t(X) %*% (W + (2 - (V * (X %*% U)))); |
| } |
| else if(test_num == 4) { |
| # X ... 6x4 matrix |
| Z = colSums(X/rowSums(X)); |
| } |
| else if(test_num == 10) { |
| # X ... 150x10 matrix |
| |
| Y = (X <= rowMins(X)); |
| U = (Y / rowSums(Y)); |
| Z = colSums(U); |
| } |
| else if(test_num == 15) { |
| # X ... 150x10 matrix |
| |
| Y1 = X - rowMaxs(X) |
| Y2 = exp(Y1) |
| Y3 = Y2 / rowSums(Y2) |
| Y4 = Y3 * rowSums(Y3) |
| Z = Y4 - Y3 * rowSums(Y4) |
| } |
| else if(test_num == 20) { |
| # X ... 1500x8 matrix |
| |
| Z = X / rowSums(X); |
| Z = 1 / (1 - Z); |
| } |
| else if(test_num == 21) { |
| # X ... 1500x8 matrix |
| |
| Z = as.matrix(sum(X / rowSums(X))); |
| } |
| else if(test_num == 25) { |
| # X ... 600x10 matrix |
| C = matrix(seq(1,40), 4, 10); |
| while(FALSE){} |
| |
| Z = -2 * (X %*% t(C)) + t(rowSums(C^2)) |
| } |
| else if(test_num == 31) { |
| # X ... 150x10 matrix |
| y = seq(1, ncol(X)); |
| Z = cbind((X %*% y), matrix (7, nrow(X), 1)); |
| Z = Z - rowMaxs(Z); |
| } |
| else if(test_num == 40) { |
| # X ... 300x20 matrix |
| |
| Y = X / rowSums(X); |
| Z = (X > 0) * Y; |
| } |
| else if(test_num == 45) { |
| # X ... 1500x100 matrix |
| X = X * t(seq(1,100)); |
| while(FALSE){} |
| |
| X0 = X - 0.5; |
| X1 = X / rowSums(X0); |
| X2 = abs(X1 * 0.5); |
| X3 = X1 / rowSums(X2); |
| |
| while(FALSE){} |
| Z = as.matrix(sum(X3)); |
| } |
| else if(test_num == 50) { |
| # X ... 376x4 matrix |
| Z = colSums(X == rowSums(X)); |
| } |
| |
| write(Z, $out_Z); |