LINALG.pm (PDL-2.082) | : | LINALG.pm (PDL-2.083) | ||
---|---|---|---|---|
skipping to change at line 51 | skipping to change at line 51 | |||
$x = $x->inplace->transpose; # now can be matrix-multiplied | $x = $x->inplace->transpose; # now can be matrix-multiplied | |||
=head1 DESCRIPTION | =head1 DESCRIPTION | |||
This is an interface to the linear algebra package present in the | This is an interface to the linear algebra package present in the | |||
GNU Scientific Library. Functions are named as in GSL, but with the | GNU Scientific Library. Functions are named as in GSL, but with the | |||
initial C<gsl_linalg_> removed. They are provided in both real and | initial C<gsl_linalg_> removed. They are provided in both real and | |||
complex double precision. | complex double precision. | |||
Currently only LU decomposition interfaces here. Pull requests welcome! | Currently only LU decomposition interfaces here. Pull requests welcome! | |||
#line 59 "LINALG.pm" | #line 60 "LINALG.pm" | |||
=head1 FUNCTIONS | =head1 FUNCTIONS | |||
=cut | =cut | |||
#line 958 "/home/osboxes/pdl-code/blib/lib/PDL/PP.pm" | ||||
=head2 LU_decomp | =head2 LU_decomp | |||
=for sig | =for sig | |||
Signature: ([io,phys]A(n,m); indx [o,phys]ipiv(p); int [o,phys]signum()) | Signature: ([io,phys]A(n,m); indx [o,phys]ipiv(p); int [o,phys]signum()) | |||
=for ref | =for ref | |||
LU decomposition of the given (real or complex) matrix. | LU decomposition of the given (real or complex) matrix. | |||
=for bad | =for bad | |||
LU_decomp ignores the bad-value flag of the input ndarrays. | LU_decomp ignores the bad-value flag 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. | 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 96 "LINALG.pm" | ||||
#line 960 "/home/osboxes/pdl-code/blib/lib/PDL/PP.pm" | ||||
*LU_decomp = \&PDL::LU_decomp; | *LU_decomp = \&PDL::LU_decomp; | |||
#line 103 "LINALG.pm" | ||||
#line 958 "/home/osboxes/pdl-code/blib/lib/PDL/PP.pm" | ||||
=head2 LU_solve | =head2 LU_solve | |||
=for sig | =for sig | |||
Signature: ([phys]LU(n,m); indx [phys]ipiv(p); [phys]B(n); [o,phys]x(n)) | Signature: ([phys]LU(n,m); indx [phys]ipiv(p); [phys]B(n); [o,phys]x(n)) | |||
=for ref | =for ref | |||
Solve C<A x = B> using the LU and permutation from L</LU_decomp>, real | Solve C<A x = B> using the LU and permutation from L</LU_decomp>, real | |||
or complex. | or complex. | |||
=for bad | =for bad | |||
LU_solve ignores the bad-value flag of the input ndarrays. | LU_solve ignores the bad-value flag 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. | 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 131 "LINALG.pm" | ||||
#line 960 "/home/osboxes/pdl-code/blib/lib/PDL/PP.pm" | ||||
*LU_solve = \&PDL::LU_solve; | *LU_solve = \&PDL::LU_solve; | |||
#line 138 "LINALG.pm" | ||||
#line 958 "/home/osboxes/pdl-code/blib/lib/PDL/PP.pm" | ||||
=head2 LU_det | =head2 LU_det | |||
=for sig | =for sig | |||
Signature: ([phys]LU(n,m); int [phys]signum(); [o]det()) | Signature: ([phys]LU(n,m); int [phys]signum(); [o]det()) | |||
=for ref | =for ref | |||
Find the determinant from the LU decomp. | Find the determinant from the LU decomp. | |||
=for bad | =for bad | |||
LU_det ignores the bad-value flag of the input ndarrays. | LU_det ignores the bad-value flag 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. | 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 165 "LINALG.pm" | ||||
#line 960 "/home/osboxes/pdl-code/blib/lib/PDL/PP.pm" | ||||
*LU_det = \&PDL::LU_det; | *LU_det = \&PDL::LU_det; | |||
#line 172 "LINALG.pm" | ||||
#line 958 "/home/osboxes/pdl-code/blib/lib/PDL/PP.pm" | ||||
=head2 solve_tridiag | =head2 solve_tridiag | |||
=for sig | =for sig | |||
Signature: ([phys]diag(n); [phys]superdiag(n); [phys]subdiag(n); [phys]B(n); [ o,phys]x(n)) | Signature: ([phys]diag(n); [phys]superdiag(n); [phys]subdiag(n); [phys]B(n); [ o,phys]x(n)) | |||
=for ref | =for ref | |||
Solve C<A x = B> where A is a tridiagonal system. Real only, because | Solve C<A x = B> where A is a tridiagonal system. Real only, because | |||
GSL does not have a complex function. | GSL does not have a complex function. | |||
=for bad | =for bad | |||
solve_tridiag ignores the bad-value flag of the input ndarrays. | solve_tridiag ignores the bad-value flag 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. | 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 200 "LINALG.pm" | ||||
#line 960 "/home/osboxes/pdl-code/blib/lib/PDL/PP.pm" | ||||
*solve_tridiag = \&PDL::solve_tridiag; | *solve_tridiag = \&PDL::solve_tridiag; | |||
#line 207 "LINALG.pm" | ||||
#line 40 "gsl_linalg.pd" | #line 40 "gsl_linalg.pd" | |||
=head1 SEE ALSO | =head1 SEE ALSO | |||
L<PDL> | L<PDL> | |||
The GSL documentation for linear algebra is online at | The GSL documentation for linear algebra is online at | |||
L<https://www.gnu.org/software/gsl/doc/html/linalg.html> | L<https://www.gnu.org/software/gsl/doc/html/linalg.html> | |||
=cut | =cut | |||
#line 223 "LINALG.pm" | #line 192 "LINALG.pm" | |||
# Exit with OK status | # Exit with OK status | |||
1; | 1; | |||
End of changes. 11 change blocks. | ||||
26 lines changed or deleted | 2 lines changed or added |