Title here
Summary here
Here’s a function that will take an arbitrary number of Int
as arguments.
function sum
input Real nums[:] = {};
output Real total;
algorithm
total := sum(nums);
end sum;
Within the function, the type of nums
is equivalent to Real[:]
. We can call size(nums, 1)
, iterate over it with a for
loop, etc.
model VariadicFunctions
Real total;
equation
total = sum({1.0, 2.0});
total = sum({1.0, 2.0, 3.0});
end VariadicFunctions;
If you already have multiple arguments in an array, apply them to a variadic function using the array directly.
model VariadicFunctions
Real total;
Real nums[4] = {1.0, 2.0, 3.0, 4.0};
equation
total = sum(nums);
end VariadicFunctions;
To run the program, load it in a Modelica environment such as OpenModelica or Dymola and simulate the VariadicFunctions
model. The output will display the sum of the numbers passed to the sum
function.