-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathfun-new.cpp
More file actions
35 lines (26 loc) · 765 Bytes
/
fun-new.cpp
File metadata and controls
35 lines (26 loc) · 765 Bytes
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
#include <octave/oct.h>
#include <octave/parse.h>
#include "funcdemo.h"
DEFUN_DLD (funcdemo, args, nargout, "Function Demo")
{
int nargin = args.length ();
if (nargin < 2)
print_usage ();
octave_value_list newargs;
for (octave_idx_type i = nargin - 1; i > 0; i--)
newargs(i-1) = args(i);
octave_value_list retval;
if (args(0).is_function_handle () || args(0).is_inline_function ())
{
octave_function *fcn = args(0).function_value ();
retval = feval (fcn, newargs, nargout);
}
else if (args(0).is_string ())
{
std::string fcn = args(0).string_value ();
retval = feval (fcn, newargs, nargout);
}
else
error ("funcdemo: INPUT must be string, inline, or function handle");
return retval;
}