3 * Copyright (C) 2008 Matias De la Puente
5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Lesser General Public
7 * License as published by the Free Software Foundation; either
8 * version 2.1 of the License, or (at your option) any later version.
10 * This library is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * Lesser General Public License for more details.
15 * You should have received a copy of the GNU Lesser General Public
16 * License along with this library; if not, write to the Free Software
17 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20 * Matias De la Puente <mfpuente.ar@gmail.com>
28 [CCode (cprefix="GSL_CONST_NUM_", cheader_filename="gsl/gsl_const_num.h")]
51 [CCode (cprefix="GSL_CONST_CGS_", cheader_filename="gsl/gsl_const_cgs.h")]
55 GRAVITATIONAL_CONSTANT,
57 PLANCKS_CONSTANT_HBAR,
71 ELECTRON_MAGNETIC_MOMENT,
72 PROTON_MAGNETIC_MOMENT,
150 STEFAN_BOLTZMANN_CONSTANT,
151 THOMSON_CROSS_SECTION
154 [CCode (cprefix="GSL_CONST_CGSM_", cheader_filename="gsl/gsl_const_cgsm.h")]
155 public enum ConstCGSM
158 GRAVITATIONAL_CONSTANT,
160 PLANCKS_CONSTANT_HBAR,
174 ELECTRON_MAGNETIC_MOMENT,
175 PROTON_MAGNETIC_MOMENT,
253 STEFAN_BOLTZMANN_CONSTANT,
254 THOMSON_CROSS_SECTION
257 [CCode (cprefix="GSL_CONST_MKS_", cheader_filename="gsl/gsl_const_mks.h")]
261 GRAVITATIONAL_CONSTANT,
263 PLANCKS_CONSTANT_HBAR,
277 ELECTRON_MAGNETIC_MOMENT,
278 PROTON_MAGNETIC_MOMENT,
356 STEFAN_BOLTZMANN_CONSTANT,
357 THOMSON_CROSS_SECTION,
363 [CCode (cprefix="GSL_CONST_MKSA_", cheader_filename="gsl/gsl_const_mksa.h")]
364 public enum ConstMKSA
367 GRAVITATIONAL_CONSTANT,
369 PLANCKS_CONSTANT_HBAR,
383 ELECTRON_MAGNETIC_MOMENT,
384 PROTON_MAGNETIC_MOMENT,
462 STEFAN_BOLTZMANN_CONSTANT,
463 THOMSON_CROSS_SECTION,
473 [CCode (cprefix="GSL_", cheader_filename="gsl/gsl_errno.h")]
513 [CCode (cprefix="GSL_PREC_", cheader_filename="gsl/gsl_mode.h")]
521 [CCode (has_target = false)]
522 public delegate void ErrorHandler (string reason, string file, int line, int errno);
523 [CCode (has_target = false)]
524 public delegate void StreamHandler (string label, string file, int line, string reason);
526 [CCode (lower_case_cprefix="gsl_", cheader_filename="gsl/gsl_errno.h")]
529 public static void error (string reason, string file, int line, int errno);
530 public static unowned string strerror (int errno);
531 public static ErrorHandler set_error_handler (ErrorHandler? new_handler);
532 public static ErrorHandler set_error_handler_off ();
535 [CCode (lower_case_cprefix="gsl_", cheader_filename="gsl/gsl_errno.h")]
538 [CCode (cname="gsl_stream_printf")]
539 public static void printf (string label, string file, int line, string reason);
540 public static StreamHandler set_stream_handler (StreamHandler new_handler);
541 public static GLib.FileStream set_stream (GLib.FileStream new_stream);
546 * Mathematical Functions
548 [CCode (cprefix="", cheader_filename="gsl/gsl_math.h")]
549 public enum MathConst
569 /* The isnan, isinf and finite are define in the double type. The elementary functions are in GLib.Math */
571 [CCode (has_target = false)]
572 public delegate double _Function (double x, void* params);
573 [CCode (has_target = false)]
574 public delegate void _FunctionFdf (double x, void* params, out double f, out double df);
577 [CCode (cname="gsl_function", cheader_filename="gsl/gsl_math.h")]
578 public struct Function
580 public _Function function;
585 [CCode (cname="gsl_function_fdf", cheader_filename="gsl/gsl_math.h")]
586 public struct FunctionFdf
590 public _FunctionFdf fdf;
599 [CCode (cname="gsl_complex", cheader_filename="gsl/gsl_complex.h,gsl/gsl_complex_math.h")]
600 public struct Complex
602 [CCode (cname="dat[0]")]
604 [CCode (cname="dat[1]")]
606 public static Complex rect (double x, double y);
607 public static Complex polar (double r, double theta);
609 public static double arg (Complex z);
610 public static double abs (Complex z);
611 public static double abs2 (Complex z);
612 public static double logabs (Complex z);
614 public static Complex add (Complex a, Complex b);
615 public static Complex sub (Complex a, Complex b);
616 public static Complex mul (Complex a, Complex b);
617 public static Complex div (Complex a, Complex b);
618 public static Complex add_real (Complex a, double x);
619 public static Complex sub_real (Complex a, double x);
620 public static Complex mul_real (Complex a, double x);
621 public static Complex div_real (Complex a, double x);
622 public static Complex add_imag (Complex a, double y);
623 public static Complex sub_imag (Complex a, double y);
624 public static Complex mul_imag (Complex a, double y);
625 public static Complex div_imag (Complex a, double y);
626 public static Complex conjugate (Complex z);
627 public static Complex inverse (Complex z);
628 public static Complex negative (Complex z);
630 public static Complex sqrt (Complex z);
631 public static Complex sqrt_real (double x);
632 public static Complex pow (Complex z, Complex a);
633 public static Complex pow_real (Complex z, double x);
634 public static Complex exp (Complex z);
635 public static Complex log (Complex z);
636 public static Complex log10 (Complex z);
637 public static Complex log_b (Complex z, Complex b);
639 public static Complex sin (Complex z);
640 public static Complex cos (Complex z);
641 public static Complex tan (Complex z);
642 public static Complex sec (Complex z);
643 public static Complex csc (Complex z);
644 public static Complex cot (Complex z);
646 public static Complex arcsin (Complex z);
647 public static Complex arcsin_real (double z);
648 public static Complex arccos (Complex z);
649 public static Complex arccos_real (double z);
650 public static Complex arctan (Complex z);
651 public static Complex arcsec (Complex z);
652 public static Complex arcsec_real (double z);
653 public static Complex arccsc (Complex z);
654 public static Complex arccsc_real (double z);
655 public static Complex arccot (Complex z);
657 public static Complex sinh (Complex z);
658 public static Complex cosh (Complex z);
659 public static Complex tanh (Complex z);
660 public static Complex sech (Complex z);
661 public static Complex csch (Complex z);
662 public static Complex coth (Complex z);
664 public static Complex arcsinh (Complex z);
665 public static Complex arccosh (Complex z);
666 public static Complex arccosh_real (double z);
667 public static Complex arctanh (Complex z);
668 public static Complex arctanh_real (double z);
669 public static Complex arcsech (Complex z);
670 public static Complex arccsch (Complex z);
671 public static Complex arccoth (Complex z);
678 [CCode (lower_case_cprefix="gsl_poly_", cheader_filename="gsl/gsl_poly.h")]
681 public static double eval (double[] c, double x);
682 public static Complex complex_eval (double[] c, Complex z);
683 [CCode (cname="gsl_complex_poly_complex_eval")]
684 public static Complex poly_complex_eval (Complex[] c, Complex z);
686 public static int dd_init ([CCode (array_length = false)] double[] dd, [CCode (array_length = false)] double[] xa, [CCode (array_length = false)] double[] ya, size_t size);
687 public static double dd_eval ([CCode (array_length = false)] double[] dd, [CCode (array_length = false)] double[] xa, size_t size, double x);
688 public static int dd_taylor ([CCode (array_length = false)] double[] c, double xp, [CCode (array_length = false)] double[] dd, [CCode (array_length = false)] double[] xa, size_t size, [CCode (array_length = false)] double[] w);
690 public static int solve_quadratic (double a, double b, double c, out double x0, out double x1);
691 public static int complex_solve_quadratic (double a, double b, double c, out Complex z0, out Complex z1);
693 public static int solve_cubic (double a, double b, double c, out double x0, out double x1, out double x2);
694 public static int complex_solve_cubic (double a, double b, double c, out Complex z0, out Complex z1, out Complex z2);
698 [CCode (cname="gsl_poly_complex_workspace", cheader_filename="gsl/gsl_poly.h")]
699 public class PolyComplexWorkspace
702 public double* matrix;
704 [CCode (cname="gsl_poly_complex_workspace_alloc")]
705 public PolyComplexWorkspace (size_t n);
706 [CCode (cname="gsl_poly_complex_solve")]
707 public static int solve (double[]a, PolyComplexWorkspace w, out double z);
715 [CCode (cname="gsl_sf_result", cheader_filename="gsl/gsl_sf_result.h")]
723 [CCode (cname="gsl_sf_result_e10", cheader_filename="gsl/gsl_sf_result.h")]
724 public struct ResultE10
731 [CCode (lower_case_cprefix="gsl_sf_airy_", cheader_filename="gsl/gsl_sf_airy.h")]
734 public static double Ai (double x, Mode mode);
735 public static int Ai_e (double x, Mode mode, out Result result);
736 public static double Bi (double x, Mode mode);
737 public static int Bi_e (double x, Mode mode, out Result result);
738 public static double Ai_scaled (double x, Mode mode);
739 public static int Ai_scaled_e (double x, Mode mode, out Result result);
740 public static double Bi_scaled (double x, Mode mode);
741 public static int Bi_scaled_e (double x, Mode mode, out Result result);
743 public static double Ai_deriv (double x, Mode mode);
744 public static int Ai_deriv_e (double x, Mode mode, out Result result);
745 public static double Bi_deriv (double x, Mode mode);
746 public static int Bi_deriv_e (double x, Mode mode, out Result result);
747 public static double Ai_deriv_scaled (double x, Mode mode);
748 public static int Ai_deriv_scaled_e (double x, Mode mode, out Result result);
749 public static double Bi_deriv_scaled (double x, Mode mode);
750 public static int Bi_deriv_scaled_e (double x, Mode mode, out Result result);
752 public static double zero_Ai (uint s);
753 public static int zero_Ai_e (uint s, out Result result);
754 public static double zero_Bi (uint s);
755 public static int zero_Bi_e (uint s, out Result result);
757 public static double zero_Ai_deriv (uint s);
758 public static int zero_Ai_deriv_e (uint s, out Result result);
759 public static double zero_Bi_deriv (uint s);
760 public static int zero_Bi_deriv_e (uint s, out Result result);
763 [CCode (lower_case_cprefix="gsl_sf_bessel_", cheader_filename="gsl/gsl_sf_bessel.h")]
766 public static double J0 (double x);
767 public static int J0_e (double x, out Result result);
768 public static double J1 (double x);
769 public static int J1_e (double x, out Result result);
770 public static double Jn (int n, double x);
771 public static int Jn_e (int n, double x, out Result result);
772 public static int Jn_array (int nmin, int nmax, double x, [CCode (array_length = false)] double[] result_array);
774 public static double Y0 (double x);
775 public static int Y0_e (double x, out Result result);
776 public static double Y1 (double x);
777 public static int Y1_e (double x, out Result result);
778 public static double Yn (int n, double x);
779 public static int Yn_e (int n, double x, out Result result);
780 public static int Yn_array (int nmin, int nmax, double x, [CCode (array_length = false)] double[] result_array);
782 public static double I0 (double x);
783 public static int I0_e (double x, out Result result);
784 public static double I1 (double x);
785 public static int I1_e (double x, out Result result);
786 public static double In (int n, double x);
787 public static int In_e (int n, double x, out Result result);
788 public static int In_array (int nmin, int nmax, double x, [CCode (array_length = false)] double[] result_array);
789 public static double I0_scaled (double x);
790 public static int I0_scaled_e (double x, out Result result);
791 public static double I1_scaled (double x);
792 public static int I1_scaled_e (double x, out Result result);
793 public static double In_scaled (int n, double x);
794 public static int In_scaled_e (int n, double x, out Result result);
795 public static int In_scaled_array (int nmin, int nmax, double x, [CCode (array_length = false)] double[] result_array);
797 public static double K0 (double x);
798 public static int K0_e (double x, out Result result);
799 public static double K1 (double x);
800 public static int K1_e (double x, out Result result);
801 public static double Kn (int n, double x);
802 public static int Kn_e (int n, double x, out Result result);
803 public static int Kn_array (int nmin, int nmax, double x, [CCode (array_length = false)] double[] result_array);
804 public static double K0_scaled (double x);
805 public static int K0_scaled_e (double x, out Result result);
806 public static double K1_scaled (double x);
807 public static int K1_scaled_e (double x, out Result result);
808 public static double Kn_scaled (int n, double x);
809 public static int Kn_scaled_e (int n, double x, out Result result);
810 public static int Kn_scaled_array (int nmin, int nmax, double x, [CCode (array_length = false)] double[] result_array);
812 public static double j0 (double x);
813 public static int j0_e (double x, out Result result);
814 public static double j1 (double x);
815 public static int j1_e (double x, out Result result);
816 public static double j2 (double x);
817 public static int j2_e (double x, out Result result);
818 public static double jl (int l, double x);
819 public static int jl_e (int l, double x, out Result result);
820 public static int jl_array (int lmax, double x, [CCode (array_length = false)] double[] result_array);
821 public static int jl_steed_array (int lmax, double x, [CCode (array_length = false)] double[] jl_x_array);
823 public static double y0 (double x);
824 public static int y0_e (double x, out Result result);
825 public static double y1 (double x);
826 public static int y1_e (double x, out Result result);
827 public static double y2 (double x);
828 public static int y2_e (double x, out Result result);
829 public static double yl (int l, double x);
830 public static int yl_e (int l, double x, out Result result);
831 public static int yl_array (int lmax, double x, [CCode (array_length = false)] double[] result_array);
833 public static double i0_scaled (double x);
834 public static int i0_scaled_e (double x, out Result result);
835 public static double i1_scaled (double x);
836 public static int i1_scaled_e (double x, out Result result);
837 public static double i2_scaled (double x);
838 public static int i2_scaled_e (double x, out Result result);
839 public static double il_scaled (int l, double x);
840 public static int il_scaled_e (int l, double x, out Result result);
841 public static int il_scaled_array (int lmax, double x, [CCode (array_length = false)] double[] result_array);
843 public static double k0_scaled (double x);
844 public static int k0_scaled_e (double x, out Result result);
845 public static double k1_scaled (double x);
846 public static int k1_scaled_e (double x, out Result result);
847 public static double k2_scaled (double x);
848 public static int k2_scaled_e (double x, out Result result);
849 public static double kl_scaled (int l, double x);
850 public static int kl_scaled_e (int l, double x, out Result result);
851 public static int kl_scaled_array (int lmax, double x, [CCode (array_length = false)] double[] result_array);
853 public static double Jnu (double nu, double x);
854 public static int Jnu_e (double nu, double x, out Result result);
855 public static int sequence_Jnu_e (double nu, Mode mode, size_t size, [CCode (array_length = false)] double[] v);
857 public static double Ynu (double nu, double x);
858 public static int Ynu_e (double nu, double x, out Result result);
860 public static double Inu (double nu, double x);
861 public static int Inu_e (double nu, double x, out Result result);
862 public static double Inu_scaled (double nu, double x);
863 public static int Inu_scaled_e (double nu, double x, out Result result);
865 public static double Knu (double nu, double x);
866 public static int Knu_e (double nu, double x, out Result result);
867 public static double lnKnu (double nu, double x);
868 public static int lnKnu_e (double nu, double x, out Result result);
869 public static double Knu_scaled (double nu, double x);
870 public static int Knu_scaled_e (double nu, double x, out Result result);
872 public static double zero_J0 (uint s);
873 public static int zero_J0_e (uint s, out Result result);
874 public static double zero_J1 (uint s);
875 public static int zero_J1_e (uint s, out Result result);
876 public static double zero_Jnu (double nu, uint s);
877 public static int zero_Jnu_e (double nu, uint s, out Result result);
880 [CCode (lower_case_cprefix="gsl_sf_", cheader_filename="gsl/gsl_sf_clausen.h")]
883 public static double clausen (double x);
884 public static int clausen_e (double x, out Result result);
887 [CCode (lower_case_cprefix="gsl_sf_", cheader_filename="gsl/gsl_sf_coulomb.h")]
890 public static double hydrogenicR_1 (double z, double r);
891 public static int hydrogenicR_1_e (double z, double r, out Result result);
892 public static double hydrogenicR (int n, int l, double z, double r);
893 public static int hydrogenicR_e (int n, int l, double z, double r, out Result result);
896 [CCode (lower_case_cprefix="gsl_sf_coulomb_wave_", cheader_filename="gsl/gsl_sf_coulomb.h")]
897 namespace CoulombWave
899 public static int FG_e (double eta, double x, double l_f, int k, out Result f, out Result fp, out Result g, out Result gp, out double exp_f, out double exp_g);
900 public static int F_array (double l_min, int kmax, double eta, double x, [CCode (array_length = false)] double[] fc_array, out double f_exponent);
901 public static int FG_array (double l_min, int kmax, double eta, double x, [CCode (array_length = false)] double[] fc_array, [CCode (array_length = false)] double[] gc_array, out double f_exponent, out double g_exponent);
902 public static int FGp_array (double l_min, int kmax, double eta, double x, [CCode (array_length = false)] double[] fc_array, [CCode (array_length = false)] double[] fcp_array, [CCode (array_length = false)] double[] gc_array, [CCode (array_length = false)] double[] gcp_array, out double f_exponent, out double g_exponent);
903 public static int sphF_array (double l_min, int kmax, double eta, double x, [CCode (array_length = false)] double[] fc_array, [CCode (array_length = false)] double[] f_exponent);
906 [CCode (lower_case_cprefix="gsl_sf_coulomb_", cheader_filename="gsl/gsl_sf_coulomb.h")]
909 public static int CL_e (double l, double eta, out Result result);
910 public static int CL_array (double lmin, int kmax, double eta, [CCode (array_length = false)] double[] cl);
913 [CCode (lower_case_cprefix="gsl_sf_coupling_", cheader_filename="gsl/gsl_coupling.h")]
916 public static double 3j (int two_ja, int two_jb, int two_jc, int two_ma, int two_mb, int two_mc);
917 public static int 3j_e (int two_ja, int two_jb, int two_jc, int two_ma, int two_mb, int two_mc, out Result result);
919 public static double 6j (int two_ja, int two_jb, int two_jc, int two_jd, int two_je, int two_jf);
920 public static int 6j_e (int two_ja, int two_jb, int two_jc, int two_jd, int two_je, int two_jf, out Result result);
922 public static double 9j (int two_ja, int two_jb, int two_jc, int two_jd, int two_je, int two_jf, int two_jg, int two_jh, int two_ji);
923 public static int 9j_e (int two_ja, int two_jb, int two_jc, int two_jd, int two_je, int two_jf, int two_jg, int two_jh, int two_ji, out Result result);
926 [CCode (lower_case_cprefix="gsl_sf_", cheader_filename="gsl/gsl_sf_dawson.h")]
929 public static double dawson (double x);
930 public static int dawson_e (double x, out Result result);
933 [CCode (cheader_filename="gsl/gsl_sf_debye.h")]
936 [CCode (cname="gsl_sf_debye_1")]
937 public static double D1 (double x);
938 [CCode (cname="gsl_sf_debye_1_e")]
939 public static int D1_e (double x, out Result result);
940 [CCode (cname="gsl_sf_debye_2")]
941 public static double D2 (double x);
942 [CCode (cname="gsl_sf_debye_2_e")]
943 public static int D2_e (double x, out Result result);
944 [CCode (cname="gsl_sf_debye_3")]
945 public static double D3 (double x);
946 [CCode (cname="gsl_sf_debye_3_e")]
947 public static int D3_e (double x, out Result result);
948 [CCode (cname="gsl_sf_debye_4")]
949 public static double D4 (double x);
950 [CCode (cname="gsl_sf_debye_4_e")]
951 public static int D4_e (double x, out Result result);
952 [CCode (cname="gsl_sf_debye_5")]
953 public static double D5 (double x);
954 [CCode (cname="gsl_sf_debye_5_e")]
955 public static int D5_e (double x, out Result result);
956 [CCode (cname="gsl_sf_debye_6")]
957 public static double D6 (double x);
958 [CCode (cname="gsl_sf_debye_6_e")]
959 public static int D6_e (double x, out Result result);
962 [CCode (lower_case_cprefix="gsl_sf_", cheader_filename="gsl/gsl_sf_dilog.h")]
965 public static double dilog (double x);
966 public static int dilog_e (double x, out Result result);
967 public static int complex_dilog_e (double r, double theta, out Result result_re, out Result result_im);
970 [CCode (lower_case_cprefix="gsl_sf_multiply_", cheader_filename="gsl/gsl_sf_elementary.h")]
973 public static int e (double x, double y, out Result result);
974 public static int err_e (double x, double dx, double y, double dy, out Result result);
977 [CCode (lower_case_cprefix="gsl_sf_ellint_", cheader_filename="gsl/gsl_sf_ellint.h")]
980 public static double Kcomp (double k, Mode mode);
981 public static int Kcomp_e (double k, Mode mode, out Result result);
982 public static double Ecomp (double k, Mode mode);
983 public static int Ecomp_e (double k, Mode mode, out Result result);
984 public static double Pcomp (double k, double n, Mode mode);
985 public static int Pcomp_e (double k, double n, Mode mode, out Result result);
987 public static double F (double phi, double k, Mode mode);
988 public static int F_e (double phi, double k, Mode mode, out Result result);
989 public static double E (double phi, double k, Mode mode);
990 public static int E_e (double phi, double k, Mode mode, out Result result);
991 public static double P (double phi, double k, double n, Mode mode);
992 public static int P_e (double phi, double k, double n, Mode mode, out Result result);
993 public static double D (double phi, double k, double n, Mode mode);
994 public static int D_e (double phi, double k, double n, Mode mode, out Result result);
996 public static double RC (double x, double y, Mode mode);
997 public static int RC_e (double x, double y, Mode mode, out Result result);
998 public static double RD (double x, double y, double z, Mode mode);
999 public static int RD_e (double x, double y, double z, Mode mode, out Result result);
1000 public static double RF (double x, double y, double z, Mode mode);
1001 public static int RF_e (double x, double y, double z, Mode mode, out Result result);
1002 public static double RJ (double x, double y, double z, double p, Mode mode);
1003 public static int RJ_e (double x, double y, double z, double p, Mode mode, out Result result);
1006 [CCode (lower_case_cprefix="gsl_sf_elljac_", cheader_filename="gsl/gsl_elljac.h")]
1009 public static int e (double u, double m, out double sn, out double cn, out double dn);
1012 [CCode (lower_case_cprefix="gsl_sf_", cheader_filename="gsl/gsl_sf_erf.h")]
1015 public static double erf (double x);
1016 public static int erf_e (double x, out Result result);
1017 public static double erf_Z (double x);
1018 public static int erf_Z_e (double x, out Result result);
1019 public static double erf_Q (double x);
1020 public static int erf_Q_e (double x, out Result result);
1021 public static double erfc (double x);
1022 public static int erfc_e (double x, out Result result);
1023 public static double log_erfc (double x);
1024 public static int log_erfc_e (double x, out Result result);
1025 public static double hazard (double x);
1026 public static int hazard_e (double x, out Result result);
1029 [CCode (lower_case_cprefix="gsl_sf_", cheader_filename="gsl/gsl_sf_exp.h")]
1032 public static double exp (double x);
1033 public static int exp_e (double x, out Result result);
1034 public static int exp_e10_e (double x, out ResultE10 result);
1035 public static double exp_mult (double x, double y);
1036 public static int exp_mult_e (double x, double y, out Result result);
1037 public static int exp_mult_e10_e (double x, double y, out ResultE10 result);
1038 public static int exp_err_e (double x, double dx, out Result result);
1039 public static int exp_err_e10_e (double x, double dx, out ResultE10 result);
1040 public static int exp_mul_err_e (double x, double dx, double y, double dy, out Result result);
1041 public static int exp_mul_err_e10_e (double x, double dx, double y, double dy, out ResultE10 result);
1042 public static double expm1 (double x);
1043 public static int expm1_e (double x, out Result result);
1044 public static double exprel (double x);
1045 public static int exprel_e (double x, out Result result);
1046 public static double exprel_2 (double x);
1047 public static int exprel_2_e (double x, out Result result);
1048 public static double exprel_n (int n, double x);
1049 public static int exprel_n_e (int n, double x, out Result result);
1052 [CCode (lower_case_cprefix="gsl_sf_", cheader_filename="gsl/gsl_sf_expint.h")]
1055 public static double expint_E1 (double x);
1056 public static int expint_E1_e (double x, out Result result);
1057 public static double expint_E2 (double x);
1058 public static int expint_E2_e (double x, out Result result);
1059 public static double expint_En (int n, double x);
1060 public static int expint_En_e (int n, double x, out Result result);
1061 public static double expint_Ei (double x);
1062 public static int expint_Ei_e (double x, out Result result);
1063 public static double expint_Ei_3 (double x);
1064 public static int expint_Ei_3_e (double x, out Result result);
1065 public static double Shi (double x);
1066 public static int Shi_e (double x, out Result result);
1067 public static double Chi (double x);
1068 public static int Chi_e (double x, out Result result);
1069 public static double Si (double x);
1070 public static int Si_e (double x, out Result result);
1071 public static double Ci (double x);
1072 public static int Ci_e (double x, out Result result);
1073 public static double atanint (double x);
1074 public static double atanint_e (double x, out Result result);
1077 [CCode (lower_case_cprefix="gsl_sf_fermi_dirac_", cheader_filename="gsl/gsl_sf_fermi_dirach.h")]
1078 namespace FermiDirac
1080 public static double m1 (double x);
1081 public static int m1_e (double x, out Result result);
1082 [CCode (cname="gsl_sf_fermi_dirac_0")]
1083 public static double F0 (double x);
1084 [CCode (cname="gsl_sf_fermi_dirac_0_e")]
1085 public static int F0_e (double x, out Result result);
1086 [CCode (cname="gsl_sf_fermi_dirac_1")]
1087 public static double F1 (double x);
1088 [CCode (cname="gsl_sf_fermi_dirac_1_e")]
1089 public static int F1_e (double x, out Result result);
1090 [CCode (cname="gsl_sf_fermi_dirac_2")]
1091 public static double F2 (double x);
1092 [CCode (cname="gsl_sf_fermi_dirac_2_e")]
1093 public static int F2_e (double x, out Result result);
1094 [CCode (cname="gsl_sf_fermi_dirac_int")]
1095 public static double Fint (int j, double x);
1096 [CCode (cname="gsl_sf_fermi_dirac_int_e")]
1097 public static int Fint_e (int j, double x, out Result result);
1098 public static double mhalf (double x);
1099 public static int mhalf_e (double x, out Result result);
1100 public static double half (double x);
1101 public static int half_e (double x, out Result result);
1102 public static double 3half (double x);
1103 public static int 3half_e (double x, out Result result);
1104 public static double inc_0 (double x, double b);
1105 public static int inc_0_e (double x, double b, out Result result);
1108 [CCode (lower_case_cprefix="gsl_sf_", cheader_filename="gsl/gsl_sf_gamma.h")]
1111 public static double gamma (double x);
1112 public static int gamma_e (double x, out Result result);
1113 public static double lngamma (double x);
1114 public static int lngamma_e (double x, out Result result);
1115 public static int lngamma_sgn_e (double x, out Result result, out double sgn);
1116 public static double gammastar (double x);
1117 public static int gammastar_e (double x, out Result result);
1118 public static double gammainv (double x);
1119 public static int gammainv_e (double x, out Result result);
1120 public static int lngamma_complex_e (double zr, double zi, out Result lnr, out Result arg);
1122 public static double fact (uint n);
1123 public static int fact_e (uint n, out Result result);
1124 public static double doublefact (uint n);
1125 public static int doublefact_e (uint n, out Result result);
1126 public static double lnfact (uint n);
1127 public static int lnfact_e (uint n, out Result result);
1128 public static double lndoublefact (uint n);
1129 public static int lndoublefact_e (uint n, out Result result);
1130 public static double choose (uint n, uint m);
1131 public static int choose_e (uint n, uint m, out Result result);
1132 public static double lnchoose (uint n, uint m);
1133 public static int lnchoose_e (uint n, uint m, out Result result);
1134 public static double taylorcoeff (int n, double x);
1135 public static int taylorcoeff_e (int n, double x, out Result result);
1137 public static double poch (double a, double x);
1138 public static int poch_e (double a, double x, out Result result);
1139 public static double lnpoch (double a, double x);
1140 public static int lnpoch_e (double a, double x, out Result result);
1141 public static int lnpoch_sgn_e (double a, double x, out Result result, out double sgn);
1142 public static double pochrel (double a, double x);
1143 public static int pochrel_e (double a, double x, out Result result);
1145 public static double gamma_inc (double a, double x);
1146 public static int gamma_inc_e (double a, double x, out Result result);
1147 public static double gamma_inc_Q (double a, double x);
1148 public static int gamma_inc_Q_e (double a, double x, out Result result);
1149 public static double gamma_inc_P (double a, double x);
1150 public static int gamma_inc_P_e (double a, double x, out Result result);
1152 public static double beta (double a, double b);
1153 public static int beta_e (double a, double b, out Result result);
1154 public static double lnbeta (double a, double b);
1155 public static int lnbeta_e (double a, double b, out Result result);
1157 public static double beta_inc (double a, double b, double x);
1158 public static int beta_inc_e (double a, double b, double x, out Result result);
1161 [CCode (lower_case_cprefix="gsl_sf_gegenpoly_", cheader_filename="gsl/gsl_sf_gegenbauer.h")]
1164 [CCode (cname="gsl_sf_gegenpoly_1")]
1165 public static double C1 (double lambda, double x);
1166 [CCode (cname="gsl_sf_gegenpoly_1_e")]
1167 public static double C1_e (double lambda, double x, out Result result);
1168 [CCode (cname="gsl_sf_gegenpoly_2")]
1169 public static double C2 (double lambda, double x);
1170 [CCode (cname="gsl_sf_gegenpoly_2_e")]
1171 public static double C2_e (double lambda, double x, out Result result);
1172 [CCode (cname="gsl_sf_gegenpoly_3")]
1173 public static double C3 (double lambda, double x);
1174 [CCode (cname="gsl_sf_gegenpoly_3_e")]
1175 public static double C3_e (double lambda, double x, out Result result);
1176 [CCode (cname="gsl_sf_gegenpoly_n")]
1177 public static double Cn (double lambda, double x);
1178 [CCode (cname="gsl_sf_gegenpoly_n_e")]
1179 public static double Cn_e (double lambda, double x, out Result result);
1180 public static int array (int nmax, double lambda, double x, out Result result);
1183 [CCode (lower_case_cprefix="gsl_sf_hyperg_", cheader_filename="gsl/gsl_sf_hyperg.h")]
1186 public static double 0F1 (double c, double x);
1187 public static int 0F1_e (double c, double x, out Result result);
1188 public static double 1F1_int (int m, int n, double x);
1189 public static int 1F1_int_e (int m, int n, double x, out Result result);
1190 public static double 1F1 (double a, double b, double x);
1191 public static int 1F1_e (double a, double b, double x, out Result result);
1192 public static double U_int (int m, int n, double x);
1193 public static int U_int_e (int m, int n, double x, out Result result);
1194 public static int U_int_e10_e (int m, int n, double x, out ResultE10 result);
1195 public static double U (double a, double b, double x);
1196 public static int U_e (double a, double b, double x, out Result result);
1197 public static int U_e10_e (double a, double b, double x, out ResultE10 result);
1198 public static double 2F1 (double a, double b, double c, double x);
1199 public static int 2F1_e (double a, double b, double c, double x, out Result result);
1200 public static double 2F1_conj (double aR, double aI, double c, double x);
1201 public static int 2F1_conj_e (double aR, double aI, double c, double x, out Result result);
1202 public static double 2F1_renorm (double a, double b, double c, double x);
1203 public static int 2F1_renorm_e (double a, double b, double c, double x, out Result result);
1204 public static double 2F1_conj_renorm (double aR, double aI, double c, double x);
1205 public static int 2F1_conj_renorm_e (double aR, double aI, double c, double x, out Result result);
1206 public static double 2F0 (double a, double b, double x);
1207 public static int 2F0_e (double a, double b, double x, out Result result);
1210 [CCode (cheader_filename="gsl/gsl_sf_laguerre.h")]
1213 [CCode (cname="gsl_sf_laguerre_1")]
1214 public static double L1 (double a, double x);
1215 [CCode (cname="gsl_sf_laguerre_1_e")]
1216 public static double L1_e (double a, double x, out Result result);
1217 [CCode (cname="gsl_sf_laguerre_2")]
1218 public static double L2 (double a, double x);
1219 [CCode (cname="gsl_sf_laguerre_2_e")]
1220 public static double L2_e (double a, double x, out Result result);
1221 [CCode (cname="gsl_sf_laguerre_3")]
1222 public static double L3 (double a, double x);
1223 [CCode (cname="gsl_sf_laguerre_3_e")]
1224 public static double L3_e (double a, double x, out Result result);
1225 [CCode (cname="gsl_sf_laguerre_n")]
1226 public static double Ln (int n, double a, double x);
1227 [CCode (cname="gsl_sf_laguerre_n_e")]
1228 public static double Ln_e (int n, double a, double x, out Result result);
1231 [CCode (lower_case_cprefix="gsl_sf_lambert_", cheader_filename="gsl/gsl_sf_lambert.h")]
1234 public static double W0 (double x);
1235 public static int W0_e (double x, out Result result);
1236 public static double Wm1 (double x);
1237 public static int Wm1_e (double x, out Result result);
1240 [CCode (lower_case_cprefix="gsl_sf_legendre_", cheader_filename="gsl/gsl_sf_legendre.h")]
1241 namespace LegendrePoly
1243 public static double P1 (double x);
1244 public static int P1_e (double x, out Result result);
1245 public static double P2 (double x);
1246 public static int P2_e (double x, out Result result);
1247 public static double P3 (double x);
1248 public static int P3_e (double x, out Result result);
1249 public static double Pl (int l, double x);
1250 public static int Pl_e (int l, double x, out Result result);
1251 public static int Pl_array (int lmax, double x, [CCode (array_length = false)] double[] result_array);
1252 public static int Pl_deriv_array (int lmax, double x, [CCode (array_length = false)] double[] result_array, [CCode (array_length = false)] double[] result_deriv_array);
1253 public static double Q0 (double x);
1254 public static int Q0_e (double x, out Result result);
1255 public static double Q1 (double x);
1256 public static int Q1_e (double x, out Result result);
1257 public static double Ql (int l, double x);
1258 public static int Ql_e (int l, double x, out Result result);
1260 public static double Plm (int l, int m, double x);
1261 public static int Plm_e (int l, int m, double x, out Result result);
1262 public static int Plm_array (int lmax, int m, double x, [CCode (array_length = false)] double[] result_array);
1263 public static int Plm_deriv_array (int lmax, int m, double x, double[] result_array, [CCode (array_length = false)] double[] result_deriv_array);
1264 public static double sphPlm (int l, int m, double x);
1265 public static int sphPlm_e (int l, int m, double x, out Result result);
1266 public static int sphPlm_array (int lmax, int m, double x, [CCode (array_length = false)] double[] result_array);
1267 public static int sphPlm_deriv_array (int lmax, int m, double x, double[] result_array, [CCode (array_length = false)] double[] result_deriv_array);
1268 public static int array_size (int lmax, int m);
1270 [CCode (cname="gsl_sf_conicalP_half")]
1271 public static double conicalP_half (double lambda, double x);
1272 [CCode (cname="gsl_sf_conicalP_half_e")]
1273 public static int conicalP_half_e (double lambda, double x, out Result result);
1274 [CCode (cname="gsl_sf_conicalP_mhalf")]
1275 public static double conicalP_mhalf (double lambda, double x);
1276 [CCode (cname="gsl_sf_conicalP_mhalf_e")]
1277 public static int conicalP_mhalf_e (double lambda, double x, out Result result);
1278 [CCode (cname="gsl_sf_conicalP_0")]
1279 public static double conicalP_0 (double lambda, double x);
1280 [CCode (cname="gsl_sf_conicalP_0_e")]
1281 public static int conicalP_0_e (double lambda, double x, out Result result);
1282 [CCode (cname="gsl_sf_conicalP_1")]
1283 public static double conicalP_1 (double lambda, double x);
1284 [CCode (cname="gsl_sf_conicalP_1_e")]
1285 public static int conicalP_1_e (double lambda, double x, out Result result);
1286 [CCode (cname="gsl_sf_conicalP_sph_reg")]
1287 public static double conicalP_sph_reg (int l, double lambda, double x);
1288 [CCode (cname="gsl_sf_conicalP_sph_reg_e")]
1289 public static int conicalP_sph_reg_e (int l, double lambda, double x, out Result result);
1290 [CCode (cname="gsl_sf_conicalP_cyl_reg")]
1291 public static double conicalP_cyl_reg (int m, double lambda, double x);
1292 [CCode (cname="gsl_sf_conicalP_cyl_reg_e")]
1293 public static int conicalP_cyl_reg_e (int m, double lambda, double x, out Result result);
1295 public static double H3d_0 (double lambda, double eta);
1296 public static int H3d_0_e (double lambda, double eta, out Result result);
1297 public static double H3d_1 (double lambda, double eta);
1298 public static int H3d_1_e (double lambda, double eta, out Result result);
1299 public static double H3d (int l, double lambda, double eta);
1300 public static int H3d_e (int l, double lambda, double eta, out Result result);
1301 public static int H3d_array (int lmax, double lambda, double eta, [CCode (array_length = false)] double[] result_array);
1304 [CCode (lower_case_cprefix="gsl_sf_", cheader_filename="gsl/gsl_sf_log.h")]
1307 public static double log (double x);
1308 public static int log_e (double x, out Result result);
1309 public static double log_abs (double x);
1310 public static int log_abs_e (double x, out Result result);
1311 public static int complex_log_e (double zr, double zi, out Result result, out Result theta);
1312 public static double log_1plusx (double x);
1313 public static int log_1plusx_e (double x, out Result result);
1314 public static double log_1plusx_mx (double x);
1315 public static int log_1plusx_mx_e (double x, out Result result);
1319 [CCode (cname="gsl_sf_mathieu_workspace", cprefix="gsl_sf_mathieu_", cheader_filename="gsl/gsl_sf_mathieu.h")]
1320 public class MathieuWorkspace
1323 public size_t even_order;
1324 public size_t odd_order;
1325 public int extra_values;
1337 public EigenSymmvWorkspace wmat;
1339 public static int a_array (int order_min, int order_max, double qq, MathieuWorkspace work, [CCode (array_length = false)] double[] result_array);
1340 public static int b_array (int order_min, int order_max, double qq, MathieuWorkspace work, [CCode (array_length = false)] double[] result_array);
1341 public static int a (int order, double qq, out Result result);
1342 public static int b (int order, double qq, out Result result);
1343 public static int a_coeff (int order, double qq, double aa, [CCode (array_length = false)] double[] coeff);
1344 public static int b_coeff (int order, double qq, double aa, [CCode (array_length = false)] double[] coeff);
1346 [CCode (cname="gsl_sf_mathieu_alloc")]
1347 public MathieuWorkspace (size_t nn, double qq);
1349 public static int ce (int order, double qq, double zz, out Result result);
1350 public static int se (int order, double qq, double zz, out Result result);
1351 public static int ce_array (int nmin, int nmax, double qq, double zz, MathieuWorkspace work, [CCode (array_length = false)] double[] result_array);
1352 public static int se_array (int nmin, int nmax, double qq, double zz, MathieuWorkspace work, [CCode (array_length = false)] double[] result_array);
1354 public static int Mc (int kind, int order, double qq, double zz, out Result result);
1355 public static int Ms (int kind, int order, double qq, double zz, out Result result);
1356 public static int Mc_array (int kind, int nmin, int nmax, double qq, double zz, MathieuWorkspace work, [CCode (array_length = false)] double[] result_array);
1357 public static int Ms_array (int kind, int nmin, int nmax, double qq, double zz, MathieuWorkspace work, [CCode (array_length = false)] double[] result_array);
1360 [CCode (lower_case_cprefix="gsl_sf_", cheader_filename="gsl/gsl_sf_pow_int.h")]
1363 public static double pow_int (double x, int n);
1364 public static int pow_int_e (double x, int n, out Result result);
1367 [CCode (lower_case_cprefix="gsl_sf_", cheader_filename="gsl/gsl_sf_psi.h")]
1370 public static double psi_int (int n);
1371 public static int psi_int_e (int n, out Result result);
1372 public static double psi (double x);
1373 public static int psi_e (double x, out Result result);
1374 public static double psi_1piy (double y);
1375 public static int psi_1piy_e (double y, out Result result);
1377 public static double psi_1_int (int n);
1378 public static int psi_1_int_e (int n, out Result result);
1379 public static double psi_1 (double x);
1380 public static int psi_1_e (double x, out Result result);
1382 public static double psi_n (int n, double x);
1383 public static int psi_e_n (int n, double x, out Result result);
1386 [CCode (lower_case_cprefix="gsl_sf_", cheader_filename="gsl/gsl_sf_synchrotron.h")]
1387 namespace Synchrotron
1389 public static double synchrotron_1 (double x);
1390 public static int synchrotron_1_e (double x, out Result result);
1391 public static double synchrotron_2 (double x);
1392 public static double synchrotron_2_e (double x, out Result result);
1395 [CCode (lower_case_cprefix="gsl_sf_", cheader_filename="gsl/gsl_sf_transport.h")]
1398 public static double transport_2 (double x);
1399 public static int transport_2_e (double x, out Result result);
1400 public static double transport_3 (double x);
1401 public static int transport_3_e (double x, out Result result);
1402 public static double transport_4 (double x);
1403 public static int transport_4_e (double x, out Result result);
1404 public static double transport_5 (double x);
1405 public static int transport_5_e (double x, out Result result);
1408 [CCode (lower_case_cprefix="gsl_sf_", cheader_filename="gsl/gsl_sf_trig.h")]
1411 public static double sin (double x);
1412 public static int sin_e (double x, out Result result);
1413 public static double cos (double x);
1414 public static int cos_e (double x, out Result result);
1415 public static double hypot (double x, double y);
1416 public static int hypot_e (double x, double y, out Result result);
1417 public static double sinc (double x);
1418 public static int sinc_e (double x, out Result result);
1419 public static double complex_sin_e (double zr, double zi, out Result szr, out Result szi);
1420 public static double complex_cos_e (double zr, double zi, out Result czr, out Result czi);
1421 public static double complex_logsin_e (double zr, double zi, out Result lszr, out Result lszi);
1422 public static double lnsinh (double x);
1423 public static int lnsinh_e (double x, out Result result);
1424 public static double lncosh (double x);
1425 public static int lncosh_e (double x, out Result result);
1426 public static int polar_to_rect (double r, double theta, out Result x, out Result y);
1427 public static int rect_to_polar (double x, double y, out Result r, out Result theta);
1428 public static double angle_restrict_symm (double theta);
1429 public static int angle_restrict_symm_e (out double theta);
1430 public static double angle_restrict_pos (double theta);
1431 public static int angle_restrict_pos_e (out double theta);
1432 public static int sin_err_e (double x, double dx, out Result result);
1433 public static int cos_err_e (double x, double dx, out Result result);
1436 [CCode (lower_case_cprefix="gsl_sf_", cheader_filename="gsl/gsl_sf_zeta.h")]
1439 public static double zeta_int (int n);
1440 public static int zeta_int_e (int n, out Result result);
1441 public static double zeta (double s);
1442 public static int zeta_e (double s, out Result result);
1443 public static double zetam1_int (int n);
1444 public static int zetam1_int_e (int n, out Result result);
1445 public static double zetam1 (double s);
1446 public static int zetam1_e (double s, out Result result);
1447 public static double hzeta (double s, double q);
1448 public static int hzeta_e (double s, double q, out Result result);
1449 public static double eta_int (int n);
1450 public static int eta_int_e (int n, out Result result);
1451 public static double eta (double s);
1452 public static int eta_e (double s, out Result result);
1457 * Blocks, Vectors and Matrices
1460 [CCode (cname="gsl_block", cheader_filename="gsl/gsl_block_double.h")]
1464 public double* data;
1466 [CCode (cname="gsl_block_alloc")]
1467 public Block (size_t n);
1468 [CCode (cname="gsl_block_calloc")]
1469 public Block.with_zeros (size_t n);
1471 [CCode (instance_pos=-1)]
1472 public int fwrite (GLib.FileStream stream);
1473 [CCode (instance_pos=-1)]
1474 public int fread (GLib.FileStream stream);
1475 public static int fprintf (GLib.FileStream stream, Block b, string format);
1476 [CCode (instance_pos=-1)]
1477 public int fscanf (GLib.FileStream stream);
1481 [CCode (cname="gsl_block_complex", cheader_filename="gsl/gsl_block_complex_double.h")]
1482 public class BlockComplex
1485 public double* data;
1487 [CCode (cname="gsl_block_complex_alloc")]
1488 public BlockComplex (size_t n);
1489 [CCode (cname="gsl_block_complex_calloc")]
1490 public BlockComplex.with_zeros (size_t n);
1492 [CCode (instance_pos=-1)]
1493 public int fwrite (GLib.FileStream stream);
1494 [CCode (instance_pos=-1)]
1495 public int fread (GLib.FileStream stream);
1496 public static int fprintf (GLib.FileStream stream, BlockComplex b, string format);
1497 [CCode (instance_pos=-1)]
1498 public int fscanf (GLib.FileStream stream);
1502 [CCode (cname="gsl_vector_view", cheader_filename="gsl/gsl_vector_double.h")]
1503 public struct VectorView
1505 public unowned Vector vector;
1507 public static VectorView array (double[] v);
1508 public static VectorView array_with_stride ([CCode (array_length = false)] double[] v, size_t stride, size_t n);
1512 [CCode (cname="gsl_vector", cheader_filename="gsl/gsl_vector_double.h")]
1516 public size_t stride;
1517 public double* data;
1521 [CCode (cname="gsl_vector_alloc")]
1522 public Vector (size_t n);
1523 [CCode (cname="gsl_vector_calloc")]
1524 public Vector.with_zeros (size_t n);
1525 [CCode (cname="gsl_vector_alloc_from_block")]
1526 public Vector.from_block (Block b, size_t offset, size_t n, size_t stride);
1527 [CCode (cname="gsl_vector_alloc_from_vector")]
1528 public Vector.from_vector (Vector v, size_t offset, size_t n, size_t stride);
1530 public double @get (size_t i);
1531 public void @set (size_t i, double x);
1532 public double* ptr (size_t i);
1534 public void set_all (double x);
1535 public void set_zero ();
1536 public void set_basis (size_t i);
1538 [CCode (instance_pos=-1)]
1539 public int fwrite (GLib.FileStream stream);
1540 [CCode (instance_pos=-1)]
1541 public int fread (GLib.FileStream stream);
1542 public static int fprintf (GLib.FileStream stream, Vector v, string format);
1543 [CCode (instance_pos=-1)]
1544 public int fscanf (GLib.FileStream stream);
1546 public VectorView subvector (size_t offset, size_t n);
1547 public VectorView subvector_with_stride (size_t offset, size_t stride, size_t n);
1549 public int memcpy (Vector src);
1550 public int swap (Vector w);
1552 public int swap_elements (size_t i, size_t j);
1553 public int reverse ();
1555 public int add (Vector b);
1556 public int sub (Vector b);
1557 public int mul (Vector b);
1558 public int div (Vector b);
1559 public int scale (double x);
1560 public int add_constant (double x);
1562 public double max ();
1563 public double min ();
1564 public void minmax (out double min_out, out double max_out);
1565 public size_t max_index ();
1566 public size_t min_index ();
1567 public void minmax_index (out size_t imin, out size_t imax);
1569 public bool isnull ();
1570 public bool ispos ();
1571 public bool isneg ();
1572 public bool isnonneg ();
1576 [CCode (cname="gsl_vector_complex_view", cheader_filename="gsl/gsl_vector_complex_double.h")]
1577 public struct VectorComplexView
1579 public unowned VectorComplex vector;
1581 public static VectorComplexView array (double[] v);
1582 public static VectorComplexView array_with_stride ([CCode (array_length = false)] double[] v, size_t stride, size_t n);
1586 [CCode (cname="gsl_vector_complex", cheader_filename="gsl/gsl_vector_complex_double.h")]
1587 public class VectorComplex
1590 public size_t stride;
1591 public double* data;
1592 public BlockComplex block;
1595 [CCode (cname="gsl_vector_complex_alloc")]
1596 public VectorComplex (size_t n);
1597 [CCode (cname="gsl_vector_complex_calloc")]
1598 public VectorComplex.with_zeros (size_t n);
1599 [CCode (cname="gsl_vector_complex_alloc_from_block")]
1600 public VectorComplex.from_block (BlockComplex b, size_t offset, size_t n, size_t stride);
1601 [CCode (cname="gsl_vector_complex_alloc_from_vector")]
1602 public VectorComplex.from_vector (VectorComplex v, size_t offset, size_t n, size_t stride);
1604 public Complex @get (size_t i);
1605 public void @set (size_t i, Complex x);
1606 public Complex* ptr (size_t i);
1608 public void set_all (Complex x);
1609 public void set_zero ();
1610 public void set_basis (size_t i);
1612 [CCode (instance_pos=-1)]
1613 public int fwrite (GLib.FileStream stream);
1614 [CCode (instance_pos=-1)]
1615 public int fread (GLib.FileStream stream);
1616 public static int fprintf (GLib.FileStream stream, VectorComplex v, string format);
1617 [CCode (instance_pos=-1)]
1618 public int fscanf (GLib.FileStream stream);
1620 public VectorComplexView subvector (size_t i, size_t n);
1621 public VectorComplexView subvector_with_stride (size_t i, size_t stride, size_t n);
1622 public VectorView complex_real ();
1623 public VectorView complex_imag ();
1625 public int memcpy (VectorComplex src);
1626 public int swap (VectorComplex w);
1628 public int swap_elements (size_t i, size_t j);
1629 public int reverse ();
1631 public int add (VectorComplex b);
1632 public int sub (VectorComplex b);
1633 public int mul (VectorComplex b);
1634 public int div (VectorComplex b);
1635 public int scale (double x);
1636 public int add_constant (double x);
1638 public double max ();
1639 public double min ();
1640 public void minmax (out double min_out, out double max_out);
1641 public size_t max_index ();
1642 public size_t min_index ();
1643 public void minmax_index (out size_t imin, out size_t imax);
1645 public bool isnull ();
1646 public bool ispos ();
1647 public bool isneg ();
1648 public bool isnonneg ();
1652 [CCode (cname="gsl_matrix_view", cheader_filename="gsl/gsl_matrix_double.h")]
1653 public struct MatrixView
1655 public unowned Matrix matrix;
1657 public static MatrixView array ([CCode (array_length = false)] double[] v, size_t n1, size_t n2);
1658 public static MatrixView array_with_tda ([CCode (array_length = false)] double[] v, size_t n1, size_t n2, size_t tda);
1659 public static MatrixView vector (Vector v, size_t n1, size_t n2);
1660 public static MatrixView vectr_with_tda (Vector v, size_t n1, size_t n2, size_t tda);
1664 [CCode (cname="gsl_matrix", cheader_filename="gsl/gsl_matrix_double.h")]
1667 public size_t size1;
1668 public size_t size2;
1670 public double* data;
1674 [CCode (cname="gsl_matrix_alloc")]
1675 public Matrix (size_t n1, size_t n2);
1676 [CCode (cname="gsl_matrix_calloc")]
1677 public Matrix.with_zeros (size_t n1, size_t n2);
1678 [CCode (cname="gsl_matrix_alloc_from_block")]
1679 public Matrix.from_block (Block b, size_t offset, size_t n1, size_t n2, size_t d2);
1680 [CCode (cname="gsl_matrix_alloc_from_matrix")]
1681 public Matrix.from_matrix (Matrix m, size_t k1, size_t k2, size_t n1, size_t n2);
1683 public Vector alloc_row_from_matrix (size_t i);
1684 public Vector alloc_col_from_matrix (size_t j);
1686 public double @get (size_t i, size_t j);
1687 public void @set (size_t i, size_t j, double x);
1688 public double* ptr (size_t i, size_t j);
1690 public void set_all (double x);
1691 public void set_zero ();
1692 public void set_identity ();
1694 [CCode (instance_pos=-1)]
1695 public int fwrite (GLib.FileStream stream);
1696 [CCode (instance_pos=-1)]
1697 public int fread (GLib.FileStream stream);
1698 public static int fprintf (GLib.FileStream stream, Matrix m, string format);
1699 [CCode (instance_pos=-1)]
1700 public int fscanf (GLib.FileStream stream);
1702 public MatrixView submatrix (size_t k, size_t k2, size_t n1, size_t n2);
1703 public VectorView row (size_t i);
1704 public VectorView column (size_t j);
1705 public VectorView subrow (size_t i, size_t offset, size_t n);
1706 public VectorView subcolumn (size_t i, size_t offset, size_t n);
1707 public VectorView diagonal ();
1708 public VectorView subdiagonal (size_t k);
1709 public VectorView superdiagonal (size_t k);
1711 public int memcpy (Matrix src);
1712 public int swap (Matrix m2);
1714 public static int get_row (Vector v, Matrix m, size_t i);
1715 public static int get_col (Vector v, Matrix m, size_t j);
1716 public int set_row (size_t i, Vector v);
1717 public int set_col (size_t j, Vector v);
1719 public int swap_rows (size_t i, size_t j);
1720 public int swap_columns (size_t i, size_t j);
1721 public int swap_rowcol (size_t i, size_t j);
1722 public int transpose_memcpy (Matrix src);
1723 public int transpose ();
1725 public int add (Matrix b);
1726 public int sub (Matrix b);
1727 public int mul_elements (Matrix b);
1728 public int div_elements (Matrix b);
1729 public int scale (double x);
1730 public int add_constant (double x);
1731 public int add_diagonal (double x);
1733 public double max ();
1734 public double min ();
1735 public void minmax (out double min_out, out double max_out);
1736 public void max_index (out size_t imax, out size_t jmax);
1737 public void min_index (out size_t imin, out size_t jmin);
1738 public void minmax_index (out size_t imin, out size_t jmin, out size_t imax, out size_t jmax);
1740 public bool isnull ();
1741 public bool ispos ();
1742 public bool isneg ();
1743 public bool isnonneg ();
1747 [CCode (cname="gsl_matrix_complex_view", cheader_filename="gsl/gsl_matrix_complex_double.h")]
1748 public struct MatrixComplexView
1750 public unowned MatrixComplex matrix;
1752 public static MatrixComplexView array ([CCode (array_length = false)] double[] v, size_t n1, size_t n2);
1753 public static MatrixComplexView array_with_tda ([CCode (array_length = false)] double[] v, size_t n1, size_t n2, size_t tda);
1754 public static MatrixComplexView vector (VectorComplex v, size_t n1, size_t n2);
1755 public static MatrixComplexView vectr_with_tda (VectorComplex v, size_t n1, size_t n2, size_t tda);
1759 [CCode (cname="gsl_matrix_complex", cheader_filename="gsl/gsl_matrix_complex_double.h")]
1760 public class MatrixComplex
1762 public size_t size1;
1763 public size_t size2;
1765 public double* data;
1766 public BlockComplex block;
1769 [CCode (cname="gsl_matrix_complex_alloc")]
1770 public MatrixComplex (size_t n1, size_t n2);
1771 [CCode (cname="gsl_matrix_complex_calloc")]
1772 public MatrixComplex.with_zeros (size_t n1, size_t n2);
1773 [CCode (cname="gsl_matrix_complex_alloc_from_block")]
1774 public MatrixComplex.from_block (BlockComplex b, size_t offset, size_t n1, size_t n2, size_t d2);
1775 [CCode (cname="gsl_matrix_complex_alloc_from_matrix")]
1776 public MatrixComplex.from_matrix (MatrixComplex m, size_t k1, size_t k2, size_t n1, size_t n2);
1778 public VectorComplex alloc_row_from_matrix (size_t i);
1779 public VectorComplex alloc_col_from_matrix (size_t j);
1781 public double @get (size_t i, size_t j);
1782 public void @set (size_t i, size_t j, double x);
1783 public double* ptr (size_t i, size_t j);
1785 public void set_all (double x);
1786 public void set_zero ();
1787 public void set_identity ();
1789 [CCode (instance_pos=-1)]
1790 public int fwrite (GLib.FileStream stream);
1791 [CCode (instance_pos=-1)]
1792 public int fread (GLib.FileStream stream);
1793 public static int fprintf (GLib.FileStream stream, MatrixComplex m, string format);
1794 [CCode (instance_pos=-1)]
1795 public int fscanf (GLib.FileStream stream);
1797 public MatrixComplexView submatrix (size_t k, size_t k2, size_t n1, size_t n2);
1798 public VectorComplexView row (size_t i);
1799 public VectorComplexView column (size_t j);
1800 public VectorComplexView subrow (size_t i, size_t offset, size_t n);
1801 public VectorComplexView subcolumn (size_t i, size_t offset, size_t n);
1802 public VectorComplexView diagonal ();
1803 public VectorComplexView subdiagonal (size_t k);
1804 public VectorComplexView superdiagonal (size_t k);
1806 public int memcpy (MatrixComplex src);
1807 public int swap (MatrixComplex m2);
1809 public static int get_row (VectorComplex v, MatrixComplex m, size_t i);
1810 public static int get_col (VectorComplex v, MatrixComplex m, size_t j);
1811 public int set_row (size_t i, VectorComplex v);
1812 public int set_col (size_t j, VectorComplex v);
1814 public int swap_rows (size_t i, size_t j);
1815 public int swap_columns (size_t i, size_t j);
1816 public int swap_rowcol (size_t i, size_t j);
1817 public int transpose_memcpy (MatrixComplex src);
1818 public int transpose ();
1820 public int add (MatrixComplex b);
1821 public int sub (MatrixComplex b);
1822 public int mul_elements (MatrixComplex b);
1823 public int div_elements (MatrixComplex b);
1824 public int scale (double x);
1825 public int add_constant (double x);
1826 public int add_diagonal (double x);
1828 public double max ();
1829 public double min ();
1830 public void minmax (out double min_out, out double max_out);
1831 public void max_index (out size_t imax, out size_t jmax);
1832 public void min_index (out size_t imin, out size_t jmin);
1833 public void minmax_index (out size_t imin, out size_t jmin, out size_t imax, out size_t jmax);
1835 public bool isnull ();
1836 public bool ispos ();
1837 public bool isneg ();
1838 public bool isnonneg ();
1846 [CCode (cname="gsl_permutation", cheader_filename="gsl/gsl_permutation.h")]
1847 public class Permutation
1850 public size_t* data;
1852 [CCode (cname="gsl_permutation_alloc")]
1853 public Permutation (size_t n);
1854 [CCode (cname="gsl_permutation_calloc")]
1855 public Permutation.with_zeros (size_t n);
1857 public void init ();
1858 public int memcpy (Permutation src);
1860 public size_t @get (size_t i);
1861 public int swap (size_t i, size_t j);
1863 public int valid ();
1865 public void reverse ();
1866 public int inverse (Permutation p);
1870 public int mul (Permutation pa, Permutation pb);
1872 [CCode (instance_pos=-1)]
1873 public int fwrite (GLib.FileStream stream);
1874 [CCode (instance_pos=-1)]
1875 public int fread (GLib.FileStream stream);
1876 public static int fprintf (GLib.FileStream stream, Permutation p, string format);
1877 [CCode (instance_pos=-1)]
1878 public int fscanf (GLib.FileStream stream);
1880 public int linear_to_canonical (Permutation p);
1881 public int canonical_to_linear (Permutation q);
1882 public size_t inversions ();
1883 public size_t linear_cycles ();
1884 public size_t canonical_cycles ();
1887 [CCode (lower_case_cprefix="gsl_", cheader_filename="gsl/gsl_permute_double.h")]
1890 public static int permute (size_t* p, [CCode (array_length = false)] double[] data, size_t stride, size_t n);
1891 public static int permute_inverse (size_t* p, [CCode (array_length = false)] double[] data, size_t stride, size_t n);
1894 [CCode (cheader_filename="gsl/gsl_permute_complex_double.h")]
1895 namespace PermuteComplex
1897 [CCode (cname="gsl_permute_complex")]
1898 public static int permute (size_t* p, [CCode (array_length = false)] double[] data, size_t stride, size_t n);
1899 [CCode (cname="gsl_permute_complex_inverse")]
1900 public static int permute_inverse (size_t* p, [CCode (array_length = false)] double[] data, size_t stride, size_t n);
1903 [CCode (cheader_filename="gsl/gsl_permute_vector_double.h")]
1904 namespace PermuteVector
1906 [CCode (cname="gsl_permute_vector")]
1907 public static int permute (Permutation p, Vector v);
1908 [CCode (cname="gsl_permute_vector_inverse")]
1909 public static int permute_inverse (Permutation p, Vector v);
1912 [CCode (cheader_filename="gsl/gsl_permute_vector_complex_double.h")]
1913 namespace PermuteVectorComplex
1915 [CCode (cname="gsl_permute_vector_complex")]
1916 public static int permute (Permutation p, Vector v);
1917 [CCode (cname="gsl_permute_vector_complex_inverse")]
1918 public static int permute_inverse (Permutation p, Vector v);
1926 [CCode (cname="gsl_combination", cheader_filename="gsl/gsl_combination.h")]
1927 public class Combination
1931 public size_t* data;
1933 [CCode (cname="gsl_combination_alloc")]
1934 public Combination (size_t n, size_t k);
1935 [CCode (cname="gsl_combination_calloc")]
1936 public Combination.with_zeros (size_t n, size_t k);
1938 public void init_first ();
1939 public void init_last ();
1940 public int memcpy (Combination src);
1942 public size_t @get (size_t i);
1944 public int valid ();
1949 [CCode (instance_pos=-1)]
1950 public int fwrite (GLib.FileStream stream);
1951 [CCode (instance_pos=-1)]
1952 public int fread (GLib.FileStream stream);
1953 public static int fprintf (GLib.FileStream stream, Combination c, string format);
1954 [CCode (instance_pos=-1)]
1955 public int fscanf (GLib.FileStream stream);
1962 [CCode (lower_case_cprefix="gsl_sort_", cheader_filename="gsl/gsl_sort_double.h")]
1965 [CCode (cname="gsl_sort")]
1966 public static void sort ([CCode (array_length = false)] double[] data, size_t stride, size_t n);
1967 [CCode (cname="gsl_sort_index")]
1968 public static void sort_index ([CCode (array_length = false)] size_t[] p, [CCode (array_length = false)] double[] data, size_t stride, size_t n);
1969 public static int smallest ([CCode (array_length = false)] double[] dest, size_t k, [CCode (array_length = false)] double[] src, size_t stride, size_t n);
1970 public static int smallest_index ([CCode (array_length = false)] size_t[] p, size_t k, [CCode (array_length = false)] double[] src, size_t stride, size_t n);
1971 public static int largest ([CCode (array_length = false)] double[] dest, size_t k, [CCode (array_length = false)] double[] src, size_t stride, size_t n);
1972 public static int largest_index ([CCode (array_length = false)] size_t[] p, size_t k, [CCode (array_length = false)] double[] src, size_t stride, size_t n);
1975 [CCode (lower_case_cprefix="gsl_sort_vector_", cheader_filename="gsl/gsl_sort_vector_double.h")]
1976 namespace SortVector
1978 [CCode (cname="gsl_sort_vector")]
1979 public static void sort (Vector v);
1980 [CCode (cname="gsl_sort_vector_index")]
1981 public static int sort_index (Permutation p, Vector v);
1982 public static int smallest ([CCode (array_length = false)] double[] dest, size_t k, Vector v);
1983 public static int smallest_index ([CCode (array_length = false)] size_t[] p, size_t k, Vector v);
1984 public static int largest ([CCode (array_length = false)] double[] dest, size_t k, Vector v);
1985 public static int largest_index ([CCode (array_length = false)] size_t[] p, size_t k, Vector v);
1992 [CCode (lower_case_cprefix="gsl_linalg_", cheader_filename="gsl/gsl_linalg.h")]
1995 public static int LU_decomp (Matrix A, Permutation p, out int signum);
1996 public static int complex_LU_decomp (MatrixComplex A, Permutation p, out int signum);
1997 public static int LU_solve (Matrix LU, Permutation p, Vector b, Vector x);
1998 public static int complex_LU_solve (MatrixComplex LU, Permutation p, VectorComplex b, VectorComplex x);
1999 public static int LU_svx (Matrix LU, Permutation p, Vector x);
2000 public static int complex_LU_svx (MatrixComplex LU, Permutation p, VectorComplex x);
2001 public static int LU_refine (Matrix A, Matrix LU, Permutation p, Vector b, Vector x, Vector residual);
2002 public static int complex_LU_refine (MatrixComplex A, MatrixComplex LU, Permutation p, VectorComplex b, VectorComplex x, VectorComplex residual);
2003 public static int LU_invert (Matrix LU, Permutation p, Matrix inverse);
2004 public static int complex_LU_invert (MatrixComplex LU, Permutation p, Matrix inverse);
2005 public static double LU_det (Matrix LU, int signum);
2006 public static Complex complex_LU_det (MatrixComplex LU, int signum);
2007 public static double LU_lndet (Matrix LU);
2008 public static double complex_LU_lndet (MatrixComplex LU);
2009 public static int LU_sgndet (Matrix LU, int signum);
2010 public static Complex complex_LU_sgndet (MatrixComplex LU, int signum);
2012 public static int QR_decomp (Matrix A, Vector tau);
2013 public static int QR_solve (Matrix QR, Vector tau, Vector b, Vector x);
2014 public static int QR_svx (Matrix QR, Vector tau, Vector x);
2015 public static int QR_lssolve (Matrix QR, Vector tau, Vector b, Vector x, Vector residual);
2016 public static int QR_QTvec (Matrix QR, Vector tau, Vector v);
2017 public static int QR_Qvec (Matrix QR, Vector tau, Vector v);
2018 public static int QR_QTmat (Matrix QR, Vector tau, Matrix A);
2019 public static int QR_Rsolve (Matrix QR, Vector b, Vector x);
2020 public static int QR_Rsvx (Matrix QR, Vector x);
2021 public static int QR_unpack (Matrix QR, Vector tau, Matrix Q, Matrix R);
2022 public static int QR_QRsolve (Matrix Q, Matrix R, Vector b, Vector x);
2023 public static int QR_update (Matrix Q, Matrix R, Vector w, Vector v);
2024 public static int R_solve (Matrix R, Vector b, Vector x);
2025 public static int R_svx (Matrix R, Vector x);
2027 public static int QRPT_decomp (Matrix A, Vector tau, Permutation p, out int signum, Vector norm);
2028 public static int QRPT_decomp2 (Matrix A, Matrix q, Matrix r, Vector tau, Permutation p, out int signum, Vector norm);
2029 public static int QRPT_solve (Matrix QR, Vector tau, Permutation p, Vector b, Vector x);
2030 public static int QRPT_svx (Matrix QR, Vector tau, Permutation p, Vector x);
2031 public static int QRPT_QRsolve (Matrix Q, Matrix R, Permutation p, Vector b, Vector x);
2032 public static int QRPT_update (Matrix Q, Matrix R, Permutation p, Vector u, Vector v);
2033 public static int QRPT_Rsolve (Matrix QR, Permutation p, Vector b, Vector x);
2034 public static int QRPT_Rsvx (Matrix QR, Permutation p, Vector x);
2036 public static int SV_decomp (Matrix A, Matrix V, Vector S, Vector work);
2037 public static int SV_decomp_mod (Matrix A, Matrix X, Matrix V, Vector S, Vector work);
2038 public static int SV_decomp_jacobi (Matrix A, Matrix V, Vector S);
2039 public static int SV_solve (Matrix U, Matrix V, Vector S, Vector b, Vector x);
2041 public static int cholesky_decomp (Matrix A);
2042 public static int complex_cholesky_decomp (MatrixComplex A);
2043 public static int cholesky_solve (Matrix cholesky, Vector b, Vector x);
2044 public static int complex_cholesky_solve (MatrixComplex cholesky, VectorComplex b, VectorComplex x);
2045 public static int cholesky_svx (Matrix cholesky, Vector x);
2046 public static int complex_cholesky_svx (MatrixComplex cholesky, VectorComplex x);
2048 public static int symmtd_decomp (Matrix A, Vector tau);
2049 public static int symmtd_unpack (Matrix A, Vector tau, Matrix Q, Vector diag, Vector subdiag);
2050 public static int symmtd_unpack_T (Matrix A, Vector diag, Vector subdiag);
2052 public static int hermtd_decomp (MatrixComplex A, VectorComplex tau);
2053 public static int hermtd_unpack (MatrixComplex A, VectorComplex tau, MatrixComplex Q, Vector diag, Vector subdiag);
2054 public static int hermtd_unpack_T (MatrixComplex A, Vector diag, Vector subdiag);
2056 public static int hessenberg_decomp (Matrix A, Vector tau);
2057 public static int hessenberg_unpack (Matrix H, Vector tau, Matrix U);
2058 public static int hessenberg_unpack_accum (Matrix H, Vector tau, Matrix V);
2059 public static int hessenberg_set_zero (Matrix H);
2061 public static int hesstri_decomp (Matrix A, Matrix B, Matrix U, Matrix V, Vector work);
2063 public static int bidiag_decomp (Matrix A, Vector tau_U, Vector tau_V);
2064 public static int bidiag_unpack (Matrix A, Vector tau_U, Matrix U, Vector tau_V, Matrix V, Vector diag, Vector superdiag);
2065 public static int bidiag_unpack2 (Matrix A, Vector tau_U, Vector tau_V, Matrix V);
2066 public static int bidiag_unpack_B (Matrix A, Vector diag, Vector superdiag);
2068 public static int householder_tansform (Vector v);
2069 public static Complex complex_householder_transform (VectorComplex V);
2070 public static int householder_hm (double tau, Vector v, Matrix A);
2071 public static int complex_householder_hm (Complex tau, VectorComplex V, MatrixComplex A);
2072 public static int householder_mh (double tau, Vector v, Matrix A);
2073 public static int complex_householder_mh (Complex tau, VectorComplex V, MatrixComplex A);
2074 public static int householder_hv (double tau, Vector v, Vector w);
2075 public static int complex_householder_hv (Complex tau, VectorComplex V, VectorComplex w);
2077 public static int HH_solve (Matrix A, Vector b, Vector x);
2078 public static int HH_svx (Matrix A, Vector x);
2080 public static int solve_tridiag (Vector diag, Vector e, Vector f, Vector b, Vector x);
2081 public static int solve_symm_tridiag (Vector diag, Vector e, Vector b, Vector x);
2082 public static int solve_cyc_tridiag (Vector diag, Vector e, Vector f, Vector b, Vector x);
2083 public static int solve_symm_cyc_tridiag (Vector diag, Vector e, Vector b, Vector x);
2085 public static int balance_matrix (Matrix A, Vector D);
2092 [CCode (cname="gsl_eigen_sort_t", cprefix="GSL_EIGEN_SORT_", cheader_filename="gsl/gsl_eigen.h")]
2093 public enum EigenSortType
2102 [CCode (cname="gsl_eigen_symm_workspace", free_function="gsl_eigen_symm_free", cheader_filename="gsl/gsl_eigen.h")]
2103 public class EigenSymmWorkspace
2109 [CCode (cname="gsl_eigen_symm_alloc")]
2110 public EigenSymmWorkspace (size_t n);
2111 [CCode (cname="gsl_eigen_symm", instance_pos=-1)]
2112 public int init (Matrix A, Vector eval);
2116 [CCode (cname="gsl_eigen_symmv_workspace", free_function="gsl_eigen_symmv_free", cheader_filename="gsl/gsl_eigen.h")]
2117 public class EigenSymmvWorkspace
2125 [CCode (cname="gsl_eigen_symmv_alloc")]
2126 public EigenSymmvWorkspace (size_t n);
2127 [CCode (cname="gsl_eigen_symmv", instance_pos=-1)]
2128 public int init (Matrix A, Vector eval, Matrix evec);
2132 [CCode (cname="gsl_eigen_herm_workspace", free_function="gsl_eigen_herm_free", cheader_filename="gsl/gsl_eigen.h")]
2133 public class EigenHermWorkspace
2140 [CCode (cname="gsl_eigen_herm_alloc")]
2141 public EigenHermWorkspace (size_t n);
2142 [CCode (cname="gsl_eigen_herm", instance_pos=-1)]
2143 public int init (MatrixComplex A, VectorComplex eval);
2147 [CCode (cname="gsl_eigen_hermv_workspace", free_function="gsl_eigen_hermv_free", cheader_filename="gsl/gsl_eigen.h")]
2148 public class EigenHermvWorkspace
2157 [CCode (cname="gsl_eigen_hermv_alloc")]
2158 public EigenHermvWorkspace (size_t n);
2159 [CCode (cname="gsl_eigen_hermv", instance_pos=-1)]
2160 public int init (MatrixComplex A, VectorComplex eval, MatrixComplex evec);
2164 [CCode (cname="gsl_eigen_nonsymm_workspace", free_function="gsl_eigen_nonsymm_free", cheader_filename="gsl/gsl_eigen.h")]
2165 public class EigenNonsymmWorkspace
2171 public int do_balance;
2174 [CCode (cname="gsl_eigen_nonsymm_alloc")]
2175 public EigenNonsymmWorkspace (size_t n);
2176 [CCode (cname="gsl_eigen_nonsymm_params", instance_pos=-1)]
2177 public void params (int compute_t, int balance);
2178 [CCode (cname="gsl_eigen_nonsymm", instance_pos=-1)]
2179 public int init (Matrix A, VectorComplex eval);
2180 [CCode (cname="gsl_eigen_nonsymm_Z", instance_pos=-1)]
2181 public int init_Z (Matrix A, VectorComplex eval, Matrix Z);
2185 [CCode (cname="gsl_eigen_nonsymmv_workspace", free_function="gsl_eigen_nonsymmv_free", cheader_filename="gsl/gsl_eigen.h")]
2186 public class EigenNonsymmvWorkspace
2190 public Vector work2;
2191 public Vector work3;
2193 public EigenNonsymmWorkspace nonsymm_workspace_p;
2195 [CCode (cname="gsl_eigen_nonsymmv_alloc")]
2196 public EigenNonsymmvWorkspace (size_t n);
2197 [CCode (cname="gsl_eigen_nonsymmv", instance_pos=-1)]
2198 public int init (Matrix A, VectorComplex eval, MatrixComplex evec);
2199 [CCode (cname="gsl_eigen_nonsymmv_Z", instance_pos=-1)]
2200 public int init_Z (Matrix A, VectorComplex eval, MatrixComplex evec, Matrix Z);
2204 [CCode (cname="gsl_eigen_gensymm_workspace", free_function="gsl_eigen_gensymm_free", cheader_filename="gsl/gsl_eigen.h")]
2205 public class EigenGensymmWorkspace
2208 public EigenSymmWorkspace symm_workspace_p;
2210 [CCode (cname="gsl_eigen_gensymm_alloc")]
2211 public EigenGensymmWorkspace (size_t n);
2212 [CCode (cname="gsl_eigen_gensymm", instance_pos=-1)]
2213 public int init (Matrix A, Matrix B, Vector eval);
2217 [CCode (cname="gsl_eigen_gensymmv_workspace", free_function="gsl_eigen_gensymmv_free", cheader_filename="gsl/gsl_eigen.h")]
2218 public class EigenGensymmvWorkspace
2221 public EigenSymmvWorkspace symmv_workspace_p;
2223 [CCode (cname="gsl_eigen_gensymmv_alloc")]
2224 public EigenGensymmvWorkspace (size_t n);
2225 [CCode (cname="gsl_eigen_gensymmv", instance_pos=-1)]
2226 public int init (Matrix A, Matrix B, Vector eval, Matrix evec);
2230 [CCode (cname="gsl_eigen_genherm_workspace", free_function="gsl_eigen_genherm_free", cheader_filename="gsl/gsl_eigen.h")]
2231 public class EigenGenhermWorkspace
2234 public EigenHermWorkspace herm_workspace_p;
2236 [CCode (cname="gsl_eigen_genherm_alloc")]
2237 public EigenGenhermWorkspace (size_t n);
2238 [CCode (cname="gsl_eigen_genherm", instance_pos=-1)]
2239 public int init (MatrixComplex A, MatrixComplex B, Vector eval);
2243 [CCode (cname="gsl_eigen_genhermv_workspace", free_function="gsl_eigen_genhermv_free", cheader_filename="gsl/gsl_eigen.h")]
2244 public class EigenGenhermvWorkspace
2247 public EigenHermvWorkspace hermv_workspace_p;
2249 [CCode (cname="gsl_eigen_genhermv_alloc")]
2250 public EigenGenhermvWorkspace (size_t n);
2251 [CCode (cname="gsl_eigen_genhermv", instance_pos=-1)]
2252 public int init (MatrixComplex A, MatrixComplex B, Vector eval, MatrixComplex evec);
2256 [CCode (cname="gsl_eigen_gen_workspace", free_function="gsl_eigen_gen_free", cheader_filename="gsl/gsl_eigen.h")]
2257 public class EigenGenWorkspace
2261 public size_t n_evals;
2262 public size_t max_iterations;
2263 public size_t n_iter;
2264 public double eshift;
2268 public double ascale;
2269 public double bscale;
2272 public int compute_s;
2273 public int compute_t;
2277 [CCode (cname="gsl_eigen_gen_alloc")]
2278 public EigenGenWorkspace (size_t n);
2279 [CCode (cname="gsl_eigen_gen_params", instance_pos=-1)]
2280 public void params (int compute_s, int compute_t, int balance);
2281 [CCode (cname="gsl_eigen_gen", instance_pos=-1)]
2282 public int init (Matrix A, Matrix B, VectorComplex alpha, Vector beta);
2283 [CCode (cname="gsl_eigen_gen_QZ", instance_pos=-1)]
2284 public int init_QZ (Matrix A, Matrix B, VectorComplex alpha, Vector beta, Matrix Q, Matrix Z);
2288 [CCode (cname="gsl_eigen_genv_workspace", free_function="gsl_eigen_genv_free", cheader_filename="gsl/gsl_eigen.h")]
2289 public class EigenGenvWorkspace
2292 public Vector work1;
2293 public Vector work2;
2294 public Vector work3;
2295 public Vector work4;
2296 public Vector work5;
2297 public Vector work6;
2300 public EigenGenWorkspace gen_workspace_p;
2302 [CCode (cname="gsl_eigen_genv_alloc")]
2303 public EigenGenvWorkspace (size_t n);
2304 [CCode (cname="gsl_eigen_genv", instance_pos=-1)]
2305 public int init (Matrix A, Matrix B, VectorComplex alpha, Vector beta, MatrixComplex evec);
2306 [CCode (cname="gsl_eigen_genv_QZ", instance_pos=-1)]
2307 public int init_QZ (Matrix A, Matrix B, VectorComplex alpha, Vector beta, MatrixComplex evec, Matrix Q, Matrix Z);
2310 [CCode (lower_case_cprefix="gsl_eigen_", cheader_filename="gsl/gsl_eigen.h")]
2313 public static int symmv_sort (Vector eval, Matrix evec, EigenSortType sort_type);
2314 public static int hermv_sort (Vector eval, MatrixComplex evec, EigenSortType sort_type);
2315 public static int nonsymmv_sort (VectorComplex eval, MatrixComplex evec, EigenSortType sort_type);
2316 public static int gensymmv_sort (Vector eval, Matrix evec, EigenSortType sort_type);
2317 public static int genhermv_sort (Vector eval, MatrixComplex evec, EigenSortType sort_type);
2318 public static int genv_sort (VectorComplex alpha, Vector beta, MatrixComplex evec, EigenSortType sort_type);
2323 * Fast Fourier Transforms (FFTs)
2325 [CCode (cname="gsl_fft_direction", cheader_filename="gsl/gsl_fft.h")]
2326 public enum FFTDirection
2333 [CCode (cname="gsl_fft_complex_wavetable", cheader_filename="gsl/gsl_fft_complex.h")]
2334 public class FFTComplexWavetable
2338 public size_t factor[64];
2339 public Complex twiddle[64];
2340 public Complex trig;
2342 [CCode (cname="gsl_fft_complex_wavetable_alloc")]
2343 public FFTComplexWavetable (size_t n);
2344 public int memcpy (FFTComplexWavetable src);
2348 [CCode (cname="gsl_fft_complex_workspace", cheader_filename="gsl/gsl_fft_complex.h")]
2349 public class FFTComplexWorkspace
2354 [CCode (cname="gsl_fft_complex_workspace_alloc")]
2355 public FFTComplexWorkspace (size_t n);
2359 [CCode (lower_case_cprefix="gsl_fft_complex_", cheader_filename="gsl/gsl_fft_complex.h")]
2360 namespace FFTComplex
2362 public static int radix2_forward ([CCode (array_length = false)] double[] data, size_t stride, size_t n);
2363 public static int radix2_transform ([CCode (array_length = false)] double[] data, size_t stride, size_t n, FFTDirection sign);
2364 public static int radix2_backward ([CCode (array_length = false)] double[] data, size_t stride, size_t n);
2365 public static int radix2_inverse ([CCode (array_length = false)] double[] data, size_t stride, size_t n);
2366 public static int radix2_dif_forward ([CCode (array_length = false)] double[] data, size_t stride, size_t n);
2367 public static int radix2_dif_transform ([CCode (array_length = false)] double[] data, size_t stride, size_t n, FFTDirection sign);
2368 public static int radix2_dif_backward ([CCode (array_length = false)] double[] data, size_t stride, size_t n);
2369 public static int radix2_dif_inverse ([CCode (array_length = false)] double[] data, size_t stride, size_t n);
2371 public static int forward ([CCode (array_length = false)] double[] data, size_t stride, size_t n, FFTComplexWavetable wavetable, FFTComplexWorkspace work);
2372 public static int transform ([CCode (array_length = false)] double[] data, size_t stride, size_t n, FFTComplexWavetable wavetable, FFTComplexWorkspace work, FFTDirection sign);
2373 public static int backward ([CCode (array_length = false)] double[] data, size_t stride, size_t n, FFTComplexWavetable wavetable, FFTComplexWorkspace work);
2374 public static int inverse ([CCode (array_length = false)] double[] data, size_t stride, size_t n, FFTComplexWavetable wavetable, FFTComplexWorkspace work);
2378 [CCode (cname="gsl_fft_real_wavetable", cheader_filename="gsl/gsl_fft_real.h")]
2379 public class FFTRealWavetable
2383 public size_t factor[64];
2384 public Complex twiddle[64];
2385 public Complex trig;
2387 [CCode (cname="gsl_fft_real_wavetable_alloc")]
2388 public FFTRealWavetable (size_t n);
2392 [CCode (cname="gsl_fft_real_workspace", cheader_filename="gsl/gsl_fft_real.h")]
2393 public class FFTRealWorkspace
2398 [CCode (cname="gsl_fft_real_workspace_alloc")]
2399 public FFTRealWorkspace (size_t n);
2403 [CCode (lower_case_cprefix="gsl_fft_real_", cheader_filename="gsl/gsl_fft_real.h")]
2406 public static int radix2_forward ([CCode (array_length = false)] double[] data, size_t stride, size_t n);
2407 public static int transform ([CCode (array_length = false)] double[] data, size_t stride, size_t n, FFTRealWavetable wavetable, FFTRealWorkspace work);
2408 public static int unpack ([CCode (array_length = false)] double[] real_coefficient, [CCode (array_length = false)] double[] complex_coeficient, size_t stride, size_t n);
2412 [CCode (cname="gsl_fft_halfcomplex_wavetable", cheader_filename="gsl/gsl_fft_halfcomplex.h")]
2413 public class FFTHalfcomplexWavetable
2417 public size_t factor[64];
2418 public Complex twiddle[64];
2419 public Complex trig;
2421 [CCode (cname="gsl_fft_halfcomplex_wavetable_alloc")]
2422 public FFTHalfcomplexWavetable (size_t n);
2425 [CCode (lower_case_cprefix="gsl_fft_halfcomplex_", cheader_filename="gsl/gsl_fft_halfcomplex.h")]
2426 namespace FFTHalfcomplex
2428 public static int radix2_inverse ([CCode (array_length = false)] double[] data, size_t stride, size_t n);
2429 public static int radix2_backward ([CCode (array_length = false)] double[] data, size_t stride, size_t n);
2430 public static int radix2_transform ([CCode (array_length = false)] double[] data, size_t stride, size_t n);
2431 public static int backward ([CCode (array_length = false)] double[] data, size_t stride, size_t n, FFTHalfcomplexWavetable wavetable, FFTRealWorkspace work);
2432 public static int inverse ([CCode (array_length = false)] double[] data, size_t stride, size_t n, FFTHalfcomplexWavetable wavetable, FFTRealWorkspace work);
2433 public static int transform ([CCode (array_length = false)] double[] data, size_t stride, size_t n, FFTHalfcomplexWavetable wavetable, FFTRealWorkspace work);
2434 public static int unpack ([CCode (array_length = false)] double[] halfcomplex_coefficient, [CCode (array_length = false)] double[] complex_coefficient, size_t stride, size_t n);
2435 public static int radix2_unpack ([CCode (array_length = false)] double[] halfcomplex_coefficient, [CCode (array_length = false)] double[] complex_coefficient, size_t stride, size_t n);
2440 * Numerical Integration
2442 [CCode (cprefix="GSL_INTEG_", cheader_filename="gsl/gsl_integration.h")]
2449 [CCode (cprefix="GSL_INTEG_", cheader_filename="gsl/gsl_integration.h")]
2450 public enum GaussRules
2461 [CCode (cname="gsl_integration_workspace", cheader_filename="gsl/gsl_integration.h")]
2462 public class IntegrationWorkspace
2464 public size_t limit;
2466 public size_t nrmax;
2468 public size_t maximum_level;
2469 public double* alist;
2470 public double* blist;
2471 public double* rlist;
2472 public double* elist;
2473 public size_t* order;
2474 public size_t* level;
2476 [CCode (cname="gsl_integration_workspace_alloc")]
2477 public IntegrationWorkspace (size_t n);
2481 [CCode (cname="gsl_integration_qaws_table", cheader_filaname="gsl/gsl_integration.h")]
2482 public class IntegrationQAWSTable
2484 public double alpha;
2488 public double ri[25];
2489 public double rj[25];
2490 public double rg[25];
2491 public double rh[25];
2493 [CCode (cname="gsl_integration_qaws_table_alloc")]
2494 public IntegrationQAWSTable (double alpha, double beta, int mu, int nu);
2495 public int @set (double alpha, double beta, int mu, int nu);
2499 [CCode (cname="gsl_integration_qawo_table", unref="gsl_integration_qawo_table_free", cheader_filename="gsl/gsl_integration.h")]
2500 public class IntegrationQAWOTable
2503 public double omega;
2507 public double* chebmo;
2509 [CCode (cname="gsl_integration_qawo_table_alloc")]
2510 public IntegrationQAWOTable (double omega, double L, QAWO sine, size_t n);
2511 public int @set (double omega, double L, QAWO sine);
2512 public int set_length (double L);
2515 [CCode (cname="gsl_integration", cheader_filename="gsl/gsl_integration.h")]
2516 namespace Integration
2518 public static void qk15 (Function* f, double a, double b, out double result, out double abserr, out double resabs, out double resasc);
2519 public static void qk21 (Function* f, double a, double b, out double result, out double abserr, out double resabs, out double resasc);
2520 public static void qk31 (Function* f, double a, double b, out double result, out double abserr, out double resabs, out double resasc);
2521 public static void qk41 (Function* f, double a, double b, out double result, out double abserr, out double resabs, out double resasc);
2522 public static void qk51 (Function* f, double a, double b, out double result, out double abserr, out double resabs, out double resasc);
2523 public static void qk61 (Function* f, double a, double b, out double result, out double abserr, out double resabs, out double resasc);
2524 public static void qcheb (Function* f, double a, double b, out double cheb12, out double cheb24);
2526 public static void qk (int n, [CCode (array_length = false)] double[] xgk, [CCode (array_length = false)] double[] wg, [CCode (array_length = false)] double[] wgk, [CCode (array_length = false)] double[] fv1, [CCode (array_length = false)] double[] fv2, Function* f, double a, double b, out double result, out double abserr, out double resabs, double resasc);
2527 public static int qng (Function* f, double a, double b, double epsabs, double epsrel, out double result, out double abserr, out size_t neval);
2528 public static int qag (Function* f, double a, double b, double epsabs, double epsrel, size_t limit, int key, IntegrationWorkspace workspace, out double result, out double abserr);
2529 public static int qagi (Function* f, double epsabs, double epsrel, size_t limit, IntegrationWorkspace workspace, out double result, out double abserr);
2530 public static int qagiu (Function* f, double a, double epsabs, double epsrel, size_t limit, IntegrationWorkspace workspace, out double result, out double abserr);
2531 public static int qagil (Function* f, double b, double epsabs, double epsrel, size_t limit, IntegrationWorkspace workspace, out double result, out double abserr);
2532 public static int qags (Function* f, double a, double b, double epsabs, double epsrel, size_t limit, IntegrationWorkspace workspace, out double result, out double abserr);
2533 public static int qagp (Function* f, [CCode (array_length = false)] double[] pts, size_t npts, double epsabs, double epsrel, size_t limit, IntegrationWorkspace workspace, out double result, out double abserr);
2534 public static int qawc (Function* f, double a, double b, double c, double epsabs, double epsrel, size_t limit, IntegrationWorkspace workspace, out double result, out double abserr);
2535 public static int qaws (Function* f, double a, double b, IntegrationQAWSTable t, double epsabs, double epsrel, size_t limit, IntegrationWorkspace workspace, out double result, out double abserr);
2536 public static int qawo (Function* f, double a, double epsabs, double epsrel, size_t limit, IntegrationWorkspace workspace, IntegrationQAWOTable wf, out double result, out double abserr);
2537 public static int qawf (Function* f, double a, double epsabs, size_t limit, IntegrationWorkspace workspace, IntegrationWorkspace cycle_workspace, IntegrationQAWOTable wf, out double result, out double abserr);
2542 * Random Number Generation
2544 [CCode (has_target = false)]
2545 public delegate void RNGSetState (void *state, ulong seed);
2546 [CCode (has_target = false)]
2547 public delegate ulong RNGGetState (void* state);
2548 [CCode (has_target = false)]
2549 public delegate double RNGGetDouble (void* state);
2552 [CCode (cname="gsl_rng_type", cheader_filename="gsl/gsl_rng.h")]
2553 public struct RNGType
2559 public RNGSetState @set;
2560 public RNGGetState @get;
2561 public RNGGetDouble get_double;
2564 [CCode (lower_case_cprefix="gsl_rng_", cheader_filename="gsl/gsl_rng.h")]
2567 public static RNGType* borosh13;
2568 public static RNGType* coveyou;
2569 public static RNGType* cmrg;
2570 public static RNGType* fishman18;
2571 public static RNGType* fishman20;
2572 public static RNGType* fishman2x;
2573 public static RNGType* gfsr4;
2574 public static RNGType* knuthran;
2575 public static RNGType* knuthran2;
2576 public static RNGType* knuthran2002;
2577 public static RNGType* lecuyer21;
2578 public static RNGType* minstd;
2579 public static RNGType* mrg;
2580 public static RNGType* mt19937;
2581 public static RNGType* mt19937_1999;
2582 public static RNGType* mt19937_1998;
2583 public static RNGType* r250;
2584 public static RNGType* ran0;
2585 public static RNGType* ran1;
2586 public static RNGType* ran2;
2587 public static RNGType* ran3;
2588 public static RNGType* rand;
2589 public static RNGType* rand48;
2590 public static RNGType* random128_bsd;
2591 public static RNGType* random128_glibc2;
2592 public static RNGType* random128_libc5;
2593 public static RNGType* random256_bsd;
2594 public static RNGType* random256_glibc2;
2595 public static RNGType* random256_libc5;
2596 public static RNGType* random32_bsd;
2597 public static RNGType* random32_glibc2;
2598 public static RNGType* random32_libc5;
2599 public static RNGType* random64_bsd;
2600 public static RNGType* random64_glibc2;
2601 public static RNGType* random64_libc5;
2602 public static RNGType* random8_bsd;
2603 public static RNGType* random8_glibc2;
2604 public static RNGType* random8_libc5;
2605 public static RNGType* random_bsd;
2606 public static RNGType* random_glibc2;
2607 public static RNGType* random_libc5;
2608 public static RNGType* randu;
2609 public static RNGType* ranf;
2610 public static RNGType* ranlux;
2611 public static RNGType* ranlux389;
2612 public static RNGType* ranlxd1;
2613 public static RNGType* ranlxd2;
2614 public static RNGType* ranlxs0;
2615 public static RNGType* ranlxs1;
2616 public static RNGType* ranlxs2;
2617 public static RNGType* ranmar;
2618 public static RNGType* slatec;
2619 public static RNGType* taus;
2620 public static RNGType* taus2;
2621 public static RNGType* taus113;
2622 public static RNGType* transputer;
2623 public static RNGType* tt800;
2624 public static RNGType* uni;
2625 public static RNGType* uni32;
2626 public static RNGType* vax;
2627 public static RNGType* waterman14;
2628 public static RNGType* zuf;
2629 public static RNGType* @default;
2630 public static ulong default_seed;
2634 [CCode (cname="gsl_rng", cheader_filename="gsl/gsl_rng.h")]
2637 public RNGType* type;
2640 [CCode (cname="gsl_rng_alloc")]
2641 public RNG (RNGType* T);
2642 public void @set (ulong s);
2643 public ulong @get ();
2644 public double uniform ();
2645 public double uniform_pos ();
2646 public ulong uniform_int (ulong n);
2647 public string name ();
2648 public ulong max ();
2649 public ulong min ();
2650 public size_t size ();
2651 public static RNGType* env_setup ();
2652 public int memcpy (RNG src);
2653 public RNG clone ();
2655 [CCode (instance_pos=-1)]
2656 public int fwrite (GLib.FileStream stream);
2657 [CCode (instance_pos=-1)]
2658 public int fread (GLib.FileStream stream);
2660 public void print_state ();
2663 [CCode (lower_case_cprefix="gsl_cdf_", cheader_filename="gsl/gsl_cdf.h")]
2666 public static double ugaussian_P (double x);
2667 public static double ugaussian_Q (double x);
2669 public static double ugaussian_Pinv (double P);
2670 public static double ugaussian_Qinv (double Q);
2672 public static double gaussian_P (double x, double sigma);
2673 public static double gaussian_Q (double x, double sigma);
2675 public static double gaussian_Pinv (double P, double sigma);
2676 public static double gaussian_Qinv (double Q, double sigma);
2678 public static double gamma_P (double x, double a, double b);
2679 public static double gamma_Q (double x, double a, double b);
2681 public static double gamma_Pinv (double P, double a, double b);
2682 public static double gamma_Qinv (double Q, double a, double b);
2684 public static double cauchy_P (double x, double a);
2685 public static double cauchy_Q (double x, double a);
2687 public static double cauchy_Pinv (double P, double a);
2688 public static double cauchy_Qinv (double Q, double a);
2690 public static double laplace_P (double x, double a);
2691 public static double laplace_Q (double x, double a);
2693 public static double laplace_Pinv (double P, double a);
2694 public static double laplace_Qinv (double Q, double a);
2696 public static double rayleigh_P (double x, double sigma);
2697 public static double rayleigh_Q (double x, double sigma);
2699 public static double rayleigh_Pinv (double P, double sigma);
2700 public static double rayleigh_Qinv (double Q, double sigma);
2702 public static double chisq_P (double x, double nu);
2703 public static double chisq_Q (double x, double nu);
2705 public static double chisq_Pinv (double P, double nu);
2706 public static double chisq_Qinv (double Q, double nu);
2708 public static double exponential_P (double x, double mu);
2709 public static double exponential_Q (double x, double mu);
2711 public static double exponential_Pinv (double P, double mu);
2712 public static double exponential_Qinv (double Q, double mu);
2714 public static double exppow_P (double x, double a, double b);
2715 public static double exppow_Q (double x, double a, double b);
2717 public static double tdist_P (double x, double nu);
2718 public static double tdist_Q (double x, double nu);
2720 public static double tdist_Pinv (double P, double nu);
2721 public static double tdist_Qinv (double Q, double nu);
2723 public static double fdist_P (double x, double nu1, double nu2);
2724 public static double fdist_Q (double x, double nu1, double nu2);
2726 public static double fdist_Pinv (double P, double nu1, double nu2);
2727 public static double fdist_Qinv (double Q, double nu1, double nu2);
2729 public static double beta_P (double x, double a, double b);
2730 public static double beta_Q (double x, double a, double b);
2732 public static double beta_Pinv (double P, double a, double b);
2733 public static double beta_Qinv (double Q, double a, double b);
2735 public static double flat_P (double x, double a, double b);
2736 public static double flat_Q (double x, double a, double b);
2738 public static double flat_Pinv (double P, double a, double b);
2739 public static double flat_Qinv (double Q, double a, double b);
2741 public static double lognormal_P (double x, double zeta, double sigma);
2742 public static double lognormal_Q (double x, double zeta, double sigma);
2744 public static double lognormal_Pinv (double P, double zeta, double sigma);
2745 public static double lognormal_Qinv (double Q, double zeta, double sigma);
2747 public static double gumbel1_P (double x, double a, double b);
2748 public static double gumbel1_Q (double x, double a, double b);
2750 public static double gumbel1_Pinv (double P, double a, double b);
2751 public static double gumbel1_Qinv (double Q, double a, double b);
2753 public static double gumbel2_P (double x, double a, double b);
2754 public static double gumbel2_Q (double x, double a, double b);
2756 public static double gumbel2_Pinv (double P, double a, double b);
2757 public static double gumbel2_Qinv (double Q, double a, double b);
2759 public static double weibull_P (double x, double a, double b);
2760 public static double weibull_Q (double x, double a, double b);
2762 public static double weibull_Pinv (double P, double a, double b);
2763 public static double weibull_Qinv (double Q, double a, double b);
2765 public static double pareto_P (double x, double a, double b);
2766 public static double pareto_Q (double x, double a, double b);
2768 public static double pareto_Pinv (double P, double a, double b);
2769 public static double pareto_Qinv (double Q, double a, double b);
2771 public static double logistic_P (double x, double a);
2772 public static double logistic_Q (double x, double a);
2774 public static double logistic_Pinv (double P, double a);
2775 public static double logistic_Qinv (double Q, double a);
2777 public static double binomial_P (uint k, double p, uint n);
2778 public static double binomial_Q (uint k, double p, uint n);
2780 public static double poisson_P (uint k, double mu);
2781 public static double poisson_Q (uint k, double mu);
2783 public static double geometric_P (uint k, double p);
2784 public static double geometric_Q (uint k, double p);
2786 public static double negative_binomial_P (uint k, double p, double n);
2787 public static double negative_binomial_Q (uint k, double p, double n);
2789 public static double pascal_P (uint k, double p, uint n);
2790 public static double pascal_Q (uint k, double p, uint n);
2792 public static double hypergeometric_P (uint k, uint n1, uint n2, uint t);
2793 public static double hypergeometric_Q (uint k, uint n1, uint n2, uint t);
2798 * Quasi-Random Sequences
2800 [CCode (has_target = false)]
2801 public delegate size_t QRNGStateSize (uint dimension);
2802 [CCode (has_target = false)]
2803 public delegate int QRNGInitState (void* state, uint dimension);
2804 [CCode (has_target = false)]
2805 public delegate int QRNGGetState2 (void* state, uint dimension, out double x);
2808 [CCode (cname="gsl_qrng_type", cheader_filename="gsl/gsl_qrng.h")]
2809 public struct QRNGType
2812 public uint max_dimension;
2813 public QRNGStateSize state_size;
2814 public QRNGInitState init_state;
2815 public QRNGGetState2 @get;
2818 [CCode (lower_case_cprefix="gsl_qrng_", cheader_filename="gsl/gsl_qrng.h")]
2819 namespace QRNGAlgorithms
2821 public static QRNGType* niederreiter_2;
2822 public static QRNGType* sobol;
2823 public static QRNGType* halton;
2824 public static QRNGType* reversehalton;
2828 [CCode (cname="gsl_qrng", cheader_filename="gsl/gsl_qrng.h")]
2831 public QRNGType* type;
2832 public uint dimension;
2836 [CCode (cname="gsl_qrng_alloc")]
2837 public QRNG (QRNGType* T, uint d);
2838 public void init ();
2839 public int memcpy (QRNG src);
2840 public QRNG clone ();
2841 public string name ();
2842 public size_t size ();
2843 public int @get ([CCode (array_length = false)] double[] x);
2848 * Random Number Distributions
2850 [CCode (lower_case_cprefix="gsl_ran_", cheader_filename="gsl/gsl_randist.h")]
2853 public static uint bernoulli (RNG r, double p);
2854 public static double bernoulli_pdf (uint k, double p);
2856 public static double beta (RNG r, double a, double b);
2857 public static double beta_pdf (double x, double a, double b);
2859 public static uint binomial (RNG r, double p, uint n);
2860 public static uint binomial_knuth (RNG r, double p, uint n);
2861 public static uint binomial_tpe (RNG r, double p, uint n);
2862 public static double binomial_pdf (uint k, double p, uint n);
2864 public static double exponential (RNG r, double mu);
2865 public static double exponential_pdf (double x, double mu);
2867 public static double exppow (RNG r, double a, double b);
2868 public static double exppow_pdf (double x, double a, double b);
2870 public static double cauchy (RNG r, double a);
2871 public static double cauchy_pdf (double x, double a);
2873 public static double chisq (RNG r, double nu);
2874 public static double chisq_pdf (double x, double nu);
2876 public static void dirichlet (RNG r, size_t K, out double alpha, out double theta);
2877 public static double dirichlet_pdf (size_t K, out double alpha, out double theta);
2878 public static double dirichlet_lnpdf (size_t K, out double alpha, out double theta);
2880 public static double erlang (RNG r, double a, double n);
2881 public static double erlang_pdf (double x, double a, double n);
2883 public static double fdist (RNG r, double nu1, double nu2);
2884 public static double fdist_pdf (double x, double nu1, double nu2);
2886 public static double flat (RNG r, double a, double b);
2887 public static double flat_pdf (double x, double a, double b);
2889 public static double gamma (RNG r, double a, double b);
2890 public static double gamma_int (RNG r, uint a);
2891 public static double gamma_pdf (double x, double a, double b);
2892 public static double gamma_mt (RNG r, double a, double b);
2893 public static double gamma_knuth (RNG r, double a, double b);
2895 public static double gaussian (RNG r, double sigma);
2896 public static double gaussian_ratio_method (RNG r, double sigma);
2897 public static double gaussian_ziggurat (RNG r, double sigma);
2898 public static double gaussian_pdf (double x, double sigma);
2900 public static double ugaussian (RNG r);
2901 public static double ugaussian_ratio_method (RNG r);
2902 public static double ugaussian_pdf (double x);
2904 public static double gaussian_tail (RNG r, double a, double sigma);
2905 public static double gaussian_tail_pdf (double x, double a, double sigma);
2907 public static double ugaussian_tail (RNG r, double a);
2908 public static double ugaussian_tail_pdf (double x, double a);
2910 public static void bivariate_gaussian (RNG r, double sigma_x, double sigma_y, double rho, out double x, out double y);
2911 public static double bivariate_gaussian_pdf (double x, double y, double sigma_x, double sigma_y, double rho);
2913 public static double landau (RNG r);
2914 public static double landau_pdf (double x);
2916 public static uint geometric (RNG r, double p);
2917 public static double geometric_pdf (uint k, double p);
2919 public static uint hypergeometric (RNG r, uint n1, uint n2, uint t);
2920 public static double hypergeometric_pdf (uint k, uint n1, uint n2, uint t);
2922 public static double gumbel1 (RNG r, double a, double b);
2923 public static double gumbel1_pdf (double x, double a, double b);
2925 public static double gumbel2 (RNG r, double a, double b);
2926 public static double gumbel2_pdf (double x, double a, double b);
2928 public static double logistic (RNG r, double a);
2929 public static double logistic_pdf (double x, double a);
2931 public static double lognormal (RNG r, double zeta, double sigma);
2932 public static double lognormal_pdf (double x, double zeta, double sigma);
2934 public static uint logarithmic (RNG r, double p);
2935 public static double logarithmic_pdf (uint k, double p);
2937 public static void multinomial (RNG r, size_t K, uint N, [CCode (array_length = false)] double[] p, [CCode (array_length = false)] uint[] n);
2938 public static double multinomial_pdf (size_t K, [CCode (array_length = false)] double[] p, [CCode (array_length = false)] uint[] n);
2939 public static double multinomial_lnpdf (size_t K, [CCode (array_length = false)] double[] p, [CCode (array_length = false)] uint[] n);
2941 public static uint negative_binomial (RNG r, double p, double n);
2942 public static double negative_binomial_pdf (uint k, double p, double n);
2944 public static uint pascal (RNG r, double p, uint n);
2945 public static double pascal_pdf (uint k, double p, uint n);
2947 public static double pareto (RNG r, double a, double b);
2948 public static double pareto_pdf (double x, double a, double b);
2950 public static uint poisson (RNG r, double mu);
2951 public static void poisson_array (RNG r, size_t n, [CCode (array_length = false)] uint[] array, double mu);
2952 public static double poisson_pdf (uint k, double mu);
2954 public static double rayleigh (RNG r, double sigma);
2955 public static double rayleigh_pdf (double x, double sigma);
2957 public static double rayleigh_tail (RNG r, double a, double sigma);
2958 public static double rayleigh_tail_pdf (double x, double a, double sigma);
2960 public static double tdist (RNG r, double nu);
2961 public static double tdist_pdf (double x, double nu);
2963 public static double laplace (RNG r, double a);
2964 public static double laplace_pdf (double x, double a);
2966 public static double levy (RNG r, double c, double alpha);
2967 public static double levy_skew (RNG r, double c, double alpha, double beta);
2969 public static double weibull (RNG r, double a, double b);
2970 public static double weibull_pdf (double x, double a, double b);
2972 public static void dir_2d (RNG r, out double x, out double y);
2973 public static void dir_2d_trig_method (RNG r, out double x, out double y);
2974 public static void dir_3d (RNG r, out double x, out double y, out double z);
2975 public static void dir_nd (RNG r, size_t n, out double x);
2977 public static void shuffle (RNG r, void* b, size_t nmembm, size_t size);
2978 public static int choose (RNG r, void* dest, size_t k, void* src, size_t n, size_t size);
2979 public static void sample (RNG r, void* dest, size_t k, void* src, size_t n, size_t size);
2983 [CCode (cname="gsl_ran_discrete_t", cprefix="gsl_ran_discrete_", cheader_filename="gsl/gsl_randist.h")]
2984 public class RanDiscrete
2990 [CCode (cname="gsl_ran_discrete_preproc")]
2991 public RanDiscrete (size_t K, double* P);
2992 [CCode (cname="gsl_ran_discrete")]
2993 public size_t discrete (RNG g);
2994 [CCode (instance_pos=-1)]
2995 public double pdf (size_t k);
3002 [CCode (lower_case_cprefix="gsl_stats_", cheader_filename="gsl/gsl_statistics.h")]
3005 public static double mean ([CCode (array_length = false)] double[] data, size_t stride, size_t n);
3006 public static double variance ([CCode (array_length = false)] double[] data, size_t stride, size_t n);
3007 public static double variance_m ([CCode (array_length = false)] double[] data, size_t stride, size_t n, double mean);
3008 public static double sd ([CCode (array_length = false)] double[] data, size_t stride, size_t n);
3009 public static double sd_m ([CCode (array_length = false)] double[] data, size_t stride, size_t n, double mean);
3010 public static double tss ([CCode (array_length = false)] double[] data, size_t stride, size_t n);
3011 public static double tss_m ([CCode (array_length = false)] double[] data, size_t stride, size_t n, double mean);
3012 public static double variance_with_fixed_mean ([CCode (array_length = false)] double[] data, size_t stride, size_t n, double mean);
3013 public static double sd_with_fixed_mean ([CCode (array_length = false)] double[] data, size_t stride, size_t n, double mean);
3014 public static double absdev ([CCode (array_length = false)] double[] data, size_t stride, size_t n);
3015 public static double absdev_m ([CCode (array_length = false)] double[] data, size_t stride, size_t n, double mean);
3016 public static double skew ([CCode (array_length = false)] double[] data, size_t stride, size_t n);
3017 public static double skew_m_sd ([CCode (array_length = false)] double[] data, size_t stride, size_t n, double mean, double sd);
3018 public static double kurtosis ([CCode (array_length = false)] double[] data, size_t stride, size_t n);
3019 public static double kurtosis_m_sd ([CCode (array_length = false)] double[] data, size_t stride, size_t n, double mean, double sd);
3020 public static double lag1_autocorrelation ([CCode (array_length = false)] double[] data, size_t stride, size_t n);
3021 public static double lag1_autocorrelation_m ([CCode (array_length = false)] double[] data, size_t stride, size_t n, double mean);
3022 public static double covariance ([CCode (array_length = false)] double[] data1, size_t stride1, [CCode (array_length = false)] double[] data2, size_t stride2, size_t n);
3023 public static double covariance_m ([CCode (array_length = false)] double[] data1, size_t stride1, [CCode (array_length = false)] double[] data2, size_t stride2, size_t n, double mean1, double mean2);
3024 public static double correlation ([CCode (array_length = false)] double[] data1, size_t stride1, [CCode (array_length = false)] double[] data2, size_t stride2, size_t n);
3026 public static double wmean ([CCode (array_length = false)] double[] w, size_t wstride, [CCode (array_length = false)] double[] data, size_t stride, size_t n);
3027 public static double wvariance ([CCode (array_length = false)] double[] w, size_t wstride, [CCode (array_length = false)] double[] data, size_t stride, size_t n);
3028 public static double wvariance_m ([CCode (array_length = false)] double[] w, size_t wstride, [CCode (array_length = false)] double[] data, size_t stride, size_t n, double wmean);
3029 public static double wsd ([CCode (array_length = false)] double[] w, size_t wstride, [CCode (array_length = false)] double[] data, size_t stride, size_t n);
3030 public static double wsd_m ([CCode (array_length = false)] double[] w, size_t wstride, [CCode (array_length = false)] double[] data, size_t stride, size_t n, double wmean);
3031 public static double wtss ([CCode (array_length = false)] double[] w, size_t wstride, [CCode (array_length = false)] double[] data, size_t stride, size_t n);
3032 public static double wtss_m ([CCode (array_length = false)] double[] w, size_t wstride, [CCode (array_length = false)] double[] data, size_t stride, size_t n, double mean);
3033 public static double wvariance_with_fixed_mean ([CCode (array_length = false)] double[] w, size_t wstride, [CCode (array_length = false)] double[] data, size_t stride, size_t n, double wmean);
3034 public static double wsd_with_fixed_mean ([CCode (array_length = false)] double[] w, size_t wstride, [CCode (array_length = false)] double[] data, size_t stride, size_t n, double wmean);
3035 public static double wabsdev ([CCode (array_length = false)] double[] w, size_t wstride, [CCode (array_length = false)] double[] data, size_t stride, size_t n);
3036 public static double wabsdev_m ([CCode (array_length = false)] double[] w, size_t wstride, [CCode (array_length = false)] double[] data, size_t stride, size_t n, double wmean);
3037 public static double wskew ([CCode (array_length = false)] double[] w, size_t wstride, [CCode (array_length = false)] double[] data, size_t stride, size_t n);
3038 public static double wskew_m_sd ([CCode (array_length = false)] double[] w, size_t wstride, [CCode (array_length = false)] double[] data, size_t stride, size_t n, double wmean, double wsd);
3039 public static double wkurtosis ([CCode (array_length = false)] double[] w, size_t wstride, [CCode (array_length = false)] double[] data, size_t stride, size_t n);
3040 public static double wkurtosis_m_sd ([CCode (array_length = false)] double[] w, size_t wstride, [CCode (array_length = false)] double[] data, size_t stride, size_t n, double wmean, double wsd);
3042 public static double max ([CCode (array_length = false)] double[] data, size_t stride, size_t n);
3043 public static double min ([CCode (array_length = false)] double[] data, size_t stride, size_t n);
3044 public static void minmax (out double min, out double max, [CCode (array_length = false)] double[] data, size_t stride, size_t n);
3045 public static size_t max_index ([CCode (array_length = false)] double[] data, size_t stride, size_t n);
3046 public static size_t min_index ([CCode (array_length = false)] double[] data, size_t stride, size_t n);
3047 public static void minmax_index (out size_t min, out size_t max, [CCode (array_length = false)] double[] data, size_t stride, size_t n);
3049 public static double median_from_sorted_data ([CCode (array_length = false)] double[] sorted_data, size_t stride, size_t n);
3050 public static double quantile_from_sorted_data ([CCode (array_length = false)] double[] sorted_data, size_t stride, size_t n, double f);
3058 [CCode (cname="gsl_histogram", cheader_filename="gsl/gsl_histogram.h")]
3059 public class Histogram
3062 public double* range;
3065 [CCode (cname="gsl_histogram_alloc")]
3066 public Histogram (size_t n);
3067 [CCode (cname="gsl_histogram_calloc")]
3068 public Histogram.with_zeros (size_t n);
3069 [CCode (cname="gsl_histogram_calloc_uniform")]
3070 public Histogram.uniform (size_t n, double xmin, double xmax);
3071 [CCode (cname="gsl_histogram_calloc_range")]
3072 public Histogram.with_range (size_t n, [CCode (array_length = false)] double[] range);
3074 public int increment (double x);
3075 public int accumulate (double x, double weight);
3076 public int find (double x, out size_t i);
3077 public double @get (size_t i);
3078 public int get_range (size_t i, out double lower, out double upper);
3079 public double max ();
3080 public double min ();
3081 public size_t bins ();
3083 public void reset ();
3085 public int set_ranges (double[] range);
3086 public int set_ranges_uniform (double xmin, double xmax);
3088 public int memcpy (Histogram source);
3089 public Histogram clone();
3091 public double max_val ();
3092 public size_t max_bin ();
3093 public double min_val ();
3094 public size_t min_bin ();
3096 public int equal_bins_p (Histogram h2);
3097 public int add (Histogram h2);
3098 public int sub (Histogram h2);
3099 public int mul (Histogram h2);
3100 public int div (Histogram h2);
3101 public int scale (double scale);
3102 public int shift (double shift);
3104 public double sigma ();
3105 public double mean ();
3106 public double sum ();
3108 [CCode (instance_pos=-1)]
3109 public int fwrite (GLib.FileStream stream);
3110 [CCode (instance_pos=-1)]
3111 public int fread (GLib.FileStream stream);
3112 public static int fprintf (GLib.FileStream stream, Histogram h, string range_format, string bin_format);
3113 [CCode (instance_pos=-1)]
3114 public int fscanf (GLib.FileStream stream);
3118 [CCode (cname="gsl_histogram_pdf", cheader_filename="gsl/gsl_histogram.h")]
3119 public class HistogramPDF
3122 public double* range;
3123 public double* sum ;
3125 [CCode (cname="gsl_histogram_pdf_alloc")]
3126 public HistogramPDF (size_t n);
3127 public int init (Histogram h);
3128 public double sample (double r);
3132 [CCode (cname="gsl_histogram2d", cheader_filename="gsl/gsl_histogram2d.h")]
3133 public class Histogram2d
3137 public double* xrange;
3138 public double* yrange;
3141 [CCode (cname="gsl_histogram2d_alloc")]
3142 public Histogram2d (size_t nx, size_t ny);
3143 [CCode (cname="gsl_histogram2d_calloc")]
3144 public Histogram2d.with_zeros (size_t nx, size_t ny);
3145 [CCode (cname="gsl_histogram2d_calloc_uniform")]
3146 public Histogram2d.uniform (size_t nx, size_t ny, double xmin, double xmax, double ymin, double ymax);
3147 [CCode (cname="gsl_histogram2d_calloc_range")]
3148 public Histogram2d.range (size_t nx, size_t ny, out double xrange, out double yrange);
3150 public int increment (double x, double y);
3151 public int accumulate (double x, double y, double weight);
3152 public int find (double x, double y, out size_t i, out size_t j);
3153 public double @get (size_t i, size_t j);
3154 public int get_xrange (size_t i, out double xlower, out double xupper);
3155 public int get_yrange (size_t j, out double ylower, out double yupper);
3157 public double xmax ();
3158 public double xmin ();
3159 public double ymax ();
3160 public double ymin ();
3162 public void reset ();
3164 public int set_ranges_uniform (double xmin, double xmax, double ymin, double ymax);
3165 public int set_ranges (double[] xrange, double[] yrange);
3167 public int memcpy (Histogram2d source);
3168 public Histogram2d clone ();
3170 public double max_val();
3171 public void max_bin (out size_t i, out size_t j);
3172 public double min_val();
3173 public void min_bin (out size_t i, out size_t j);
3175 public double xmean ();
3176 public double ymean ();
3177 public double xsigma ();
3178 public double ysigma ();
3179 public double cov ();
3181 public double sum ();
3182 public int equal_bins_p (Histogram h2) ;
3183 public int add (Histogram h2);
3184 public int sub (Histogram h2);
3185 public int mul (Histogram2d h2);
3186 public int div (Histogram2d h2);
3187 public int scale (double scale);
3188 public int shift (double shift);
3190 [CCode (instance_pos=-1)]
3191 public int fwrite (GLib.FileStream stream);
3192 [CCode (instance_pos=-1)]
3193 public int fread (GLib.FileStream stream);
3194 public static int fprintf (GLib.FileStream stream, Histogram h, string range_format, string bin_format);
3195 [CCode (instance_pos=-1)]
3196 public int fscanf (GLib.FileStream stream);
3200 [CCode (cname="gsl_histogram2d_pdf", cheader_filename="gsl/gsl_histogram2d.h")]
3201 public class Histogram2dPDF
3205 public double* xrange;
3206 public double* yrange;
3209 [CCode (cname="gsl_histogram2d_pdf_alloc")]
3210 public Histogram2dPDF (size_t nx, size_t ny);
3211 public int init (Histogram2d h);
3212 public int sample (double r1, double r2, out double x, out double y);
3219 [CCode (has_target = false)]
3220 public delegate int NTupleFunc (void* ntuple_data, void* params);
3223 [CCode (cname="gsl_ntuple_select_fn", cheader_filename="gsl/gsl_ntuple.h")]
3224 public struct NTupleSelectFn
3226 public NTupleFunc function;
3227 public void* params;
3231 [CCode (cname="gsl_ntuple_value_fn", cheader_filename="gsl/gsl_ntuple.h")]
3232 public struct NTupleValueFn
3234 public NTupleFunc function;
3235 public void* params;
3239 [CCode (cname="gsl_ntuple", free_function="gsl_ntuple_close", cheader_filename="gsl/gsl_ntuple.h")]
3242 public GLib.FileStream file;
3243 public void* ntrupel_data;
3246 public static NTuple open (string filename, void* ntuple_data, size_t size);
3247 public static NTuple create (string filename, void* ntuple_data, size_t size);
3248 public int write ();
3250 public int bookdata ();
3252 public static int project (Histogram h, NTuple ntuple, NTupleValueFn* value_func, NTupleSelectFn* select_func);
3257 * Monte Carlo Integration
3259 [CCode (cprefix="GSL_VEGAS_MODE_", cheader_filename="gsl/gsl_monte_vegas.h")]
3260 public enum MonteVegasMode
3267 [CCode (has_target = false)]
3268 public delegate double MonteFunc ([CCode (array_length = false)] double[] x_array, size_t dim, void* params);
3271 [CCode (cname="gsl_monte_function", cheader_filanema="gsl/gsl_monte.h")]
3272 public struct MonteFunction
3276 public void* params;
3280 [CCode (cname="gsl_monte_plain_state", cprefix="gsl_monte_plain_", cheader_filename="gsl/gsl_monte_plain.h")]
3281 public class MontePlainState
3286 [CCode (cname="gsl_monte_plain_alloc")]
3287 public MontePlainState (size_t dim);
3289 public static int integrate (MonteFunction* f, [CCode (array_length = false)] double[] xl, [CCode (array_length = false)] double[] xu, size_t dim, size_t calls, RNG r, MontePlainState state, out double result, out double abserr);
3293 [CCode (cname="gsl_monte_miser_state", cprefix="gsl_monte_miser_", cheader_filename="gsl/gsl_monte_miser.h")]
3294 public class MonteMiserState
3296 public size_t min_calls;
3297 public size_t min_calls_per_bisection;
3298 public double dither;
3299 public double estimate_frac;
3300 public double alpha;
3302 public int estimate_style;
3306 public double* xmid;
3307 public double* sigma_l;
3308 public double* sigma_r;
3309 public double* fmax_l;
3310 public double* fmax_r;
3311 public double* fmin_l;
3312 public double* fmin_r;
3313 public double* fsum_l;
3314 public double* fsum_r;
3315 public double* fsum2_l;
3316 public double* fsum2_r;
3317 public size_t* hits_l;
3318 public size_t* hits_r;
3320 [CCode (cname="gsl_monte_miser_alloc")]
3321 public MonteMiserState (size_t dim);
3323 public static int integrate (MonteFunction* f, [CCode (array_length = false)] double[] xl, [CCode (array_length = false)] double[] xh, size_t dim, size_t calls, RNG r, MonteMiserState state, out double result, out double abserr);
3327 [CCode (cname="gsl_monte_vegas_state", cprefix="gsl_monte_vegas_", cheader_filename="gsl/gsl_monte_vegas.h")]
3328 public class MonteVegasState
3331 public size_t bins_max;
3336 public double* delx;
3337 public double* weight;
3343 public double alpha;
3346 public uint iterations;
3349 public double wtd_int_sum;
3350 public double sum_wgts;
3351 public double chi_sum;
3352 public double chisq;
3353 public double result;
3354 public double sigma;
3355 public uint it_start;
3357 public uint samples;
3358 public uint calls_per_box;
3359 public GLib.FileStream ostream;
3361 [CCode (cname="gsl_monte_vegas_alloc")]
3362 public MonteVegasState (size_t dim);
3364 public static int integrate (MonteFunction* f, [CCode (array_length = false)] double[] xl, [CCode (array_length = false)] double[] xu, size_t dim, size_t calls, RNG r, MonteVegasState state, out double result, out double abserr);
3369 * Simulated Annealing
3372 [CCode (cname="gsl_siman_params_t", cheader_filename="gsl/gsl_siman.h")]
3373 public struct SimanParams
3376 public int iters_fixed_T;
3377 public double step_size;
3379 public double t_initial;
3381 public double t_min;
3384 [CCode (lower_case_cprefix="gsl_siman_", cheader_filename="gsl/gsl_siman.h")]
3387 [CCode (has_target = false)]
3388 public delegate double Efunc_t (void *xp);
3389 [CCode (has_target = false)]
3390 public delegate void step_t (RNG r, void *xp, double step_size);
3391 [CCode (has_target = false)]
3392 public delegate double metric_t (void *xp, void* yp);
3393 [CCode (has_target = false)]
3394 public delegate void print_t (void* xp);
3395 [CCode (has_target = false)]
3396 public delegate void copy_t (void* source, void* dest);
3397 [CCode (has_target = false)]
3398 public delegate void copy_construct_t (void* xp);
3399 [CCode (has_target = false)]
3400 public delegate void destroy_t (void* xp);
3402 public static void solve(RNG r, void *x0_p, Efunc_t Ef, step_t take_step, metric_t distance, print_t print_position, copy_t copyfunc, copy_construct_t copy_constructor, destroy_t destructor, size_t element_size, SimanParams params);
3403 public static void solve_many (RNG r, void *x0_p, Efunc_t Ef, step_t take_step, metric_t distance, print_t print_position, size_t element_size, SimanParams params);
3408 * Ordinary Differential Equations
3410 [CCode (cprefix="GSL_ODEIV_HADJ_", cheader_filename="gsl/gsl_odeiv.h")]
3411 public enum OdeivHadjustTypes
3418 [CCode (has_target = false)]
3419 public delegate int OdeivFunction (double t, [CCode (array_length = false)] double[] y, [CCode (array_length = false)] double[] dydt, void* params);
3420 [CCode (has_target = false)]
3421 public delegate int OdeivJacobian (double t, [CCode (array_length = false)] double[] y, [CCode (array_length = false)] double[] dfdy, [CCode (array_length = false)] double[] dfdt, void* params);
3422 [CCode (has_target = false)]
3423 public delegate void* OdeivStepAlloc (size_t dim);
3424 [CCode (has_target = false)]
3425 public delegate int OdeivStepApply (void* state, size_t dim, double t, double h, [CCode (array_length = false)] double[] y, [CCode (array_length = false)] double[] yerr, [CCode (array_length = false)] double[] dydt_in, [CCode (array_length = false)] double[] dydt_out, OdeivSystem* dydt);
3426 [CCode (has_target = false)]
3427 public delegate int OdeivStepReset (void* state, size_t dim);
3428 [CCode (has_target = false)]
3429 public delegate uint OdeivStepOrder (void* state);
3430 [CCode (has_target = false)]
3431 public delegate void OdeivStepFree (void* state);
3432 [CCode (has_target = false)]
3433 public delegate void* OdeivControlAlloc ();
3434 [CCode (has_target = false)]
3435 public delegate int OdeivControlInit (void* state, double eps_abs, double eps_rel, double a_y, double a_dydt);
3436 [CCode (has_target = false)]
3437 public delegate int OdeivControlHadjust (void* state, size_t dim, uint ord, [CCode (array_length = false)] double[] y, [CCode (array_length = false)] double[] yerr, [CCode (array_length = false)] double[] yp, [CCode (array_length = false)] double[] h);
3438 [CCode (has_target = false)]
3439 public delegate void OdeivControlFree (void* state);
3442 [CCode (cname="gsl_odeiv_system", cheader_filename="gsl/gsl_odeiv.h")]
3443 public struct OdeivSystem
3445 public OdeivFunction function;
3446 public OdeivJacobian jacobian;
3447 public size_t dimension;
3448 public void* params;
3452 [CCode (cname="gsl_odeiv_step_type", cheader_filename="gsl/gsl_odeiv.h")]
3453 public struct OdeivStepType
3456 public int can_use_dydt_in;
3457 public int gives_exact_dydt_out;
3458 public OdeivStepAlloc alloc;
3459 public OdeivStepApply apply;
3460 public OdeivStepReset reset;
3461 public OdeivStepOrder order;
3462 public OdeivStepFree free;
3465 [CCode (lower_case_cprefix="gsl_odeiv_step_", cheader_filename="gsl/gsl_odeiv.h")]
3466 namespace OdeivStepTypes
3468 public static OdeivStepType* rk2;
3469 public static OdeivStepType* rk4;
3470 public static OdeivStepType* rkf45;
3471 public static OdeivStepType* rkck;
3472 public static OdeivStepType* rk8pd;
3473 public static OdeivStepType* rk2imp;
3474 public static OdeivStepType* rk2simp;
3475 public static OdeivStepType* rk4imp;
3476 public static OdeivStepType* bsimp;
3477 public static OdeivStepType* gear1;
3478 public static OdeivStepType* gear2;
3482 [CCode (cname="gsl_odeiv_step", cheader_filename="gsl/gsl_odeiv.h")]
3483 public class OdeivStep
3485 public OdeivStepType* type;
3486 public size_t dimension;
3489 [CCode (cname="gsl_odeiv_step_alloc")]
3490 public OdeivStep (OdeivStepType* T, size_t dim);
3491 public int reset ();
3492 public string name ();
3493 public uint order ();
3495 public int apply (double t, double h, [CCode (array_length = false)] double[] y, [CCode (array_length = false)] double[] yerr, [CCode (array_length = false)] double[] dydt_in, [CCode (array_length = false)] double[] dydt_out, OdeivSystem* dydt);
3499 [CCode (cname="gsl_odeiv_control_type", cheader_filename="gsl/gsl_odeiv.h")]
3500 public struct OdeivControlType
3503 public OdeivControlAlloc alloc;
3504 public OdeivControlInit init;
3505 public OdeivControlHadjust hadjust;
3506 public OdeivControlFree free;
3510 [CCode (cname="gsl_odeiv_control", cheader_filename="gsl/gsl_odeiv.h")]
3511 public class OdeivControl
3513 public OdeivControlType* type;
3516 [CCode (cname="gsl_odeiv_control_alloc")]
3517 public OdeivControl (OdeivControlType* T);
3518 [CCode (cname="gsl_odeiv_control_standard_new")]
3519 public OdeivControl.standard (double eps_abs, double eps_rel, double a_y, double a_dydt);
3520 [CCode (cname="gsl_odeiv_control_y_new")]
3521 public OdeivControl.y (double eps_abs, double eps_rel);
3522 [CCode (cname="gsl_odeiv_control_yp_new")]
3523 public OdeivControl.yp (double eps_abs, double eps_rel);
3524 [CCode (cname="gsl_odeiv_control_scaled_new")]
3525 public OdeivControl.scaled (double eps_abs, double eps_rel, double a_y, double a_dydt, double[] scale_abs);
3527 public int init (double eps_abs, double eps_rel, double a_y, double a_dydt);
3528 public int hadjust (OdeivStep s, out double y, out double yerr, out double dydt, out double h);
3529 public string name ();
3533 [CCode (cname="gsl_odeiv_evolve", cheader_filename="gsl/gsl_odeiv.h")]
3534 public class OdeivEvolve
3536 public size_t dimension;
3538 public double* yerr;
3539 public double* dydt_in;
3540 public double* dydt_out;
3541 public double last_step;
3543 public ulong failed_steps;
3545 [CCode (cname="gsl_odeiv_evolve_alloc")]
3546 public OdeivEvolve (size_t dim);
3547 public int apply (OdeivControl con, OdeivStep step, OdeivSystem* dydt, [CCode (array_length = false)] double[] t, double t1, [CCode (array_length = false)] double[] h, [CCode (array_length = false)] double[] y);
3548 public int reset ();
3555 [CCode (has_target = false)]
3556 public delegate void* InterpAlloc (size_t size);
3557 [CCode (has_target = false)]
3558 public delegate int InterpInit (void* t, [CCode (array_length = false)] double[] xa, [CCode (array_length = false)] double[] ya, size_t size);
3559 [CCode (has_target = false)]
3560 public delegate int InterpEval (void* t, [CCode (array_length = false)] double[] xa, [CCode (array_length = false)] double[] ya, size_t size, double x, InterpAccel* i, out double y);
3561 [CCode (has_target = false)]
3562 public delegate int InterpEvalDeriv (void* t, [CCode (array_length = false)] double[] xa, [CCode (array_length = false)] double[] ya, size_t size, double x, InterpAccel* i, out double y_p);
3563 [CCode (has_target = false)]
3564 public delegate int InterpEvalDeriv2 (void* t, [CCode (array_length = false)] double[] xa, [CCode (array_length = false)] double[] ya, size_t size, double x, InterpAccel* i, out double y_pp);
3565 [CCode (has_target = false)]
3566 public delegate int InterpEvalInteg (void* t, [CCode (array_length = false)] double[] xa, [CCode (array_length = false)] double[] ya, size_t size, InterpAccel* i, double a, double b, out double result);
3567 [CCode (has_target = false)]
3568 public delegate void InterpFree (void* t);
3571 [CCode (cname="gsl_interp_accel", cheader_filname="gsl/gsl_interp.h")]
3572 public class InterpAccel
3574 public size_t cache;
3575 public size_t miss_count;
3576 public size_t hit_count;
3578 [CCode (cname="gsl_interp_accel_alloc")]
3579 public InterpAccel ();
3580 public size_t find (double[] x_array, double x);
3581 public int reset ();
3585 [CCode (cname="gsl_interp_type", cheader_filename="gsl/gsl_interp.h")]
3586 public struct InterpType
3589 public uint min_size;
3590 public InterpAlloc alloc;
3591 public InterpInit init;
3592 public InterpEval eval;
3593 public InterpEvalDeriv eval_deriv;
3594 public InterpEvalDeriv2 eval_deriv2;
3595 public InterpEvalInteg eval_integ;
3596 public InterpFree free;
3599 [CCode (lower_case_cprefix="gsl_interp_", cheader_filename="gsl/gsl_interp.h")]
3600 namespace InterpTypes
3602 public static InterpType* linear;
3603 public static InterpType* polynomial;
3604 public static InterpType* cspline;
3605 public static InterpType* cspline_periodic;
3606 public static InterpType* akima;
3607 public static InterpType* akima_periodic;
3611 [CCode (cname="gsl_interp", cheader_filename="gsl/gsl_interp.h")]
3620 [CCode (cname="gsl_interp_alloc")]
3621 public Interp (InterpType T, size_t n);
3622 public int init ([CCode (array_length = false)] double[] xa, [CCode (array_length = false)] double[] ya, size_t size);
3623 public string name ();
3624 public uint min_size ();
3625 public int eval_e ([CCode (array_length = false)] double[] xa, [CCode (array_length = false)] double[] ya, double x, InterpAccel a, out double y);
3626 public double eval ([CCode (array_length = false)] double[] xa, [CCode (array_length = false)] double[] ya, double x, InterpAccel a);
3627 public int eval_deriv_e ([CCode (array_length = false)] double[] xa, [CCode (array_length = false)] double[] ya, double x, InterpAccel a, out double d);
3628 public double eval_deriv ([CCode (array_length = false)] double[] xa, [CCode (array_length = false)] double[] ya, double x, InterpAccel a);
3629 public int eval_deriv2_e ([CCode (array_length = false)] double[] xa, [CCode (array_length = false)] double[] ya, double x, InterpAccel a, out double d2);
3630 public double eval_deriv2 ([CCode (array_length = false)] double[] xa, [CCode (array_length = false)] double[] ya, double x, InterpAccel a);
3631 public int eval_integ_e ([CCode (array_length = false)] double[] xa, [CCode (array_length = false)] double[] ya, double a, double b, InterpAccel acc, out double result);
3632 public double eval_integ ([CCode (array_length = false)] double[] xa, [CCode (array_length = false)] double[] ya, double a, double b, InterpAccel acc);
3633 public static size_t bsearch([CCode (array_length = false)] double[] x_array, double x, size_t index_lo, size_t index_hi);
3637 [CCode (cname="gsl_spline", cheader_filename="gsl/gsl_spline.h")]
3640 public Interp interp;
3645 [CCode (cname="gsl_spline_alloc")]
3646 public Spline (InterpType* T, size_t size);
3647 public int init ([CCode (array_length = false)] double[] xa, [CCode (array_length = false)] double[] ya, size_t size);
3648 public string name ();
3649 public uint min_size ();
3650 public int eval_e (double x, InterpAccel a, out double y);
3651 public double eval (double x, InterpAccel a);
3652 public int eval_deriv_e (double x, InterpAccel a, out double y);
3653 public double eval_deriv (double x, InterpAccel a);
3654 public int eval_deriv2_e (double x, InterpAccel a, out double y);
3655 public double eval_deriv2 (double x, InterpAccel a);
3656 public int eval_integ_e (double a, double b, InterpAccel acc, out double y);
3657 public double eval_integ (double a, double b, InterpAccel acc);
3661 * Numerical Differentiation
3663 [CCode (lower_case_cprefix="gsl_deriv_", cheader_fileame="gsl/gsl_deriv.h")]
3666 public static int central (Function* f, double x, double h, out double result, out double abserr);
3667 public static int backward (Function* f, double x, double h, out double result, out double abserr);
3668 public static int forward (Function* f, double x, double h, out double result, out double abserr);
3673 * Chebyshev Approximations
3676 [CCode (cname="gsl_cheb_series", cprefix="gsl_cheb_", cheader_filename="gsl/gsl_chebyshev.h")]
3677 public class ChebSeries
3680 public size_t order;
3683 public size_t order_sp;
3686 [CCode (cname="gsl_cheb_alloc")]
3687 public ChebSeries (size_t order);
3688 public int init (Function* func, double a, double b);
3689 public double eval (double x);
3690 public int eval_err (double x, out double result, out double abserr);
3691 public double eval_n (size_t order, double x);
3692 public int eval_n_err (size_t order, double x, out double result, out double abserr);
3693 public double eval_mode (double x, Mode mode);
3694 public int eval_mode_e (double x, Mode mode, out double result, out double abserr);
3695 public int calc_deriv (ChebSeries cs);
3696 public int calc_integ (ChebSeries cs);
3701 * Series Acceleration
3704 [CCode (cname="gsl_sum_levin_u_workspace", free_function="gsl_sum_levin_u_free", cheader_filename="gsl/gsl_sum.h")]
3705 public class SumLevinUWorkspace
3709 public size_t terms_used;
3710 public double sum_plain;
3711 public double* q_num;
3712 public double* q_den;
3713 public double* dq_num;
3714 public double* dq_den;
3715 public double* dsum;
3717 [CCode (cname="gsl_sum_levin_u_alloc")]
3718 public SumLevinUWorkspace (size_t n);
3721 [CCode (lower_case_cprefix="gsl_sum_levin_u_", cheader_filename="gsl/gsl_sum.h")]
3724 public static int accel (double[] array, SumLevinUWorkspace w, out double sum_accel, out double abserr);
3725 public static int minmax (double[] array, size_t min_terms, size_t max_terms, SumLevinUWorkspace w, out double sum_accel, out double abserr);
3726 public static int step (double term, size_t n, size_t nmax, SumLevinUWorkspace w, out double sum_accel);
3730 [CCode (cname="gsl_sum_levin_utrunc_workspace", free_function="gsl_sum_levin_utrunc_free", cheader_filename="gsl/gsl_sum.h")]
3731 public class SumLevinUtruncWorkspace
3735 public size_t terms_used;
3736 public double sum_plain;
3737 public double* q_num;
3738 public double* q_den;
3739 public double* dsum;
3741 [CCode (cname="gsl_sum_levin_utrunc_alloc")]
3742 public SumLevinUtruncWorkspace (size_t n);
3745 [CCode (lower_case_cprefix="gsl_sum_levin_utrunc_", cheader_filename="gsl/gsl_sum.h")]
3746 namespace SumLevinUtrunc
3748 public static int accel (double[] array, SumLevinUtruncWorkspace w, out double sum_accel, out double abserr_trunc);
3749 public static int minmax (double[] array, size_t min_terms, size_t max_terms, SumLevinUtruncWorkspace w, out double sum_accel, out double abserr_trunc);
3750 public static int step (double term, size_t n, SumLevinUtruncWorkspace w, out double sum_accel);
3755 * Wavelet Transforms
3757 public enum WaveletDirection
3763 [CCode (has_target = false)]
3764 public delegate int WaveletInit (double** h1, double** g1, double** h2, double** g2, size_t* nc, size_t* offset, size_t member);
3767 [CCode (cname="gsl_wavelet_type", cheader_filename="gsl/gsl_wavelet.h")]
3768 public struct WaveletType
3771 public WaveletInit init;
3774 [CCode (lower_case_cprefix="gsl_wavelet_", cheader_filename="gsl/gsl_wavelet.h")]
3775 namespace WaveletTypes
3777 public static WaveletType* daubechies;
3778 public static WaveletType* daubechies_centered;
3779 public static WaveletType* haar;
3780 public static WaveletType* haar_centered;
3781 public static WaveletType* bspline;
3782 public static WaveletType* bspline_centered;
3786 [CCode (cname="gsl_wavelet_workspace", cheader_filename="gsl/gsl_wavelet.h")]
3787 public class WaveletWorkspace
3789 public double* scratch;
3792 [CCode (cname="gsl_wavelet_workspace_alloc")]
3793 public WaveletWorkspace (size_t n);
3797 [CCode (cname="gsl_wavelet", cheader_filename="gsl/gsl_wavelet.h,gsl/gsl_wavelet2d.h")]
3798 public class Wavelet
3800 public WaveletType* type;
3806 public size_t offset;
3808 [CCode (cname="gsl_wavelet_alloc")]
3809 public Wavelet (WaveletType* T, size_t k);
3810 public string name ();
3811 public int transform ([CCode (array_length = false)] double[] data, size_t stride, size_t n, WaveletDirection dir, WaveletWorkspace work);
3812 public int transform_forward ([CCode (array_length = false)] double[] data, size_t stride, size_t n, WaveletWorkspace work);
3813 public int transform_inverse ([CCode (array_length = false)] double[] data, size_t stride, size_t n, WaveletWorkspace work);
3815 [CCode (cname="gsl_wavelet2d_transform")]
3816 public int transform_2d ([CCode (array_length = false)] double[] data, size_t tda, size_t size1, size_t size2, WaveletDirection dir, WaveletWorkspace work);
3817 [CCode (cname="gsl_wavelet2d_transform_forward")]
3818 public int transform_forward_2d ([CCode (array_length = false)] double[] data, size_t tda, size_t size1, size_t size2, WaveletWorkspace work);
3819 [CCode (cname="gsl_wavelet2d__transform_inverse")]
3820 public int transform_inverse_2d ([CCode (array_length = false)] double[] data, size_t tda, size_t size1, size_t size2, WaveletWorkspace work);
3821 [CCode (cprefix="gsl_wavelet2d_")]
3822 public int nstransform ([CCode (array_length = false)] double[] data, size_t tda, size_t size1, size_t size2, WaveletDirection dir,WaveletWorkspace work);
3823 [CCode (cprefix="gsl_wavelet2d_")]
3824 public int nstransform_forward ([CCode (array_length = false)] double[] data, size_t tda, size_t size1, size_t size2, WaveletWorkspace work);
3825 [CCode (cprefix="gsl_wavelet2d_")]
3826 public int nstransform_inverse ([CCode (array_length = false)] double[] data, size_t tda, size_t size1, size_t size2, WaveletWorkspace * work);
3827 [CCode (cprefix="gsl_wavelet2d_")]
3828 public int transform_matrix (Matrix a, WaveletDirection dir, WaveletWorkspace work);
3829 [CCode (cprefix="gsl_wavelet2d_")]
3830 public int transform_matrix_forward (Matrix a, WaveletWorkspace work);
3831 [CCode (cprefix="gsl_wavelet2d_")]
3832 public int transform_matrix_inverse (Matrix a, WaveletWorkspace work);
3833 [CCode (cprefix="gsl_wavelet2d_")]
3834 public int nstransform_matrix (Matrix a, WaveletDirection dir, WaveletWorkspace work);
3835 [CCode (cprefix="gsl_wavelet2d_")]
3836 public int nstransform_matrix_forward (Matrix a, WaveletWorkspace work);
3837 [CCode (cprefix="gsl_wavelet2d_")]
3838 public int nstransform_matrix_inverse (Matrix a, WaveletWorkspace work);
3843 * Discrete Hankel Transforms
3846 [CCode (cname="gsl_dht", cheader_filename="gsl/gsl_dht.h")]
3857 [CCode (cname="gsl_dht_alloc")]
3858 public DHT (size_t size);
3859 [CCode (cname="gsl_dht_new")]
3860 public DHT.recalc (size_t size, double nu, double xmax);
3861 public int init (double nu, double xmax);
3862 public double x_sample (int n);
3863 public double k_sample (int n);
3864 public int apply ([CCode (array_length = false)] double[] f_in, [CCode (array_length = false)] double[] f_out);
3869 * One dimensional Root-Finding
3871 [CCode (has_target = false)]
3872 public delegate int RootFsolverSet (void* state, Function* f, double* root, double x_lower, double x_upper);
3873 [CCode (has_target = false)]
3874 public delegate int RootFsolverIterate (void* state, Function* f, double* root, double* x_lower, double* x_upper);
3875 [CCode (has_target = false)]
3876 public delegate int RootFdfsolverSet (void* state, FunctionFdf* f, double* root);
3877 [CCode (has_target = false)]
3878 public delegate int RootFdfsolverIterate (void* state, FunctionFdf* d, double* root);
3881 [CCode (cname="gsl_root_fsolver_type", cheader_filename="gsl/gsl_roots.h")]
3882 public struct RootFsolverType
3886 public RootFsolverSet @set;
3887 public RootFsolverIterate iterate;
3891 [CCode (cname="gsl_root_fsolver", cheader_filename="gsl/gsl_roots.h")]
3892 public class RootFsolver
3894 public RootFsolverType* type;
3895 public Function* function;
3897 public double x_lower;
3898 public double x_upper;
3901 [CCode (cname="gsl_root_fsolver_alloc")]
3902 public RootFsolver (RootFsolverType* T);
3903 public int @set (Function* f, double x_lower, double x_upper);
3904 public int iterate ();
3905 public unowned string name ();
3909 [CCode (cname="gsl_root_fdfsolver_type", cheader_filename="gsl/gsl_roots.h")]
3910 public struct RootFdfsolverType
3914 public RootFdfsolverSet @set;
3915 public RootFdfsolverIterate iterate;
3919 [CCode (cname="gsl_root_fdfsolver", cheader_filename="gsl/gsl_roots.h")]
3920 public class RootFdfsolver
3922 public RootFdfsolverType* type;
3923 public FunctionFdf* fdf;
3927 [CCode (cname="gsl_root_fdfsolver_alloc")]
3928 public RootFdfsolver (RootFdfsolverType* T);
3929 public int @set (FunctionFdf* fdf, double root);
3930 public int iterate ();
3931 public unowned string name ();
3934 [CCode (lower_case_cprefix="gsl_root_test_", cheader_filename="gsl/gsl_roots.h")]
3937 public static int interval (double x_lower, double x_upper, double epsabs, double epsrel);
3938 public static int residual (double f, double epsabs);
3939 public static int delta (double x1, double x0, double epsabs, double epsrel);
3942 [CCode (lower_case_cprefix="gsl_root_fsolver_", cheader_filename="gsl/gsl_roots.h")]
3943 namespace RootFsolverTypes
3945 public static RootFsolverType* bisection;
3946 public static RootFsolverType* brent;
3947 public static RootFsolverType* falsepos;
3950 [CCode (lower_case_cprefix="gsl_root_fdfsolver_", cheader_filename="gsl/gsl_roots.h")]
3951 namespace RootFdfsolverTypes
3953 public static RootFdfsolverType* newton;
3954 public static RootFdfsolverType* secant;
3955 public static RootFdfsolverType* steffenson;
3960 * One dimensional Minimization
3962 [CCode (has_target = false)]
3963 public delegate int MinSet (void* state, Function* f, double xminimun, double f_minimum, double x_lower, double f_lower, double x_upper, double f_upper);
3964 [CCode (has_target = false)]
3965 public delegate int MinIterate (void *state, Function* f, double* x_minimum, double* f_minimum, double* x_lower, double* f_lower, double* x_upper, double* f_upper);
3966 [CCode (has_target = false)]
3967 public delegate int MinBracketingFunction (Function* f, double* x_minimum, double* f_minimum, double* x_lower, double* f_lower, double* x_upper, double* f_upper, size_t eval_max);
3970 [CCode (cname="gsl_min_fminimizer_type", cheader_filename="gsl/gsl_min.h")]
3971 public struct MinFminimizerType
3976 public MinIterate iterate;
3980 [CCode (cname="gsl_min_fminimizer", cheader_filename="gsl/gsl_min.h")]
3981 public class MinFminimizer
3983 public MinFminimizerType* type;
3984 public Function* function;
3985 public double x_minimum;
3986 public double x_lower;
3987 public double x_upper;
3988 public double f_minimum;
3989 public double f_lower;
3990 public double f_upper;
3993 [CCode (cname="gsl_min_fminimizer_alloc")]
3994 public MinFminimizer (MinFminimizerType* T) ;
3995 public int @set (Function* f, double x_minimum, double x_lower, double x_upper);
3996 public int set_with_values (Function* f, double x_minimum, double f_minimum, double x_lower, double f_lower, double x_upper, double f_upper);
3997 public int iterate ();
3998 public unowned string name ();
4001 [CCode (lower_case_cprefix="gsl_min_test_", cheader_filename="gsl/gsl_min.h")]
4004 public static int interval (double x_lower, double x_upper, double epsabs, double epsrel);
4007 [CCode (lower_case_cprefix="gsl_min_fminimizer_", cheader_filename="gsl/gsl_min.h")]
4008 namespace MinFminimizerTypes
4010 public static MinFminimizerType* goldensection;
4011 public static MinFminimizerType* brent;
4014 [CCode (cname="gsl_min_find_bracket", cheader_filename="gsl/gsl_min.h")]
4015 public static int find_bracket (Function* f, double* x_minimum, double* f_minimum, double* x_lower, double* f_lower, double* x_upper, double* f_upper, size_t eval_max);
4019 * Multidimensional Root-Finding
4021 [CCode (has_target = false)]
4022 public delegate int MultirootF (Vector x, void* params, Vector f);
4023 [CCode (has_target = false)]
4024 public delegate int MultirootFAlloc (void* state, size_t n);
4025 [CCode (has_target = false)]
4026 public delegate int MultirootFSet (void* state, MultirootFunction* function, Vector x, Vector f, Vector dx);
4027 [CCode (has_target = false)]
4028 public delegate int MultirootFIterate (void* state, MultirootFunction* function, Vector x, Vector f, Vector dx);
4029 [CCode (has_target = false)]
4030 public delegate void MultirootFFree (void* state);
4031 [CCode (has_target = false)]
4032 public delegate int MultirootDF (Vector x, void* params, Matrix df);
4033 [CCode (has_target = false)]
4034 public delegate int MultirootFDF (Vector x, void* params, Vector f, Matrix df);
4035 [CCode (has_target = false)]
4036 public delegate int MultirootFdfAlloc (void* state, size_t n);
4037 [CCode (has_target = false)]
4038 public delegate int MultirootFdfSet (void* state, MultirootFunctionFdf* fdf, Vector x, Vector f, Matrix J, Vector dx);
4039 [CCode (has_target = false)]
4040 public delegate int MultirootFdfIterate (void* state, MultirootFunctionFdf* fdf, Vector x, Vector f, Matrix J, Vector dx);
4041 [CCode (has_target = false)]
4042 public delegate int MultirootFdfFree (void* state);
4045 [CCode (cname="gsl_multiroot_function", cheader_filename="gsl/gsl_multiroots.h")]
4046 public struct MultirootFunction
4048 public MultirootF f;
4050 public void* params;
4053 [CCode (cname="gsl_multiroot_fdjacobian", cheader_filename="gsl/gsl_multiroots.h")]
4054 public static int multiroot_fdjacobian (MultirootFunction* F, Vector x, Vector f, double epsrel, Matrix jacobian);
4057 [CCode (cname="gsl_multiroot_fsolver_type", cheader_filename="gsl/gsl_multiroots.h")]
4058 public struct MultirootFsolverType
4062 public MultirootFAlloc alloc;
4063 public MultirootFSet @set;
4064 public MultirootFIterate iterate;
4065 public MultirootFFree free;
4069 [CCode (cname="gsl_multiroot_fsolver", cheader_filename="gsl/gsl_multiroots.h")]
4070 public class MultirootFsolver
4072 public MultirootFsolverType* type;
4073 public MultirootFunction* function;
4079 [CCode (cname="gsl_multiroot_fsolver_alloc")]
4080 public MultirootFsolver (MultirootFsolverType* T, size_t n);
4081 public int @set (MultirootFunction* f, Vector x);
4082 public int iterate ();
4083 public unowned string name ();
4084 public Vector root ();
4088 [CCode (cname="gsl_multiroot_function_fdf", cheader_filename="gsl/gsl_multiroots.h")]
4089 public struct MultirootFunctionFdf
4091 public MultirootF f;
4092 public MultirootDF df;
4093 public MultirootFDF fdf;
4095 public void* params;
4099 [CCode (cname="gsl_multiroot_fdfsolver_type", cheader_filename="gsl/gsl_multiroots.h")]
4100 public struct MultirootFdfsolverType
4104 public MultirootFdfAlloc alloc;
4105 public MultirootFdfSet @set;
4106 public MultirootFdfIterate iterate;
4107 public MultirootFdfFree free;
4111 [CCode (cname="gsl_multiroot_fdfsolver", cheader_filename="gsl/gsl_multiroots.h")]
4112 public class MultirootFdfsolver
4114 public MultirootFdfsolverType* type;
4115 public MultirootFunctionFdf* fdf;
4122 [CCode (cname="gsl_multiroot_fdfsolver_alloc")]
4123 public MultirootFdfsolver (MultirootFdfsolverType* T, size_t n);
4124 public int @set (MultirootFunctionFdf* fdf, Vector x);
4125 public int iterate ();
4126 public unowned string name ();
4127 public Vector root ();
4130 [CCode (lower_case_cprefix="gsl_multiroot_test_", cheader_filename="gsl/gsl_multiroots.h")]
4131 namespace MultirootTest
4133 public static int delta (Vector dx, Vector x, double epsabs, double epsrel);
4134 public static int residual (Vector f, double epsabs);
4137 [CCode (lower_case_cprefix="gsl_multiroot_fsolver_", cheader_filename="gsl/gsl_multiroots.h")]
4138 namespace MultirootFsolverTypes
4140 public static MultirootFsolverType* dnewton;
4141 public static MultirootFsolverType* broyden;
4142 public static MultirootFsolverType* hybrid;
4143 public static MultirootFsolverType* hybrids;
4146 [CCode (lower_case_cprefix="gsl_multiroot_fdfsolver_", cheader_filename="gsl/gsl_multiroots.h")]
4147 namespace MultirootFdfsolverTypes
4149 public static MultirootFdfsolverType* newton;
4150 public static MultirootFdfsolverType* gnewton;
4151 public static MultirootFdfsolverType* hybridj;
4152 public static MultirootFdfsolverType* hybridsj;
4157 * Multidimensional Minimization
4159 [CCode (has_target = false)]
4160 public delegate double MultiminF (Vector x, void* params);
4161 [CCode (has_target = false)]
4162 public delegate void MultiminDf (Vector x, void* params, Vector df);
4163 [CCode (has_target = false)]
4164 public delegate void MultiminFdf (Vector x, void* params, double* f, Vector df);
4165 [CCode (has_target = false)]
4166 public delegate int MultiminFAlloc (void *state, size_t n);
4167 [CCode (has_target = false)]
4168 public delegate int MultiminFSet (void* state, MultiminFunction* f, Vector x, double* size);
4169 [CCode (has_target = false)]
4170 public delegate int MultiminFIterate (void* state, MultiminFunction* f, Vector x, double* size, double* fval);
4171 [CCode (has_target = false)]
4172 public delegate int MultiminFFree (void* state);
4175 [CCode (cname="gsl_multimin_function", cheader_filename="gsl/gsl_multimin.h")]
4176 public struct MultiminFunction
4180 public void* params;
4184 [CCode (cname="gsl_multimin_function_fdf", cheader_filename="gsl/gsl_multimin.h")]
4185 public struct MultiminFunctionFdf
4188 public MultiminDf df;
4189 public MultiminFdf fdf;
4191 public void* params;
4194 [CCode (cname="gsl_multimin_diff", cheader_filename="gsl/gsl_multimin.h")]
4195 public static int multimin_diff (MultiminFunction* f, Vector x, Vector g);
4198 [CCode (cname="gsl_multimin_fminimizer_type", cheader_filename="gsl/gsl_multimin.h")]
4199 public struct MultiminFminimizerType
4203 public MultiminFAlloc alloc;
4204 public MultiminFSet @set;
4205 public MultiminFIterate iterate;
4206 public MultiminFFree free;
4210 [CCode (cname="gsl_multimin_fminimizer", cheader_filename="gsl/gsl_multimin.h")]
4211 public class MultiminFminimizer
4213 public MultiminFminimizerType* type;
4214 public MultiminFunction* f;
4220 [CCode (cname="gsl_multimin_fminimizer_alloc")]
4221 public MultiminFminimizer (MultiminFminimizerType* T, size_t n);
4222 public int @set (MultiminFunction* f, Vector x, Vector step_size);
4223 public unowned string name ();
4224 public int iterate ();
4225 public double minimum ();
4228 [CCode (lower_case_cprefix="gsl_multimin_test_", cheader_filename="gsl/gsl_multimin.h")]
4229 namespace MultiminTest
4231 public static int gradient(Vector g, double epsabs);
4232 public static int size (double size, double epsabs);
4235 [CCode (has_target = false)]
4236 public delegate int MultiminFdfAlloc (void *state, size_t n);
4237 [CCode (has_target = false)]
4238 public delegate int MultiminFdfSet (void* state, MultiminFunctionFdf* fdf, Vector x, double* f, Vector gradient, double step_size, double tol);
4239 [CCode (has_target = false)]
4240 public delegate int MultiminFdfIterate (void* state, MultiminFunctionFdf* fdf, Vector x, double* f, Vector gradient, Vector dx);
4241 [CCode (has_target = false)]
4242 public delegate int MultiminFdfRestart (void* state);
4243 [CCode (has_target = false)]
4244 public delegate int MultiminFdfFree (void* state);
4247 [CCode (cname="gsl_multimin_fdfminimizer_type", cheader_filename="gsl/gsl_multimin.h")]
4248 public struct MultiminFdfminimizerType
4252 public MultiminFdfAlloc alloc;
4253 public MultiminFdfSet @set;
4254 public MultiminFdfIterate iterate;
4255 public MultiminFdfRestart restart;
4256 public MultiminFdfFree free;
4260 [CCode (cname="gsl_multimin_fdfminimizer", cheader_filename="gsl/gsl_multimin.h")]
4261 public class MultiminFdfminimizer
4263 public MultiminFdfminimizerType* type;
4264 public MultiminFunctionFdf* fdf;
4267 public Vector gradient;
4271 [CCode (cname="gsl_multimin_fdfminimizer_alloc")]
4272 public MultiminFdfminimizer (MultiminFdfminimizerType* T, size_t n);
4273 public int @set (MultiminFunctionFdf* fdf, Vector x, double step_size, double tol);
4274 public unowned string name ();
4275 public int iterate ();
4276 public int restart ();
4277 public double minimum ();
4280 [CCode (lower_case_cprefix="gsl_multimin_fdfminimizer_", cheader_filename="gsl/gsl_multimin.h")]
4281 namespace MultiminFdfminimizerTypes
4283 public static MultiminFdfminimizerType* steepest_descent;
4284 public static MultiminFdfminimizerType* conjugate_pr;
4285 public static MultiminFdfminimizerType* conjugate_fr;
4286 public static MultiminFdfminimizerType* vector_bfgs;
4287 public static MultiminFdfminimizerType* vector_bfgs2;
4290 [CCode (lower_case_cprefix="gsl_multimin_fminimizer_", cheader_filename="gsl/gsl_multimin.h")]
4291 namespace MultiminFminimizerTypes
4293 public static MultiminFminimizerType* nmsimplex;
4298 * Least-Squares Fitting
4300 [CCode (lower_case_cprefix="gsl_fit_", cheader_filename="gsl/gsl_fit.h")]
4303 public static int linear ([CCode (array_length = false)] double[] x, size_t xstride, [CCode (array_length = false)] double[] y, size_t ystride, size_t n, out double c0, out double c1, out double cov00, out double cov01, out double cov11, out double sumsq);
4304 public static int wlinear ([CCode (array_length = false)] double[] x, size_t xstride, [CCode (array_length = false)] double[] w, size_t wstride, [CCode (array_length = false)] double[] y, size_t ystride, size_t n, out double c0, out double c1, out double cov00, out double cov01, out double cov11, double chisq);
4305 public static int linear_est (double x, double c0, double c1, double cov00, double cov01, double cov11, out double y, out double y_err);
4306 public static int mul ([CCode (array_length = false)] double[] x, size_t xstride, [CCode (array_length = false)] double[] y, size_t ystride, size_t n, out double c1, out double cov11, out double sumsq);
4307 public static int wmul ([CCode (array_length = false)] double[] x, size_t xstride, [CCode (array_length = false)] double[] w, size_t wstride, [CCode (array_length = false)] double[] y, size_t ystride, size_t n, out double c1, out double cov11, out double sumsq);
4308 public static int mul_est (double x, double c1, double cov11, out double y, out double y_err);
4312 [CCode (cname="gsl_multifit_linear_workspace", cheader_filename="gsl/gsl_multifit.h")]
4313 public class MultifitLinearWorkspace
4325 [CCode (cname="gsl_multifit_linear_workspace_alloc")]
4326 public MultifitLinearWorkspace (size_t n, size_t p);
4329 [CCode (lower_case_cprefix="gsl_multifit_", cheader_filename="gsl/gsl_multifit.h")]
4332 public static int linear (Matrix X, Vector y, Vector c, Matrix cov, out double chisq, MultifitLinearWorkspace work);
4333 public static int linear_svd (Matrix X, Vector y, double tol, out size_t rank, Vector c, Matrix cov, out double chisq, MultifitLinearWorkspace work);
4334 public static int wlinear (Matrix X, Vector w, Vector y, Vector c, Matrix cov, out double chisq, MultifitLinearWorkspace work);
4335 public static int wlinear_svd (Matrix X, Vector w, Vector y, double tol, out size_t rank, Vector c, Matrix cov, out double chisq, MultifitLinearWorkspace work);
4336 public static int linear_est (Vector x, Vector c, Matrix cov, out double y, out double y_err);
4337 public int linear_residuals (Matrix X, Vector y, Vector c, Vector r);
4342 * Nonlinear Least-Squares Fitting
4344 [CCode (has_target = false)]
4345 public delegate int MultifitF (Vector x, void* params, Vector f);
4346 [CCode (has_target = false)]
4347 public delegate int MultifitFAlloc (void* state, size_t n, size_t p);
4348 [CCode (has_target = false)]
4349 public delegate int MultifitFSet (void* state, MultifitFunction* function, Vector x, Vector f, Vector dx);
4350 [CCode (has_target = false)]
4351 public delegate int MultifitFIterate (void* state, MultifitFunction* function, Vector x, Vector f, Vector dx);
4352 [CCode (has_target = false)]
4353 public delegate void MultifitFFree (void* state);
4354 [CCode (has_target = false)]
4355 public delegate int MultifitDf (Vector x, void* params, Matrix df);
4356 [CCode (has_target = false)]
4357 public delegate int MultifitFdf (Vector x, void* params, Vector f, Matrix df);
4358 [CCode (has_target = false)]
4359 public delegate int MultifitFdfAlloc (void* state, size_t n, size_t p);
4360 [CCode (has_target = false)]
4361 public delegate int MultifitFdfSet (void* state, MultifitFunctionFdf fdf, Vector x, Vector f, Matrix J, Vector dx);
4362 [CCode (has_target = false)]
4363 public delegate int MultifitFdfIterate (void* state, MultifitFunctionFdf fdf, Vector x, Vector f, Matrix J, Vector dx);
4364 [CCode (has_target = false)]
4365 public delegate void MultifitFdfFree (void* state);
4367 [CCode (lower_case_cprefix="gsl_multifit_", cheader_filename="gsl/gsl_multifit_nlin.h")]
4370 public static int gradient (Matrix J, Vector f, Vector g);
4371 public static int covar (Matrix J, double epsrel, Matrix covar);
4375 [CCode (cname="gsl_multifit_function", cheader_filename="gls/gsl_multifit_nlin.h")]
4376 public struct MultifitFunction
4381 public void* params;
4385 [CCode (cname="gsl_multifit_fsolver_type", cheader_filename="gsl/gsl_multifit_nlin.h")]
4386 public struct MultifitFsolverType
4390 public MultifitFAlloc alloc;
4391 public MultifitFSet @set;
4392 public MultifitFIterate iterate;
4393 public MultifitFFree free;
4397 [CCode (cname="gsl_multifit_fsolver", cheader_filename="gsl/gsl_multifit_nlin.h")]
4398 public class MultifitFsolver
4400 public MultifitFsolverType* type;
4401 public MultifitFunction* function;
4407 [CCode (cname="gsl_multifit_fsolver_alloc")]
4408 public MultifitFsolver (MultifitFsolverType* T, size_t n, size_t p);
4409 public int @set (MultifitFunction* f, Vector x);
4410 public int iterate ();
4411 public unowned string name ();
4412 public Vector position ();
4416 [CCode (cname="gsl_multifit_function_fdf", cheader_filename="gsl/gsl_multifit_nlin.h")]
4417 public struct MultifitFunctionFdf
4420 public MultifitDf df;
4421 public MultifitFdf fdf;
4424 public void* params;
4428 [CCode (cname="gsl_multifit_fdfsolver_type", cheader_filename="gsl/gsl_multifit_nlin.h")]
4429 public struct MultifitFdfsolverType
4433 public MultifitFdfAlloc alloc;
4434 public MultifitFdfSet @set;
4435 public MultifitFdfIterate iterate;
4436 public MultifitFdfFree free;
4440 [CCode (cname="gsl_multifit_fdfsolver", cheader_filename="gsl/gsl_multifit_nlin.h")]
4441 public class MultifitFdfsolver
4443 public MultifitFdfsolverType* type;
4444 public MultifitFunctionFdf* fdf;
4451 [CCode (cname="gsl_multifit_fdfsolver_alloc")]
4452 public MultifitFdfsolver (MultifitFdfsolverType* T, size_t n, size_t p);
4453 public int @set (MultifitFunctionFdf* fdf, Vector x);
4454 public int iterate ();
4455 public unowned string name ();
4456 public Vector position ();
4459 [CCode (lower_case_cprefix="gsl_multifit_test_", cheader_filename="gsl/gsl_multifit_nlin.h")]
4460 namespace MultifitTest
4462 public static int delta (Vector dx, Vector x, double epsabs, double epsrel);
4463 public static int gradient (Vector g, double epsabs);
4466 [CCode (lower_case_cprefix="gsl_multifit_fdfsolver_", cheader_filename="gsl/gsl_multifit_nlin.h")]
4467 namespace MultifitFdfsolverTypes
4469 public static MultifitFdfsolverType* lmder;
4470 public static MultifitFdfsolverType* lmsder;
4478 [CCode (cname="gsl_bspline_workspace", cprefix="gsl_bspline_", cheader_filename="gsl/gsl_bspline.h")]
4479 public class BsplineWorkspace
4484 public size_t nbreak;
4486 public Vector knots;
4487 public Vector deltal;
4488 public Vector deltar;
4491 [CCode (cname="gsl_bspline_alloc")]
4492 public BsplineWorkspace (size_t k, size_t nbreak);
4493 public size_t ncoeffs ();
4494 public size_t order ();
4495 [CCode (instance_pos=-1)]
4496 public double breakpoint (size_t i);
4497 [CCode (instance_pos=-1)]
4498 public int knots_uniform (double a, double b);
4499 [CCode (instance_pos=-1)]
4500 public int eval (double x, Vector B);