Scroll to navigation

MROOT(3pm) User Contributed Perl Documentation MROOT(3pm)


PDL::GSL::MROOT - PDL interface to multidimensional root-finding routines in GSL


This is an interface to the multidimensional root-finding package present in the GNU Scientific Library.

At the moment there is a single function gslmroot_fsolver which provides an interface to the algorithms in the GSL library that do not use derivatives.


   use PDL;
   use PDL::GSL::MROOT;
   my $init = pdl (-10.00, -5.0);
   my $epsabs = 1e-7;
  $res = gslmroot_fsolver($init, \&rosenbrock,
                          {Method => 0, EpsAbs => $epsabs});
  sub rosenbrock{
     my ($x) = @_;
     my $c = 1;
     my $d = 10;
     my $y = zeroes($x);
     my $y0 = $y->slice(0);
     $y0 .=  $c * (1 - $x->slice(0));
     my $y1 = $y->slice(1);
     $y1 .=  $d * ($x->slice(1) - $x->slice(0)**2);
     return $y;
#line 70 ""



  Signature: (double [io]xfree(n);   double epsabs(); int method(); SV* function1)

info not available

gslmroot_fsolver does not process bad values. It will set the bad-value flag of all output ndarrays if the flag is set for any of the input ndarrays.



The GSL documentation is online at


This file copyright (C) 2006 Andres Jordan <> and Simon Casassus <> All rights reserved. There is no warranty. You are allowed to redistribute this software/documentation under certain conditions. For details, see the file COPYING in the PDL distribution. If this file is separated from the PDL distribution, the copyright notice should be included in the file.

2022-10-26 perl v5.36.0