MROOT.pm (PDL-2.074) | : | MROOT.pm (PDL-2.075) | ||
---|---|---|---|---|
skipping to change at line 17 | skipping to change at line 17 | |||
our %EXPORT_TAGS = (Func=>\@EXPORT_OK); | our %EXPORT_TAGS = (Func=>\@EXPORT_OK); | |||
use PDL::Core; | use PDL::Core; | |||
use PDL::Exporter; | use PDL::Exporter; | |||
use DynaLoader; | use DynaLoader; | |||
our @ISA = ( 'PDL::Exporter','DynaLoader' ); | our @ISA = ( 'PDL::Exporter','DynaLoader' ); | |||
push @PDL::Core::PP, __PACKAGE__; | push @PDL::Core::PP, __PACKAGE__; | |||
bootstrap PDL::GSL::MROOT ; | bootstrap PDL::GSL::MROOT ; | |||
#line 69 "gsl_mroot.pd" | #line 68 "gsl_mroot.pd" | |||
use strict; | use strict; | |||
use warnings; | use warnings; | |||
=head1 NAME | =head1 NAME | |||
PDL::GSL::MROOT - PDL interface to multidimensional root-finding routines in GSL | PDL::GSL::MROOT - PDL interface to multidimensional root-finding routines in GSL | |||
=head1 DESCRIPTION | =head1 DESCRIPTION | |||
This is an interface to the multidimensional root-finding package present in the | This is an interface to the multidimensional root-finding package present in the | |||
skipping to change at line 58 | skipping to change at line 59 | |||
my $y = zeroes($x); | my $y = zeroes($x); | |||
my $y0 = $y->slice(0); | my $y0 = $y->slice(0); | |||
$y0 .= $c * (1 - $x->slice(0)); | $y0 .= $c * (1 - $x->slice(0)); | |||
my $y1 = $y->slice(1); | my $y1 = $y->slice(1); | |||
$y1 .= $d * ($x->slice(1) - $x->slice(0)**2); | $y1 .= $d * ($x->slice(1) - $x->slice(0)**2); | |||
return $y; | return $y; | |||
} | } | |||
#line 69 "MROOT.pm" | #line 70 "MROOT.pm" | |||
=head1 FUNCTIONS | =head1 FUNCTIONS | |||
=cut | =cut | |||
#line 1059 "../../../blib/lib/PDL/PP.pm" | #line 1058 "../../../blib/lib/PDL/PP.pm" | |||
=head2 gslmroot_fsolver | =head2 gslmroot_fsolver | |||
=for sig | =for sig | |||
Signature: (double [io]xfree(n); double epsabs(); int method(); SV* function 1) | Signature: (double [io]xfree(n); double epsabs(); int method(); SV* function 1) | |||
=for ref | =for ref | |||
info not available | info not available | |||
=for bad | =for bad | |||
gslmroot_fsolver does not process bad values. | 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. | It will set the bad-value flag of all output ndarrays if the flag is set for any of the input ndarrays. | |||
=cut | =cut | |||
#line 105 "MROOT.pm" | #line 107 "MROOT.pm" | |||
#line 1059 "../../../blib/lib/PDL/PP.pm" | ||||
#line 1060 "../../../blib/lib/PDL/PP.pm" | ||||
sub gslmroot_fsolver { | sub gslmroot_fsolver { | |||
my ($x, $f_vect) = @_; | my ($x, $f_vect) = @_; | |||
my $opt = ref($_[-1]) eq 'HASH' ? pop @_ : {Method => 0, EpsAbs => 1e-3} ; | my $opt = ref($_[-1]) eq 'HASH' ? pop @_ : {Method => 0, EpsAbs => 1e-3} ; | |||
if( (ref($x) ne 'PDL')){ | if( (ref($x) ne 'PDL')){ | |||
barf("Have to pass ndarray as first argument to fsolver\n"); | barf("Have to pass ndarray as first argument to fsolver\n"); | |||
} | } | |||
my $res = $x->copy; | my $res = $x->copy; | |||
_gslmroot_fsolver_int($res, $$opt{'EpsAbs'}, $$opt{'Method'}, $f_vect); | _gslmroot_fsolver_int($res, $$opt{'EpsAbs'}, $$opt{'Method'}, $f_vect); | |||
return $res; | return $res; | |||
} | } | |||
#line 120 "MROOT.pm" | #line 123 "MROOT.pm" | |||
#line 1060 "../../../blib/lib/PDL/PP.pm" | ||||
#line 1061 "../../../blib/lib/PDL/PP.pm" | ||||
*gslmroot_fsolver = \&PDL::GSL::MROOT::gslmroot_fsolver; | *gslmroot_fsolver = \&PDL::GSL::MROOT::gslmroot_fsolver; | |||
#line 126 "MROOT.pm" | #line 130 "MROOT.pm" | |||
#line 114 "gsl_mroot.pd" | ||||
#line 115 "gsl_mroot.pd" | ||||
=head1 SEE ALSO | =head1 SEE ALSO | |||
L<PDL> | L<PDL> | |||
The GSL documentation is online at | The GSL documentation is online at | |||
http://www.gnu.org/software/gsl/manual/ | http://www.gnu.org/software/gsl/manual/ | |||
=head1 AUTHOR | =head1 AUTHOR | |||
This file copyright (C) 2006 Andres Jordan <ajordan@eso.org> | This file copyright (C) 2006 Andres Jordan <ajordan@eso.org> | |||
and Simon Casassus <simon@das.uchile.cl> | and Simon Casassus <simon@das.uchile.cl> | |||
All rights reserved. There is no warranty. You are allowed to redistribute this | All rights reserved. There is no warranty. You are allowed to redistribute this | |||
software/documentation under certain conditions. For details, see the file | software/documentation under certain conditions. For details, see the file | |||
COPYING in the PDL distribution. If this file is separated from the | COPYING in the PDL distribution. If this file is separated from the | |||
PDL distribution, the copyright notice should be included in the file. | PDL distribution, the copyright notice should be included in the file. | |||
=cut | =cut | |||
#line 151 "MROOT.pm" | #line 156 "MROOT.pm" | |||
# Exit with OK status | # Exit with OK status | |||
1; | 1; | |||
End of changes. 10 change blocks. | ||||
10 lines changed or deleted | 14 lines changed or added |