changeset 2569:cae9c8cdd114 octave-forge

remove the celleval hack, unnecessary duplicate call to feval
author mcreel
date Tue, 03 Oct 2006 09:01:38 +0000
parents 8f2c6369cd3a
children ea67ff1eca1d
files main/optim/src/celleval.cc
diffstat 1 files changed, 0 insertions(+), 69 deletions(-) [+]
line wrap: on
line diff
--- a/main/optim/src/celleval.cc	Tue Oct 03 08:45:42 2006 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,69 +0,0 @@
-// Copyright (C) 2004   Michael Creel   <michael.creel@uab.es>
-//
-//  This program is free software; you can redistribute it and/or modify
-//  it under the terms of the GNU General Public License as published by
-//  the Free Software Foundation; either version 2 of the License, or
-//  (at your option) any later version.
-// 
-//  This program is distributed in the hope that it will be useful,
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-//  GNU General Public License for more details.
-// 
-//  You should have received a copy of the GNU General Public License
-//  along with this program; if not, write to the Free Software
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA 
-
-// a descendant of "leval", by Etienne Grossman
-
-#include "config.h"
-#include <oct.h>
-#include <octave/parse.h>
-#include <octave/Cell.h>
-#include <octave/lo-mappers.h>
-
-DEFUN_DLD (celleval, args, nargout, "celleval (name, cell_array)\n\
-Evaluate the function named \"name\".  All the elements in cell_array\n\
-are passed on to the named function.\n\
-Example:\n\
-function a = f(b,c)\n\
-	a = b + c;\n\
-endfunction\n\
-celleval(\"f\", {1,2,\"this\"})\n\
-ans = 3\n\
-")
-{
-	octave_value_list retval;
-	int nargin = args.length ();
-	if (!(nargin == 2))
-	{
-		error("celleval: you must supply exactly 2 arguments");
-		return octave_value_list();
-	}
-	if (!args(0).is_string())
-	{
-		error ("celleval: first argument must be a string");
-		return octave_value_list();
-	}
-	if (!args(1).is_cell())
-	{
-		error ("celleval: second argument must be a cell");
-		return octave_value_list();
-	}
-	
-	std::string name = args(0).string_value ();
-	Cell f_args_cell = args(1).cell_value ();
-	int k = f_args_cell.length();
-	int i;
-	// a list to copy the cell contents into, so feval can be used
-	octave_value_list f_args(k,1);
-	
-	// copy contents over
-	for (i = 0; i<k; i++) f_args(i) = f_args_cell(i);
-	
-	// evaluate the function
-	retval = feval (name, f_args, nargout);
-	
-	return retval;
-}
-