!-*-f90-*- ! ! Interfaces: multi-dimensional root finding ! function gsl_multiroot_fsolver_alloc(t, n) bind(c) import type(c_ptr), value :: t integer(c_size_t), value :: n type(c_ptr) :: gsl_multiroot_fsolver_alloc end function gsl_multiroot_fsolver_alloc function gsl_multiroot_fdfsolver_alloc(t, n) bind(c) import type(c_ptr), value :: t integer(c_size_t), value :: n type(c_ptr) :: gsl_multiroot_fdfsolver_alloc end function gsl_multiroot_fdfsolver_alloc function gsl_multiroot_fsolver_set(s, f, x) bind(c) import type(c_ptr), value :: s, f, x integer(c_int) :: gsl_multiroot_fsolver_set end function gsl_multiroot_fsolver_set function gsl_multiroot_fdfsolver_set(s, f, x) bind(c) import type(c_ptr), value :: s, f, x integer(c_int) :: gsl_multiroot_fdfsolver_set end function gsl_multiroot_fdfsolver_set subroutine gsl_multiroot_fsolver_free(s) bind(c) import :: c_ptr type(c_ptr), value :: s end subroutine gsl_multiroot_fsolver_free subroutine gsl_multiroot_fdfsolver_free(s) bind(c) import :: c_ptr type(c_ptr), value :: s end subroutine gsl_multiroot_fdfsolver_free function gsl_multiroot_fsolver_name(s) bind(c) import :: c_ptr type(c_ptr), value :: s type(c_ptr) :: gsl_multiroot_fsolver_name end function gsl_multiroot_fsolver_name function gsl_multiroot_fdfsolver_name(s) bind(c) import :: c_ptr type(c_ptr), value :: s type(c_ptr) :: gsl_multiroot_fdfsolver_name end function gsl_multiroot_fdfsolver_name function gsl_multiroot_fsolver_iterate(s) bind(c) import :: c_ptr, c_int type(c_ptr), value :: s integer(c_int) :: gsl_multiroot_fsolver_iterate end function gsl_multiroot_fsolver_iterate function gsl_multiroot_fdfsolver_iterate(s) bind(c) import :: c_ptr, c_int type(c_ptr), value :: s integer(c_int) :: gsl_multiroot_fdfsolver_iterate end function gsl_multiroot_fdfsolver_iterate function gsl_multiroot_fsolver_root(s) bind(c) import :: c_ptr type(c_ptr), value :: s type(c_ptr) :: gsl_multiroot_fsolver_root end function gsl_multiroot_fsolver_root function gsl_multiroot_fsolver_f(s) bind(c) import :: c_ptr type(c_ptr), value :: s type(c_ptr) :: gsl_multiroot_fsolver_f end function gsl_multiroot_fsolver_f function gsl_multiroot_fsolver_dx(s) bind(c) import :: c_ptr type(c_ptr), value :: s type(c_ptr) :: gsl_multiroot_fsolver_dx end function gsl_multiroot_fsolver_dx function gsl_multiroot_fdfsolver_root(s) bind(c) import :: c_ptr type(c_ptr), value :: s type(c_ptr) :: gsl_multiroot_fdfsolver_root end function gsl_multiroot_fdfsolver_root function gsl_multiroot_fdfsolver_f(s) bind(c) import :: c_ptr type(c_ptr), value :: s type(c_ptr) :: gsl_multiroot_fdfsolver_f end function gsl_multiroot_fdfsolver_f function gsl_multiroot_fdfsolver_dx(s) bind(c) import :: c_ptr type(c_ptr), value :: s type(c_ptr) :: gsl_multiroot_fdfsolver_dx end function gsl_multiroot_fdfsolver_dx function gsl_multiroot_test_delta(dx, x, epsabs, epsrel) bind(c) import :: c_ptr, c_int, c_double type(c_ptr), value :: dx, x real(c_double), value :: epsabs, epsrel integer(c_int) :: gsl_multiroot_test_delta end function gsl_multiroot_test_delta ! int gsl_multiroot_test_residual (const gsl_vector * f, double epsabs) function gsl_multiroot_test_residual(f, epsabs) bind(c) import :: c_ptr, c_int, c_double type(c_ptr), value :: f real(c_double), value :: epsabs integer(c_int) :: gsl_multiroot_test_residual end function gsl_multiroot_test_residual ! function fgsl_multiroot_function_cinit(fp, ndim, params) bind(c) import type(c_funptr), value :: fp integer(c_size_t), value :: ndim type(c_ptr), value :: params type(c_ptr) :: fgsl_multiroot_function_cinit end function fgsl_multiroot_function_cinit function fgsl_multiroot_function_fdf_cinit(fp, dfp, fdfp, ndim, params) bind(c) import type(c_funptr), value :: fp, dfp, fdfp integer(c_size_t), value :: ndim type(c_ptr), value :: params type(c_ptr) :: fgsl_multiroot_function_fdf_cinit end function fgsl_multiroot_function_fdf_cinit subroutine fgsl_multiroot_function_cfree(f) bind(c) import :: c_ptr type(c_ptr), value :: f end subroutine fgsl_multiroot_function_cfree subroutine fgsl_multiroot_function_fdf_cfree(f) bind(c) import :: c_ptr type(c_ptr), value :: f end subroutine fgsl_multiroot_function_fdf_cfree function fgsl_aux_multiroot_fsolver_alloc(it) bind(c) import integer(c_int), value :: it type(c_ptr) :: fgsl_aux_multiroot_fsolver_alloc end function fgsl_aux_multiroot_fsolver_alloc function fgsl_aux_multiroot_fdfsolver_alloc(it) bind(c) import integer(c_int), value :: it type(c_ptr) :: fgsl_aux_multiroot_fdfsolver_alloc end function fgsl_aux_multiroot_fdfsolver_alloc