view examples/code/funcdemo.cc @ 19067:c8240a60dd01

Add penny.mat to build system. * examples/data/penny.mat: New example data file. * examples/data/Makefile.am: Automake file for new directory of example data files. * examples/Makefile.am: Change to be just a pass-through to the subdirectories code/ and data/. * examples/@FIRfilter/FIRfilter.m, examples/@FIRfilter/FIRfilter_aggregation.m, examples/@FIRfilter/display.m, examples/@FIRfilter/module.mk, examples/@FIRfilter/subsasgn.m, examples/@FIRfilter/subsref.m, examples/@polynomial/display.m, examples/@polynomial/double.m, examples/@polynomial/end.m, examples/@polynomial/get.m, examples/@polynomial/module.mk, examples/@polynomial/mtimes.m, examples/@polynomial/numel.m, examples/@polynomial/plot.m, examples/@polynomial/polynomial.m, examples/@polynomial/polynomial_superiorto.m, examples/@polynomial/polyval.m, examples/@polynomial/roots.m, examples/@polynomial/set.m, examples/@polynomial/subsasgn.m, examples/@polynomial/subsref.m, examples/COPYING, examples/addtwomatrices.cc, examples/celldemo.cc, examples/embedded.cc, examples/fortrandemo.cc, examples/fortransub.f, examples/funcdemo.cc, examples/globaldemo.cc, examples/helloworld.cc, examples/make_int.cc, examples/mex_demo.c, examples/mycell.c, examples/myfeval.c, examples/myfevalf.f, examples/myfunc.c, examples/myhello.c, examples/mypow2.c, examples/myprop.c, examples/myset.c, examples/mysparse.c, examples/mystring.c, examples/mystruct.c, examples/oct_demo.cc, examples/oregonator.cc, examples/oregonator.m, examples/paramdemo.cc, examples/standalone.cc, examples/standalonebuiltin.cc, examples/stringdemo.cc, examples/structdemo.cc, examples/unwinddemo.cc: Move current example files to examples/code/ directory. * configure.ac: Add Makefiles in examples/code and examples/data directories. * build-aux/common.mk: Define octdatadir variable. * doc/interpreter/Makefile.am: Change location of External Code Interface examples to examples/code directory. * doc/interpreter/munge-texi.pl: Expand EXAMPLEFILE macro to examples/code directory.
author Rik <rik@octave.org>
date Tue, 19 Aug 2014 14:32:44 -0700
parents examples/funcdemo.cc@be41c30bcb44
children 2f8500ca91d3
line wrap: on
line source

#include <octave/oct.h>
#include <octave/parse.h>

DEFUN_DLD (funcdemo, args, nargout, "Function Demo")
{
  octave_value_list retval;
  int nargin = args.length ();

  if (nargin < 2)
    print_usage ();
  else
    {
      octave_value_list newargs;
      for (octave_idx_type i = nargin - 1; i > 0; i--)
        newargs(i-1) = args(i);
      if (args(0).is_function_handle () || args(0).is_inline_function ())
        {
          octave_function *fcn = args(0).function_value ();
          if (! error_state)
            retval = feval (fcn, newargs, nargout);
        }
      else if (args(0).is_string ())
        {
          std::string fcn = args(0).string_value ();
          if (! error_state)
            retval = feval (fcn, newargs, nargout);
        }
      else
        error ("funcdemo: INPUT must be string, inline, or function handle");
    }
  return retval;
}