/usr/share/octave/site/m/sundialsTB/idas/idm/idm_resB.m is in octave-sundials 2.5.0-3+b1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 | function [resB, flag, new_data] = idm_resB(type, varargin)
%
% Wrapper around the actual user-provided Matlab function
%
switch type
case 0
% Not dependent on yS
t = varargin{1};
yy = varargin{2};
yp = varargin{3};
yyB = varargin{4};
ypB = varargin{5};
fct = varargin{6};
data = varargin{7};
if isempty(data)
[resB, flag] = feval(fct,t,yy,yp,yyB,ypB);
new_data = [];
else
[resB, flag, new_data] = feval(fct,t,yy,yp,yyB,ypB,data);
end
case 1
% Dependent on yS
t = varargin{1};
yy = varargin{2};
yp = varargin{3};
Ns = varargin{4};
yyS = varargin{5};
ypS = varargin{6};
yyB = varargin{7};
ypB = varargin{8};
fct = varargin{9};
data = varargin{10};
N = length(yy);
yyS = reshape(yyS,N,Ns);
ypS = reshape(ypS,N,Ns);
if isempty(data)
[resB, flag] = feval(fct,t,yy,yp,yyS,ypS,yyB,ypB);
new_data = [];
else
[resB, flag, new_data] = feval(fct,t,yy,yp,yyS,ypS,yyB,ypB,data);
end
end
|