X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?p=CreaPhase.git;a=blobdiff_plain;f=octave_packages%2Fga-0.10.0%2Frastriginsfcn.m;fp=octave_packages%2Fga-0.10.0%2Frastriginsfcn.m;h=be8c156ccc582ac37bf25515b401550e232efb9a;hp=0000000000000000000000000000000000000000;hb=f5f7a74bd8a4900f0b797da6783be80e11a68d86;hpb=1705066eceaaea976f010f669ce8e972f3734b05 diff --git a/octave_packages/ga-0.10.0/rastriginsfcn.m b/octave_packages/ga-0.10.0/rastriginsfcn.m new file mode 100644 index 0000000..be8c156 --- /dev/null +++ b/octave_packages/ga-0.10.0/rastriginsfcn.m @@ -0,0 +1,50 @@ +## Copyright (C) 2008, 2009, 2010, 2012 Luca Favatella +## +## 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, see . + +## -*- texinfo -*- +## @deftypefn{Function File} {@var{y} =} rastriginsfcn (@var{x}) +## Rastrigin's function. +## @end deftypefn + +## Author: Luca Favatella +## Version: 2.0 + +function retval = rastriginsfcn (x) + if ((nargout != 1) || + (nargin != 1) || (columns (x) != 2)) + print_usage (); + else + x1 = x(:, 1); + x2 = x(:, 2); + retval = 20 + (x1 .** 2) + (x2 .** 2) - 10 .* (cos (2 .* pi .* x1) + + cos (2 .* pi .* x2)); + endif +endfunction + + +## number of input arguments +%!error y = rastriginsfcn () +%!error y = rastriginsfcn ([0, 0], "other argument") + +## number of output arguments +%!error [y1, y2] = rastriginsfcn ([0, 0]) + +## type of arguments +%!error y = rastriginsfcn ([0; 0]) +%!error y = rastriginsfcn (zeros (2, 3)) # TODO: document size of x + +%!assert (rastriginsfcn ([0, 0]), 0) +%!assert (rastriginsfcn ([0, 0; 0, 0]), [0; 0]) +%!assert (rastriginsfcn (zeros (3, 2)), [0; 0; 0])