##language:en

= general links =
 *See also [[GSLReplacement|GSLReplacement]]
 *http://www.numerical-recipes.com/recipe-list.html -- NR method names descriptions
 *http://kutsyy.com/java/javadoc/index.html -- Java libraries for several needed functions
 *http://paine.wiau.man.ac.uk/pub/doc_vxl/core/vnl/html/index.html -- vnl : Numerics Library

= files modified/to-be-modified =
== utils/eigen.c ==
 * will be removed

== utils/image.c ==
 * EigenSystem will be replaced

== utils/utils.c ==
 * ran1 will be replaced

== utils/mrimorph.c ==
 * powell
 * dfpmin

== utils/mrinorm.c ==
 * spline will be replaced
 * splint will be replaced

== utils/matrix.c ==
 * lu_matrix_inverse
 * MatrixDeterminant will be replaced with OpenMatrixDeterminant
 * svdcmp

== histo_register_block/histo_register_block.c ==
 * powell

== mri_hires_register/mri_hires_register.c ==
 * powell

== mri_hires_register/mri_linear_align_binary.c ==
 * powell

== mri_hires_register/mri_linear_align.c ==
 * powell

= specific functions =
== powell.c ==
 *powell's direction set method, or powell minimizer
 *itkPowellOptimizer
 *vnl_powell

== f1dim.c ==
 *function used by linmin [10.5]

== linmin.c ==
 *line minimization
 *nothing apparent in ITK, vnl, GSL
 *http://cvs.gnome.org/viewcvs/moiss/moiss-src/linmin.c
 *check koders.com
 *used by powell

== ludcmp.c ==
 *LU decomposition
 *vnl_rnpoly_solve has method

== lubksb.c ==
 *LU back substitution
 *vnl_rnpoly_solve has method

== brent.c ==
 *brent's method for min of function
 *gsl_min_fminimizer_brent
 *ITK/vnl: Utilities/vxl/core/vnl/algo/vnl_brent.cxx
 *used by linmin

== mnbrak.c ==
 *bracket the minimum of a function
 *no apparent replacements. others have same conclusion: http://www.blackwellpublishing.com/rss/Readmefiles/zucker.htm
 *check koders.com
 *used by linmin

== svdcmp.c ==
 *singular value decomposition of a matrix
 *LAPACK seems to have it (http://www.netlib.org/lapack/lug/node53.html), but not ATLAS
 *check koders.com

== ran1.c ==
 *random deviate, minimal standard plus shuffle [7.1]
 * '''used in'''
  *utils/utils.c from within randomNumber()
 *not supposed to be such a great random num generator. how important is using the same algorithm?
 *exact same: gsl_rng_ran1, but no longer exists. now provides gsl_rng_minstd
 *full gsl doc for this: http://www.lsw.uni-heidelberg.de/manuals/gsl-ref-html/gsl-ref_16.html
 *vnl_random
 *itkMersenneTwisterRandomVariateGenerator

== tred2.c ==
 *householder reduction of a real, symmetric matrix
 *itkSymmetricEigenAnalysis has ReduceToTridiagonalMatrixAndGetTransformation, adapted from netlib/tred2.c
 *also: Utilities/vxl/v3p/netlib/tred2.c

== tqli.c ==
 *eigensolution of a symmetric tridiagonal matrix
 *tqli vs. tql1 -- the same I think
 *itkSymmetricEigenAnalysis has ComputeEigenValuesUsingQL, adapted from netlib/tql1.c
 *also: Utilities/vxl/v3p/netlib/tql1.c

== splint.c ==
 *cubic spline interpolation [3.3]
 *Image Registration Toolkit appears to have closed source implementation. Maybe they'll share.
 *SPLINE library: http://www.scs.fsu.edu/~burkardt/cpp_src/spline/spline.html

== spline.c ==
 *construct a cubic spline [3.3]

== pythag.c ==
 *calculate (a^2+b^2)^{1/2} without overflow [2.6]
 *ITK: Utilities/vxl/v3p/netlib/pythag.c
 *used by tqli

== dfpmin.c ==
 *minimize in N-dimensions by variable metric method
 *check koders.com

== lnsrch.c ==
 *search along a line, used by dfpmin
 *check koders.com

== betai.c ==
 *incomplete beta function

== gammp.c ==
 *incomplete gamma function

== nrutil.c ==
 *vector, matrix, free_vector, free_matrix