blob: e9cff74c778aa821f3403d1489cfaa83c958c275 [file] [log] [blame]
#-------------------------------------------------------------
#
# 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.
#
#-------------------------------------------------------------
# Override specific built-in function definition types
source("./src/test/scripts/functions/misc/FunctionsL2.dml") as Functions
M1 = matrix("1 2 3 4", rows=2, cols=2)
M2 = matrix("5 6 7 8", rows=2, cols=2)
# Built-in transpose accessible since imported override
result = t(M2)
nothing = Functions::printMatrix(result)
# Use imported qr multiple return function
[min, max] = Functions::qr(M1)
# Use built-in qr
[Q, R] = qr(M2)
nothing = Functions::printMatrix(Q)
nothing = Functions::printMatrix(R)
# Use local override before function definition
[y, Z] = rand(2)
print("rand is " + y + ", " + sum(Z))
# Local function definition override of built-in rand returning matrix and scalar
rand = function(int x) return (int y, matrix[double] Z)
{
print("override rand")
y = x*2
Z = matrix(y, rows=4, cols=2)
}