1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115
|
%perlcode %{
@EXPORT_OK = qw/
gsl_poly_eval
gsl_poly_complex_eval
gsl_complex_poly_complex_eval
gsl_poly_dd_init
gsl_poly_dd_eval
gsl_poly_dd_taylor
gsl_poly_solve_quadratic
gsl_poly_complex_solve_quadratic
gsl_poly_solve_cubic
gsl_poly_complex_solve_cubic
gsl_poly_complex_workspace_alloc
gsl_poly_complex_workspace_free
gsl_poly_complex_solve
$GSL_POSZERO $GSL_NEGZERO $GSL_NAN
/;
%EXPORT_TAGS = ( all => \@EXPORT_OK );
__END__
=encoding utf8
=head1 NAME
Math::GSL::Poly - Solve and evaluate polynomials
=head1 SYNOPSIS
use Math::GSL::Poly qw/:all/;
my ($a,$b,$c) = (1,6,9);
my ($x0, $x1) = (0,0);
my $num_roots = gsl_poly_solve_quadratic( $a, $b, $c, \$x0, \$x1);
print "${a}*x**2 + ${b}*x + $c contains $num_roots roots which are $x0 and $x1. \n";
=head1 DESCRIPTION
Here is a list of all the functions included in this module :
=over
=item * gsl_poly_eval(@values, $length, $x)
This function evaluates a polynomial with real coefficients for the real
variable $x. $length is the number of elements inside @values. The function
returns a complex number.
=item * gsl_poly_complex_eval(@values, $length, $z)
This function evaluates a polynomial with real coefficients for the complex
variable $z. $length is the number of elements inside @valuesi. The function
returns a complex number.
=item * gsl_complex_poly_complex_eval(@values, $length, $z)
This function evaluates a polynomial with real coefficients for the complex
variable $z. $length is the number of elements inside @values. $length is the
number of elements inside @values. The function returns a complex number.
=item * gsl_poly_dd_init
=item * gsl_poly_dd_eval
=item * gsl_poly_dd_taylor
=item * gsl_poly_solve_quadratic( $a, $b, $c, \$x0, \$x1)
Find the real roots of the quadratic equation $a*x**2+$b*x+$c = 0, return the
number of real root (either zero, one or two) and the real roots are returned
by $x0, $x1 and $x2 which are deferenced.
=item * gsl_poly_complex_solve_quadratic
=item * gsl_poly_solve_cubic($a, $b, $c, \$x0, \$x1, \$x2)
find the real roots of the cubic equation x**3+$a*x**2+$b*x+$c = 0, return the
number of real root (either one or three) and the real roots are returned by
$x0, $x1 and $x2 which are deferenced.
=item * gsl_poly_complex_solve_cubic
=item * gsl_poly_complex_workspace_alloc($n)
This function allocates space for a gsl_poly_complex_workspace struct and a
workspace suitable for solving a polynomial with $n coefficients using the
routine gsl_poly_complex_solve.
=item * gsl_poly_complex_workspace_free($w)
This function frees all the memory associated with the workspace $w.
=item * gsl_poly_complex_solve()
=back
For more information on the functions, we refer you to the GSL official documentation:
L<http://www.gnu.org/software/gsl/manual/html_node/>
=head1 AUTHORS
Jonathan "Duke" Leto <jonathan@leto.net> and Thierry Moisan <thierry.moisan@gmail.com>
=head1 COPYRIGHT AND LICENSE
Copyright (C) 2008-2024 Jonathan "Duke" Leto and Thierry Moisan
This program is free software; you can redistribute it and/or modify it
under the same terms as Perl itself.
=cut
%}
|