var searchIndex = {}; searchIndex["rgsl"] = {"doc":"A __Rust__ binding for the [GSL library][] (the GNU Scientific Library).","items":[[4,"Mode","rgsl","",null,null],[13,"PrecDouble","","",0,null],[13,"PrecSingle","","",0,null],[13,"PrecApprox","","",0,null],[4,"Value","","",null,null],[13,"Success","","",1,null],[13,"Failure","","",1,null],[13,"Continue","","iteration has not converged",1,null],[13,"Dom","","input domain error, e.g sqrt(-1)",1,null],[13,"Range","","output range error, e.g. exp(1e100)",1,null],[13,"Fault","","invalid pointer",1,null],[13,"Inval","","invalid argument supplied by user",1,null],[13,"Failed","","generic failure",1,null],[13,"Factor","","factorization failed",1,null],[13,"Sanity","","sanity check failed - shouldn't happen",1,null],[13,"NoMem","","malloc failed",1,null],[13,"BadFunc","","problem with user-supplied function",1,null],[13,"RunAway","","iterative process is out of control",1,null],[13,"MaxIter","","exceeded max number of iterations",1,null],[13,"ZeroDiv","","tried to divide by zero",1,null],[13,"BadTol","","user specified an invalid tolerance",1,null],[13,"Tol","","failed to reach the specified tolerance",1,null],[13,"UndrFlw","","underflow",1,null],[13,"OvrFlw","","overflow",1,null],[13,"Loss","","loss of accuracy",1,null],[13,"Round","","failed because of roundoff error",1,null],[13,"BadLen","","matrix, vector lengths are not conformant",1,null],[13,"NotSqr","","matrix not square",1,null],[13,"Sing","","apparent singularity detected",1,null],[13,"Diverge","","integral or series is divergent",1,null],[13,"Unsup","","requested feature is not supported by the hardware",1,null],[13,"Unimpl","","requested feature not (yet) implemented",1,null],[13,"Cache","","cache limit exceeded",1,null],[13,"Table","","table limit exceeded",1,null],[13,"NoProg","","iteration is not making progress towards solution",1,null],[13,"NoProgJ","","jacobian evaluations are not improving the solution",1,null],[13,"TolF","","cannot reach the specified tolerance in F",1,null],[13,"TolX","","cannot reach the specified tolerance in X",1,null],[13,"TolG","","cannot reach the specified tolerance in gradient",1,null],[13,"EOF","","cannot reach the specified tolerance in gradient",1,null],[4,"EigenSort","","",null,null],[13,"ValAsc","","ascending order in numerical value",2,null],[13,"VasDesc","","descending order in numerical value",2,null],[13,"AbsAsc","","ascending order in magnitude",2,null],[13,"AbsDesc","","descending order in magnitude",2,null],[4,"FftDirection","","this gives the sign in the formula",null,null],[13,"Forward","","",3,null],[13,"Backward","","",3,null],[4,"GaussKonrodRule","","The low-level integration rules in QUADPACK are identified by small integers (1-6). We'll use symbolic constants to refer to them.",null,null],[13,"Gauss15","","15 point Gauss-Kronrod rule",4,null],[13,"Gauss21","","21 point Gauss-Kronrod rule",4,null],[13,"Gauss31","","31 point Gauss-Kronrod rule",4,null],[13,"Gauss41","","41 point Gauss-Kronrod rule",4,null],[13,"Gauss51","","51 point Gauss-Kronrod rule",4,null],[13,"Gauss61","","61 point Gauss-Kronrod rule",4,null],[4,"IntegrationQawo","","Used by workspace for QAWO integrator",null,null],[13,"Cosine","","",5,null],[13,"Sine","","",5,null],[4,"VegasMode","","Used by VegasMonteCarlo struct",null,null],[13,"Importance","","",6,null],[13,"ImportanceOnly","","",6,null],[13,"Stratified","","",6,null],[4,"ODEiv","","Possible return values for an hadjust() evolution method for ordinary differential equations",null,null],[13,"Inc","","step was increased",7,null],[13,"Nil","","step unchanged",7,null],[13,"Dec","","step decreased",7,null],[4,"WaveletDirection","","",null,null],[13,"Forward","","",8,null],[13,"Backward","","",8,null],[11,"fmt","","",0,null],[11,"partial_cmp","","",0,null],[11,"eq","","",0,null],[11,"clone","","",0,null],[11,"fmt","","",1,null],[11,"partial_cmp","","",1,null],[11,"eq","","",1,null],[11,"clone","","",1,null],[11,"fmt","","",2,null],[11,"partial_cmp","","",2,null],[11,"eq","","",2,null],[11,"clone","","",2,null],[11,"fmt","","",3,null],[11,"partial_cmp","","",3,null],[11,"eq","","",3,null],[11,"clone","","",3,null],[11,"fmt","","",4,null],[11,"partial_cmp","","",4,null],[11,"eq","","",4,null],[11,"clone","","",4,null],[11,"fmt","","",5,null],[11,"partial_cmp","","",5,null],[11,"eq","","",5,null],[11,"clone","","",5,null],[11,"fmt","","",6,null],[11,"partial_cmp","","",6,null],[11,"eq","","",6,null],[11,"clone","","",6,null],[11,"fmt","","",7,null],[11,"partial_cmp","","",7,null],[11,"eq","","",7,null],[11,"clone","","",7,null],[11,"fmt","","",8,null],[11,"partial_cmp","","",8,null],[11,"eq","","",8,null],[11,"clone","","",8,null],[0,"randist","","#Random Number Distributions",null,null],[0,"bernoulli","rgsl::randist","",null,null],[5,"bernoulli","rgsl::randist::bernoulli","This function returns either 0 or 1, the result of a Bernoulli trial with probability p. The probability distribution for a Bernoulli trial is,",null,{"inputs":[{"name":"rng"},{"name":"f64"}],"output":{"name":"u32"}}],[5,"bernoulli_pdf","","This function computes the probability p(k) of obtaining k from a Bernoulli distribution with probability parameter p, using the formula given above.",null,{"inputs":[{"name":"u32"},{"name":"f64"}],"output":{"name":"f64"}}],[0,"beta","rgsl::randist","",null,null],[5,"beta","rgsl::randist::beta","This function returns a random variate from the beta distribution. The distribution function is,",null,{"inputs":[{"name":"rng"},{"name":"f64"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"beta_pdf","","This function computes the probability density p(x) at x for a beta distribution with parameters a and b, using the formula given above.",null,{"inputs":[{"name":"f64"},{"name":"f64"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"beta_P","","This function computes the cumulative distribution functions P(x), Q(x) and their inverses for the beta distribution with parameters a and b.",null,{"inputs":[{"name":"f64"},{"name":"f64"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"beta_Q","","This function computes the cumulative distribution functions P(x), Q(x) and their inverses for the beta distribution with parameters a and b.",null,{"inputs":[{"name":"f64"},{"name":"f64"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"beta_Pinv","","This function computes the cumulative distribution functions P(x), Q(x) and their inverses for the beta distribution with parameters a and b.",null,{"inputs":[{"name":"f64"},{"name":"f64"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"beta_Qinv","","This function computes the cumulative distribution functions P(x), Q(x) and their inverses for the beta distribution with parameters a and b.",null,{"inputs":[{"name":"f64"},{"name":"f64"},{"name":"f64"}],"output":{"name":"f64"}}],[0,"binomial","rgsl::randist","",null,null],[5,"binomial","rgsl::randist::binomial","This function returns a random integer from the binomial distribution, the number of successes in n independent trials with probability p. The probability distribution for binomial variates is,",null,{"inputs":[{"name":"rng"},{"name":"f64"},{"name":"u32"}],"output":{"name":"u32"}}],[5,"binomial_pdf","","This function computes the probability p(k) of obtaining k from a binomial distribution with parameters p and n, using the formula given above.",null,{"inputs":[{"name":"u32"},{"name":"f64"},{"name":"u32"}],"output":{"name":"f64"}}],[5,"binomial_P","","This function computes the cumulative distribution functions P(k), Q(k) for the binomial distribution with parameters p and n.",null,{"inputs":[{"name":"u32"},{"name":"f64"},{"name":"u32"}],"output":{"name":"f64"}}],[5,"binomial_Q","","This function computes the cumulative distribution functions P(k), Q(k) for the binomial distribution with parameters p and n.",null,{"inputs":[{"name":"u32"},{"name":"f64"},{"name":"u32"}],"output":{"name":"f64"}}],[0,"bivariate_gaussian","rgsl::randist","",null,null],[5,"gaussian_tail","rgsl::randist::bivariate_gaussian","This function generates a pair of correlated Gaussian variates, with mean zero, correlation coefficient rho and standard deviations sigma_x and sigma_y in the x and y directions.\nThe probability distribution for bivariate Gaussian random variates is,",null,{"inputs":[{"name":"rng"},{"name":"f64"},{"name":"f64"},{"name":"f64"},{"name":"f64"},{"name":"f64"}],"output":null}],[5,"gaussian_tail_pdf","","This function computes the probability density p(x,y) at (x,y) for a bivariate Gaussian distribution with standard deviations sigma_x, sigma_y and correlation coefficient rho, using the formula given above.",null,{"inputs":[{"name":"f64"},{"name":"f64"},{"name":"f64"},{"name":"f64"},{"name":"f64"}],"output":{"name":"f64"}}],[0,"cauchy","rgsl::randist","",null,null],[5,"cauchy","rgsl::randist::cauchy","This function returns a random variate from the Cauchy distribution with scale parameter a. The probability distribution for Cauchy random variates is,",null,{"inputs":[{"name":"rng"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"cauchy_pdf","","This function computes the probability density p(x) at x for a Cauchy distribution with scale parameter a, using the formula given above.",null,{"inputs":[{"name":"f64"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"cauchy_P","","This function computes the cumulative distribution functions P(x), Q(x) and their inverses for the Cauchy distribution with scale parameter a.",null,{"inputs":[{"name":"f64"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"cauchy_Q","","This function computes the cumulative distribution functions P(x), Q(x) and their inverses for the Cauchy distribution with scale parameter a.",null,{"inputs":[{"name":"f64"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"cauchy_Pinv","","This function computes the cumulative distribution functions P(x), Q(x) and their inverses for the Cauchy distribution with scale parameter a.",null,{"inputs":[{"name":"f64"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"cauchy_Qinv","","This function computes the cumulative distribution functions P(x), Q(x) and their inverses for the Cauchy distribution with scale parameter a.",null,{"inputs":[{"name":"f64"},{"name":"f64"}],"output":{"name":"f64"}}],[0,"chi_squared","rgsl::randist","The chi-squared distribution arises in statistics. If Y_i are n independent Gaussian random variates with unit variance then the sum-of-squares,",null,null],[5,"chisq","rgsl::randist::chi_squared","This function returns a random variate from the chi-squared distribution with nu degrees of freedom. The distribution function is,",null,{"inputs":[{"name":"rng"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"chisq_pdf","","This function computes the probability density p(x) at x for a chi-squared distribution with nu degrees of freedom, using the formula given above.",null,{"inputs":[{"name":"f64"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"chisq_P","","This function computes the cumulative distribution functions P(x), Q(x) and their inverses for the chi-squared distribution with nu degrees of freedom.",null,{"inputs":[{"name":"f64"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"chisq_Q","","This function computes the cumulative distribution functions P(x), Q(x) and their inverses for the chi-squared distribution with nu degrees of freedom.",null,{"inputs":[{"name":"f64"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"chisq_Pinv","","This function computes the cumulative distribution functions P(x), Q(x) and their inverses for the chi-squared distribution with nu degrees of freedom.",null,{"inputs":[{"name":"f64"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"chisq_Qinv","","This function computes the cumulative distribution functions P(x), Q(x) and their inverses for the chi-squared distribution with nu degrees of freedom.",null,{"inputs":[{"name":"f64"},{"name":"f64"}],"output":{"name":"f64"}}],[0,"dirichlet","rgsl::randist","",null,null],[5,"dirichlet","rgsl::randist::dirichlet","This function returns an array of K random variates from a Dirichlet distribution of order K-1. The distribution function is",null,null],[5,"dirichlet_pdf","","This function computes the probability density p(\\theta_1, ... , \\theta_K) at theta[K] for a Dirichlet distribution with parameters alpha[K], using the formula given above.",null,null],[5,"dirichlet_lnpdf","","This function computes the logarithm of the probability density p(\\theta_1, ... , \\theta_K) for a Dirichlet distribution with parameters alpha[K].",null,null],[0,"exponential","rgsl::randist","",null,null],[5,"exponential","rgsl::randist::exponential","This function returns a random variate from the exponential distribution with mean mu. The distribution is,",null,{"inputs":[{"name":"rng"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"exponential_pdf","","This function computes the probability density p(x) at x for an exponential distribution with mean mu, using the formula given above.",null,{"inputs":[{"name":"f64"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"exponential_P","","This function computes the cumulative distribution functions P(x), Q(x) and their inverses for the exponential distribution with mean mu.",null,{"inputs":[{"name":"f64"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"exponential_Q","","This function computes the cumulative distribution functions P(x), Q(x) and their inverses for the exponential distribution with mean mu.",null,{"inputs":[{"name":"f64"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"exponential_Pinv","","",null,{"inputs":[{"name":"f64"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"exponential_Qinv","","This function computes the cumulative distribution functions P(x), Q(x) and their inverses for the exponential distribution with mean mu.",null,{"inputs":[{"name":"f64"},{"name":"f64"}],"output":{"name":"f64"}}],[0,"exponential_power","rgsl::randist","",null,null],[5,"exppow","rgsl::randist::exponential_power","This function returns a random variate from the exponential power distribution with scale parameter a and exponent b. The distribution is,",null,{"inputs":[{"name":"rng"},{"name":"f64"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"exppow_pdf","","This function computes the probability density p(x) at x for an exponential power distribution with scale parameter a and exponent b, using the formula given above.",null,{"inputs":[{"name":"f64"},{"name":"f64"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"exppow_P","","This function computes tthe cumulative distribution functions P(x), Q(x) for the exponential power distribution with parameters a and b.",null,{"inputs":[{"name":"f64"},{"name":"f64"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"exppow_Q","","This function computes tthe cumulative distribution functions P(x), Q(x) for the exponential power distribution with parameters a and b.",null,{"inputs":[{"name":"f64"},{"name":"f64"},{"name":"f64"}],"output":{"name":"f64"}}],[0,"f_distribution","rgsl::randist","The F-distribution arises in statistics. If Y_1 and Y_2 are chi-squared deviates with \\nu_1 and \\nu_2 degrees of freedom then the ratio,",null,null],[5,"fdist","rgsl::randist::f_distribution","This function returns a random variate from the F-distribution with degrees of freedom nu1 and nu2. The distribution function is,",null,{"inputs":[{"name":"rng"},{"name":"f64"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"fdist_pdf","","This function computes the cumulative distribution functions P(x), Q(x) and their inverses for the F-distribution with nu1 and nu2 degrees of freedom.",null,{"inputs":[{"name":"f64"},{"name":"f64"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"fdist_P","","This function computes the cumulative distribution functions P(x), Q(x) and their inverses for the F-distribution with nu1 and nu2 degrees of freedom.",null,{"inputs":[{"name":"f64"},{"name":"f64"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"fdist_Q","","This function computes the cumulative distribution functions P(x), Q(x) and their inverses for the F-distribution with nu1 and nu2 degrees of freedom.",null,{"inputs":[{"name":"f64"},{"name":"f64"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"fdist_Pinv","","This function computes the cumulative distribution functions P(x), Q(x) and their inverses for the F-distribution with nu1 and nu2 degrees of freedom.",null,{"inputs":[{"name":"f64"},{"name":"f64"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"fdist_Qinv","","This function computes the cumulative distribution functions P(x), Q(x) and their inverses for the F-distribution with nu1 and nu2 degrees of freedom.",null,{"inputs":[{"name":"f64"},{"name":"f64"},{"name":"f64"}],"output":{"name":"f64"}}],[0,"flat","rgsl::randist","",null,null],[5,"flat","rgsl::randist::flat","This function returns a random variate from the flat (uniform) distribution from a to b. The distribution is,",null,{"inputs":[{"name":"rng"},{"name":"f64"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"flat_pdf","","This function computes the probability density p(x) at x for a uniform distribution from a to b, using the formula given above.",null,{"inputs":[{"name":"f64"},{"name":"f64"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"flat_P","","This function computes the cumulative distribution functions P(x), Q(x) and their inverses for a uniform distribution from a to b.",null,{"inputs":[{"name":"f64"},{"name":"f64"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"flat_Q","","This function computes the cumulative distribution functions P(x), Q(x) and their inverses for a uniform distribution from a to b.",null,{"inputs":[{"name":"f64"},{"name":"f64"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"flat_Pinv","","This function computes the cumulative distribution functions P(x), Q(x) and their inverses for a uniform distribution from a to b.",null,{"inputs":[{"name":"f64"},{"name":"f64"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"flat_Qinv","","This function computes the cumulative distribution functions P(x), Q(x) and their inverses for a uniform distribution from a to b.",null,{"inputs":[{"name":"f64"},{"name":"f64"},{"name":"f64"}],"output":{"name":"f64"}}],[0,"gamma","rgsl::randist","",null,null],[5,"gamma","rgsl::randist::gamma","This function returns a random variate from the gamma distribution. The distribution function is,",null,{"inputs":[{"name":"rng"},{"name":"f64"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"gamma_knuth","","This function returns a gamma variate using the algorithms from Knuth (vol 2).",null,{"inputs":[{"name":"rng"},{"name":"f64"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"gamma_pdf","","This function computes the probability density p(x) at x for a gamma distribution with parameters a and b, using the formula given above.",null,{"inputs":[{"name":"f64"},{"name":"f64"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"gamma_P","","This function computes This function computes the probability density p(x) at x for a gamma distribution with parameters a and b, using the formula given above.",null,{"inputs":[{"name":"f64"},{"name":"f64"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"gamma_Q","","This function computes This function computes the probability density p(x) at x for a gamma distribution with parameters a and b, using the formula given above.",null,{"inputs":[{"name":"f64"},{"name":"f64"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"gamma_Pinv","","This function computes This function computes the probability density p(x) at x for a gamma distribution with parameters a and b, using the formula given above.",null,{"inputs":[{"name":"f64"},{"name":"f64"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"gamma_Qinv","","This function computes This function computes the probability density p(x) at x for a gamma distribution with parameters a and b, using the formula given above.",null,{"inputs":[{"name":"f64"},{"name":"f64"},{"name":"f64"}],"output":{"name":"f64"}}],[0,"gaussian","rgsl::randist","",null,null],[5,"gaussian","rgsl::randist::gaussian","This function returns a Gaussian random variate, with mean zero and standard deviation sigma.\nThe probability distribution for Gaussian random variates is,",null,{"inputs":[{"name":"rng"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"gaussian_pdf","","This function computes the probability density p(x) at x for a Gaussian distribution with standard deviation sigma, using the formula given above.",null,{"inputs":[{"name":"f64"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"gaussian_ziggurat","","",null,{"inputs":[{"name":"rng"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"gaussian_ratio_method","","This function computes a Gaussian random variate using the alternative Marsaglia-Tsang ziggurat and Kinderman-Monahan-Leva ratio methods.\nThe Ziggurat algorithm is the fastest available algorithm in most cases.",null,{"inputs":[{"name":"rng"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"ugaussian","","This function computes results for the unit Gaussian distribution.\nThey are equivalent to the functions above with a standard deviation of one, sigma = 1.",null,{"inputs":[{"name":"rng"}],"output":{"name":"f64"}}],[5,"ugaussian_pdf","","This function computes results for the unit Gaussian distribution.\nThey are equivalent to the functions above with a standard deviation of one, sigma = 1.",null,{"inputs":[{"name":"f64"}],"output":{"name":"f64"}}],[5,"ugaussian_ratio_method","","This function computes results for the unit Gaussian distribution.\nThey are equivalent to the functions above with a standard deviation of one, sigma = 1.",null,{"inputs":[{"name":"rng"}],"output":{"name":"f64"}}],[5,"gaussian_P","","This function computes the cumulative distribution functions P(x), Q(x) and their inverses for the Gaussian distribution with standard deviation sigma.",null,{"inputs":[{"name":"f64"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"gaussian_Q","","This function computes the cumulative distribution functions P(x), Q(x) and their inverses for the Gaussian distribution with standard deviation sigma.",null,{"inputs":[{"name":"f64"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"gaussian_Pinv","","This function computes the cumulative distribution functions P(x), Q(x) and their inverses for the Gaussian distribution with standard deviation sigma.",null,{"inputs":[{"name":"f64"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"gaussian_Qinv","","This function computes the cumulative distribution functions P(x), Q(x) and their inverses for the Gaussian distribution with standard deviation sigma.",null,{"inputs":[{"name":"f64"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"ugaussian_P","","This function computes the cumulative distribution functions P(x), Q(x) and their inverses for the unit Gaussian distribution.",null,{"inputs":[{"name":"f64"}],"output":{"name":"f64"}}],[5,"ugaussian_Q","","This function computes the cumulative distribution functions P(x), Q(x) and their inverses for the unit Gaussian distribution.",null,{"inputs":[{"name":"f64"}],"output":{"name":"f64"}}],[5,"ugaussian_Pinv","","This function computes the cumulative distribution functions P(x), Q(x) and their inverses for the unit Gaussian distribution.",null,{"inputs":[{"name":"f64"}],"output":{"name":"f64"}}],[5,"ugaussian_Qinv","","This function computes the cumulative distribution functions P(x), Q(x) and their inverses for the unit Gaussian distribution.",null,{"inputs":[{"name":"f64"}],"output":{"name":"f64"}}],[0,"gaussian_tail","rgsl::randist","",null,null],[5,"gaussian_tail","rgsl::randist::gaussian_tail","This function provides random variates from the upper tail of a Gaussian distribution with standard deviation sigma.\nThe values returned are larger than the lower limit a, which must be positive. The method is based on Marsaglia’s famous rectangle-wedge-tail algorithm (Ann. Math. Stat. 32, 894–899 (1961)), with this aspect explained in Knuth, v2, 3rd ed, p139,586 (exercise 11).",null,{"inputs":[{"name":"rng"},{"name":"f64"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"gaussian_tail_pdf","","This function computes the probability density p(x) at x for a Gaussian tail distribution with standard deviation sigma and lower limit a, using the formula given above.",null,{"inputs":[{"name":"f64"},{"name":"f64"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"ugaussian_tail","","This function computes results for the tail of a unit Gaussian distribution. They are equivalent to the functions above with a standard deviation of one, sigma = 1.",null,{"inputs":[{"name":"rng"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"ugaussian_tail_pdf","","This function computes results for the tail of a unit Gaussian distribution. They are equivalent to the functions above with a standard deviation of one, sigma = 1.",null,{"inputs":[{"name":"f64"},{"name":"f64"}],"output":{"name":"f64"}}],[0,"geometric","rgsl::randist","",null,null],[5,"geometric","rgsl::randist::geometric","This function returns a random integer from the geometric distribution, the number of independent trials with probability p until the first success.\nThe probability distribution for geometric variates is,",null,{"inputs":[{"name":"rng"},{"name":"f64"}],"output":{"name":"u32"}}],[5,"geometric_pdf","","This function computes the probability p(k) of obtaining k from a geometric distribution with probability parameter p, using the formula given above.",null,{"inputs":[{"name":"u32"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"geometric_P","","This function computes the cumulative distribution functions P(k), Q(k) for the geometric distribution with parameter p.",null,{"inputs":[{"name":"u32"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"geometric_Q","","This function computes the cumulative distribution functions P(k), Q(k) for the geometric distribution with parameter p.",null,{"inputs":[{"name":"u32"},{"name":"f64"}],"output":{"name":"f64"}}],[0,"gumbel","rgsl::randist","",null,null],[0,"type_1","rgsl::randist::gumbel","",null,null],[5,"gumbel1","rgsl::randist::gumbel::type_1","This function returns a random variate from the Type-1 Gumbel distribution. The Type-1 Gumbel distribution function is,",null,{"inputs":[{"name":"rng"},{"name":"f64"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"gumbel1_pdf","","This function computes the probability density p(x) at x for a Type-1 Gumbel distribution with parameters a and b, using the formula given above.",null,{"inputs":[{"name":"f64"},{"name":"f64"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"gumbel1_P","","This function computes the cumulative distribution functions P(x), Q(x) and their inverses for the Type-1 Gumbel distribution with parameters a and b.",null,{"inputs":[{"name":"f64"},{"name":"f64"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"gumbel1_Q","","This function computes the cumulative distribution functions P(x), Q(x) and their inverses for the Type-1 Gumbel distribution with parameters a and b.",null,{"inputs":[{"name":"f64"},{"name":"f64"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"gumbel1_Pinv","","This function computes the cumulative distribution functions P(x), Q(x) and their inverses for the Type-1 Gumbel distribution with parameters a and b.",null,{"inputs":[{"name":"f64"},{"name":"f64"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"gumbel1_Qinv","","This function computes the cumulative distribution functions P(x), Q(x) and their inverses for the Type-1 Gumbel distribution with parameters a and b.",null,{"inputs":[{"name":"f64"},{"name":"f64"},{"name":"f64"}],"output":{"name":"f64"}}],[0,"type_2","rgsl::randist::gumbel","",null,null],[5,"gumbel2","rgsl::randist::gumbel::type_2","This function returns a random variate from the Type-2 Gumbel distribution. The Type-2 Gumbel distribution function is,",null,{"inputs":[{"name":"rng"},{"name":"f64"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"gumbel2_pdf","","This function computes the probability density p(x) at x for a Type-2 Gumbel distribution with parameters a and b, using the formula given above.",null,{"inputs":[{"name":"f64"},{"name":"f64"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"gumbel2_P","","This function computes the cumulative distribution functions P(x), Q(x) and their inverses for the Type-2 Gumbel distribution with parameters a and b.",null,{"inputs":[{"name":"f64"},{"name":"f64"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"gumbel2_Q","","This function computes the cumulative distribution functions P(x), Q(x) and their inverses for the Type-2 Gumbel distribution with parameters a and b.",null,{"inputs":[{"name":"f64"},{"name":"f64"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"gumbel2_Pinv","","This function computes the cumulative distribution functions P(x), Q(x) and their inverses for the Type-2 Gumbel distribution with parameters a and b.",null,{"inputs":[{"name":"f64"},{"name":"f64"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"gumbel2_Qinv","","This function computes the cumulative distribution functions P(x), Q(x) and their inverses for the Type-2 Gumbel distribution with parameters a and b.",null,{"inputs":[{"name":"f64"},{"name":"f64"},{"name":"f64"}],"output":{"name":"f64"}}],[0,"hypergeometric","rgsl::randist","",null,null],[5,"hypergeometric","rgsl::randist::hypergeometric","This function returns a random integer from the hypergeometric distribution. The probability distribution for hypergeometric random variates is,",null,{"inputs":[{"name":"rng"},{"name":"u32"},{"name":"u32"},{"name":"u32"}],"output":{"name":"u32"}}],[5,"hypergeometric_pdf","","This function computes the probability p(k) of obtaining k from a hypergeometric distribution with parameters n1, n2, t, using the formula given above.",null,{"inputs":[{"name":"u32"},{"name":"u32"},{"name":"u32"},{"name":"u32"}],"output":{"name":"f64"}}],[5,"hypergeometric_P","","This function computes the cumulative distribution functions P(k), Q(k) for the hypergeometric distribution with parameters n1, n2 and t.",null,{"inputs":[{"name":"u32"},{"name":"u32"},{"name":"u32"},{"name":"u32"}],"output":{"name":"f64"}}],[5,"hypergeometric_Q","","This function computes the cumulative distribution functions P(k), Q(k) for the hypergeometric distribution with parameters n1, n2 and t.",null,{"inputs":[{"name":"u32"},{"name":"u32"},{"name":"u32"},{"name":"u32"}],"output":{"name":"f64"}}],[0,"landau","rgsl::randist","",null,null],[5,"landau","rgsl::randist::landau","This function returns a random variate from the Landau distribution. The probability distribution for Landau random variates is defined analytically by the complex integral,",null,{"inputs":[{"name":"rng"}],"output":{"name":"f64"}}],[5,"landau_pdf","","This function computes the probability density p(x) at x for the Landau distribution using an approximation to the formula given above.",null,{"inputs":[{"name":"f64"}],"output":{"name":"f64"}}],[0,"laplace","rgsl::randist","",null,null],[5,"laplace","rgsl::randist::laplace","This function returns a random variate from the Laplace distribution with width a. The distribution is,",null,{"inputs":[{"name":"rng"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"laplace_pdf","","This function computes the probability density p(x) at x for a Laplace distribution with width a, using the formula given above.",null,{"inputs":[{"name":"f64"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"laplace_P","","This function computes the cumulative distribution functions P(x), Q(x) and their inverses for the Laplace distribution with width a.",null,{"inputs":[{"name":"f64"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"laplace_Q","","This function computes the cumulative distribution functions P(x), Q(x) and their inverses for the Laplace distribution with width a.",null,{"inputs":[{"name":"f64"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"laplace_Pinv","","This function computes the cumulative distribution functions P(x), Q(x) and their inverses for the Laplace distribution with width a.",null,{"inputs":[{"name":"f64"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"laplace_Qinv","","This function computes the cumulative distribution functions P(x), Q(x) and their inverses for the Laplace distribution with width a.",null,{"inputs":[{"name":"f64"},{"name":"f64"}],"output":{"name":"f64"}}],[0,"levy_alpha","rgsl::randist","",null,null],[5,"levy","rgsl::randist::levy_alpha","This function returns a random variate from the Levy symmetric stable distribution with scale c and exponent alpha. The symmetric stable probability distribution is defined by a Fourier transform,",null,{"inputs":[{"name":"rng"},{"name":"f64"},{"name":"f64"}],"output":{"name":"f64"}}],[0,"levy_skew","rgsl::randist","",null,null],[5,"levy_skew","rgsl::randist::levy_skew","This function returns a random variate from the Levy skew stable distribution with scale c, exponent alpha and skewness parameter beta.\nThe skewness parameter must lie in the range [-1,1]. The Levy skew stable probability distribution is defined by a Fourier transform,",null,{"inputs":[{"name":"rng"},{"name":"f64"},{"name":"f64"},{"name":"f64"}],"output":{"name":"f64"}}],[0,"logarithmic","rgsl::randist","",null,null],[5,"logarithmic","rgsl::randist::logarithmic","This function returns a random integer from the logarithmic distribution. The probability distribution for logarithmic random variates is,",null,{"inputs":[{"name":"rng"},{"name":"f64"}],"output":{"name":"u32"}}],[5,"logarithmic_pdf","","This function computes the probability p(k) of obtaining k from a logarithmic distribution with probability parameter p, using the formula given above.",null,{"inputs":[{"name":"u32"},{"name":"f64"}],"output":{"name":"f64"}}],[0,"logistic","rgsl::randist","",null,null],[5,"logistic","rgsl::randist::logistic","This function returns a random variate from the logistic distribution. The distribution function is,",null,{"inputs":[{"name":"rng"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"logistic_pdf","","This function computes the probability density p(x) at x for a logistic distribution with scale parameter a, using the formula given above.",null,{"inputs":[{"name":"f64"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"logistic_P","","This function computes the cumulative distribution functions P(x), Q(x) and their inverses for the logistic distribution with scale parameter a.",null,{"inputs":[{"name":"f64"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"logistic_Q","","This function computes the cumulative distribution functions P(x), Q(x) and their inverses for the logistic distribution with scale parameter a.",null,{"inputs":[{"name":"f64"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"logistic_Pinv","","This function computes the cumulative distribution functions P(x), Q(x) and their inverses for the logistic distribution with scale parameter a.",null,{"inputs":[{"name":"f64"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"logistic_Qinv","","This function computes the cumulative distribution functions P(x), Q(x) and their inverses for the logistic distribution with scale parameter a.",null,{"inputs":[{"name":"f64"},{"name":"f64"}],"output":{"name":"f64"}}],[0,"lognormal","rgsl::randist","",null,null],[5,"lognormal","rgsl::randist::lognormal","This function returns a random variate from the lognormal distribution. The distribution function is,",null,{"inputs":[{"name":"rng"},{"name":"f64"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"lognormal_pdf","","This function computes the probability density p(x) at x for a lognormal distribution with parameters zeta and sigma, using the formula given above.",null,{"inputs":[{"name":"f64"},{"name":"f64"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"lognormal_P","","This function computes the cumulative distribution functions P(x), Q(x) and their inverses for the lognormal distribution with parameters zeta and sigma.",null,{"inputs":[{"name":"f64"},{"name":"f64"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"lognormal_Q","","This function computes the cumulative distribution functions P(x), Q(x) and their inverses for the lognormal distribution with parameters zeta and sigma.",null,{"inputs":[{"name":"f64"},{"name":"f64"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"lognormal_Pinv","","This function computes the cumulative distribution functions P(x), Q(x) and their inverses for the lognormal distribution with parameters zeta and sigma.",null,{"inputs":[{"name":"f64"},{"name":"f64"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"lognormal_Qinv","","This function computes the cumulative distribution functions P(x), Q(x) and their inverses for the lognormal distribution with parameters zeta and sigma.",null,{"inputs":[{"name":"f64"},{"name":"f64"},{"name":"f64"}],"output":{"name":"f64"}}],[0,"multinomial","rgsl::randist","",null,null],[5,"multinomial","rgsl::randist::multinomial","This function computes a random sample n[] from the multinomial distribution formed by N trials from an underlying distribution p[K]. The distribution function for n[] is,",null,null],[5,"multinomial_pdf","","This function computes the probability P(n_1, n_2, ..., n_K) of sampling n[K] from a multinomial distribution with parameters p[K], using the formula given above.",null,null],[5,"multinomial_lnpdf","","This function returns the logarithm of the probability for the multinomial distribution P(n_1, n_2, ..., n_K) with parameters p[K].",null,null],[0,"negative_binomial","rgsl::randist","",null,null],[5,"negative_binomial","rgsl::randist::negative_binomial","This function returns a random integer from the negative binomial distribution, the number of failures occurring before n successes in independent trials with\nprobability p of success. The probability distribution for negative binomial variates is,",null,{"inputs":[{"name":"rng"},{"name":"f64"},{"name":"f64"}],"output":{"name":"u32"}}],[5,"negative_binomial_pdf","","This function computes the probability p(k) of obtaining k from a negative binomial distribution with parameters p and n, using the formula given above.",null,{"inputs":[{"name":"u32"},{"name":"f64"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"negative_binomial_P","","This function computes the cumulative distribution functions P(k), Q(k) for the negative binomial distribution with parameters p and n.",null,{"inputs":[{"name":"u32"},{"name":"f64"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"negative_binomial_Q","","This function computes the cumulative distribution functions P(k), Q(k) for the negative binomial distribution with parameters p and n.",null,{"inputs":[{"name":"u32"},{"name":"f64"},{"name":"f64"}],"output":{"name":"f64"}}],[0,"pareto","rgsl::randist","",null,null],[5,"pareto","rgsl::randist::pareto","This function returns a random variate from the Pareto distribution of order a. The distribution function is,",null,{"inputs":[{"name":"rng"},{"name":"f64"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"pareto_pdf","","This function computes the probability density p(x) at x for a Pareto distribution with exponent a and scale b, using the formula given above.",null,{"inputs":[{"name":"f64"},{"name":"f64"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"pareto_P","","This function computes the cumulative distribution functions P(x), Q(x) and their inverses for the Pareto distribution with exponent a and scale b.",null,{"inputs":[{"name":"f64"},{"name":"f64"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"pareto_Q","","This function computes the cumulative distribution functions P(x), Q(x) and their inverses for the Pareto distribution with exponent a and scale b.",null,{"inputs":[{"name":"f64"},{"name":"f64"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"pareto_Pinv","","This function computes the cumulative distribution functions P(x), Q(x) and their inverses for the Pareto distribution with exponent a and scale b.",null,{"inputs":[{"name":"f64"},{"name":"f64"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"pareto_Qinv","","This function computes the cumulative distribution functions P(x), Q(x) and their inverses for the Pareto distribution with exponent a and scale b.",null,{"inputs":[{"name":"f64"},{"name":"f64"},{"name":"f64"}],"output":{"name":"f64"}}],[0,"pascal","rgsl::randist","",null,null],[5,"pascal","rgsl::randist::pascal","This function returns a random integer from the Pascal distribution. The Pascal distribution is simply a negative binomial distribution with an integer value of n.",null,{"inputs":[{"name":"rng"},{"name":"f64"},{"name":"u32"}],"output":{"name":"u32"}}],[5,"pascal_pdf","","This function computes the probability p(k) of obtaining k from a Pascal distribution with parameters p and n, using the formula given above.",null,{"inputs":[{"name":"u32"},{"name":"f64"},{"name":"u32"}],"output":{"name":"f64"}}],[5,"pascal_P","","This function computes the cumulative distribution functions P(k), Q(k) for the Pascal distribution with parameters p and n.",null,{"inputs":[{"name":"u32"},{"name":"f64"},{"name":"u32"}],"output":{"name":"f64"}}],[5,"pascal_Q","","This function computes the cumulative distribution functions P(k), Q(k) for the Pascal distribution with parameters p and n.",null,{"inputs":[{"name":"u32"},{"name":"f64"},{"name":"u32"}],"output":{"name":"f64"}}],[0,"poisson","rgsl::randist","",null,null],[5,"poisson","rgsl::randist::poisson","This function returns a random integer from the Poisson distribution with mean mu. The probability distribution for Poisson variates is,",null,{"inputs":[{"name":"rng"},{"name":"f64"}],"output":{"name":"u32"}}],[5,"poisson_pdf","","This function computes the probability p(k) of obtaining k from a Poisson distribution with mean mu, using the formula given above.",null,{"inputs":[{"name":"u32"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"poisson_P","","This function computes the cumulative distribution functions P(k), Q(k) for the Poisson distribution with parameter mu.",null,{"inputs":[{"name":"u32"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"poisson_Q","","This function computes the cumulative distribution functions P(k), Q(k) for the Poisson distribution with parameter mu.",null,{"inputs":[{"name":"u32"},{"name":"f64"}],"output":{"name":"f64"}}],[0,"rayleigh","rgsl::randist","",null,null],[5,"rayleigh","rgsl::randist::rayleigh","This function returns a random variate from the Rayleigh distribution with scale parameter sigma. The distribution is,",null,{"inputs":[{"name":"rng"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"rayleigh_pdf","","This function computes the probability density p(x) at x for a Rayleigh distribution with scale parameter sigma, using the formula given above.",null,{"inputs":[{"name":"f64"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"rayleigh_P","","This function computes the cumulative distribution functions P(x), Q(x) and their inverses for the Rayleigh distribution with scale parameter sigma.",null,{"inputs":[{"name":"f64"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"rayleigh_Q","","This function computes the cumulative distribution functions P(x), Q(x) and their inverses for the Rayleigh distribution with scale parameter sigma.",null,{"inputs":[{"name":"f64"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"rayleigh_Pinv","","This function computes the cumulative distribution functions P(x), Q(x) and their inverses for the Rayleigh distribution with scale parameter sigma.",null,{"inputs":[{"name":"f64"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"rayleigh_Qinv","","This function computes the cumulative distribution functions P(x), Q(x) and their inverses for the Rayleigh distribution with scale parameter sigma.",null,{"inputs":[{"name":"f64"},{"name":"f64"}],"output":{"name":"f64"}}],[0,"rayleigh_tail","rgsl::randist","",null,null],[5,"rayleigh_tail","rgsl::randist::rayleigh_tail","This function returns a random variate from the tail of the Rayleigh distribution with scale parameter sigma and a lower limit of a. The distribution is,",null,{"inputs":[{"name":"rng"},{"name":"f64"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"rayleigh_tail_pdf","","This function computes the probability density p(x) at x for a Rayleigh tail distribution with scale parameter sigma and lower limit a, using the formula given above.",null,{"inputs":[{"name":"f64"},{"name":"f64"},{"name":"f64"}],"output":{"name":"f64"}}],[0,"shuffling_sampling","rgsl::randist","The following functions allow the shuffling and sampling of a set of objects.\nThe algorithms rely on a random number generator as a source of randomness and a poor quality generator can lead to correlations in the output.\nIn particular it is important to avoid generators with a short period. For more information see Knuth, v2, 3rd ed, Section 3.4.2, “Random Sampling and Shuffling”.",null,null],[5,"shuffle","rgsl::randist::shuffling_sampling","This function randomly shuffles the order of n objects, each of size size, stored in the array base[0..n-1]. The output of the random number generator r is used to\nproduce the permutation. The algorithm generates all possible n! permutations with equal probability, assuming a perfect source of random numbers.",null,null],[5,"choose","","This function fills the array dest[k] with k objects taken randomly from the n elements of the array src[0..n-1]. The objects are each of size size.\nThe output of the random number generator r is used to make the selection. The algorithm ensures all possible samples are equally likely, assuming a perfect source of randomness.",null,null],[5,"sample","","This function is like gsl_ran_choose but samples k items from the original array of n items src with replacement, so the same object can appear more\nthan once in the output sequence dest. There is no requirement that k be less than n in this case.",null,null],[0,"spherical_vector","rgsl::randist","The spherical distributions generate random vectors, located on a spherical surface.\nThey can be used as random directions, for example in the steps of a random walk.",null,null],[5,"dir_2d","rgsl::randist::spherical_vector","This function returns a random direction vector v = (x,y) in two dimensions. The vector is normalized such that |v|^2 = x^2 + y^2 = 1.\nThe obvious way to do this is to take a uniform random number between 0 and 2\\pi and let x and y be the sine and cosine respectively.\nTwo trig functions would have been expensive in the old days, but with modern hardware implementations, this is sometimes the fastest way to go.\nThis is the case for the Pentium (but not the case for the Sun Sparcstation).\nOne can avoid the trig evaluations by choosing x and y in the interior of a unit circle (choose them at random from the interior of the enclosing square,\nand then reject those that are outside the unit circle), and then dividing by \\sqrt{x^2 + y^2}. A much cleverer approach, attributed to von Neumann\n(See Knuth, v2, 3rd ed, p140, exercise 23), requires neither trig nor a square root. In this approach, u and v are chosen at random from the interior of\na unit circle, and then x=(u^2-v^2)/(u^2+v^2) and y=2uv/(u^2+v^2).",null,{"inputs":[{"name":"rng"},{"name":"f64"},{"name":"f64"}],"output":null}],[5,"dir_2d_trig_method","","This function returns a random direction vector v = (x,y) in two dimensions. The vector is normalized such that |v|^2 = x^2 + y^2 = 1.\nThe obvious way to do this is to take a uniform random number between 0 and 2\\pi and let x and y be the sine and cosine respectively.\nTwo trig functions would have been expensive in the old days, but with modern hardware implementations, this is sometimes the fastest way to go.\nThis is the case for the Pentium (but not the case for the Sun Sparcstation).\nOne can avoid the trig evaluations by choosing x and y in the interior of a unit circle (choose them at random from the interior of the enclosing square,\nand then reject those that are outside the unit circle), and then dividing by \\sqrt{x^2 + y^2}. A much cleverer approach, attributed to von Neumann\n(See Knuth, v2, 3rd ed, p140, exercise 23), requires neither trig nor a square root. In this approach, u and v are chosen at random from the interior of\na unit circle, and then x=(u^2-v^2)/(u^2+v^2) and y=2uv/(u^2+v^2).",null,{"inputs":[{"name":"rng"},{"name":"f64"},{"name":"f64"}],"output":null}],[5,"dir_3d","","This function returns a random direction vector v = (x,y,z) in three dimensions. The vector is normalized such that |v|^2 = x^2 + y^2 + z^2 = 1.\nThe method employed is due to Robert E. Knop (CACM 13, 326 (1970)), and explained in Knuth, v2, 3rd ed, p136. It uses the surprising fact that the\ndistribution projected along any axis is actually uniform (this is only true for 3 dimensions).",null,{"inputs":[{"name":"rng"},{"name":"f64"},{"name":"f64"},{"name":"f64"}],"output":null}],[5,"dir_nd","","This function returns a random direction vector v = (x_1,x_2,...,x_n) in n dimensions. The vector is normalized such that |v|^2 = x_1^2 + x_2^2 + ... + x_n^2 = 1.\nThe method uses the fact that a multivariate Gaussian distribution is spherically symmetric. Each component is generated to have a Gaussian distribution, and then\nthe components are normalized. The method is described by Knuth, v2, 3rd ed, p135–136, and attributed to G. W. Brown, Modern Mathematics for the Engineer (1956).",null,null],[0,"t_distribution","rgsl::randist","The t-distribution arises in statistics. If Y_1 has a normal distribution and Y_2 has a chi-squared distribution with \\nu degrees of freedom then the ratio,",null,null],[5,"tdist","rgsl::randist::t_distribution","This function returns a random variate from the t-distribution. The distribution function is,",null,{"inputs":[{"name":"rng"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"tdist_pdf","","This function computes the probability density p(x) at x for a t-distribution with nu degrees of freedom, using the formula given above.",null,{"inputs":[{"name":"f64"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"tdist_P","","This function computes the cumulative distribution functions P(x), Q(x) and their inverses for the t-distribution with nu degrees of freedom.",null,{"inputs":[{"name":"f64"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"tdist_Q","","This function computes the cumulative distribution functions P(x), Q(x) and their inverses for the t-distribution with nu degrees of freedom.",null,{"inputs":[{"name":"f64"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"tdist_Pinv","","This function computes the cumulative distribution functions P(x), Q(x) and their inverses for the t-distribution with nu degrees of freedom.",null,{"inputs":[{"name":"f64"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"tdist_Qinv","","This function computes the cumulative distribution functions P(x), Q(x) and their inverses for the t-distribution with nu degrees of freedom.",null,{"inputs":[{"name":"f64"},{"name":"f64"}],"output":{"name":"f64"}}],[0,"weibull","rgsl::randist","",null,null],[5,"weibull","rgsl::randist::weibull","This function returns a random variate from the Weibull distribution. The distribution function is,",null,{"inputs":[{"name":"rng"},{"name":"f64"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"weibull_pdf","","This function computes the probability density p(x) at x for a Weibull distribution with scale a and exponent b, using the formula given above.",null,{"inputs":[{"name":"f64"},{"name":"f64"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"weibull_P","","This function computes the cumulative distribution functions P(x), Q(x) and their inverses for the Weibull distribution with scale a and exponent b.",null,{"inputs":[{"name":"f64"},{"name":"f64"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"weibull_Q","","This function computes the cumulative distribution functions P(x), Q(x) and their inverses for the Weibull distribution with scale a and exponent b.",null,{"inputs":[{"name":"f64"},{"name":"f64"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"weibull_Pinv","","This function computes the cumulative distribution functions P(x), Q(x) and their inverses for the Weibull distribution with scale a and exponent b.",null,{"inputs":[{"name":"f64"},{"name":"f64"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"weibull_Qinv","","This function computes the cumulative distribution functions P(x), Q(x) and their inverses for the Weibull distribution with scale a and exponent b.",null,{"inputs":[{"name":"f64"},{"name":"f64"},{"name":"f64"}],"output":{"name":"f64"}}],[0,"types","rgsl","",null,null],[0,"basis_spline","rgsl::types","B-splines are commonly used as basis functions to fit smoothing curves to large data sets.\n To do this, the abscissa axis is broken up into some number of intervals, where the endpoints of each interval are called breakpoints.\n These breakpoints are then converted to knots by imposing various continuity and smoothness conditions at each interface. Given a nondecreasing knot vector t = {t_0, t_1, …, t_{n+k-1}}, the n basis splines of order k are defined by",null,null],[3,"BSpLineWorkspace","rgsl::types::basis_spline","",null,null],[3,"BSpLineDerivWorkspace","","",null,null],[11,"new","","This function allocates a workspace for computing B-splines of order k.\nThe number of breakpoints is given by nbreak. This leads to n = nbreak + k - 2 basis functions.\nCubic B-splines are specified by k = 4. The size of the workspace is O(5k + nbreak).",9,{"inputs":[{"name":"usize"},{"name":"usize"}],"output":{"name":"option"}}],[11,"knots","","This function computes the knots associated with the given breakpoints and stores them internally in w->knots.",9,null],[11,"knots_uniform","","This function assumes uniformly spaced breakpoints on [a,b] and constructs the corresponding knot vector using the previously specified nbreak parameter.\nThe knots are stored in w->knots.",9,null],[11,"eval","","This function evaluates all B-spline basis functions at the position x and stores them in the vector B, so that the i-th element is B_i(x).\nThe vector B must be of length n = nbreak + k - 2. This value may also be obtained by calling gsl_bspline_ncoeffs.\nComputing all the basis functions at once is more efficient than computing them individually, due to the nature of the defining recurrence relation.",9,null],[11,"eval_non_zero","","This function evaluates all potentially nonzero B-spline basis functions at the position x and stores them in the vector Bk, so that the i-th element is B_(istart+i)(x).\nThe last element of Bk is B_(iend)(x). The vector Bk must be of length k.\nBy returning only the nonzero basis functions, this function allows quantities involving linear combinations of the B_i(x) to be computed without unnecessary terms (such linear combinations occur, for example, when evaluating an interpolated function).",9,null],[11,"ncoeffs","","This function returns the number of B-spline coefficients given by n = nbreak + k - 2.",9,null],[11,"greville_abscissa","","The Greville abscissae are defined to be the mean location of k-1 consecutive knots in the knot vector for each basis spline function of order k.\nWith the first and last knots in the gsl_bspline_workspace knot vector excluded, there are gsl_bspline_ncoeffs Greville abscissae for any given B-spline basis.\nThese values are often used in B-spline collocation applications and may also be called Marsden-Schoenberg points.",9,null],[11,"drop","","",9,null],[11,"new","","This function allocates a workspace for computing the derivatives of a B-spline basis function of order k.\nThe size of the workspace is O(2k^2).",10,{"inputs":[{"name":"usize"}],"output":{"name":"option"}}],[11,"eval","","This function evaluates all B-spline basis function derivatives of orders 0 through nderiv (inclusive) at the position x and stores them in the matrix dB.\nThe (i,j)-th element of dB is d^jB_i(x)/dx^j. The matrix dB must be of size n = nbreak + k - 2 by nderiv + 1.\nThe value n may also be obtained by calling gsl_bspline_ncoeffs. Note that function evaluations are included as the zeroth order derivatives in dB.\nComputing all the basis function derivatives at once is more efficient than computing them individually, due to the nature of the defining recurrence relation.",10,null],[11,"eval_non_zero","","This function evaluates all potentially nonzero B-spline basis function derivatives of orders 0 through nderiv (inclusive) at the position x and stores them in the matrix dB.\nThe (i,j)-th element of dB is d^j/dx^j B_(istart+i)(x). The last row of dB contains d^j/dx^j B_(iend)(x).\nThe matrix dB must be of size k by at least nderiv + 1. Note that function evaluations are included as the zeroth order derivatives in dB.\nBy returning only the nonzero basis functions, this function allows quantities involving linear combinations of the B_i(x) and their derivatives to be computed without unnecessary terms.",10,null],[11,"drop","","",10,null],[0,"chebyshev","rgsl::types","#Chebyshev Approximations",null,null],[3,"ChebSeries","rgsl::types::chebyshev","",null,null],[11,"new","","",11,{"inputs":[{"name":"usize"}],"output":{"name":"option"}}],[11,"init","","This function computes the Chebyshev approximation cs for the function f over the range (a,b) to the previously specified order. The\ncomputation of the Chebyshev approximation is an O(n^2) process, and requires n function evaluations.",11,null],[11,"order","","This function returns the order of Chebyshev series cs.",11,null],[11,"size","","This function returns the size of the Chebyshev coefficient array c[] for the Chebyshev series cs.",11,null],[11,"as_slice","","This function returns a pointer to the coefficient array c[] location in memory for the Chebyshev series cs.",11,null],[11,"as_mut_slice","","This function returns a pointer to the coefficient array c[] location in memory for the Chebyshev series cs.",11,null],[11,"eval","","This function evaluates the Chebyshev series cs at a given point x.",11,null],[11,"eval_err","","This function computes the Chebyshev series cs at a given point x, estimating both the series result and its absolute error abserr.\nThe error estimate is made from the first neglected term in the series.",11,null],[11,"eval_n","","This function evaluates the Chebyshev series cs at a given point x, to (at most) the given order order.",11,null],[11,"eval_n_err","","This function evaluates a Chebyshev series cs at a given point x, estimating both the series result and its absolute error abserr, to\n(at most) the given order order. The error estimate is made from the first neglected term in the series.",11,null],[11,"calc_deriv","","This function computes the derivative of the series cs, storing the derivative coefficients in the previously allocated deriv. The\ntwo series cs and deriv must have been allocated with the same order.",11,null],[11,"calc_integ","","This function computes the integral of the series cs, storing the integral coefficients in the previously allocated integ. The two series\ncs and integ must have been allocated with the same order. The lower limit of the integration is taken to be the left hand end of the range a.",11,null],[11,"drop","","",11,null],[0,"combination","rgsl::types","#Combinations",null,null],[3,"Combination","rgsl::types::combination","",null,null],[11,"new","","This function allocates memory for a new combination with parameters n, k. The combination is not initialized and its elements are\nundefined. Use the function Combination::new_init_first if you want to create a combination which is initialized to the lexicographically\nfirst combination. A null pointer is returned if insufficient memory is available to create the combination.",12,{"inputs":[{"name":"usize"},{"name":"usize"}],"output":{"name":"option"}}],[11,"new_init_first","","This function allocates memory for a new combination with parameters n, k and initializes it to the lexicographically first combination.\nA null pointer is returned if insufficient memory is available to create the combination.",12,{"inputs":[{"name":"usize"},{"name":"usize"}],"output":{"name":"option"}}],[11,"init_first","","This function initializes the combination c to the lexicographically first combination, i.e. (0,1,2,…,k-1).",12,null],[11,"init_last","","This function initializes the combination c to the lexicographically last combination, i.e. (n-k,n-k+1,…,n-1).",12,null],[11,"copy","","This function copies the elements of the combination self into the combination dest. The two combinations must have the same size.",12,null],[11,"get","","This function returns the value of the i-th element of the combination self. If i lies outside the allowed range of 0 to k-1 then the\nerror handler is invoked and 0 is returned.",12,null],[11,"n","","This function returns the range (n) of the combination self.",12,null],[11,"k","","This function returns the number of elements (k) in the combination self.",12,null],[11,"as_slice","","This function returns a pointer to the array of elements in the combination self.",12,null],[11,"as_mut_slice","","This function returns a pointer to the array of elements in the combination self.",12,null],[11,"is_valid","","This function checks that the combination self is valid. The k elements should lie in the range 0 to n-1, with each value occurring\nonce at most and in increasing order.",12,null],[11,"next","","This function advances the combination self to the next combination in lexicographic order and returns Success. If no further combinations\nare available it returns Failure and leaves self unmodified. Starting with the first combination and repeatedly applying this function will\niterate through all possible combinations of a given order.",12,null],[11,"prev","","This function steps backwards from the combination self to the previous combination in lexicographic order, returning Success. If no\nprevious combination is available it returns Failure and leaves self unmodified.",12,null],[11,"drop","","",12,null],[11,"fmt","","",12,null],[0,"complex","rgsl::types","",null,null],[3,"ComplexF64","rgsl::types::complex","",null,null],[12,"data","","",13,null],[3,"ComplexF32","","",null,null],[12,"data","","",14,null],[11,"rect","","This function uses the rectangular Cartesian components (x,y) to return the complex number z = x + i y.",13,{"inputs":[{"name":"f64"},{"name":"f64"}],"output":{"name":"complexf64"}}],[11,"polar","","This function returns the complex number z = r \\exp(i \\theta) = r (\\cos(\\theta) + i \\sin(\\theta)) from the polar representation (r,theta).",13,{"inputs":[{"name":"f64"},{"name":"f64"}],"output":{"name":"complexf64"}}],[11,"arg","","This function returns the argument of the complex number z, \\arg(z), where -\\pi < \\arg(z) <= \\pi.",13,null],[11,"abs","","This function returns the magnitude of the complex number z, |z|.",13,null],[11,"abs2","","This function returns the squared magnitude of the complex number z, |z|^2.",13,null],[11,"logabs","","This function returns the natural logarithm of the magnitude of the complex number z, \\log|z|.\nIt allows an accurate evaluation of \\log|z| when |z| is close to one.\nThe direct evaluation of log(gsl_complex_abs(z)) would lead to a loss of precision in this case.",13,null],[11,"add","","This function returns the sum of the complex numbers a and b, z=a+b.",13,null],[11,"sub","","This function returns the difference of the complex numbers a and b, z=a-b.",13,null],[11,"mul","","This function returns the product of the complex numbers a and b, z=ab.",13,null],[11,"div","","This function returns the quotient of the complex numbers a and b, z=a/b.",13,null],[11,"add_real","","This function returns the sum of the complex number a and the real number x, z=a+x.",13,null],[11,"sub_real","","This function returns the difference of the complex number a and the real number x, z=a-x.",13,null],[11,"mul_real","","This function returns the product of the complex number a and the real number x, z=ax.",13,null],[11,"div_real","","This function returns the quotient of the complex number a and the real number x, z=a/x.",13,null],[11,"add_imag","","This function returns the sum of the complex number a and the imaginary number iy, z=a+iy.",13,null],[11,"sub_imag","","This function returns the difference of the complex number a and the imaginary number iy, z=a-iy.",13,null],[11,"mul_imag","","This function returns the product of the complex number a and the imaginary number iy, z=a*(iy).",13,null],[11,"div_imag","","This function returns the quotient of the complex number a and the imaginary number iy, z=a/(iy).",13,null],[11,"conjugate","","This function returns the complex conjugate of the complex number z, z^* = x - i y.",13,null],[11,"inverse","","This function returns the inverse, or reciprocal, of the complex number z, 1/z = (x - i y)/(x^2 + y^2).",13,null],[11,"negative","","This function returns the negative of the complex number z, -z = (-x) + i(-y).",13,null],[11,"sqrt","","This function returns the square root of the complex number z, \\sqrt z.\nThe branch cut is the negative real axis. The result always lies in the right half of the complex plane.",13,null],[11,"sqrt_real","","This function returns the complex square root of the real number x, where x may be negative.",13,{"inputs":[{"name":"f64"}],"output":{"name":"complexf64"}}],[11,"pow","","The function returns the complex number z raised to the complex power a, z^a.\nThis is computed as \\exp(\\log(z)*a) using complex logarithms and complex exponentials.",13,null],[11,"pow_real","","This function returns the complex number z raised to the real power x, z^x.",13,null],[11,"exp","","This function returns the complex exponential of the complex number z, \\exp(z).",13,null],[11,"log","","This function returns the complex natural logarithm (base e) of the complex number z, \\log(z).\nThe branch cut is the negative real axis.",13,null],[11,"log10","","This function returns the complex base-10 logarithm of the complex number z, \\log_10 (z).",13,null],[11,"log_b","","This function returns the complex base-b logarithm of the complex number z, \\log_b(z).\nThis quantity is computed as the ratio \\log(z)/\\log(b).",13,null],[11,"sin","","This function returns the complex sine of the complex number z, \\sin(z) = (\\exp(iz) - \\exp(-iz))/(2i).",13,null],[11,"cos","","This function returns the complex cosine of the complex number z, \\cos(z) = (\\exp(iz) + \\exp(-iz))/2.",13,null],[11,"tan","","This function returns the complex tangent of the complex number z, \\tan(z) = \\sin(z)/\\cos(z).",13,null],[11,"sec","","This function returns the complex secant of the complex number z, \\sec(z) = 1/\\cos(z).",13,null],[11,"csc","","This function returns the complex cosecant of the complex number z, \\csc(z) = 1/\\sin(z).",13,null],[11,"cot","","This function returns the complex cotangent of the complex number z, \\cot(z) = 1/\\tan(z).",13,null],[11,"arcsin","","This function returns the complex arcsine of the complex number z, \\arcsin(z).\nThe branch cuts are on the real axis, less than -1 and greater than 1.",13,null],[11,"arcsin_real","","This function returns the complex arcsine of the real number z, \\arcsin(z).",13,{"inputs":[{"name":"f64"}],"output":{"name":"complexf64"}}],[11,"arccos","","This function returns the complex arccosine of the complex number z, \\arccos(z).\nThe branch cuts are on the real axis, less than -1 and greater than 1.",13,null],[11,"arccos_real","","This function returns the complex arccosine of the real number z, \\arccos(z).",13,{"inputs":[{"name":"f64"}],"output":{"name":"complexf64"}}],[11,"arctan","","This function returns the complex arctangent of the complex number z, \\arctan(z).\nThe branch cuts are on the imaginary axis, below -i and above i.",13,null],[11,"arcsec","","This function returns the complex arcsecant of the complex number z, \\arcsec(z) = \\arccos(1/z).",13,null],[11,"arcsec_real","","This function returns the complex arcsecant of the real number z, \\arcsec(z) = \\arccos(1/z).",13,{"inputs":[{"name":"f64"}],"output":{"name":"complexf64"}}],[11,"arccsc","","This function returns the complex arccosecant of the complex number z, \\arccsc(z) = \\arcsin(1/z).",13,null],[11,"arccsc_real","","This function returns the complex arccosecant of the real number z, \\arccsc(z) = \\arcsin(1/z).",13,{"inputs":[{"name":"f64"}],"output":{"name":"complexf64"}}],[11,"arccot","","This function returns the complex arccotangent of the complex number z, \\arccot(z) = \\arctan(1/z).",13,null],[11,"sinh","","This function returns the complex hyperbolic sine of the complex number z, \\sinh(z) = (\\exp(z) - \\exp(-z))/2.",13,null],[11,"cosh","","This function returns the complex hyperbolic cosine of the complex number z, \\cosh(z) = (\\exp(z) + \\exp(-z))/2.",13,null],[11,"tanh","","This function returns the complex hyperbolic tangent of the complex number z, \\tanh(z) = \\sinh(z)/\\cosh(z).",13,null],[11,"sech","","This function returns the complex hyperbolic secant of the complex number z, \\sech(z) = 1/\\cosh(z).",13,null],[11,"csch","","This function returns the complex hyperbolic cosecant of the complex number z, \\csch(z) = 1/\\sinh(z).",13,null],[11,"coth","","This function returns the complex hyperbolic cotangent of the complex number z, \\coth(z) = 1/\\tanh(z).",13,null],[11,"arcsinh","","This function returns the complex hyperbolic arcsine of the complex number z, \\arcsinh(z).\nThe branch cuts are on the imaginary axis, below -i and above i.",13,null],[11,"arccosh","","This function returns the complex hyperbolic arccosine of the complex number z, \\arccosh(z).\nThe branch cut is on the real axis, less than 1.\nNote that in this case we use the negative square root in formula 4.6.21 of Abramowitz & Stegun giving \\arccosh(z)=\\log(z-\\sqrt{z^2-1}).",13,null],[11,"arccosh_real","","This function returns the complex hyperbolic arccosine of the real number z, \\arccosh(z).",13,{"inputs":[{"name":"f64"}],"output":{"name":"complexf64"}}],[11,"arctanh","","This function returns the complex hyperbolic arctangent of the complex number z, \\arctanh(z).\nThe branch cuts are on the real axis, less than -1 and greater than 1.",13,null],[11,"arctanh_real","","This function returns the complex hyperbolic arctangent of the real number z, \\arctanh(z).",13,{"inputs":[{"name":"f64"}],"output":{"name":"complexf64"}}],[11,"arcsech","","This function returns the complex hyperbolic arcsecant of the complex number z, \\arcsech(z) = \\arccosh(1/z).",13,null],[11,"arccsch","","This function returns the complex hyperbolic arccosecant of the complex number z, \\arccsch(z) = \\arcsin(1/z).",13,null],[11,"arccoth","","This function returns the complex hyperbolic arccotangent of the complex number z, \\arccoth(z) = \\arctanh(1/z).",13,null],[11,"fmt","","",13,null],[11,"clone","","",13,null],[11,"default","","",13,{"inputs":[],"output":{"name":"complexf64"}}],[11,"fmt","","",14,null],[11,"clone","","",14,null],[11,"default","","",14,{"inputs":[],"output":{"name":"complexf32"}}],[0,"discrete_hankel","rgsl::types","#Discrete Hankel Transforms",null,null],[3,"DiscreteHankel","rgsl::types::discrete_hankel","",null,null],[11,"new","","This function allocates a Discrete Hankel transform object of size size.",15,{"inputs":[{"name":"usize"}],"output":{"name":"option"}}],[11,"new_with_init","","This function allocates a Discrete Hankel transform object of size size and initializes it for the given values of nu and xmax.",15,{"inputs":[{"name":"usize"},{"name":"f64"},{"name":"f64"}],"output":{"name":"option"}}],[11,"init","","This function initializes the transform self for the given values of nu and xmax.",15,null],[11,"apply","","This function applies the transform t to the array f_in whose size is equal to the size of the transform. The result is stored in the array\nf_out which must be of the same length.",15,null],[11,"x_sample","","This function returns the value of the n-th sample point in the unit interval, (j_{\\nu,n+1}/j_{\\nu,M}) X. These are the points where the\nfunction f(t) is assumed to be sampled.",15,null],[11,"k_sample","","This function returns the value of the n-th sample point in “k-space”, j_{\\nu,n+1}/X.",15,null],[11,"drop","","",15,null],[0,"eigen_symmetric_workspace","rgsl::types","#Real Symmetric Matrices",null,null],[3,"EigenSymmetricWorkspace","rgsl::types::eigen_symmetric_workspace","",null,null],[3,"EigenSymmetricVWorkspace","","",null,null],[3,"EigenHermitianWorkspace","","",null,null],[3,"EigenHermitianVWorkspace","","",null,null],[3,"EigenNonSymmWorkspace","","",null,null],[3,"EigenNonSymmVWorkspace","","",null,null],[3,"EigenGenSymmWorkspace","","",null,null],[3,"EigenGenSymmVWorkspace","","",null,null],[3,"EigenGenHermWorkspace","","",null,null],[3,"EigenGenHermVWorkspace","","",null,null],[3,"EigenGenWorkspace","","",null,null],[3,"EigenGenVWorkspace","","",null,null],[11,"new","","This function allocates a workspace for computing eigenvalues of n-by-n real symmetric matrices. The size of the workspace is O(2n).",16,{"inputs":[{"name":"usize"}],"output":{"name":"option"}}],[11,"symm","","This function computes the eigenvalues of the real symmetric matrix A. Additional workspace of the appropriate size must be provided in\nw. The diagonal and lower triangular part of A are destroyed during the computation, but the strict upper triangular part is not referenced.\nThe eigenvalues are stored in the vector eval and are unordered.",16,null],[11,"drop","","",16,null],[11,"new","","This function allocates a workspace for computing eigenvalues and eigenvectors of n-by-n real symmetric matrices. The size of the workspace is O(4n).",17,{"inputs":[{"name":"usize"}],"output":{"name":"option"}}],[11,"symmv","","This function computes the eigenvalues and eigenvectors of the real symmetric matrix A. Additional workspace of the appropriate size must\nbe provided in w. The diagonal and lower triangular part of A are destroyed during the computation, but the strict upper triangular part\nis not referenced. The eigenvalues are stored in the vector eval and are unordered. The corresponding eigenvectors are stored in the columns\nof the matrix evec. For example, the eigenvector in the first column corresponds to the first eigenvalue. The eigenvectors are guaranteed\nto be mutually orthogonal and normalised to unit magnitude.",17,null],[11,"drop","","",17,null],[11,"new","","This function allocates a workspace for computing eigenvalues of n-by-n complex hermitian matrices. The size of the workspace is O(3n).",18,{"inputs":[{"name":"usize"}],"output":{"name":"option"}}],[11,"herm","","This function computes the eigenvalues of the complex hermitian matrix A. Additional workspace of the appropriate size must be provided\nin w. The diagonal and lower triangular part of A are destroyed during the computation, but the strict upper triangular part is not\nreferenced. The imaginary parts of the diagonal are assumed to be zero and are not referenced. The eigenvalues are stored in the vector\neval and are unordered.",18,null],[11,"drop","","",18,null],[11,"new","","This function allocates a workspace for computing eigenvalues and eigenvectors of n-by-n complex hermitian matrices. The size of the\nworkspace is O(5n).",19,{"inputs":[{"name":"usize"}],"output":{"name":"option"}}],[11,"hermv","","This function computes the eigenvalues and eigenvectors of the complex hermitian matrix A. Additional workspace of the appropriate size\nmust be provided in w. The diagonal and lower triangular part of A are destroyed during the computation, but the strict upper triangular\npart is not referenced. The imaginary parts of the diagonal are assumed to be zero and are not referenced. The eigenvalues are stored\nin the vector eval and are unordered. The corresponding complex eigenvectors are stored in the columns of the matrix evec. For example,\nthe eigenvector in the first column corresponds to the first eigenvalue. The eigenvectors are guaranteed to be mutually orthogonal and\nnormalised to unit magnitude.",19,null],[11,"drop","","",19,null],[11,"new","","This function allocates a workspace for computing eigenvalues of n-by-n complex hermitian matrices. The size of the workspace is O(3n).",20,{"inputs":[{"name":"usize"}],"output":{"name":"option"}}],[11,"params","","This function sets some parameters which determine how the eigenvalue problem is solved in subsequent calls to gsl_eigen_nonsymm.",20,null],[11,"nonsymm","","This function computes the eigenvalues of the real nonsymmetric matrix A and stores them in the vector eval. If T is desired, it is stored\nin the upper portion of A on output. Otherwise, on output, the diagonal of A will contain the 1-by-1 real eigenvalues and 2-by-2 complex\nconjugate eigenvalue systems, and the rest of A is destroyed. In rare cases, this function may fail to find all eigenvalues. If this\nhappens, an error code is returned and the number of converged eigenvalues is stored in w->n_evals. The converged eigenvalues are stored\nin the beginning of eval.",20,null],[11,"nonsymm_Z","","This function is identical to gsl_eigen_nonsymm except that it also computes the Schur vectors and stores them into Z.",20,null],[11,"n_evals","","",20,null],[11,"drop","","",20,null],[11,"new","","This function allocates a workspace for computing eigenvalues and eigenvectors of n-by-n real nonsymmetric matrices. The size of the\nworkspace is O(5n).",21,{"inputs":[{"name":"usize"}],"output":{"name":"option"}}],[11,"params","","This function sets parameters which determine how the eigenvalue problem is solved in subsequent calls to gsl_eigen_nonsymmv. If balance\nis set to 1, a balancing transformation is applied to the matrix. See gsl_eigen_nonsymm_params for more information. Balancing is turned\noff by default since it does not preserve the orthogonality of the Schur vectors.",21,null],[11,"nonsymmv","","This function computes eigenvalues and right eigenvectors of the n-by-n real nonsymmetric matrix A. It first calls gsl_eigen_nonsymm to\ncompute the eigenvalues, Schur form T, and Schur vectors. Then it finds eigenvectors of T and backtransforms them using the Schur vectors.\nThe Schur vectors are destroyed in the process, but can be saved by using gsl_eigen_nonsymmv_Z. The computed eigenvectors are normalized\nto have unit magnitude. On output, the upper portion of A contains the Schur form T. If gsl_eigen_nonsymm fails, no eigenvectors are\ncomputed, and an error code is returned.",21,null],[11,"nonsymmv_Z","","This function is identical to gsl_eigen_nonsymmv except that it also saves the Schur vectors into Z.",21,null],[11,"drop","","",21,null],[11,"new","","This function allocates a workspace for computing eigenvalues of n-by-n real generalized symmetric-definite eigensystems. The size of\nthe workspace is O(2n).",22,{"inputs":[{"name":"usize"}],"output":{"name":"option"}}],[11,"gensymm","","This function computes the eigenvalues of the real generalized symmetric-definite matrix pair (A, B), and stores them in eval, using\nthe method outlined above. On output, B contains its Cholesky decomposition and A is destroyed.",22,null],[11,"drop","","",22,null],[11,"new","","This function allocates a workspace for computing eigenvalues and eigenvectors of n-by-n real generalized symmetric-definite eigensystems. The size of\nthe workspace is O(4n).",23,{"inputs":[{"name":"usize"}],"output":{"name":"option"}}],[11,"gensymmv","","This function computes the eigenvalues and eigenvectors of the real generalized symmetric-definite matrix pair (A, B), and stores them\nin eval and evec respectively. The computed eigenvectors are normalized to have unit magnitude. On output, B contains its Cholesky\ndecomposition and A is destroyed.",23,null],[11,"drop","","",23,null],[11,"new","","This function allocates a workspace for computing eigenvalues of n-by-n complex generalized hermitian-definite eigensystems. The size\nof the workspace is O(3n).",24,{"inputs":[{"name":"usize"}],"output":{"name":"option"}}],[11,"genherm","","This function computes the eigenvalues of the complex generalized hermitian-definite matrix pair (A, B), and stores them in eval, using\nthe method outlined above. On output, B contains its Cholesky decomposition and A is destroyed.",24,null],[11,"drop","","",24,null],[11,"new","","This function allocates a workspace for computing eigenvalues of n-by-n complex generalized hermitian-definite eigensystems. The size\nof the workspace is O(3n).",25,{"inputs":[{"name":"usize"}],"output":{"name":"option"}}],[11,"genhermv","","This function computes the eigenvalues of the complex generalized hermitian-definite matrix pair (A, B), and stores them in eval, using\nthe method outlined above. On output, B contains its Cholesky decomposition and A is destroyed.",25,null],[11,"drop","","",25,null],[11,"new","","This function allocates a workspace for computing eigenvalues of n-by-n real generalized nonsymmetric eigensystems. The size of the\nworkspace is O(n).",26,{"inputs":[{"name":"usize"}],"output":{"name":"option"}}],[11,"params","","This function sets some parameters which determine how the eigenvalue problem is solved in subsequent calls to gsl_eigen_gen.",26,null],[11,"gen","","This function computes the eigenvalues of the real generalized nonsymmetric matrix pair (A, B), and stores them as pairs in (alpha,\nbeta), where alpha is complex and beta is real. If \\beta_i is non-zero, then \\lambda = \\alpha_i / \\beta_i is an eigenvalue. Likewise,\nif \\alpha_i is non-zero, then \\mu = \\beta_i / \\alpha_i is an eigenvalue of the alternate problem \\mu A y = B y. The elements of beta\nare normalized to be non-negative.",26,null],[11,"gen_QZ","","This function is identical to gsl_eigen_gen except that it also computes the left and right Schur vectors and stores them into Q and\nZ respectively.",26,null],[11,"drop","","",26,null],[11,"new","","This function allocates a workspace for computing eigenvalues of n-by-n real generalized nonsymmetric eigensystems. The size of the\nworkspace is O(n).",27,{"inputs":[{"name":"usize"}],"output":{"name":"option"}}],[11,"genv","","This function computes eigenvalues and right eigenvectors of the n-by-n real generalized nonsymmetric matrix pair (A, B). The eigenvalues\nare stored in (alpha, beta) and the eigenvectors are stored in evec. It first calls gsl_eigen_gen to compute the eigenvalues, Schur forms,\nand Schur vectors. Then it finds eigenvectors of the Schur forms and backtransforms them using the Schur vectors. The Schur vectors are\ndestroyed in the process, but can be saved by using gsl_eigen_genv_QZ. The computed eigenvectors are normalized to have unit magnitude.\nOn output, (A, B) contains the generalized Schur form (S, T). If gsl_eigen_gen fails, no eigenvectors are computed, and an error code is\nreturned.",27,null],[11,"genv_QZ","","This function is identical to gsl_eigen_genv except that it also computes the left and right Schur vectors and stores them into Q and Z\nrespectively.",27,null],[11,"drop","","",27,null],[0,"fast_fourier_transforms","rgsl::types","",null,null],[3,"FftComplexWaveTable","rgsl::types::fast_fourier_transforms","",null,null],[3,"FftComplexWorkspace","","",null,null],[11,"new","","This function prepares a trigonometric lookup table for a complex FFT of length n. The function returns a pointer to the newly allocated\ngsl_fft_complex_wavetable if no errors were detected, and a null pointer in the case of error. The length n is factorized into a product\nof subtransforms, and the factors and their trigonometric coefficients are stored in the wavetable. The trigonometric coefficients are\ncomputed using direct calls to sin and cos, for accuracy. Recursion relations could be used to compute the lookup table faster, but if\nan application performs many FFTs of the same length then this computation is a one-off overhead which does not affect the final throughput.",28,{"inputs":[{"name":"usize"}],"output":{"name":"option"}}],[11,"factor","","",28,null],[11,"drop","","",28,null],[11,"new","","This function allocates a workspace for a complex transform of length n.",29,{"inputs":[{"name":"usize"}],"output":{"name":"option"}}],[11,"drop","","",29,null],[0,"histograms","rgsl::types","#Histograms",null,null],[3,"Histogram","rgsl::types::histograms","",null,null],[3,"HistogramPdf","","The probability distribution function for a histogram consists of a set of bins which measure the probability of an event falling into a\ngiven range of a continuous variable x. A probability distribution function is defined by the following struct, which actually stores the\ncumulative probability distribution function. This is the natural quantity for generating samples via the inverse transform method, because\nthere is a one-to-one mapping between the cumulative probability distribution and the range [0,1]. It can be shown that by taking a uniform\nrandom number in this range and finding its corresponding coordinate in the cumulative probability distribution we obtain samples with the\ndesired probability distribution.",null,null],[3,"Histogram2D","","A two dimensional histogram consists of a set of bins which count the number of events falling in a given area of the (x,y) plane. The simplest\nway to use a two dimensional histogram is to record two-dimensional position information, n(x,y). Another possibility is to form a joint\ndistribution by recording related variables. For example a detector might record both the position of an event (x) and the amount of energy\nit deposited E. These could be histogrammed as the joint distribution n(x,E).",null,null],[3,"Histogram2DPdf","","As in the one-dimensional case, a two-dimensional histogram made by counting events can be regarded as a measurement of a probability distribution.\nAllowing for statistical error, the height of each bin represents the probability of an event where (x,y) falls in the range of that bin. For a\ntwo-dimensional histogram the probability distribution takes the form p(x,y) dx dy where,",null,null],[11,"new","","This function allocates memory for a histogram with n bins, and returns a pointer to a newly created gsl_histogram struct. If insufficient\nmemory is available a null pointer is returned and the error handler is invoked with an error code of Value::NoMem. The bins and ranges are\nnot initialized, and should be prepared using one of the range-setting functions below in order to make the histogram ready for use.",30,{"inputs":[{"name":"usize"}],"output":{"name":"option"}}],[11,"set_ranges","","This function sets the ranges of the existing histogram h using the array range of size size. The values of the histogram bins are reset\nto zero. The range array should contain the desired bin limits. The ranges can be arbitrary, subject to the restriction that they are\nmonotonically increasing.",30,null],[11,"set_ranges_uniform","","This function sets the ranges of the existing histogram h to cover the range xmin to xmax uniformly. The values of the histogram bins\nare reset to zero. The bin ranges are shown in the table below,",30,null],[11,"copy","","This function copies the self histogram into the pre-existing histogram dest, making dest into an exact copy of self. The two histograms\nmust be of the same size.",30,null],[11,"clone","","This function returns a pointer to a newly created histogram which is an exact copy of the self histogram.",30,null],[11,"increment","","This function updates the self histogram by adding one (1.0) to the bin whose range contains the coordinate x.",30,null],[11,"accumulate","","This function is similar to gsl_histogram_increment but increases the value of the appropriate bin in the histogram h by the floating-point\nnumber weight.",30,null],[11,"get","","This function returns the contents of the i-th bin of the histogram h. If i lies outside the valid range of indices for the histogram then\nthe error handler is called with an error code of Value::Dom and the function returns 0.",30,null],[11,"get_range","","This function finds the upper and lower range limits of the i-th bin of the self histogram. If the index i is valid then the corresponding\nrange limits are stored in lower and upper. The lower limit is inclusive (i.e. events with this coordinate are included in the bin) and\nthe upper limit is exclusive (i.e. events with the coordinate of the upper limit are excluded and fall in the neighboring higher bin,\nif it exists). The function returns 0 to indicate success. If i lies outside the valid range of indices for the histogram then\nthe error handler is called and the function returns an error code of Value::Dom.",30,null],[11,"max","","This function returns the maximum upper and minimum lower range limits and the number of bins of the self histogram. They provide a way\nof determining these values without accessing the gsl_histogram struct directly.",30,null],[11,"min","","This function returns the maximum upper and minimum lower range limits and the number of bins of the self histogram. They provide a way\nof determining these values without accessing the gsl_histogram struct directly.",30,null],[11,"bins","","This function returns the maximum upper and minimum lower range limits and the number of bins of the self histogram. They provide a way\nof determining these values without accessing the gsl_histogram struct directly.",30,null],[11,"reset","","This function resets all the bins in the self histogram to zero.",30,null],[11,"find","","This function finds and sets the index i to the bin number which covers the coordinate x in the self histogram. The bin is located using\na binary search. The search includes an optimization for histograms with uniform range, and will return the correct bin immediately in\nthis case. If x is found in the range of the histogram then the function sets the index i and returns ::Value::Success. If x lies outside\nthe valid range of the histogram then the function returns Value::Dom and the error handler is invoked.",30,null],[11,"max_val","","This function returns the maximum value contained in the histogram bins.",30,null],[11,"max_bin","","This function returns the index of the bin containing the maximum value. In the case where several bins contain the same maximum value\nthe smallest index is returned.",30,null],[11,"min_val","","This function returns the minimum value contained in the histogram bins.",30,null],[11,"min_bin","","This function returns the index of the bin containing the minimum value. In the case where several bins contain the same maximum value\nthe smallest index is returned.",30,null],[11,"mean","","This function returns the mean of the histogrammed variable, where the histogram is regarded as a probability distribution. Negative\nbin values are ignored for the purposes of this calculation. The accuracy of the result is limited by the bin width.",30,null],[11,"sigma","","This function returns the standard deviation of the histogrammed variable, where the histogram is regarded as a probability distribution.\nNegative bin values are ignored for the purposes of this calculation. The accuracy of the result is limited by the bin width.",30,null],[11,"sum","","This function returns the sum of all bin values. Negative bin values are included in the sum.",30,null],[11,"equal_bins_p","","This function returns true if the all of the individual bin ranges of the two histograms are identical, and false otherwise.",30,null],[11,"add","","This function adds the contents of the bins in histogram other to the corresponding bins of self histogram, i.e. h'_1(i) = h_1(i) + h_2(i).\nThe two histograms must have identical bin ranges.",30,null],[11,"sub","","This function subtracts the contents of the bins in histogram other from the corresponding bins of self histogram, i.e. h'_1(i) = h_1(i) - h_2(i).\nThe two histograms must have identical bin ranges.",30,null],[11,"mul","","This function multiplies the contents of the bins of self histogram by the contents of the corresponding bins in other histogram, i.e. h'_1(i) =\nh_1(i) * h_2(i). The two histograms must have identical bin ranges.",30,null],[11,"div","","This function divides the contents of the bins of self histogram by the contents of the corresponding bins in other histogram, i.e. h'_1(i) = h_1(i)\n/ h_2(i). The two histograms must have identical bin ranges.",30,null],[11,"scale","","This function multiplies the contents of the bins of self histogram by the constant scale, i.e. h'_1(i) = h_1(i) * scale.",30,null],[11,"shift","","This function shifts the contents of the bins of self histogram by the constant offset, i.e. h'_1(i) = h_1(i) + offset.",30,null],[11,"print","","",30,null],[11,"drop","","",30,null],[11,"new","","This function allocates memory for a probability distribution with n bins and returns a pointer to a newly initialized gsl_histogram_pdf\nstruct. If insufficient memory is available a null pointer is returned and the error handler is invoked with an error code of Value::NoMem.",31,{"inputs":[{"name":"usize"}],"output":{"name":"option"}}],[11,"init","","This function initializes the probability distribution self with the contents of the histogram h. If any of the bins of h are negative then\nthe error handler is invoked with an error code of Value::Dom because a probability distribution cannot contain negative values.",31,null],[11,"sample","","This function uses r, a uniform random number between zero and one, to compute a single random sample from the probability distribution\nself. The algorithm used to compute the sample s is given by the following formula,",31,null],[11,"drop","","",31,null],[11,"new","","This function allocates memory for a two-dimensional histogram with nx bins in the x direction and ny bins in the y direction. The\nfunction returns a pointer to a newly created gsl_histogram2d struct. If insufficient memory is available a null pointer is returned\nand the error handler is invoked with an error code of Value::NoMem. The bins and ranges must be initialized with one of the\nfunctions below before the histogram is ready for use.",32,{"inputs":[{"name":"usize"},{"name":"usize"}],"output":{"name":"option"}}],[11,"set_ranges","","This function sets the ranges of the existing histogram h using the arrays xrange and yrange of size xsize and ysize respectively.\nThe values of the histogram bins are reset to zero.",32,null],[11,"set_ranges_uniform","","This function sets the ranges of the existing histogram h to cover the ranges xmin to xmax and ymin to ymax uniformly. The values\nof the histogram bins are reset to zero.",32,null],[11,"copy","","This function copies the histogram src into the pre-existing histogram dest, making dest into an exact copy of src. The two histograms\nmust be of the same size.",32,null],[11,"clone","","his function returns a pointer to a newly created histogram which is an exact copy of the histogram self.",32,null],[11,"increment","","This function updates the histogram h by adding one (1.0) to the bin whose x and y ranges contain the coordinates (x,y).",32,null],[11,"accumulate","","This function is similar to gsl_histogram2d_increment but increases the value of the appropriate bin in the histogram h by the floating-point\nnumber weight.",32,null],[11,"get","","This function returns the contents of the (i,j)-th bin of the histogram h. If (i,j) lies outside the valid range of indices for the\nhistogram then the error handler is called with an error code of Value::Dom and the function returns 0.",32,null],[11,"get_xrange","","This function finds the upper and lower range limits of the i-th and j-th bins in the x and y directions of the histogram h. The range\nlimits are stored in xlower and xupper or ylower and yupper. The lower limits are inclusive (i.e. events with these coordinates are included\nin the bin) and the upper limits are exclusive (i.e. events with the value of the upper limit are not included and fall in the neighboring\nhigher bin, if it exists). The functions return 0 to indicate success. If i or j lies outside the valid range of indices for the histogram\nthen the error handler is called with an error code of Value::Dom.",32,null],[11,"get_yrange","","This function finds the upper and lower range limits of the i-th and j-th bins in the x and y directions of the histogram h. The range\nlimits are stored in xlower and xupper or ylower and yupper. The lower limits are inclusive (i.e. events with these coordinates are included\nin the bin) and the upper limits are exclusive (i.e. events with the value of the upper limit are not included and fall in the neighboring\nhigher bin, if it exists). The functions return 0 to indicate success. If i or j lies outside the valid range of indices for the histogram\nthen the error handler is called with an error code of Value::Dom.",32,null],[11,"xmax","","This function returns the maximum upper and minimum lower range limits and the number of bins for the x and y directions of the histogram h.\nThey provide a way of determining these values without accessing the gsl_histogram2d struct directly.",32,null],[11,"xmin","","This function returns the maximum upper and minimum lower range limits and the number of bins for the x and y directions of the histogram h.\nThey provide a way of determining these values without accessing the gsl_histogram2d struct directly.",32,null],[11,"nx","","This function returns the maximum upper and minimum lower range limits and the number of bins for the x and y directions of the histogram h.\nThey provide a way of determining these values without accessing the gsl_histogram2d struct directly.",32,null],[11,"ymax","","This function returns the maximum upper and minimum lower range limits and the number of bins for the x and y directions of the histogram h.\nThey provide a way of determining these values without accessing the gsl_histogram2d struct directly.",32,null],[11,"ymin","","This function returns the maximum upper and minimum lower range limits and the number of bins for the x and y directions of the histogram h.\nThey provide a way of determining these values without accessing the gsl_histogram2d struct directly.",32,null],[11,"ny","","This function returns the maximum upper and minimum lower range limits and the number of bins for the x and y directions of the histogram h.\nThey provide a way of determining these values without accessing the gsl_histogram2d struct directly.",32,null],[11,"reset","","This function resets all the bins of the histogram h to zero.",32,null],[11,"find","","This function finds and sets the indices i and j to the bin which covers the coordinates (x,y). The bin is located using a binary search.\nThe search includes an optimization for histograms with uniform ranges, and will return the correct bin immediately in this case. If\n(x,y) is found then the function sets the indices (i,j) and returns ::Value::Success. If (x,y) lies outside the valid range of the histogram\nthen the function returns Value::Dom and the error handler is invoked.",32,null],[11,"max_val","","This function returns the maximum value contained in the histogram bins.",32,null],[11,"max_bin","","This function finds the indices of the bin containing the maximum value in the histogram h and stores the result in (i,j). In the case\nwhere several bins contain the same maximum value the first bin found is returned.",32,null],[11,"min_val","","This function returns the minimum value contained in the histogram bins.",32,null],[11,"min_bin","","This function finds the indices of the bin containing the minimum value in the histogram h and stores the result in (i,j). In the case\nwhere several bins contain the same maximum value the first bin found is returned.",32,null],[11,"xmean","","This function returns the mean of the histogrammed x variable, where the histogram is regarded as a probability distribution. Negative\nbin values are ignored for the purposes of this calculation.",32,null],[11,"ymean","","This function returns the mean of the histogrammed y variable, where the histogram is regarded as a probability distribution. Negative\nbin values are ignored for the purposes of this calculation.",32,null],[11,"xsigma","","This function returns the standard deviation of the histogrammed x variable, where the histogram is regarded as a probability\ndistribution. Negative bin values are ignored for the purposes of this calculation.",32,null],[11,"ysigma","","This function returns the standard deviation of the histogrammed y variable, where the histogram is regarded as a probability\ndistribution. Negative bin values are ignored for the purposes of this calculation.",32,null],[11,"cov","","This function returns the covariance of the histogrammed x and y variables, where the histogram is regarded as a probability\ndistribution. Negative bin values are ignored for the purposes of this calculation.",32,null],[11,"sum","","This function returns the sum of all bin values. Negative bin values are included in the sum.",32,null],[11,"equal_bins_p","","This function returns 1 if all the individual bin ranges of the two histograms are identical, and 0 otherwise.",32,null],[11,"add","","This function adds the contents of the bins in histogram h2 to the corresponding bins of histogram h1, i.e. h'_1(i,j) = h_1(i,j)\n+ h_2(i,j). The two histograms must have identical bin ranges.",32,null],[11,"sub","","This function subtracts the contents of the bins in histogram h2 from the corresponding bins of histogram h1, i.e. h'_1(i,j) = h_1(i,j)\n- h_2(i,j). The two histograms must have identical bin ranges.",32,null],[11,"mul","","This function multiplies the contents of the bins of histogram h1 by the contents of the corresponding bins in histogram h2, i.e. h'_1(i,j)\n= h_1(i,j) * h_2(i,j). The two histograms must have identical bin ranges.",32,null],[11,"div","","This function divides the contents of the bins of histogram h1 by the contents of the corresponding bins in histogram h2, i.e. h'_1(i,j) =\nh_1(i,j) / h_2(i,j). The two histograms must have identical bin ranges.",32,null],[11,"scale","","This function multiplies the contents of the bins of histogram h by the constant scale, i.e. h'_1(i,j) = h_1(i,j) scale.",32,null],[11,"shift","","This function shifts the contents of the bins of histogram h by the constant offset, i.e. h'_1(i,j) = h_1(i,j) + offset.",32,null],[11,"drop","","",32,null],[11,"new","","This function allocates memory for a two-dimensional probability distribution of size nx-by-ny and returns a pointer to a newly initialized\ngsl_histogram2d_pdf struct. If insufficient memory is available a null pointer is returned and the error handler is invoked with an error\ncode of Value::NoMem.",33,{"inputs":[{"name":"usize"},{"name":"usize"}],"output":{"name":"option"}}],[11,"init","","This function initializes the two-dimensional probability distribution calculated p from the histogram h. If any of the bins of h are\nnegative then the error handler is invoked with an error code of GSL_EDOM because a probability distribution cannot contain negative\nvalues.",33,null],[11,"sample","","This function uses two uniform random numbers between zero and one, r1 and r2, to compute a single random sample from the two-dimensional\nprobability distribution p.",33,null],[11,"drop","","",33,null],[0,"integration","rgsl::types","",null,null],[3,"IntegrationWorkspace","rgsl::types::integration","The QAG algorithm is a simple adaptive integration procedure. The integration region is divided into subintervals, and on each iteration\nthe subinterval with the largest estimated error is bisected. This reduces the overall error rapidly, as the subintervals become concentrated\naround local difficulties in the integrand. These subintervals are managed by a gsl_integration_workspace struct, which handles the memory\nfor the subinterval ranges, results and error estimates.",null,null],[3,"IntegrationQawsTable","","The QAWS algorithm is designed for integrands with algebraic-logarithmic singularities at the end-points of an integration region. In order\nto work efficiently the algorithm requires a precomputed table of Chebyshev moments.",null,null],[3,"IntegrationQawoTable","","The QAWO algorithm is designed for integrands with an oscillatory factor, \\sin(\\omega x) or \\cos(\\omega x). In order to work efficiently\nthe algorithm requires a table of Chebyshev moments which must be pre-computed with calls to the functions below.",null,null],[3,"CquadWorkspace","","CQUAD is a new doubly-adaptive general-purpose quadrature routine which can handle most types of singularities, non-numerical function\nvalues such as Inf or NaN, as well as some divergent integrals. It generally requires more function evaluations than the integration\nroutines in QUADPACK, yet fails less often for difficult integrands.",null,null],[3,"GLFixedTable","","The fixed-order Gauss-Legendre integration routines are provided for fast integration of smooth functions with known polynomial order.\nThe n-point Gauss-Legendre rule is exact for polynomials of order 2*n-1 or less. For example, these rules are useful when integrating\nbasis functions to form mass matrices for the Galerkin method. Unlike other numerical integration routines within the library, these\nroutines do not accept absolute or relative error bounds.",null,null],[11,"new","","This function allocates a workspace sufficient to hold n double precision intervals, their integration results and error estimates. One\nworkspace may be used multiple times as all necessary reinitialization is performed automatically by the integration routines.",34,{"inputs":[{"name":"usize"}],"output":{"name":"option"}}],[11,"qag","","This function applies an integration rule adaptively until an estimate of the integral of f over (a,b) is achieved within the desired\nabsolute and relative error limits, epsabs and epsrel. The function returns the final approximation, result, and an estimate of the\nabsolute error, abserr. The integration rule is determined by the value of key, which should be chosen from the following symbolic names,",34,null],[11,"qags","","This function applies the Gauss-Kronrod 21-point integration rule adaptively until an estimate of the integral of f over (a,b) is achieved\nwithin the desired absolute and relative error limits, epsabs and epsrel. The results are extrapolated using the epsilon-algorithm, which\naccelerates the convergence of the integral in the presence of discontinuities and integrable singularities. The function returns the\nfinal approximation from the extrapolation, result, and an estimate of the absolute error, abserr. The subintervals and their results are\nstored in the memory provided by workspace. The maximum number of subintervals is given by limit, which may not exceed the allocated size\nof the workspace.",34,null],[11,"qagp","","This function applies the adaptive integration algorithm QAGS taking account of the user-supplied locations of singular points. The array\npts of length npts should contain the endpoints of the integration ranges defined by the integration region and locations of the singularities.\nFor example, to integrate over the region (a,b) with break-points at x_1, x_2, x_3 (where a < x_1 < x_2 < x_3 < b) the following pts array\nshould be used",34,null],[11,"qagi","","This function computes the integral of the function f over the infinite interval (-\\infty,+\\infty). The integral is mapped onto the\nsemi-open interval (0,1] using the transformation x = (1-t)/t,",34,null],[11,"qagiu","","This function computes the integral of the function f over the semi-infinite interval (a,+\\infty). The integral is mapped onto the\nsemi-open interval (0,1] using the transformation x = a + (1-t)/t,",34,null],[11,"qagil","","This function computes the integral of the function f over the semi-infinite interval (-\\infty,b). The integral is mapped onto the semi-open\ninterval (0,1] using the transformation x = b - (1-t)/t,",34,null],[11,"qawc","","This function computes the Cauchy principal value of the integral of f over (a,b), with a singularity at c,",34,null],[11,"sort_results","","",34,null],[11,"qpsrt","","",34,null],[11,"sum_results","","",34,null],[11,"retrieve","","",34,null],[11,"update","","",34,null],[11,"set_initial_result","","",34,null],[11,"initialise","","",34,null],[11,"limit","","",34,null],[11,"size","","",34,null],[11,"drop","","",34,null],[11,"new","","This function allocates space for a gsl_integration_qaws_table struct describing a singular weight function W(x) with the parameters\n(\\alpha, \\beta, \\mu, \\nu),",35,{"inputs":[{"name":"f64"},{"name":"f64"},{"name":"i32"},{"name":"i32"}],"output":{"name":"option"}}],[11,"set","","This function modifies the parameters (\\alpha, \\beta, \\mu, \\nu)",35,null],[11,"qaws","","This function computes the integral of the function f(x) over the interval (a,b) with the singular weight function (x-a)^\\alpha\n(b-x)^\\beta \\log^\\mu (x-a) \\log^\\nu (b-x). The parameters of the weight function (\\alpha, \\beta, \\mu, \\nu) are taken from the\ntable self. The integral is,",35,null],[11,"drop","","",35,null],[11,"new","","This function allocates space for a gsl_integration_qawo_table struct and its associated workspace describing a sine or cosine weight\nfunction W(x) with the parameters (\\omega, L),",36,{"inputs":[{"name":"f64"},{"name":"f64"},{"name":"integrationqawo"},{"name":"usize"}],"output":{"name":"option"}}],[11,"set","","This function changes the parameters omega, L and sine of the existing self workspace.",36,null],[11,"set_length","","This function allows the length parameter l of the self workspace to be changed.",36,null],[11,"qawo","","This function uses an adaptive algorithm to compute the integral of f over (a,b) with the weight function \\sin(\\omega x) or \\cos(\\omega x)\ndefined by the table wf,",36,null],[11,"drop","","",36,null],[11,"new","","This function allocates a workspace sufficient to hold the data for n intervals. The number n is not the maximum number of intervals\nthat will be evaluated. If the workspace is full, intervals with smaller error estimates will be discarded. A minimum of 3 intervals\nis required and for most functions, a workspace of size 100 is sufficient.",37,{"inputs":[{"name":"usize"}],"output":{"name":"option"}}],[11,"cquad","","This function computes the integral of f over (a,b) within the desired absolute and relative error limits, epsabs and epsrel using\nthe CQUAD algorithm. The function returns the final approximation, result, an estimate of the absolute error, abserr, and the number\nof function evaluations required, nevals.",37,null],[11,"drop","","",37,null],[11,"new","","This function determines the Gauss-Legendre abscissae and weights necessary for an n-point fixed order integration scheme. If possible,\nhigh precision precomputed coefficients are used. If precomputed weights are not available, lower precision coefficients are computed\non the fly.",38,{"inputs":[{"name":"usize"}],"output":{"name":"option"}}],[11,"point","","For i in [0, …, t->n - 1], this function obtains the i-th Gauss-Legendre point xi and weight wi on the interval [a,b]. The points\nand weights are ordered by increasing point value. A function f may be integrated on [a,b] by summing wi * f(xi) over i.",38,null],[11,"glfixed","","This function applies the Gauss-Legendre integration rule contained in table self and returns the result.",38,null],[11,"drop","","",38,null],[0,"interpolation","rgsl::types","#Interpolation",null,null],[3,"InterpAccel","rgsl::types::interpolation","evaluation accelerator",null,null],[12,"cache","","cache of index",39,null],[12,"miss_count","","keep statistics",39,null],[12,"hit_count","","",39,null],[3,"Interp","","",null,null],[3,"InterpType","","",null,null],[3,"Spline","","general interpolation object",null,null],[11,"clone","","",39,null],[11,"new","","This function returns a pointer to an accelerator object, which is a kind of iterator for interpolation lookups. It tracks the state\nof lookups, thus allowing for application of various acceleration strategies.",39,{"inputs":[],"output":{"name":"interpaccel"}}],[11,"reset","","This function reinitializes the accelerator object acc. It should be used when the cached information is no longer applicable—for\nexample, when switching to a new dataset.",39,null],[11,"find","","This function performs a lookup action on the data array x_array of size size, using the given accelerator a. This is how lookups\nare performed during evaluation of an interpolation. The function returns an index i such that x_array[i] <= x < x_array[i+1].",39,null],[11,"new","","This function returns a pointer to a newly allocated interpolation object of type T for size data-points.",40,{"inputs":[{"name":"interptype"},{"name":"usize"}],"output":{"name":"option"}}],[11,"init","","This function initializes the interpolation object interp for the data (xa,ya) where xa and ya are arrays of size size. The interpolation\nobject (gsl_interp) does not save the data arrays xa and ya and only stores the static state computed from the data. The xa data array\nis always assumed to be strictly ordered, with increasing x values; the behavior for other arrangements is not defined.",40,null],[11,"name","","This function returns the name of the interpolation type used by interp. For example,",40,null],[11,"min_size","","This function returns the minimum number of points required by the interpolation object interp or interpolation type T. For example,\nAkima spline interpolation requires a minimum of 5 points.",40,null],[11,"drop","","",40,null],[11,"clone","","",41,null],[11,"min_size","","This function returns the minimum number of points required by the interpolation object interp or interpolation type T. For example,\nAkima spline interpolation requires a minimum of 5 points.",41,null],[11,"linear","","Linear interpolation. This interpolation method does not require any additional memory.",41,{"inputs":[],"output":{"name":"interptype"}}],[11,"polynomial","","Polynomial interpolation. This method should only be used for interpolating small numbers of points because polynomial interpolation\nintroduces large oscillations, even for well-behaved datasets. The number of terms in the interpolating polynomial is equal to the\nnumber of points.",41,{"inputs":[],"output":{"name":"interptype"}}],[11,"cspline","","Cubic spline with natural boundary conditions. The resulting curve is piecewise cubic on each interval, with matching first and second\nderivatives at the supplied data-points. The second derivative is chosen to be zero at the first point and last point.",41,{"inputs":[],"output":{"name":"interptype"}}],[11,"cspline_periodic","","Cubic spline with periodic boundary conditions. The resulting curve is piecewise cubic on each interval, with matching first and second\nderivatives at the supplied data-points. The derivatives at the first and last points are also matched. Note that the last point in\nthe data must have the same y-value as the first point, otherwise the resulting periodic interpolation will have a discontinuity at\nthe boundary.",41,{"inputs":[],"output":{"name":"interptype"}}],[11,"akima","","Non-rounded Akima spline with natural boundary conditions. This method uses the non-rounded corner algorithm of Wodicka.",41,{"inputs":[],"output":{"name":"interptype"}}],[11,"akima_periodic","","Non-rounded Akima spline with periodic boundary conditions. This method uses the non-rounded corner algorithm of Wodicka.",41,{"inputs":[],"output":{"name":"interptype"}}],[11,"new","","",42,{"inputs":[{"name":"interptype"},{"name":"usize"}],"output":{"name":"option"}}],[11,"init","","",42,null],[11,"name","","",42,null],[11,"min_size","","",42,null],[11,"eval","","",42,null],[11,"eval_e","","",42,null],[11,"eval_deriv","","",42,null],[11,"eval_deriv_e","","",42,null],[11,"eval_deriv2","","",42,null],[11,"eval_deriv2_e","","",42,null],[11,"eval_integ","","",42,null],[11,"eval_integ_e","","",42,null],[11,"drop","","",42,null],[0,"mathieu","rgsl::types","The routines described in this section compute the angular and radial Mathieu functions, and their characteristic values. Mathieu functions are the solutions of the following two differential equations:",null,null],[3,"MathieuWorkspace","rgsl::types::mathieu","The Mathieu functions can be computed for a single order or for multiple orders, using array-based routines.\nThe array-based routines require a preallocated workspace.",null,null],[11,"new","","This function returns a workspace for the array versions of the Mathieu routines.\nThe arguments n and qmax specify the maximum order and q-value of Mathieu functions which can be computed with this workspace.",43,{"inputs":[{"name":"usize"},{"name":"f64"}],"output":{"name":"option"}}],[11,"mathieu_a","","This routine computes the characteristic values a_n(q), b_n(q) of the Mathieu functions ce_n(q,x) and se_n(q,x), respectively.",43,null],[11,"mathieu_b","","This routine computes the characteristic values a_n(q), b_n(q) of the Mathieu functions ce_n(q,x) and se_n(q,x), respectively.",43,null],[11,"mathieu_a_array","","This routine computes a series of Mathieu characteristic values a_n(q), b_n(q) for n from order_min to order_max inclusive, storing the results in the array result_array.",43,null],[11,"mathieu_b_array","","This routine computes a series of Mathieu characteristic values a_n(q), b_n(q) for n from order_min to order_max inclusive, storing the results in the array result_array.",43,null],[11,"mathieu_ce","","This routine computes the angular Mathieu functions ce_n(q,x) and se_n(q,x), respectively.",43,null],[11,"mathieu_se","","This routine computes the angular Mathieu functions ce_n(q,x) and se_n(q,x), respectively.",43,null],[11,"mathieu_ce_array","","This routine computes a series of the angular Mathieu functions ce_n(q,x) and se_n(q,x) of order n from nmin to nmax inclusive, storing the results in the array result_array.",43,null],[11,"mathieu_se_array","","This routine computes a series of the angular Mathieu functions ce_n(q,x) and se_n(q,x) of order n from nmin to nmax inclusive, storing the results in the array result_array.",43,null],[11,"mathieu_Mc","","This routine computes the radial j-th kind Mathieu functions Mc_n^{(j)}(q,x) and Ms_n^{(j)}(q,x) of order n.",43,null],[11,"mathieu_Ms","","This routine computes the radial j-th kind Mathieu functions Mc_n^{(j)}(q,x) and Ms_n^{(j)}(q,x) of order n.",43,null],[11,"mathieu_Mc_array","","This routine computes a series of the radial Mathieu functions of kind j, with order from nmin to nmax inclusive, storing the results in the array result_array.",43,null],[11,"mathieu_Ms_array","","This routine computes a series of the radial Mathieu functions of kind j, with order from nmin to nmax inclusive, storing the results in the array result_array.",43,null],[11,"drop","","",43,null],[0,"matrix","rgsl::types","#Matrices",null,null],[3,"MatrixView","rgsl::types::matrix","",null,null],[3,"MatrixF64","","",null,null],[3,"MatrixF32","","",null,null],[11,"from_matrix","","These functions return a matrix view of a submatrix of the matrix m. The upper-left element of the submatrix is the element (k1,k2)\nof the original matrix. The submatrix has n1 rows and n2 columns. The physical number of columns in memory given by tda is unchanged.\nMathematically, the (i,j)-th element of the new matrix is given by,",44,{"inputs":[{"name":"matrixf64"},{"name":"usize"},{"name":"usize"},{"name":"usize"},{"name":"usize"}],"output":{"name":"matrixview"}}],[11,"from_array","","These functions return a matrix view of the array base. The matrix has n1 rows and n2 columns. The physical number of columns in memory\nis also given by n2. Mathematically, the (i,j)-th element of the new matrix is given by,",44,null],[11,"from_array_with_tda","","These functions return a matrix view of the array base with a physical number of columns tda which may differ from the corresponding\ndimension of the matrix. The matrix has n1 rows and n2 columns, and the physical number of columns in memory is given by tda.\nMathematically, the (i,j)-th element of the new matrix is given by,",44,null],[11,"from_vector","","These functions return a matrix view of the vector v. The matrix has n1 rows and n2 columns. The vector must have unit stride. The\nphysical number of columns in memory is also given by n2. Mathematically, the (i,j)-th element of the new matrix is given by,",44,{"inputs":[{"name":"vectorf64"},{"name":"usize"},{"name":"usize"}],"output":{"name":"matrixview"}}],[11,"from_vector_with_tda","","These functions return a matrix view of the vector v with a physical number of columns tda which may differ from the corresponding\nmatrix dimension. The vector must have unit stride. The matrix has n1 rows and n2 columns, and the physical number of columns in\nmemory is given by tda. Mathematically, the (i,j)-th element of the new matrix is given by,",44,{"inputs":[{"name":"vectorf64"},{"name":"usize"},{"name":"usize"},{"name":"usize"}],"output":{"name":"matrixview"}}],[11,"matrix","","",44,null],[11,"new","","Creates a new MatrixF64 with all elements set to zero",45,{"inputs":[{"name":"usize"},{"name":"usize"}],"output":{"name":"option"}}],[11,"get","","This function returns the (i,j)-th element of the matrix.\nIf y or x lie outside the allowed range of 0 to n1-1 and 0 to n2-1 then the error handler is invoked and 0 is returned.",45,null],[11,"set","","This function sets the value of the (i,j)-th element of the matrix to value.\nIf y or x lies outside the allowed range of 0 to n1-1 and 0 to n2-1 then the error handler is invoked.",45,null],[11,"set_all","","This function sets all the elements of the matrix to the value x.",45,null],[11,"set_zero","","This function sets all the elements of the matrix to zero.",45,null],[11,"set_identity","","This function sets the elements of the matrix to the corresponding elements of the identity matrix, m(i,j) = \\delta(i,j), i.e. a unit diagonal with all off-diagonal elements zero.\nThis applies to both square and rectangular matrices.",45,null],[11,"copy_from","","This function copies the elements of the other matrix into the self matrix. The two matrices must have the same size.",45,null],[11,"copy_to","","This function copies the elements of the self matrix into the other matrix. The two matrices must have the same size.",45,null],[11,"swap","","This function exchanges the elements of the matrices self and other by copying. The two matrices must have the same size.",45,null],[11,"get_row","","This function copies the elements of the y-th row of the matrix into the returned vector.",45,null],[11,"get_col","","This function copies the elements of the x-th column of the matrix into the returned vector.",45,null],[11,"set_row","","This function copies the elements of the vector v into the y-th row of the matrix.\nThe length of the vector must be the same as the length of the row.",45,null],[11,"set_col","","This function copies the elements of the vector v into the x-th column of the matrix.\nThe length of the vector must be the same as the length of the column.",45,null],[11,"swap_rows","","This function exchanges the y1-th and y2-th rows of the matrix in-place.",45,null],[11,"swap_columns","","This function exchanges the x1-th and x2-th columns of the matrix in-place.",45,null],[11,"swap_row_col","","This function exchanges the i-th row and j-th column of the matrix in-place.\nThe matrix must be square for this operation to be possible.",45,null],[11,"transpose_memcpy","","This function returns the transpose of the matrix by copying the elements into it.\nThis function works for all matrices provided that the dimensions of the matrix dest match the transposed dimensions of the matrix.",45,null],[11,"transpose","","This function replaces the matrix m by its transpose by copying the elements of the matrix in-place.\nThe matrix must be square for this operation to be possible.",45,null],[11,"add","","This function adds the elements of the other matrix to the elements of the self matrix.\nThe result self(i,j) <- self(i,j) + other(i,j) is stored in self and other remains unchanged. The two matrices must have the same dimensions.",45,null],[11,"sub","","This function subtracts the elements of the other matrix from the elements of the self matrix.\nThe result self(i,j) <- self(i,j) - other(i,j) is stored in self and other remains unchanged. The two matrices must have the same dimensions.",45,null],[11,"mul_elements","","This function multiplies the elements of the self matrix by the elements of the other matrix.\nThe result self(i,j) <- self(i,j) * other(i,j) is stored in self and other remains unchanged. The two matrices must have the same dimensions.",45,null],[11,"div_elements","","This function divides the elements of the self matrix by the elements of the other matrix.\nThe result self(i,j) <- self(i,j) / other(i,j) is stored in self and other remains unchanged. The two matrices must have the same dimensions.",45,null],[11,"scale","","This function multiplies the elements of the self matrix by the constant factor x. The result self(i,j) <- x self(i,j) is stored in self.",45,null],[11,"add_constant","","This function adds the constant value x to the elements of the self matrix. The result self(i,j) <- self(i,j) + x is stored in self.",45,null],[11,"max","","This function returns the maximum value in the self matrix.",45,null],[11,"min","","This function returns the minimum value in the self matrix.",45,null],[11,"minmax","","This function returns the minimum and maximum values in the self matrix, storing them in min_out and max_out.",45,null],[11,"max_index","","This function returns the indices of the maximum value in the self matrix, storing them in imax and jmax.\nWhen there are several equal maximum elements then the first element found is returned, searching in row-major order.",45,null],[11,"min_index","","This function returns the indices of the minimum value in the self matrix, storing them in imin and jmin.\nWhen there are several equal minimum elements then the first element found is returned, searching in row-major order.",45,null],[11,"minmax_index","","This function returns the indices of the minimum and maximum values in the self matrix, storing them in (imin,jmin) and (imax,jmax).\nWhen there are several equal minimum or maximum elements then the first elements found are returned, searching in row-major order.",45,null],[11,"is_null","","This function returns true if all the elements of the self matrix are stricly zero.",45,null],[11,"is_pos","","This function returns true if all the elements of the self matrix are stricly positive.",45,null],[11,"is_neg","","This function returns true if all the elements of the self matrix are stricly negative.",45,null],[11,"is_non_neg","","This function returns true if all the elements of the self matrix are stricly non-negative.",45,null],[11,"equal","","This function returns true if all elements of the two matrix are equal.",45,null],[11,"size1","","",45,null],[11,"size2","","",45,null],[11,"clone","","",45,null],[11,"drop","","",45,null],[11,"fmt","","",45,null],[11,"new","","Creates a new MatrixF64 with all elements set to zero",46,{"inputs":[{"name":"usize"},{"name":"usize"}],"output":{"name":"option"}}],[11,"get","","This function returns the (i,j)-th element of the matrix.\nIf y or x lie outside the allowed range of 0 to n1-1 and 0 to n2-1 then the error handler is invoked and 0 is returned.",46,null],[11,"set","","This function sets the value of the (i,j)-th element of the matrix to value.\nIf y or x lies outside the allowed range of 0 to n1-1 and 0 to n2-1 then the error handler is invoked.",46,null],[11,"set_all","","This function sets all the elements of the matrix to the value x.",46,null],[11,"set_zero","","This function sets all the elements of the matrix to zero.",46,null],[11,"set_identity","","This function sets the elements of the matrix to the corresponding elements of the identity matrix, m(i,j) = \\delta(i,j), i.e. a unit diagonal with all off-diagonal elements zero.\nThis applies to both square and rectangular matrices.",46,null],[11,"copy_from","","This function copies the elements of the other matrix into the self matrix. The two matrices must have the same size.",46,null],[11,"copy_to","","This function copies the elements of the self matrix into the other matrix. The two matrices must have the same size.",46,null],[11,"swap","","This function exchanges the elements of the matrices self and other by copying. The two matrices must have the same size.",46,null],[11,"get_row","","This function copies the elements of the y-th row of the matrix into the returned vector.",46,null],[11,"get_col","","This function copies the elements of the x-th column of the matrix into the returned vector.",46,null],[11,"set_row","","This function copies the elements of the vector v into the y-th row of the matrix.\nThe length of the vector must be the same as the length of the row.",46,null],[11,"set_col","","This function copies the elements of the vector v into the x-th column of the matrix.\nThe length of the vector must be the same as the length of the column.",46,null],[11,"swap_rows","","This function exchanges the y1-th and y2-th rows of the matrix in-place.",46,null],[11,"swap_columns","","This function exchanges the x1-th and x2-th columns of the matrix in-place.",46,null],[11,"swap_row_col","","This function exchanges the i-th row and j-th column of the matrix in-place. The matrix must be square for this operation to be possible.",46,null],[11,"transpose_memcpy","","This function returns the transpose of the matrix by copying the elements into it.\nThis function works for all matrices provided that the dimensions of the matrix dest match the transposed dimensions of the matrix.",46,null],[11,"transpose","","This function replaces the matrix m by its transpose by copying the elements of the matrix in-place.\nThe matrix must be square for this operation to be possible.",46,null],[11,"add","","This function adds the elements of the other matrix to the elements of the self matrix.\nThe result self(i,j) <- self(i,j) + other(i,j) is stored in self and other remains unchanged. The two matrices must have the same dimensions.",46,null],[11,"sub","","This function subtracts the elements of the other matrix from the elements of the self matrix.\nThe result self(i,j) <- self(i,j) - other(i,j) is stored in self and other remains unchanged. The two matrices must have the same dimensions.",46,null],[11,"mul_elements","","This function multiplies the elements of the self matrix by the elements of the other matrix.\nThe result self(i,j) <- self(i,j) * other(i,j) is stored in self and other remains unchanged. The two matrices must have the same dimensions.",46,null],[11,"div_elements","","This function divides the elements of the self matrix by the elements of the other matrix.\nThe result self(i,j) <- self(i,j) / other(i,j) is stored in self and other remains unchanged. The two matrices must have the same dimensions.",46,null],[11,"scale","","This function multiplies the elements of the self matrix by the constant factor x. The result self(i,j) <- x self(i,j) is stored in self.",46,null],[11,"add_constant","","This function adds the constant value x to the elements of the self matrix. The result self(i,j) <- self(i,j) + x is stored in self.",46,null],[11,"max","","This function returns the maximum value in the self matrix.",46,null],[11,"min","","This function returns the minimum value in the self matrix.",46,null],[11,"minmax","","This function returns the minimum and maximum values in the self matrix, storing them in min_out and max_out.",46,null],[11,"max_index","","This function returns the indices of the maximum value in the self matrix, storing them in imax and jmax.\nWhen there are several equal maximum elements then the first element found is returned, searching in row-major order.",46,null],[11,"min_index","","This function returns the indices of the minimum value in the self matrix, storing them in imin and jmin.\nWhen there are several equal minimum elements then the first element found is returned, searching in row-major order.",46,null],[11,"minmax_index","","This function returns the indices of the minimum and maximum values in the self matrix, storing them in (imin,jmin) and (imax,jmax).\nWhen there are several equal minimum or maximum elements then the first elements found are returned, searching in row-major order.",46,null],[11,"is_null","","This function returns true if all the elements of the self matrix are stricly zero.",46,null],[11,"is_pos","","This function returns true if all the elements of the self matrix are stricly positive.",46,null],[11,"is_neg","","This function returns true if all the elements of the self matrix are stricly negative.",46,null],[11,"is_non_neg","","This function returns true if all the elements of the self matrix are stricly non-negative.",46,null],[11,"equal","","This function returns true if all elements of the two matrix are equal.",46,null],[11,"clone","","",46,null],[11,"drop","","",46,null],[11,"fmt","","",46,null],[0,"matrix_complex","rgsl::types","",null,null],[3,"MatrixComplexF64","rgsl::types::matrix_complex","",null,null],[3,"MatrixComplexF32","","",null,null],[11,"new","","Creates a new MatrixF64 with all elements set to zero",47,{"inputs":[{"name":"usize"},{"name":"usize"}],"output":{"name":"option"}}],[11,"get","","This function returns the (i,j)-th element of the matrix.\nIf y or x lie outside the allowed range of 0 to n1-1 and 0 to n2-1 then the error handler is invoked and 0 is returned.",47,null],[11,"set","","This function sets the value of the (i,j)-th element of the matrix to value.\nIf y or x lies outside the allowed range of 0 to n1-1 and 0 to n2-1 then the error handler is invoked.",47,null],[11,"set_all","","This function sets all the elements of the matrix to the value x.",47,null],[11,"set_zero","","This function sets all the elements of the matrix to zero.",47,null],[11,"set_identity","","This function sets the elements of the matrix to the corresponding elements of the identity matrix, m(i,j) = \\delta(i,j), i.e. a unit diagonal with all off-diagonal elements zero.\nThis applies to both square and rectangular matrices.",47,null],[11,"copy_from","","This function copies the elements of the other matrix into the self matrix. The two matrices must have the same size.",47,null],[11,"copy_to","","This function copies the elements of the self matrix into the other matrix. The two matrices must have the same size.",47,null],[11,"swap","","This function exchanges the elements of the matrices self and other by copying. The two matrices must have the same size.",47,null],[11,"get_row","","This function copies the elements of the y-th row of the matrix into the returned vector.",47,null],[11,"get_col","","This function copies the elements of the x-th column of the matrix into the returned vector.",47,null],[11,"set_row","","This function copies the elements of the vector v into the y-th row of the matrix.\nThe length of the vector must be the same as the length of the row.",47,null],[11,"set_col","","This function copies the elements of the vector v into the x-th column of the matrix.\nThe length of the vector must be the same as the length of the column.",47,null],[11,"swap_rows","","This function exchanges the y1-th and y2-th rows of the matrix in-place.",47,null],[11,"swap_columns","","This function exchanges the x1-th and x2-th columns of the matrix in-place.",47,null],[11,"swap_row_col","","This function exchanges the i-th row and j-th column of the matrix in-place. The matrix must be square for this operation to be possible.",47,null],[11,"transpose_memcpy","","This function returns the transpose of the matrix by copying the elements into it.\nThis function works for all matrices provided that the dimensions of the matrix dest match the transposed dimensions of the matrix.",47,null],[11,"transpose","","This function replaces the matrix m by its transpose by copying the elements of the matrix in-place.\nThe matrix must be square for this operation to be possible.",47,null],[11,"add","","This function adds the elements of the other matrix to the elements of the self matrix.\nThe result self(i,j) <- self(i,j) + other(i,j) is stored in self and other remains unchanged. The two matrices must have the same dimensions.",47,null],[11,"sub","","This function subtracts the elements of the other matrix from the elements of the self matrix.\nThe result self(i,j) <- self(i,j) - other(i,j) is stored in self and other remains unchanged. The two matrices must have the same dimensions.",47,null],[11,"mul_elements","","This function multiplies the elements of the self matrix by the elements of the other matrix.\nThe result self(i,j) <- self(i,j) * other(i,j) is stored in self and other remains unchanged. The two matrices must have the same dimensions.",47,null],[11,"div_elements","","This function divides the elements of the self matrix by the elements of the other matrix.\nThe result self(i,j) <- self(i,j) / other(i,j) is stored in self and other remains unchanged. The two matrices must have the same dimensions.",47,null],[11,"scale","","This function multiplies the elements of the self matrix by the constant factor x. The result self(i,j) <- x self(i,j) is stored in self.",47,null],[11,"add_constant","","This function adds the constant value x to the elements of the self matrix. The result self(i,j) <- self(i,j) + x is stored in self.",47,null],[11,"is_null","","This function returns true if all the elements of the self matrix are stricly zero.",47,null],[11,"is_pos","","This function returns true if all the elements of the self matrix are stricly positive.",47,null],[11,"is_neg","","This function returns true if all the elements of the self matrix are stricly negative.",47,null],[11,"is_non_neg","","This function returns true if all the elements of the self matrix are stricly non-negative.",47,null],[11,"equal","","This function returns true if all elements of the two matrix are equal.",47,null],[11,"clone","","",47,null],[11,"drop","","",47,null],[11,"fmt","","",47,null],[11,"new","","Creates a new MatrixF64 with all elements set to zero",48,{"inputs":[{"name":"usize"},{"name":"usize"}],"output":{"name":"option"}}],[11,"get","","This function returns the (i,j)-th element of the matrix.\nIf y or x lie outside the allowed range of 0 to n1-1 and 0 to n2-1 then the error handler is invoked and 0 is returned.",48,null],[11,"set","","This function sets the value of the (i,j)-th element of the matrix to value.\nIf y or x lies outside the allowed range of 0 to n1-1 and 0 to n2-1 then the error handler is invoked.",48,null],[11,"set_all","","This function sets all the elements of the matrix to the value x.",48,null],[11,"set_zero","","This function sets all the elements of the matrix to zero.",48,null],[11,"set_identity","","This function sets the elements of the matrix to the corresponding elements of the identity matrix, m(i,j) = \\delta(i,j), i.e. a unit diagonal with all off-diagonal elements zero.\nThis applies to both square and rectangular matrices.",48,null],[11,"copy_from","","This function copies the elements of the other matrix into the self matrix. The two matrices must have the same size.",48,null],[11,"copy_to","","This function copies the elements of the self matrix into the other matrix. The two matrices must have the same size.",48,null],[11,"swap","","This function exchanges the elements of the matrices self and other by copying. The two matrices must have the same size.",48,null],[11,"get_row","","This function copies the elements of the y-th row of the matrix into the returned vector.",48,null],[11,"get_col","","This function copies the elements of the x-th column of the matrix into the returned vector.",48,null],[11,"set_row","","This function copies the elements of the vector v into the y-th row of the matrix.\nThe length of the vector must be the same as the length of the row.",48,null],[11,"set_col","","This function copies the elements of the vector v into the x-th column of the matrix.\nThe length of the vector must be the same as the length of the column.",48,null],[11,"swap_rows","","This function exchanges the y1-th and y2-th rows of the matrix in-place.",48,null],[11,"swap_columns","","This function exchanges the x1-th and x2-th columns of the matrix in-place.",48,null],[11,"swap_row_col","","This function exchanges the i-th row and j-th column of the matrix in-place. The matrix must be square for this operation to be possible.",48,null],[11,"transpose_memcpy","","This function returns the transpose of the matrix by copying the elements into it.\nThis function works for all matrices provided that the dimensions of the matrix dest match the transposed dimensions of the matrix.",48,null],[11,"transpose","","This function replaces the matrix m by its transpose by copying the elements of the matrix in-place.\nThe matrix must be square for this operation to be possible.",48,null],[11,"add","","This function adds the elements of the other matrix to the elements of the self matrix.\nThe result self(i,j) <- self(i,j) + other(i,j) is stored in self and other remains unchanged. The two matrices must have the same dimensions.",48,null],[11,"sub","","This function subtracts the elements of the other matrix from the elements of the self matrix.\nThe result self(i,j) <- self(i,j) - other(i,j) is stored in self and other remains unchanged. The two matrices must have the same dimensions.",48,null],[11,"mul_elements","","This function multiplies the elements of the self matrix by the elements of the other matrix.\nThe result self(i,j) <- self(i,j) * other(i,j) is stored in self and other remains unchanged. The two matrices must have the same dimensions.",48,null],[11,"div_elements","","This function divides the elements of the self matrix by the elements of the other matrix.\nThe result self(i,j) <- self(i,j) / other(i,j) is stored in self and other remains unchanged. The two matrices must have the same dimensions.",48,null],[11,"scale","","This function multiplies the elements of the self matrix by the constant factor x. The result self(i,j) <- x self(i,j) is stored in self.",48,null],[11,"add_constant","","This function adds the constant value x to the elements of the self matrix. The result self(i,j) <- self(i,j) + x is stored in self.",48,null],[11,"is_null","","This function returns true if all the elements of the self matrix are stricly zero.",48,null],[11,"is_pos","","This function returns true if all the elements of the self matrix are stricly positive.",48,null],[11,"is_neg","","This function returns true if all the elements of the self matrix are stricly negative.",48,null],[11,"is_non_neg","","This function returns true if all the elements of the self matrix are stricly non-negative.",48,null],[11,"equal","","This function returns true if all elements of the two matrix are equal.",48,null],[11,"clone","","",48,null],[11,"drop","","",48,null],[11,"fmt","","",48,null],[0,"minimizer","rgsl::types","#One dimensional Minimization",null,null],[3,"Minimizer","rgsl::types::minimizer","",null,null],[3,"MinimizerType","","",null,null],[12,"name","","",49,null],[11,"new","","This function returns a pointer to a newly allocated instance of a minimizer of type T. For example, the following code creates an\ninstance of a golden section minimizer,",50,{"inputs":[{"name":"minimizertype"}],"output":{"name":"option"}}],[11,"set","","This function sets, or resets, an existing minimizer s to use the function f and the initial search interval [x_lower, x_upper], with\na guess for the location of the minimum x_minimum.",50,null],[11,"set_with_values","","This function is equivalent to gsl_min_fminimizer_set but uses the values f_minimum, f_lower and f_upper instead of computing\nf(x_minimum), f(x_lower) and f(x_upper).",50,null],[11,"name","","This function returns a pointer to the name of the minimizer. For example,",50,null],[11,"x_minimum","","This function returns the current estimate of the position of the minimum for the minimizer s.",50,null],[11,"x_lower","","This function returns the current upper and lower bound of the interval for the minimizer s.",50,null],[11,"x_upper","","/// This function returns the current upper and lower bound of the interval for the minimizer s.",50,null],[11,"f_minimum","","This function returns the value of the function at the current estimate of the minimum and at the upper and lower bounds of the\ninterval for the minimizer s.",50,null],[11,"f_lower","","This function returns the value of the function at the current estimate of the minimum and at the upper and lower bounds of the\ninterval for the minimizer s.",50,null],[11,"f_upper","","This function returns the value of the function at the current estimate of the minimum and at the upper and lower bounds of the\ninterval for the minimizer s.",50,null],[11,"iterate","","This function performs a single iteration of the minimizer s. If the iteration encounters an unexpected problem then an error code\nwill be returned,",50,null],[11,"drop","","",50,null],[11,"golden_section","","The golden section algorithm is the simplest method of bracketing the minimum of a function. It is the slowest algorithm provided\nby the library, with linear convergence.",49,{"inputs":[],"output":{"name":"minimizertype"}}],[11,"brent","","The Brent minimization algorithm combines a parabolic interpolation with the golden section algorithm. This produces a fast algorithm\nwhich is still robust.",49,{"inputs":[],"output":{"name":"minimizertype"}}],[11,"quad_golden","","This is a variant of Brent’s algorithm which uses the safeguarded step-length algorithm of Gill and Murray.",49,{"inputs":[],"output":{"name":"minimizertype"}}],[11,"clone","","",49,null],[0,"monte_carlo","rgsl::types","#Monte Carlo Integration",null,null],[3,"PlainMonteCarlo","rgsl::types::monte_carlo","",null,null],[3,"MiserMonteCarlo","","",null,null],[3,"VegasParams","","",null,null],[12,"alpha","","The parameter alpha controls the stiffness of the rebinning algorithm. It is typically set between one and two. A value of zero prevents\nrebinning of the grid. The default value is 1.5.",51,null],[12,"iterations","","The number of iterations to perform for each call to the routine. The default value is 5 iterations.",51,null],[12,"stage","","Setting this determines the stage of the calculation. Normally, stage = 0 which begins with a new uniform grid and empty weighted average.\nCalling VEGAS with stage = 1 retains the grid from the previous run but discards the weighted average, so that one can “tune” the grid\nusing a relatively small number of points and then do a large run with stage = 1 on the optimized grid. Setting stage = 2 keeps the grid\nand the weighted average from the previous run, but may increase (or decrease) the number of histogram bins in the grid depending on the\nnumber of calls available. Choosing stage = 3 enters at the main loop, so that nothing is changed, and is equivalent to performing\nadditional iterations in a previous call.",51,null],[12,"mode","","The possible choices are GSL_VEGAS_MODE_IMPORTANCE, GSL_VEGAS_MODE_STRATIFIED, GSL_VEGAS_MODE_IMPORTANCE_ONLY. This determines whether\nVEGAS will use importance sampling or stratified sampling, or whether it can pick on its own. In low dimensions VEGAS uses strict\nstratified sampling (more precisely, stratified sampling is chosen if there are fewer than 2 bins per box).",51,null],[12,"verbose","","These parameters set the level of information printed by VEGAS. All information is written to the stream ostream. The default setting\nof verbose is -1, which turns off all output. A verbose value of 0 prints summary information about the weighted average and final\nresult, while a value of 1 also displays the grid coordinates. A value of 2 prints information from the rebinning procedure for each\niteration.",51,null],[3,"VegasMonteCarlo","","",null,null],[11,"new","","This function allocates and initializes a workspace for Monte Carlo integration in dim dimensions.",52,{"inputs":[{"name":"usize"}],"output":{"name":"option"}}],[11,"init","","This function initializes a previously allocated integration state. This allows an existing workspace to be reused for different\nintegrations.",52,null],[11,"integrate","","This routines uses the plain Monte Carlo algorithm to integrate the function f over the dim-dimensional hypercubic region defined\nby the lower and upper limits in the arrays xl and xu, each of the same size. The integration uses a fixed number of function calls\ncalls, and obtains random sampling points using the random number generator r. A previously allocated workspace s must be supplied.\nThe result of the integration is returned in result, with an estimated absolute error abserr.",52,null],[11,"drop","","",52,null],[11,"new","","This function allocates and initializes a workspace for Monte Carlo integration in dim dimensions. The workspace is used to maintain\nthe state of the integration.",53,{"inputs":[{"name":"usize"}],"output":{"name":"option"}}],[11,"init","","This function initializes a previously allocated integration state. This allows an existing workspace to be reused for different integrations.",53,null],[11,"integrate","","This routines uses the MISER Monte Carlo algorithm to integrate the function f over the dim-dimensional hypercubic region defined by\nthe lower and upper limits in the arrays xl and xu, each of size dim. The integration uses a fixed number of function calls calls,\nand obtains random sampling points using the random number generator r. A previously allocated workspace s must be supplied. The result\nof the integration is returned in result, with an estimated absolute error abserr.",53,null],[11,"drop","","",53,null],[11,"clone","","",51,null],[11,"default","","",51,{"inputs":[],"output":{"name":"vegasparams"}}],[11,"new","","This function allocates and initializes a workspace for Monte Carlo integration in dim dimensions. The workspace is used to maintain\nthe state of the integration.",54,{"inputs":[{"name":"usize"}],"output":{"name":"option"}}],[11,"init","","This function initializes a previously allocated integration state. This allows an existing workspace to be reused for different integrations.",54,null],[11,"integrate","","This routines uses the VEGAS Monte Carlo algorithm to integrate the function f over the dim-dimensional hypercubic region defined by\nthe lower and upper limits in the arrays xl and xu, each of size dim. The integration uses a fixed number of function calls calls, and\nobtains random sampling points using the random number generator r. A previously allocated workspace s must be supplied. The result of\nthe integration is returned in result, with an estimated absolute error abserr. The result and its error estimate are based on a weighted\naverage of independent samples. The chi-squared per degree of freedom for the weighted average is returned via the state struct\ncomponent, s->chisq, and must be consistent with 1 for the weighted average to be reliable.",54,null],[11,"chisq","","This function returns the chi-squared per degree of freedom for the weighted estimate of the integral. The returned value should be\nclose to 1. A value which differs significantly from 1 indicates that the values from different iterations are inconsistent. In this\ncase the weighted error will be under-estimated, and further iterations of the algorithm are needed to obtain reliable results.",54,null],[11,"runval","","This function returns the raw (unaveraged) values of the integral result and its error sigma from the most recent iteration of the\nalgorithm.",54,null],[11,"params_get","","This function copies the parameters of the integrator state into the returned params structure.",54,null],[11,"params_set","","This function sets the integrator parameters based on values provided in the params structure.",54,null],[11,"drop","","",54,null],[0,"multifit_solver","rgsl::types","#Nonlinear Least-Squares Fitting",null,null],[3,"MultiFitFunction","rgsl::types::multifit_solver","",null,null],[12,"f","","",55,null],[12,"n","","number of functions",55,null],[12,"p","","number of independent variables",55,null],[12,"params","","",55,null],[3,"MultiFitFdfSolver","","",null,null],[12,"x","","",56,null],[12,"f","","",56,null],[12,"j","","",56,null],[12,"dx","","",56,null],[3,"MultiFitFdfSolverType","","",null,null],[3,"MultiFitFunctionFdf","","",null,null],[12,"f","","",57,null],[12,"df","","",57,null],[12,"fdf","","",57,null],[12,"n","","",57,null],[12,"p","","",57,null],[12,"params","","",57,null],[11,"new","","This function returns a pointer to a newly allocated instance of a solver of type T for n observations and p parameters. The number\nof observations n must be greater than or equal to parameters p.",56,{"inputs":[{"name":"multifitfdfsolvertype"},{"name":"usize"},{"name":"usize"}],"output":{"name":"option"}}],[11,"set","","This function initializes, or reinitializes, an existing solver s to use the function f and the initial guess x.",56,null],[11,"name","","",56,null],[11,"iterate","","This function performs a single iteration of the solver s. If the iteration encounters an unexpected problem then an error code\nwill be returned. The solver maintains a current estimate of the best-fit parameters at all times.",56,null],[11,"position","","This function returns the current position (i.e. best-fit parameters) s->x of the solver s.",56,null],[11,"driver","","These functions iterate the solver s for a maximum of maxiter iterations. After each iteration, the system is tested for convergence\nusing gsl_multifit_test_delta with the error tolerances epsabs and epsrel.",56,null],[11,"drop","","",56,null],[11,"lmder","","",58,{"inputs":[],"output":{"name":"multifitfdfsolvertype"}}],[11,"lmsder","","",58,{"inputs":[],"output":{"name":"multifitfdfsolvertype"}}],[0,"multiset","rgsl::types","#Multisets",null,null],[3,"MultiSet","rgsl::types::multiset","",null,null],[11,"new","","This function allocates memory for a new multiset with parameters n, k. The multiset is not initialized and its elements are\nundefined. Use the function gsl_multiset_calloc if you want to create a multiset which is initialized to the lexicographically \nfirst multiset element. A null pointer is returned if insufficient memory is available to create the multiset.",59,{"inputs":[{"name":"usize"},{"name":"usize"}],"output":{"name":"option"}}],[11,"new_init","","This function allocates memory for a new multiset with parameters n, k and initializes it to the lexicographically first multiset\nelement. A null pointer is returned if insufficient memory is available to create the multiset.",59,{"inputs":[{"name":"usize"},{"name":"usize"}],"output":{"name":"option"}}],[11,"init_first","","This function initializes the multiset c to the lexicographically first multiset element, i.e. 0 repeated k times.",59,null],[11,"init_last","","This function initializes the multiset c to the lexicographically last multiset element, i.e. n-1 repeated k times.",59,null],[11,"copy","","This function copies the elements of the multiset self into the multiset dest. The two multisets must have the same size.",59,null],[11,"get","","This function returns the value of the i-th element of the multiset c. If i lies outside the allowed range of 0 to k-1 then the\nerror handler is invoked and 0 is returned.",59,null],[11,"n","","This function returns the range (n) of the multiset self.",59,null],[11,"k","","This function returns the number of elements (k) in the multiset self.",59,null],[11,"data","","This function returns a pointer to the array of elements in the multiset self.",59,null],[11,"valid","","This function checks that the multiset self is valid. The k elements should lie in the range 0 to n-1, with each value occurring in\nnondecreasing order.",59,null],[11,"next","","This function advances the multiset self to the next multiset element in lexicographic order and returns ::Value::Success. If no\nfurther multisets elements are available it returns enums::value::Failure and leaves self unmodified. Starting with the first multiset and\nrepeatedly applying this function will iterate through all possible multisets of a given order.",59,null],[11,"prev","","This function steps backwards from the multiset self to the previous multiset element in lexicographic order, returning ::Value::Success.\nIf no previous multiset is available it returns enums::value::Failure and leaves self unmodified.",59,null],[11,"print","","",59,null],[11,"drop","","",59,null],[0,"n_tuples","rgsl::types","#N-tuples",null,null],[3,"NTuples","rgsl::types::n_tuples","",null,null],[11,"create","","This function creates a new write-only ntuple file filename for ntuples of size size and returns a pointer to the newly created ntuple\nstruct. Any existing file with the same name is truncated to zero length and overwritten. A pointer to memory for the current ntuple\nrow ntuple_data must be supplied—this is used to copy ntuples in and out of the file.",60,{"inputs":[{"name":"str"},{"name":"t"}],"output":{"name":"option"}}],[11,"open","","This function opens an existing ntuple file filename for reading and returns a pointer to a corresponding ntuple struct. The ntuples\nin the file must have size size. A pointer to memory for the current ntuple row ntuple_data must be supplied—this is used to copy\nntuples in and out of the file.",60,{"inputs":[{"name":"str"},{"name":"t"}],"output":{"name":"option"}}],[11,"write","","This function writes the current ntuple ntuple->ntuple_data of size ntuple->size to the corresponding file.",60,null],[11,"bookdata","","This function is a synonym for NTuples::write.",60,null],[11,"read","","This function reads the current row of the ntuple file for ntuple and stores the values in ntuple->data.",60,null],[11,"project","","",60,null],[11,"drop","","",60,null],[0,"ordinary_differential_equations","rgsl::types","Numerical ODE solvers.",null,null],[3,"ODEiv2System","rgsl::types::ordinary_differential_equations","Description of a system of ODEs.",null,null],[3,"ODEiv2Step","","",null,null],[3,"ODEiv2StepType","","",null,null],[3,"ODEiv2Control","","",null,null],[3,"ODEiv2ControlType","","",null,null],[3,"ODEiv2Evolve","","",null,null],[3,"ODEiv2Driver","","",null,null],[11,"new","","Returns a new ODEiv2System with a given dimension and right-hand side.",61,{"inputs":[{"name":"usize"},{"name":"fnmut"}],"output":{"name":"odeiv2system"}}],[11,"with_jacobian","","Returns a new ODEiv2System with a jacobian function provided.",61,{"inputs":[{"name":"usize"},{"name":"fnmut"},{"name":"fnmut"}],"output":{"name":"odeiv2system"}}],[11,"new","","This function returns a pointer to a newly allocated instance of a stepping function of type T for a system of dim dimensions.\nPlease note that if you use a stepper method that requires access to a driver object, it is advisable to use a driver allocation\nmethod, which automatically allocates a stepper, too.",62,{"inputs":[{"name":"odeiv2steptype"},{"name":"usize"}],"output":{"name":"option"}}],[11,"reset","","This function resets the stepping function s. It should be used whenever the next use of s will not be a continuation of a previous\nstep.",62,null],[11,"name","","This function returns a pointer to the name of the stepping function. For example,",62,null],[11,"order","","This function returns the order of the stepping function on the previous step. The order can vary if the stepping function itself is\nadaptive.",62,null],[11,"set_driver","","This function sets a pointer of the driver object d for stepper s, to allow the stepper to access control (and evolve) object through\nthe driver object. This is a requirement for some steppers, to get the desired error level for internal iteration of stepper.\nAllocation of a driver object calls this function automatically.",62,null],[11,"apply","","This function applies the stepping function s to the system of equations defined by sys, using the step-size h to advance the system\nfrom time t and state y to time t+h. The new state of the system is stored in y on output, with an estimate of the absolute error\nin each component stored in yerr. If the argument dydt_in is not null it should point an array containing the derivatives for the\nsystem at time t on input. This is optional as the derivatives will be computed internally if they are not provided, but allows\nthe reuse of existing derivative information. On output the new derivatives of the system at time t+h will be stored in dydt_out\nif it is not null.",62,null],[11,"drop","","",62,null],[11,"clone","","",63,null],[11,"rk2","","Explicit embedded Runge-Kutta (2, 3) method.",63,{"inputs":[],"output":{"name":"odeiv2steptype"}}],[11,"rk4","","Explicit 4th order (classical) Runge-Kutta. Error estimation is carried out by the step doubling method. For more efficient\nestimate of the error, use the embedded methods described below.",63,{"inputs":[],"output":{"name":"odeiv2steptype"}}],[11,"rk45","","Explicit embedded Runge-Kutta-Fehlberg (4, 5) method. This method is a good general-purpose integrator.",63,{"inputs":[],"output":{"name":"odeiv2steptype"}}],[11,"rkck","","Explicit embedded Runge-Kutta Cash-Karp (4, 5) method.",63,{"inputs":[],"output":{"name":"odeiv2steptype"}}],[11,"rk8pd","","Explicit embedded Runge-Kutta Prince-Dormand (8, 9) method.",63,{"inputs":[],"output":{"name":"odeiv2steptype"}}],[11,"rk1imp","","Implicit Gaussian first order Runge-Kutta. Also known as implicit Euler or backward Euler method. Error estimation is carried out by\nthe step doubling method. This algorithm requires the Jacobian and access to the driver object via gsl_odeiv2_step_set_driver.",63,{"inputs":[],"output":{"name":"odeiv2steptype"}}],[11,"rk2imp","","Implicit Gaussian second order Runge-Kutta. Also known as implicit mid-point rule. Error estimation is carried out by the step doubling\nmethod. This stepper requires the Jacobian and access to the driver object via gsl_odeiv2_step_set_driver.",63,{"inputs":[],"output":{"name":"odeiv2steptype"}}],[11,"rk4imp","","Implicit Gaussian 4th order Runge-Kutta. Error estimation is carried out by the step doubling method. This algorithm requires the\nJacobian and access to the driver object via gsl_odeiv2_step_set_driver.",63,{"inputs":[],"output":{"name":"odeiv2steptype"}}],[11,"bsimp","","Implicit Bulirsch-Stoer method of Bader and Deuflhard. The method is generally suitable for stiff problems. This stepper requires\nthe Jacobian.",63,{"inputs":[],"output":{"name":"odeiv2steptype"}}],[11,"msadams","","A variable-coefficient linear multistep Adams method in Nordsieck form. This stepper uses explicit Adams-Bashforth (predictor) and\nimplicit Adams-Moulton (corrector) methods in P(EC)^m functional iteration mode. Method order varies dynamically between 1 and 12.\nThis stepper requires the access to the driver object via gsl_odeiv2_step_set_driver.",63,{"inputs":[],"output":{"name":"odeiv2steptype"}}],[11,"msbdf","","A variable-coefficient linear multistep backward differentiation formula (BDF) method in Nordsieck form. This stepper uses the explicit\nBDF formula as predictor and implicit BDF formula as corrector. A modified Newton iteration method is used to solve the system of\nnon-linear equations. Method order varies dynamically between 1 and 5. The method is generally suitable for stiff problems. This\nstepper requires the Jacobian and the access to the driver object via gsl_odeiv2_step_set_driver.",63,{"inputs":[],"output":{"name":"odeiv2steptype"}}],[11,"standard_new","","The standard control object is a four parameter heuristic based on absolute and relative errors eps_abs and eps_rel, and scaling\nfactors a_y and a_dydt for the system state y(t) and derivatives y'(t) respectively.",64,{"inputs":[{"name":"f64"},{"name":"f64"},{"name":"f64"},{"name":"f64"}],"output":{"name":"option"}}],[11,"y_new","","This function creates a new control object which will keep the local error on each step within an absolute error of eps_abs and relative\nerror of eps_rel with respect to the solution y_i(t). This is equivalent to the standard control object with a_y=1 and a_dydt=0.",64,{"inputs":[{"name":"f64"},{"name":"f64"}],"output":{"name":"option"}}],[11,"yp_new","","This function creates a new control object which will keep the local error on each step within an absolute error of eps_abs and relative\nerror of eps_rel with respect to the derivatives of the solution y'_i(t). This is equivalent to the standard control object with\na_y=0 and a_dydt=1.",64,{"inputs":[{"name":"f64"},{"name":"f64"}],"output":{"name":"option"}}],[11,"scaled_new","","This function creates a new control object which uses the same algorithm as gsl_odeiv2_control_standard_new but with an absolute error\nwhich is scaled for each component by the array scale_abs. The formula for D_i for this control object is,",64,null],[11,"alloc","","This function returns a pointer to a newly allocated instance of a control function of type T. This function is only needed for\ndefining new types of control functions. For most purposes the standard control functions described above should be sufficient.",64,{"inputs":[{"name":"odeiv2controltype"}],"output":{"name":"option"}}],[11,"init","","This function initializes the control function c with the parameters eps_abs (absolute error), eps_rel (relative error), a_y\n(scaling factor for y) and a_dydt (scaling factor for derivatives).",64,null],[11,"hadjust","","This function adjusts the step-size h using the control function c, and the current values of y, yerr and dydt. The stepping function\nstep is also needed to determine the order of the method. If the error in the y-values yerr is found to be too large then the step-size\nh is reduced and the function returns ODEiv::Dec. If the error is sufficiently small then h may be increased and\nODEiv::Inc is returned. The function returns ODEiv::Nil if the step-size is unchanged. The goal of the function is to estimate\nthe largest step-size which satisfies the user-specified accuracy requirements for the current point.",64,null],[11,"name","","This function returns a pointer to the name of the control function. For example,",64,null],[11,"errlevel","","This function calculates the desired error level of the ind-th component to errlev. It requires the value (y) and value of the derivative\n(dydt) of the component, and the current step size h.",64,null],[11,"set_driver","","This function sets a pointer of the driver object d for control object c.",64,null],[11,"drop","","",64,null],[11,"clone","","",65,null],[11,"scaled","","",65,{"inputs":[],"output":{"name":"odeiv2controltype"}}],[11,"standard","","",65,{"inputs":[],"output":{"name":"odeiv2controltype"}}],[11,"new","","This function returns a pointer to a newly allocated instance of an evolution function for a system of dim dimensions.",66,{"inputs":[{"name":"usize"}],"output":{"name":"option"}}],[11,"apply","","This function advances the system (e, sys) from time t and position y using the stepping function step. The new time and position\nare stored in t and y on output.",66,null],[11,"apply_fixed_step","","This function advances the ODE-system (e, sys, con) from time t and position y using the stepping function step by a specified step\nsize h. If the local error estimated by the stepping function exceeds the desired error level, the step is not taken and the function\nreturns enums::value::Failure. Otherwise the value returned by user function is returned.",66,null],[11,"reset","","This function resets the evolution function e. It should be used whenever the next use of e will not be a continuation of a previous\nstep.",66,null],[11,"set_driver","","This function sets a pointer of the driver object d for evolve object e.",66,null],[11,"drop","","",66,null],[11,"alloc_y_new","","These functions return a pointer to a newly allocated instance of a driver object. The functions automatically allocate and initialise\nthe evolve, control and stepper objects for ODE system sys using stepper type T. The initial step size is given in hstart. The rest\nof the arguments follow the syntax and semantics of the control functions with same name (gsl_odeiv2_control_*_new).",67,{"inputs":[{"name":"odeiv2system"},{"name":"odeiv2steptype"},{"name":"f64"},{"name":"f64"},{"name":"f64"}],"output":{"name":"option"}}],[11,"alloc_yp_new","","These functions return a pointer to a newly allocated instance of a driver object. The functions automatically allocate and initialise\nthe evolve, control and stepper objects for ODE system sys using stepper type T. The initial step size is given in hstart. The rest\nof the arguments follow the syntax and semantics of the control functions with same name (gsl_odeiv2_control_*_new).",67,{"inputs":[{"name":"odeiv2system"},{"name":"odeiv2steptype"},{"name":"f64"},{"name":"f64"},{"name":"f64"}],"output":{"name":"option"}}],[11,"alloc_standard_new","","These functions return a pointer to a newly allocated instance of a driver object. The functions automatically allocate and initialise\nthe evolve, control and stepper objects for ODE system sys using stepper type T. The initial step size is given in hstart. The rest\nof the arguments follow the syntax and semantics of the control functions with same name (gsl_odeiv2_control_*_new).",67,{"inputs":[{"name":"odeiv2system"},{"name":"odeiv2steptype"},{"name":"f64"},{"name":"f64"},{"name":"f64"},{"name":"f64"},{"name":"f64"}],"output":{"name":"option"}}],[11,"alloc_scaled_new","","These functions return a pointer to a newly allocated instance of a driver object. The functions automatically allocate and initialise\nthe evolve, control and stepper objects for ODE system sys using stepper type T. The initial step size is given in hstart. The rest\nof the arguments follow the syntax and semantics of the control functions with same name (gsl_odeiv2_control_*_new).",67,null],[11,"set_hmin","","The function sets a minimum for allowed step size hmin for driver self. Default value is 0.",67,null],[11,"set_hmax","","The function sets a maximum for allowed step size hmax for driver self. Default value is ::DBL_MAX.",67,null],[11,"set_nmax","","The function sets a maximum for allowed number of steps nmax for driver self. Default value of 0 sets no limit for steps.",67,null],[11,"apply","","This function evolves the driver system d from t to t1. Initially vector y should contain the values of dependent variables at\npoint t. If the function is unable to complete the calculation, an error code from gsl_odeiv2_evolve_apply is returned, and t and\ny contain the values from last successful step.",67,null],[11,"apply_fixed_step","","This function evolves the driver system d from t with n steps of size h. If the function is unable to complete the calculation, an\nerror code from gsl_odeiv2_evolve_apply_fixed_step is returned, and t and y contain the values from last successful step.",67,null],[11,"reset","","This function resets the evolution and stepper objects.",67,null],[11,"reset_hstart","","The routine resets the evolution and stepper objects and sets new initial step size to hstart. This function can be used e.g. to\nchange the direction of integration.",67,null],[11,"drop","","",67,null],[0,"permutation","rgsl::types","",null,null],[3,"Permutation","rgsl::types::permutation","",null,null],[11,"new","","This function allocates memory for a new permutation of size n. The permutation is not initialized and its elements are undefined.\nUse the function gsl_permutation_calloc if you want to create a permutation which is initialized to the identity. A null pointer is\nreturned if insufficient memory is available to create the permutation.",68,{"inputs":[{"name":"usize"}],"output":{"name":"option"}}],[11,"new_with_init","","This function allocates memory for a new permutation of size n and initializes it to the identity. A null pointer is returned if\ninsufficient memory is available to create the permutation.",68,{"inputs":[{"name":"usize"}],"output":{"name":"option"}}],[11,"init","","This function initializes the permutation p to the identity, i.e. (0,1,2,…,n-1).",68,null],[11,"copy","","This function copies the elements of the permutation src into the permutation dest. The two permutations must have the same size.",68,null],[11,"get","","This function returns the value of the i-th element of the permutation p. If i lies outside the allowed range of 0 to n-1 then\nthe error handler is invoked and 0 is returned.",68,null],[11,"swap","","This function exchanges the i-th and j-th elements of the permutation p.",68,null],[11,"size","","This function returns the size of the permutation p.",68,null],[11,"data","","This function returns a pointer to the array of elements in the permutation p.",68,null],[11,"is_valid","","This function checks that the permutation p is valid. The n elements should contain each of the numbers 0 to n-1 once and only once.",68,null],[11,"reverse","","This function reverses the elements of the permutation p.",68,null],[11,"inverse","","This function computes the inverse of the permutation p, storing the result in inv.",68,null],[11,"next","","This function advances the permutation p to the next permutation in lexicographic order and returns GSL_SUCCESS. If no further\npermutations are available it returns GSL_FAILURE and leaves p unmodified. Starting with the identity permutation and repeatedly\napplying this function will iterate through all possible permutations of a given order.",68,null],[11,"prev","","This function steps backwards from the permutation p to the previous permutation in lexicographic order, returning GSL_SUCCESS.\nIf no previous permutation is available it returns GSL_FAILURE and leaves p unmodified.",68,null],[11,"permute","","This function applies the permutation to the array data of size n with stride stride.",68,null],[11,"permute_inverse","","This function applies the inverse of the permutation p to the array data of size n with stride stride.",68,null],[11,"permute_vector","","This function applies the permutation p to the elements of the vector v, considered as a row-vector acted on by a permutation\nmatrix from the right, v' = v P. The j-th column of the permutation matrix P is given by the p_j-th column of the identity matrix.\nThe permutation p and the vector v must have the same length.",68,null],[11,"permute_vector_inverse","","This function applies the inverse of the permutation p to the elements of the vector v, considered as a row-vector acted on by an inverse permutation\nmatrix from the right, v' = v P^T. Note that for permutation matrices the inverse is the same as the transpose. The j-th column of the permutation\nmatrix P is given by the p_j-th column of the identity matrix. The permutation p and the vector v must have the same length.",68,null],[11,"mul","","This function combines the two permutations pa and pb into a single permutation p, where p = pa * pb. The permutation p is equivalent to applying pb\nfirst and then pa.",68,null],[11,"linear_to_canonical","","This function computes the canonical form of the permutation self and stores it in the output argument q.",68,null],[11,"canonical_to_linear","","This function converts the self permutation in canonical form back into linear form storing it in the output argument p.",68,null],[11,"inversions","","This function counts the number of inversions in the self permutation. An inversion is any pair of elements that are not in order. For example, the\npermutation 2031 has three inversions, corresponding to the pairs (2,0) (2,1) and (3,1). The identity permutation has no inversions.",68,null],[11,"linear_cycles","","This function counts the number of cycles in the self permutation, given in linear form.",68,null],[11,"canonical_cycles","","This function counts the number of cycles in the self permutation, given in canonical form.",68,null],[11,"drop","","",68,null],[11,"fmt","","",68,null],[0,"polynomial","rgsl::types","#General Polynomial Equations",null,null],[3,"PolyComplex","rgsl::types::polynomial","",null,null],[11,"new","","This function allocates space for a gsl_poly_complex_workspace struct and a workspace suitable for solving a polynomial with n coefficients\nusing the routine gsl_poly_complex_solve.",69,{"inputs":[{"name":"usize"}],"output":{"name":"option"}}],[11,"solve","","This function computes the roots of the general polynomial P(x) = a_0 + a_1 x + a_2 x^2 + ... + a_{n-1} x^{n-1} using balanced-QR reduction\nof the companion matrix. The parameter n specifies the length of the coefficient array. The coefficient of the highest order term must be\nnon-zero. The function requires a workspace w of the appropriate size. The n-1 roots are returned in the packed complex array z of length\n2(n-1), alternating real and imaginary parts.",69,null],[11,"drop","","",69,null],[0,"qrng","rgsl::types","#Quasi-Random Sequences",null,null],[3,"QRng","rgsl::types::qrng","",null,null],[3,"QRngType","","",null,null],[11,"new","","This function returns a pointer to a newly-created instance of a quasi-random sequence generator of type T and dimension d. If\nthere is insufficient memory to create the generator then the function returns a null pointer and the error handler is invoked\nwith an error code of ::NoMem.",70,{"inputs":[{"name":"qrngtype"},{"name":"u32"}],"output":{"name":"option"}}],[11,"init","","This function reinitializes the generator self to its starting point. Note that quasi-random sequences do not use a seed and always\nproduce the same set of values.",70,null],[11,"get","","This function stores the next point from the sequence generator self in the array x. The space available for x must match the\ndimension of the generator. The point x will lie in the range 0 < x_i < 1 for each x_i.",70,null],[11,"name","","This function returns a pointer to the name of the generator.",70,null],[11,"size","","These functions return a pointer to the state of generator r and its size.",70,null],[11,"state","","These functions return a pointer to the state of generator r and its size.",70,null],[11,"copy","","This function copies the quasi-random sequence generator src into the pre-existing generator dest, making dest into an exact copy\nof src. The two generators must be of the same type.",70,null],[11,"clone","","This function returns a pointer to a newly created generator which is an exact copy of the generator self.",70,null],[11,"drop","","",70,null],[11,"clone","","",71,null],[11,"niederreiter_2","","This generator uses the algorithm described in Bratley, Fox, Niederreiter, ACM Trans. Model. Comp. Sim. 2, 195 (1992). It is valid\nup to 12 dimensions.",71,{"inputs":[],"output":{"name":"qrngtype"}}],[11,"sobol","","This generator uses the Sobol sequence described in Antonov, Saleev, USSR Comput. Maths. Math. Phys. 19, 252 (1980). It is valid\nup to 40 dimensions.",71,{"inputs":[],"output":{"name":"qrngtype"}}],[11,"halton","","These generators use the Halton and reverse Halton sequences described in J.H. Halton, Numerische Mathematik 2, 84-90 (1960) and\nB. Vandewoestyne and R. Cools Computational and Applied Mathematics 189, 1&2, 341-361 (2006). They are valid up to 1229 dimensions.",71,{"inputs":[],"output":{"name":"qrngtype"}}],[11,"reversehalton","","",71,{"inputs":[],"output":{"name":"qrngtype"}}],[0,"ran_discrete","rgsl::types","Given K discrete events with different probabilities P[k], produce a random value k consistent with its probability.",null,null],[3,"RanDiscrete","rgsl::types::ran_discrete","",null,null],[11,"new","","This function returns a pointer to a structure that contains the lookup table for the discrete random number generator. The array P[] contains the probabilities of the discrete events;\nthese array elements must all be positive, but they needn’t add up to one (so you can think of them more generally as “weights”)—the preprocessor will normalize appropriately.\nThis return value is used as an argument for the gsl_ran_discrete function below.",72,null],[11,"discrete","","After the new, above, has been called, you use this function to get the discrete random numbers.",72,null],[11,"discrete_pdf","","Returns the probability P[k] of observing the variable k. Since P[k] is not stored as part of the lookup table, it must be recomputed; this computation takes O(K),\nso if K is large and you care about the original array P[k] used to create the lookup table, then you should just keep this original array P[k] around.",72,null],[11,"drop","","",72,null],[0,"result","rgsl::types","",null,null],[3,"Result","rgsl::types::result","The error handling form of the special functions always calculate an error estimate along with the value of the result.\nTherefore, structures are provided for amalgamating a value and error estimate.",null,null],[12,"val","","Contains the value.",73,null],[12,"err","","Contains an estimate of the absolute error in the value.",73,null],[3,"ResultE10","","In some cases, an overflow or underflow can be detected and handled by a function.\nIn this case, it may be possible to return a scaling exponent as well as an error/value pair in order to save the result from exceeding the dynamic range of the built-in types.",null,null],[12,"val","","Contains the value.",74,null],[12,"err","","Contains an estimate of the absolute error in the value.",74,null],[12,"e10","","Exponent field such that the actual result is obtained as result * 10^(e10).",74,null],[11,"clone","","",73,null],[11,"default","","",73,{"inputs":[],"output":{"name":"result"}}],[11,"new","","",73,{"inputs":[],"output":{"name":"result"}}],[11,"clone","","",74,null],[11,"default","","",74,{"inputs":[],"output":{"name":"resulte10"}}],[11,"new","","",74,{"inputs":[],"output":{"name":"resulte10"}}],[0,"series_acceleration","rgsl::types","#Series Acceleration",null,null],[3,"LevinUWorkspace","rgsl::types::series_acceleration","Workspace for Levin U Transform with error estimation",null,null],[3,"LevinUTruncWorkspace","","The following functions perform the same calculation without estimating the errors. They require O(N) storage instead of O(N^2).\nThis may be useful for summing many similar series where the size of the error has already been estimated reliably and is not\nexpected to change.",null,null],[11,"new","","This function allocates a workspace for a Levin u-transform of n terms. The size of the workspace is O(2n^2 + 3n).",75,{"inputs":[{"name":"usize"}],"output":{"name":"option"}}],[11,"accel","","This function takes the terms of a series in array of size array_size and computes the extrapolated limit of the series using a\nLevin u-transform. Additional working space must be provided in w. The extrapolated sum is stored in sum_accel, with an estimate\nof the absolute error stored in abserr. The actual term-by-term sum is returned in w->sum_plain. The algorithm calculates the\ntruncation error (the difference between two successive extrapolations) and round-off error (propagated from the individual terms)\nto choose an optimal number of terms for the extrapolation. All the terms of the series passed in through array should be non-zero.",75,null],[11,"sum_plain","","",75,null],[11,"terms_used","","",75,null],[11,"size","","",75,null],[11,"drop","","",75,null],[11,"new","","This function allocates a workspace for a Levin u-transform of n terms, without error estimation. The size of the workspace is O(3n).",76,{"inputs":[{"name":"usize"}],"output":{"name":"option"}}],[11,"accel","","This function takes the terms of a series in array of size array_size and computes the extrapolated limit of the series using a\nLevin u-transform. Additional working space must be provided in w. The extrapolated sum is stored in sum_accel. The actual\nterm-by-term sum is returned in w->sum_plain. The algorithm terminates when the difference between two successive extrapolations\nreaches a minimum or is sufficiently small. The difference between these two values is used as estimate of the error and is stored\nin abserr_trunc. To improve the reliability of the algorithm the extrapolated values are replaced by moving averages when\ncalculating the truncation error, smoothing out any fluctuations.",76,null],[11,"sum_plain","","",76,null],[11,"terms_used","","",76,null],[11,"size","","",76,null],[11,"drop","","",76,null],[0,"rng","rgsl::types","#Random Number Generation",null,null],[3,"Rng","rgsl::types::rng","",null,null],[3,"RngType","","",null,null],[5,"default","","",null,{"inputs":[],"output":{"name":"rngtype"}}],[0,"algorithms","","The functions described above make no reference to the actual algorithm used. This is deliberate so that you can switch algorithms without having\nto change any of your application source code. The library provides a large number of generators of different types, including simulation quality\ngenerators, generators provided for compatibility with other libraries and historical generators from the past.",null,null],[5,"mt19937","rgsl::types::rng::algorithms","The MT19937 generator of Makoto Matsumoto and Takuji Nishimura is a variant of the twisted generalized feedback shift-register algorithm, and\nis known as the “Mersenne Twister” generator. It has a Mersenne prime period of 2^19937 - 1 (about 10^6000) and is equi-distributed in 623 dimensions.\nIt has passed the DIEHARD statistical tests. It uses 624 words of state per generator and is comparable in speed to the other generators. The original\ngenerator used a default seed of 4357 and choosing s equal to zero in gsl_rng_set reproduces this. Later versions switched to 5489 as the default seed,\nyou can choose this explicitly via gsl_rng_set instead if you require it.",null,{"inputs":[],"output":{"name":"rngtype"}}],[5,"ranlxs0","","The generator ranlxs0 is a second-generation version of the RANLUX algorithm of Lüscher, which produces “luxury random numbers”. This generator\nprovides single precision output (24 bits) at three luxury levels ranlxs0, ranlxs1 and ranlxs2, in increasing order of strength. It uses double-precision\nfloating point arithmetic internally and can be significantly faster than the integer version of ranlux, particularly on 64-bit architectures. The period\nof the generator is about 10^171. The algorithm has mathematically proven properties and can provide truly decorrelated numbers at a known level of\nrandomness. The higher luxury levels provide increased decorrelation between samples as an additional safety margin.",null,{"inputs":[],"output":{"name":"rngtype"}}],[5,"ranlxs1","","The generator ranlxs0 is a second-generation version of the RANLUX algorithm of Lüscher, which produces “luxury random numbers”. This generator\nprovides single precision output (24 bits) at three luxury levels ranlxs0, ranlxs1 and ranlxs2, in increasing order of strength. It uses double-precision\nfloating point arithmetic internally and can be significantly faster than the integer version of ranlux, particularly on 64-bit architectures. The period\nof the generator is about 10^171. The algorithm has mathematically proven properties and can provide truly decorrelated numbers at a known level of\nrandomness. The higher luxury levels provide increased decorrelation between samples as an additional safety margin.",null,{"inputs":[],"output":{"name":"rngtype"}}],[5,"ranlxs2","","The generator ranlxs0 is a second-generation version of the RANLUX algorithm of Lüscher, which produces “luxury random numbers”. This generator\nprovides single precision output (24 bits) at three luxury levels ranlxs0, ranlxs1 and ranlxs2, in increasing order of strength. It uses double-precision\nfloating point arithmetic internally and can be significantly faster than the integer version of ranlux, particularly on 64-bit architectures. The period\nof the generator is about 10^171. The algorithm has mathematically proven properties and can provide truly decorrelated numbers at a known level of\nrandomness. The higher luxury levels provide increased decorrelation between samples as an additional safety margin.",null,{"inputs":[],"output":{"name":"rngtype"}}],[5,"ranlxd1","","This generator produces double precision output (48 bits) from the RANLXS generator. The library provides two luxury levels ranlxd1 and ranlxd2,\nin increasing order of strength.",null,{"inputs":[],"output":{"name":"rngtype"}}],[5,"ranlxd2","","This generator produces double precision output (48 bits) from the RANLXS generator. The library provides two luxury levels ranlxd1 and ranlxd2,\nin increasing order of strength.",null,{"inputs":[],"output":{"name":"rngtype"}}],[5,"ranlux","","The ranlux generator is an implementation of the original algorithm developed by Lüscher. It uses a lagged-fibonacci-with-skipping algorithm to\nproduce “luxury random numbers”. It is a 24-bit generator, originally designed for single-precision IEEE floating point numbers. This\nimplementation is based on integer arithmetic, while the second-generation versions RANLXS and RANLXD described above provide floating-point\nimplementations which will be faster on many platforms. The period of the generator is about 10^171. The algorithm has mathematically proven\nproperties and it can provide truly decorrelated numbers at a known level of randomness. The default level of decorrelation recommended by\nLüscher is provided by gsl_rng_ranlux, while gsl_rng_ranlux389 gives the highest level of randomness, with all 24 bits decorrelated. Both\ntypes of generator use 24 words of state per generator.",null,{"inputs":[],"output":{"name":"rngtype"}}],[5,"ranlux389","","The ranlux generator is an implementation of the original algorithm developed by Lüscher. It uses a lagged-fibonacci-with-skipping algorithm to\nproduce “luxury random numbers”. It is a 24-bit generator, originally designed for single-precision IEEE floating point numbers. This\nimplementation is based on integer arithmetic, while the second-generation versions RANLXS and RANLXD described above provide floating-point\nimplementations which will be faster on many platforms. The period of the generator is about 10^171. The algorithm has mathematically proven\nproperties and it can provide truly decorrelated numbers at a known level of randomness. The default level of decorrelation recommended by\nLüscher is provided by gsl_rng_ranlux, while gsl_rng_ranlux389 gives the highest level of randomness, with all 24 bits decorrelated. Both\ntypes of generator use 24 words of state per generator.",null,{"inputs":[],"output":{"name":"rngtype"}}],[5,"cmrg","","This is a combined multiple recursive generator by L’Ecuyer. Its sequence is,",null,{"inputs":[],"output":{"name":"rngtype"}}],[5,"mrg","","This is a fifth-order multiple recursive generator by L’Ecuyer, Blouin and Coutre. Its sequence is,",null,{"inputs":[],"output":{"name":"rngtype"}}],[5,"taus","","This is a maximally equidistributed combined Tausworthe generator by L’Ecuyer. The sequence is,",null,{"inputs":[],"output":{"name":"rngtype"}}],[5,"taus2","","This is a maximally equidistributed combined Tausworthe generator by L’Ecuyer. The sequence is,",null,{"inputs":[],"output":{"name":"rngtype"}}],[5,"gfsr4","","The gfsr4 generator is like a lagged-fibonacci generator, and produces each number as an xor’d sum of four previous values.",null,{"inputs":[],"output":{"name":"rngtype"}}],[0,"unix","rgsl::types::rng","The standard Unix random number generators rand, random and rand48 are provided as part of GSL. Although these generators are widely\navailable individually often they aren’t all available on the same platform. This makes it difficult to write portable code using them\nand so we have included the complete set of Unix generators in GSL for convenience. Note that these generators don’t produce high-quality\nrandomness and aren’t suitable for work requiring accurate statistics. However, if you won’t be measuring statistical quantities and just\nwant to introduce some variation into your program then these generators are quite acceptable.",null,null],[5,"rand","rgsl::types::rng::unix","This is the BSD rand generator. Its sequence is",null,{"inputs":[],"output":{"name":"rngtype"}}],[5,"random_bsd","","These generators implement the random family of functions, a set of linear feedback shift register generators originally used in BSD\nUnix. There are several versions of random in use today: the original BSD version (e.g. on SunOS4), a libc5 version (found on older\nGNU/Linux systems) and a glibc2 version. Each version uses a different seeding procedure, and thus produces different sequences.",null,{"inputs":[],"output":{"name":"rngtype"}}],[5,"random_libc5","","These generators implement the random family of functions, a set of linear feedback shift register generators originally used in BSD\nUnix. There are several versions of random in use today: the original BSD version (e.g. on SunOS4), a libc5 version (found on older\nGNU/Linux systems) and a glibc2 version. Each version uses a different seeding procedure, and thus produces different sequences.",null,{"inputs":[],"output":{"name":"rngtype"}}],[5,"random_glic2","","These generators implement the random family of functions, a set of linear feedback shift register generators originally used in BSD\nUnix. There are several versions of random in use today: the original BSD version (e.g. on SunOS4), a libc5 version (found on older\nGNU/Linux systems) and a glibc2 version. Each version uses a different seeding procedure, and thus produces different sequences.",null,{"inputs":[],"output":{"name":"rngtype"}}],[5,"rand48","","This is the Unix rand48 generator. Its sequence is",null,{"inputs":[],"output":{"name":"rngtype"}}],[0,"other","rgsl::types::rng","##Other random number generators",null,null],[5,"ranf","rgsl::types::rng::other","This is the CRAY random number generator RANF. Its sequence is",null,{"inputs":[],"output":{"name":"rngtype"}}],[5,"ranmar","","This is the RANMAR lagged-fibonacci generator of Marsaglia, Zaman and Tsang. It is a 24-bit generator, originally designed for single-precision IEEE floating point numbers.\nIt was included in the CERNLIB high-energy physics library.",null,{"inputs":[],"output":{"name":"rngtype"}}],[5,"r250","","This is the shift-register generator of Kirkpatrick and Stoll. The sequence is based on the recurrence",null,{"inputs":[],"output":{"name":"rngtype"}}],[5,"tt800","","This is an earlier version of the twisted generalized feedback shift-register generator, and has been superseded by the development of MT19937. However, it is\nstill an acceptable generator in its own right. It has a period of 2^800 and uses 33 words of storage per generator.",null,{"inputs":[],"output":{"name":"rngtype"}}],[5,"vax","","This is the VAX generator MTH$RANDOM. Its sequence is,",null,{"inputs":[],"output":{"name":"rngtype"}}],[5,"transputer","","This is the random number generator from the INMOS Transputer Development system. Its sequence is,",null,{"inputs":[],"output":{"name":"rngtype"}}],[5,"randu","","This is the IBM RANDU generator. Its sequence is",null,{"inputs":[],"output":{"name":"rngtype"}}],[5,"minstd","","This is Park and Miller’s “minimal standard” MINSTD generator, a simple linear congruence which takes care to avoid the major pitfalls of such algorithms. Its sequence is,",null,{"inputs":[],"output":{"name":"rngtype"}}],[5,"uni","","This is a reimplementation of the 16-bit SLATEC random number generator RUNIF. A generalization of the generator to 32 bits is provided by gsl_rng_uni32.\nThe original source code is available from NETLIB.",null,{"inputs":[],"output":{"name":"rngtype"}}],[5,"uni32","","This is a reimplementation of the 16-bit SLATEC random number generator RUNIF. A generalization of the generator to 32 bits is provided by gsl_rng_uni32.\nThe original source code is available from NETLIB.",null,{"inputs":[],"output":{"name":"rngtype"}}],[5,"slatec","","This is the SLATEC random number generator RAND. It is ancient. The original source code is available from NETLIB.",null,{"inputs":[],"output":{"name":"rngtype"}}],[5,"zuf","","This is the ZUFALL lagged Fibonacci series generator of Peterson. Its sequence is,",null,{"inputs":[],"output":{"name":"rngtype"}}],[5,"knuthran2","","This is a second-order multiple recursive generator described by Knuth in Seminumerical Algorithms, 3rd Ed., page 108. Its sequence is,",null,{"inputs":[],"output":{"name":"rngtype"}}],[5,"knuthran2002","","This is a second-order multiple recursive generator described by Knuth in Seminumerical Algorithms, 3rd Ed., Section 3.6. Knuth provides\nits C code. The updated routine gsl_rng_knuthran2002 is from the revised 9th printing and corrects some weaknesses in the earlier version,\nwhich is implemented as gsl_rng_knuthran.",null,{"inputs":[],"output":{"name":"rngtype"}}],[5,"knuthran","","This is a second-order multiple recursive generator described by Knuth in Seminumerical Algorithms, 3rd Ed., Section 3.6. Knuth provides\nits C code. The updated routine gsl_rng_knuthran2002 is from the revised 9th printing and corrects some weaknesses in the earlier version,\nwhich is implemented as gsl_rng_knuthran.",null,{"inputs":[],"output":{"name":"rngtype"}}],[5,"borosh13","","This multiplicative generator is taken from Knuth’s Seminumerical Algorithms, 3rd Ed., pages 106–108. Their sequence is,",null,{"inputs":[],"output":{"name":"rngtype"}}],[5,"fishman18","","This multiplicative generator is taken from Knuth’s Seminumerical Algorithms, 3rd Ed., pages 106–108. Their sequence is,",null,{"inputs":[],"output":{"name":"rngtype"}}],[5,"fishman20","","This multiplicative generator is taken from Knuth’s Seminumerical Algorithms, 3rd Ed., pages 106–108. Their sequence is,",null,{"inputs":[],"output":{"name":"rngtype"}}],[5,"lecuyer21","","This multiplicative generator is taken from Knuth’s Seminumerical Algorithms, 3rd Ed., pages 106–108. Their sequence is,",null,{"inputs":[],"output":{"name":"rngtype"}}],[5,"waterman14","","This multiplicative generator is taken from Knuth’s Seminumerical Algorithms, 3rd Ed., pages 106–108. Their sequence is,",null,{"inputs":[],"output":{"name":"rngtype"}}],[5,"fishman2x","","This is the L’Ecuyer–Fishman random number generator. It is taken from Knuth’s Seminumerical Algorithms, 3rd Ed., page 108. Its sequence is,",null,{"inputs":[],"output":{"name":"rngtype"}}],[5,"coveyou","","This is the Coveyou random number generator. It is taken from Knuth’s Seminumerical Algorithms, 3rd Ed., Section 3.2.2. Its sequence is,",null,{"inputs":[],"output":{"name":"rngtype"}}],[11,"new","rgsl::types::rng","This function returns a pointer to a newly-created instance of a random number generator of type T. For example, the following code creates an instance of the Tausworthe generator,",77,{"inputs":[{"name":"rngtype"}],"output":{"name":"option"}}],[11,"set","","This function initializes (or ‘seeds’) the random number generator. If the generator is seeded with the same value of s on two different runs, the same stream of random numbers will be generated by successive calls to the routines below.\nIf different values of s >= 1 are supplied, then the generated streams of random numbers should be completely different. If the seed s is zero then the standard seed from the original implementation is used instead.\nFor example, the original Fortran source code for the ranlux generator used a seed of 314159265, and so choosing s equal to zero reproduces this when using gsl_rng_ranlux.",77,null],[11,"get","","This function returns a random integer from the generator r. The minimum and maximum values depend on the algorithm used, but all integers in the range [min,max] are equally likely.\nThe values of min and max can be determined using the auxiliary functions gsl_rng_max (r) and gsl_rng_min (r).",77,null],[11,"uniform","","This function returns a double precision floating point number uniformly distributed in the range [0,1). The range includes 0.0 but excludes 1.0.\nThe value is typically obtained by dividing the result of gsl_rng_get(r) by gsl_rng_max(r) + 1.0 in double precision.\nSome generators compute this ratio internally so that they can provide floating point numbers with more than 32 bits of randomness (the maximum number of bits that can be portably represented in a single unsigned long int).",77,null],[11,"uniform_pos","","This function returns a positive double precision floating point number uniformly distributed in the range (0,1), excluding both 0.0 and 1.0.\nThe number is obtained by sampling the generator with the algorithm of gsl_rng_uniform until a non-zero value is obtained.\nYou can use this function if you need to avoid a singularity at 0.0.",77,null],[11,"uniform_int","","This function returns a random integer from 0 to n-1 inclusive by scaling down and/or discarding samples from the generator r.\nAll integers in the range [0,n-1] are produced with equal probability. For generators with a non-zero minimum value an offset is applied so that zero is returned with the correct probability.",77,null],[11,"get_name","","This function returns a pointer to the name of the generator. For example,",77,null],[11,"max","","This function returns the largest value that the get function can return.",77,null],[11,"min","","This function returns the smallest value that gsl_rng_get can return. Usually this value is zero.\nThere are some generators with algorithms that cannot return zero, and for these generators the minimum value is 1.",77,null],[11,"state","","This function returns a pointer to the state of generator r. You can use this information to access the state directly. For example, the following code will write the state of a generator to a stream,",77,null],[11,"copy","","This function copies the random number generator src into the pre-existing generator dest, making dest into an exact copy of src. The two generators must be of the same type.",77,null],[11,"size","","This function returns the size of the state of generator r. You can use this information to access the state directly. For example, the following code will write the state of a generator to a stream,",77,null],[11,"default_seed","","Equivalent to DefaultRngSeed",77,{"inputs":[],"output":{"name":"usize"}}],[11,"clone","","This function returns a pointer to a newly created generator which is an exact copy of the generator r.",77,null],[11,"drop","","",77,null],[11,"clone","","",78,null],[11,"name","","wrapper for name element",78,null],[11,"max","","wrapper for max element",78,null],[11,"min","","wrapper for min element",78,null],[11,"size","","wrapper for size element",78,null],[11,"types_setup","","This function returns a pointer to an array of all the available generator types, terminated by a null pointer.\nThe function should be called once at the start of the program, if needed. The following code fragment shows how to iterate over the array of generator types to print the names of the available algorithms,",78,{"inputs":[],"output":{"name":"vec"}}],[11,"env_setup","","This function reads the environment variables GSL_RNG_TYPE and GSL_RNG_SEED and uses their values to set the corresponding library variables gsl_rng_default and gsl_rng_default_seed. These global variables are defined as follows,",78,{"inputs":[],"output":{"name":"option"}}],[0,"vector","rgsl::types","#Vectors",null,null],[3,"VectorView","rgsl::types::vector","",null,null],[3,"VectorF32","","",null,null],[3,"VectorF64","","",null,null],[5,"wrap","","",null,null],[11,"from_vector","","These functions return a vector view of a subvector of another vector v. The start of the new vector is offset by offset elements\nfrom the start of the original vector. The new vector has n elements. Mathematically, the i-th element of the new vector v’ is given by,",79,{"inputs":[{"name":"vectorf64"},{"name":"usize"},{"name":"usize"}],"output":{"name":"vectorview"}}],[11,"from_vector_with_stride","","These functions return a vector view of a subvector of another vector v with an additional stride argument. The subvector is formed\nin the same way as for gsl_vector_subvector but the new vector has n elements with a step-size of stride from one element to the\nnext in the original vector. Mathematically, the i-th element of the new vector v’ is given by,",79,{"inputs":[{"name":"vectorf64"},{"name":"usize"},{"name":"usize"},{"name":"usize"}],"output":{"name":"vectorview"}}],[11,"from_array","","These functions return a vector view of an array. The start of the new vector is given by base and has n elements. Mathematically,\nthe i-th element of the new vector v’ is given by,",79,null],[11,"from_array_with_stride","","These functions return a vector view of an array base with an additional stride argument. The subvector is formed in the same way as\nfor gsl_vector_view_array but the new vector has n elements with a step-size of stride from one element to the next in the original\narray. Mathematically, the i-th element of the new vector v’ is given by,",79,null],[11,"vector","","",79,null],[11,"new","","create a new VectorF32 with all elements set to zero",80,{"inputs":[{"name":"usize"}],"output":{"name":"option"}}],[11,"from_slice","","",80,null],[11,"len","","",80,null],[11,"get","","This function returns the i-th element of a vector v. If i lies outside the allowed range of 0 to n-1 then the error handler is invoked and 0 is returned.",80,null],[11,"set","","This function sets the value of the i-th element of a vector v to x. If i lies outside the allowed range of 0 to n-1 then the error handler is invoked.",80,null],[11,"set_all","","This function sets all the elements of the vector v to the value x.",80,null],[11,"set_zero","","This function sets all the elements of the vector v to zero.",80,null],[11,"set_basis","","This function makes a basis vector by setting all the elements of the vector v to zero except for the i-th element which is set to one.",80,null],[11,"copy_from","","This function copies the elements of the other vector into the self vector. The two vectors must have the same length.",80,null],[11,"copy_to","","This function copies the elements of the self vector into the other vector. The two vectors must have the same length.",80,null],[11,"swap","","This function exchanges the elements of the vectors by copying. The two vectors must have the same length.",80,null],[11,"swap_elements","","This function exchanges the i-th and j-th elements of the vector v in-place.",80,null],[11,"reverse","","This function reverses the order of the elements of the vector v.",80,null],[11,"add","","This function adds the elements of the other vector to the elements of the self vector.\nThe result a_i <- a_i + b_i is stored in self and other remains unchanged. The two vectors must have the same length.",80,null],[11,"sub","","This function subtracts the elements of the self vector from the elements of the other vector.\nThe result a_i <- a_i - b_i is stored in self and other remains unchanged. The two vectors must have the same length.",80,null],[11,"mul","","This function multiplies the elements of the self vector a by the elements of the other vector.\nThe result a_i <- a_i * b_i is stored in self and other remains unchanged. The two vectors must have the same length.",80,null],[11,"div","","This function divides the elements of the self vector by the elements of the other vector.\nThe result a_i <- a_i / b_i is stored in self and other remains unchanged. The two vectors must have the same length.",80,null],[11,"scale","","This function multiplies the elements of the self vector by the constant factor x. The result a_i <- a_i is stored in self.",80,null],[11,"add_constant","","This function adds the constant value x to the elements of the self vector. The result a_i <- a_i + x is stored in self.",80,null],[11,"max","","This function returns the maximum value in the self vector.",80,null],[11,"min","","This function returns the minimum value in the self vector.",80,null],[11,"minmax","","This function returns the minimum and maximum values in the self vector, storing them in min_out and max_out.",80,null],[11,"max_index","","This function returns the index of the maximum value in the self vector.\nWhen there are several equal maximum elements then the lowest index is returned.",80,null],[11,"min_index","","This function returns the index of the minimum value in the self vector.\nWhen there are several equal minimum elements then the lowest index is returned.",80,null],[11,"minmax_index","","This function returns the indices of the minimum and maximum values in the self vector, storing them in imin and imax.\nWhen there are several equal minimum or maximum elements then the lowest indices are returned.",80,null],[11,"is_null","","This function returns true if all the elements of the self vector are equal to 0.",80,null],[11,"is_pos","","This function returns true if all the elements of the self vector are stricly positive.",80,null],[11,"is_neg","","This function returns true if all the elements of the self vector are stricly negative.",80,null],[11,"is_non_neg","","This function returns true if all the elements of the self vector are stricly non-negative.",80,null],[11,"equal","","",80,null],[11,"clone","","",80,null],[11,"drop","","",80,null],[11,"fmt","","",80,null],[11,"new","","create a new VectorF64 with all elements set to zero",81,{"inputs":[{"name":"usize"}],"output":{"name":"option"}}],[11,"from_slice","","",81,null],[11,"len","","",81,null],[11,"get","","This function returns the i-th element of a vector v. If i lies outside the allowed range of 0 to n-1 then the error handler is invoked and 0 is returned.",81,null],[11,"set","","This function sets the value of the i-th element of a vector v to x. If i lies outside the allowed range of 0 to n-1 then the error handler is invoked.",81,null],[11,"set_all","","This function sets all the elements of the vector v to the value x.",81,null],[11,"set_zero","","This function sets all the elements of the vector v to zero.",81,null],[11,"set_basis","","This function makes a basis vector by setting all the elements of the vector v to zero except for the i-th element which is set to one.",81,null],[11,"copy_from","","This function copies the elements of the other vector into the self vector. The two vectors must have the same length.",81,null],[11,"copy_to","","This function copies the elements of the self vector into the other vector. The two vectors must have the same length.",81,null],[11,"swap","","This function exchanges the elements of the vectors by copying. The two vectors must have the same length.",81,null],[11,"swap_elements","","This function exchanges the i-th and j-th elements of the vector v in-place.",81,null],[11,"reverse","","This function reverses the order of the elements of the vector v.",81,null],[11,"add","","This function adds the elements of the other vector to the elements of the self vector.\nThe result a_i <- a_i + b_i is stored in self and other remains unchanged. The two vectors must have the same length.",81,null],[11,"sub","","This function subtracts the elements of the self vector from the elements of the other vector.\nThe result a_i <- a_i - b_i is stored in self and other remains unchanged. The two vectors must have the same length.",81,null],[11,"mul","","This function multiplies the elements of the self vector a by the elements of the other vector.\nThe result a_i <- a_i * b_i is stored in self and other remains unchanged. The two vectors must have the same length.",81,null],[11,"div","","This function divides the elements of the self vector by the elements of the other vector.\nThe result a_i <- a_i / b_i is stored in self and other remains unchanged. The two vectors must have the same length.",81,null],[11,"scale","","This function multiplies the elements of the self vector by the constant factor x. The result a_i <- a_i is stored in self.",81,null],[11,"add_constant","","This function adds the constant value x to the elements of the self vector. The result a_i <- a_i + x is stored in self.",81,null],[11,"max","","This function returns the maximum value in the self vector.",81,null],[11,"min","","This function returns the minimum value in the self vector.",81,null],[11,"minmax","","This function returns the minimum and maximum values in the self vector, storing them in min_out and max_out.",81,null],[11,"max_index","","This function returns the index of the maximum value in the self vector.\nWhen there are several equal maximum elements then the lowest index is returned.",81,null],[11,"min_index","","This function returns the index of the minimum value in the self vector.\nWhen there are several equal minimum elements then the lowest index is returned.",81,null],[11,"minmax_index","","This function returns the indices of the minimum and maximum values in the self vector, storing them in imin and imax.\nWhen there are several equal minimum or maximum elements then the lowest indices are returned.",81,null],[11,"is_null","","This function returns true if all the elements of the self vector are equal to 0.",81,null],[11,"is_pos","","This function returns true if all the elements of the self vector are stricly positive.",81,null],[11,"is_neg","","This function returns true if all the elements of the self vector are stricly negative.",81,null],[11,"is_non_neg","","This function returns true if all the elements of the self vector are stricly non-negative.",81,null],[11,"equal","","",81,null],[11,"clone","","",81,null],[11,"drop","","",81,null],[11,"fmt","","",81,null],[0,"vector_complex","rgsl::types","",null,null],[3,"VectorComplexF64","rgsl::types::vector_complex","",null,null],[3,"VectorComplexF32","","",null,null],[11,"new","","create a new VectorComplexF64 with all elements set to zero",82,{"inputs":[{"name":"usize"}],"output":{"name":"option"}}],[11,"from_slice","","",82,null],[11,"len","","",82,null],[11,"get","","This function returns the i-th element of a vector v. If i lies outside the allowed range of 0 to n-1 then the error handler is invoked and 0 is returned.",82,null],[11,"set","","This function sets the value of the i-th element of a vector v to x. If i lies outside the allowed range of 0 to n-1 then the error handler is invoked.",82,null],[11,"set_all","","This function sets all the elements of the vector v to the value x.",82,null],[11,"set_zero","","This function sets all the elements of the vector v to zero.",82,null],[11,"set_basis","","This function makes a basis vector by setting all the elements of the vector v to zero except for the i-th element which is set to one.",82,null],[11,"copy_from","","This function copies the elements of the other vector into the self vector. The two vectors must have the same length.",82,null],[11,"copy_to","","This function copies the elements of the self vector into the other vector. The two vectors must have the same length.",82,null],[11,"swap","","This function exchanges the elements of the vectors by copying. The two vectors must have the same length.",82,null],[11,"swap_elements","","This function exchanges the i-th and j-th elements of the vector v in-place.",82,null],[11,"reverse","","This function reverses the order of the elements of the vector v.",82,null],[11,"add","","This function adds the elements of the other vector to the elements of the self vector.\nThe result a_i <- a_i + b_i is stored in self and other remains unchanged. The two vectors must have the same length.",82,null],[11,"sub","","This function subtracts the elements of the self vector from the elements of the other vector.\nThe result a_i <- a_i - b_i is stored in self and other remains unchanged. The two vectors must have the same length.",82,null],[11,"mul","","This function multiplies the elements of the self vector a by the elements of the other vector.\nThe result a_i <- a_i * b_i is stored in self and other remains unchanged. The two vectors must have the same length.",82,null],[11,"div","","This function divides the elements of the self vector by the elements of the other vector.\nThe result a_i <- a_i / b_i is stored in self and other remains unchanged. The two vectors must have the same length.",82,null],[11,"scale","","This function multiplies the elements of the self vector by the constant factor x. The result a_i <- a_i is stored in self.",82,null],[11,"add_constant","","This function adds the constant value x to the elements of the self vector. The result a_i <- a_i + x is stored in self.",82,null],[11,"is_null","","This function returns true if all the elements of the self vector are equal to 0.",82,null],[11,"is_pos","","This function returns true if all the elements of the self vector are stricly positive.",82,null],[11,"is_neg","","This function returns true if all the elements of the self vector are stricly negative.",82,null],[11,"is_non_neg","","This function returns true if all the elements of the self vector are stricly non-negative.",82,null],[11,"equal","","",82,null],[11,"clone","","",82,null],[11,"drop","","",82,null],[11,"fmt","","",82,null],[11,"new","","create a new VectorComplexF32 with all elements set to zero",83,{"inputs":[{"name":"usize"}],"output":{"name":"option"}}],[11,"from_slice","","",83,null],[11,"len","","",83,null],[11,"get","","This function returns the i-th element of a vector v. If i lies outside the allowed range of 0 to n-1 then the error handler is invoked and 0 is returned.",83,null],[11,"set","","This function sets the value of the i-th element of a vector v to x. If i lies outside the allowed range of 0 to n-1 then the error handler is invoked.",83,null],[11,"set_all","","This function sets all the elements of the vector v to the value x.",83,null],[11,"set_zero","","This function sets all the elements of the vector v to zero.",83,null],[11,"set_basis","","This function makes a basis vector by setting all the elements of the vector v to zero except for the i-th element which is set to one.",83,null],[11,"copy_from","","This function copies the elements of the other vector into the self vector. The two vectors must have the same length.",83,null],[11,"copy_to","","This function copies the elements of the self vector into the other vector. The two vectors must have the same length.",83,null],[11,"swap","","This function exchanges the elements of the vectors by copying. The two vectors must have the same length.",83,null],[11,"swap_elements","","This function exchanges the i-th and j-th elements of the vector v in-place.",83,null],[11,"reverse","","This function reverses the order of the elements of the vector v.",83,null],[11,"add","","This function adds the elements of the other vector to the elements of the self vector.\nThe result a_i <- a_i + b_i is stored in self and other remains unchanged. The two vectors must have the same length.",83,null],[11,"sub","","This function subtracts the elements of the self vector from the elements of the other vector.\nThe result a_i <- a_i - b_i is stored in self and other remains unchanged. The two vectors must have the same length.",83,null],[11,"mul","","This function multiplies the elements of the self vector a by the elements of the other vector.\nThe result a_i <- a_i * b_i is stored in self and other remains unchanged. The two vectors must have the same length.",83,null],[11,"div","","This function divides the elements of the self vector by the elements of the other vector.\nThe result a_i <- a_i / b_i is stored in self and other remains unchanged. The two vectors must have the same length.",83,null],[11,"scale","","This function multiplies the elements of the self vector by the constant factor x. The result a_i <- a_i is stored in self.",83,null],[11,"add_constant","","This function adds the constant value x to the elements of the self vector. The result a_i <- a_i + x is stored in self.",83,null],[11,"is_null","","This function returns true if all the elements of the self vector are equal to 0.",83,null],[11,"is_pos","","This function returns true if all the elements of the self vector are stricly positive.",83,null],[11,"is_neg","","This function returns true if all the elements of the self vector are stricly negative.",83,null],[11,"is_non_neg","","This function returns true if all the elements of the self vector are stricly non-negative.",83,null],[11,"equal","","",83,null],[11,"clone","","",83,null],[11,"drop","","",83,null],[11,"fmt","","",83,null],[0,"wavelet_transforms","rgsl::types","#Wavelet Transforms",null,null],[3,"Wavelet","rgsl::types::wavelet_transforms","The Wavelet structure contains the filter coefficients defining the wavelet and any associated offset parameters.",null,null],[3,"WaveletType","","The centered forms of the wavelets align the coefficients of the various sub-bands on edges. Thus the resulting visualization of the\ncoefficients of the wavelet transform in the phase plane is easier to understand.",null,null],[3,"WaveletWorkspace","","The WaveletWorkspace structure contains scratch space of the same size as the input data and is used to hold intermediate results\nduring the transform.",null,null],[11,"new","","This function allocates and initializes a wavelet object of type T. The parameter k selects the specific member of the wavelet\nfamily. A null pointer is returned if insufficient memory is available or if a unsupported member is selected.",84,{"inputs":[{"name":"wavelettype"},{"name":"usize"}],"output":{"name":"option"}}],[11,"name","","This function returns a pointer to the name of the wavelet family for w.",84,null],[11,"drop","","",84,null],[11,"clone","","",85,null],[11,"daubechies","","This is the Daubechies wavelet family of maximum phase with k/2 vanishing moments. The implemented wavelets are k=4, 6, …, 20, with\nk even.",85,{"inputs":[],"output":{"name":"wavelettype"}}],[11,"daubechies_centered","","This is the Daubechies wavelet family of maximum phase with k/2 vanishing moments. The implemented wavelets are k=4, 6, …, 20, with\nk even.",85,{"inputs":[],"output":{"name":"wavelettype"}}],[11,"haar","","This is the Haar wavelet. The only valid choice of k for the Haar wavelet is k=2.",85,{"inputs":[],"output":{"name":"wavelettype"}}],[11,"haar_centered","","This is the Haar wavelet. The only valid choice of k for the Haar wavelet is k=2.",85,{"inputs":[],"output":{"name":"wavelettype"}}],[11,"bspline","","This is the biorthogonal B-spline wavelet family of order (i,j). The implemented values of k = 100*i + j are 103, 105, 202, 204,\n206, 208, 301, 303, 305 307, 309.",85,{"inputs":[],"output":{"name":"wavelettype"}}],[11,"bspline_centered","","This is the biorthogonal B-spline wavelet family of order (i,j). The implemented values of k = 100*i + j are 103, 105, 202, 204,\n206, 208, 301, 303, 305 307, 309.",85,{"inputs":[],"output":{"name":"wavelettype"}}],[11,"new","","This function allocates a workspace for the discrete wavelet transform. To perform a one-dimensional transform on n elements, a\nworkspace of size n must be provided. For two-dimensional transforms of n-by-n matrices it is sufficient to allocate a workspace\nof size n, since the transform operates on individual rows and columns. A null pointer is returned if insufficient memory is\navailable.",86,{"inputs":[{"name":"usize"}],"output":{"name":"option"}}],[11,"drop","","",86,null],[0,"airy","rgsl","",null,null],[5,"Ai","rgsl::airy","This routine computes the Airy function Ai(x) with an accuracy specified by mode.",null,{"inputs":[{"name":"f64"},{"name":"mode"}],"output":{"name":"f64"}}],[5,"Ai_e","","This routine computes the Airy function Ai(x) with an accuracy specified by mode.",null,null],[5,"Bi","","This routine computes the Airy function Bi(x) with an accuracy specified by mode.",null,{"inputs":[{"name":"f64"},{"name":"mode"}],"output":{"name":"f64"}}],[5,"Bi_e","","This routine computes the Airy function Bi(x) with an accuracy specified by mode.",null,null],[5,"Ai_scaled","","This routine computes a scaled version of the Airy function S_A(x) Ai(x). For x>0 the scaling factor S_A(x) is \\exp(+(2/3) x^(3/2)), and is 1 for x<0.",null,{"inputs":[{"name":"f64"},{"name":"mode"}],"output":{"name":"f64"}}],[5,"Ai_scaled_e","","This routine computes a scaled version of the Airy function S_A(x) Ai(x). For x>0 the scaling factor S_A(x) is \\exp(+(2/3) x^(3/2)), and is 1 for x<0.",null,null],[5,"Bi_scaled","","This routine computes a scaled version of the Airy function S_B(x) Bi(x). For x>0 the scaling factor S_B(x) is exp(-(2/3) x^(3/2)), and is 1 for x<0.",null,{"inputs":[{"name":"f64"},{"name":"mode"}],"output":{"name":"f64"}}],[5,"Bi_scaled_e","","This routine computes a scaled version of the Airy function S_B(x) Bi(x). For x>0 the scaling factor S_B(x) is exp(-(2/3) x^(3/2)), and is 1 for x<0.",null,null],[5,"Ai_deriv","","This routine computes the Airy function derivative Ai'(x) with an accuracy specified by mode.",null,{"inputs":[{"name":"f64"},{"name":"mode"}],"output":{"name":"f64"}}],[5,"Ai_deriv_e","","This routine computes the Airy function derivative Ai'(x) with an accuracy specified by mode.",null,null],[5,"Bi_deriv","","This routine computes the Airy function derivative Bi'(x) with an accuracy specified by mode.",null,{"inputs":[{"name":"f64"},{"name":"mode"}],"output":{"name":"f64"}}],[5,"Bi_deriv_e","","This routine computes the Airy function derivative Bi'(x) with an accuracy specified by mode.",null,null],[5,"Ai_deriv_scaled","","This routine computes the scaled Airy function derivative S_A(x) Ai'(x). For x>0 the scaling factor S_A(x) is \\exp(+(2/3) x^(3/2)), and is 1 for x<0.",null,{"inputs":[{"name":"f64"},{"name":"mode"}],"output":{"name":"f64"}}],[5,"Ai_deriv_scaled_e","","This routine computes the scaled Airy function derivative S_A(x) Ai'(x). For x>0 the scaling factor S_A(x) is \\exp(+(2/3) x^(3/2)), and is 1 for x<0.",null,null],[5,"Bi_deriv_scaled","","This routine computes the scaled Airy function derivative S_B(x) Bi'(x). For x>0 the scaling factor S_B(x) is exp(-(2/3) x^(3/2)), and is 1 for x<0.",null,{"inputs":[{"name":"f64"},{"name":"mode"}],"output":{"name":"f64"}}],[5,"Bi_deriv_scaled_e","","This routine computes the scaled Airy function derivative S_B(x) Bi'(x). For x>0 the scaling factor S_B(x) is exp(-(2/3) x^(3/2)), and is 1 for x<0.",null,null],[5,"zero_Ai","","This routine computes the location of the s-th zero of the Airy function Ai(x).",null,{"inputs":[{"name":"u32"}],"output":{"name":"f64"}}],[5,"zero_Ai_e","","This routine computes the location of the s-th zero of the Airy function Ai(x).",null,null],[5,"zero_Bi","","This routine computes the location of the s-th zero of the Airy function Bi(x).",null,{"inputs":[{"name":"u32"}],"output":{"name":"f64"}}],[5,"zero_Bi_e","","This routine computes the location of the s-th zero of the Airy function Bi(x).",null,null],[5,"zero_Ai_deriv","","This routine computes the location of the s-th zero of the Airy function derivative Ai'(x).",null,{"inputs":[{"name":"u32"}],"output":{"name":"f64"}}],[5,"zero_Ai_deriv_e","","This routine computes the location of the s-th zero of the Airy function derivative Ai'(x).",null,null],[5,"zero_Bi_deriv","","This routine computes the location of the s-th zero of the Airy function derivative Bi'(x).",null,{"inputs":[{"name":"u32"}],"output":{"name":"f64"}}],[5,"zero_Bi_deriv_e","","This routine computes the location of the s-th zero of the Airy function derivative Bi'(x).",null,null],[0,"bessel","rgsl","",null,null],[5,"I0","rgsl::bessel","This routine computes the regular modified cylindrical Bessel function of zeroth order, I_0(x)",null,{"inputs":[{"name":"f64"}],"output":{"name":"f64"}}],[5,"I0_e","","This routine computes the regular modified cylindrical Bessel function of zeroth order, I_0(x)",null,null],[5,"I1","","This routine computes the regular modified cylindrical Bessel function of first order, I_1(x).",null,{"inputs":[{"name":"f64"}],"output":{"name":"f64"}}],[5,"I1_e","","This routine computes the regular modified cylindrical Bessel function of first order, I_1(x).",null,null],[5,"In","","This routine computes the regular modified cylindrical Bessel function of order n, I_n(x).",null,{"inputs":[{"name":"i32"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"In_e","","This routine computes the regular modified cylindrical Bessel function of order n, I_n(x).",null,null],[5,"In_array","","This routine computes the values of the regular modified cylindrical Bessel functions I_n(x) for n from nmin to nmax inclusive, storing the results in the array result_array.\nThe start of the range nmin must be positive or zero.\nThe values are computed using recurrence relations for efficiency, and therefore may differ slightly from the exact values.",null,null],[5,"I0_scaled","","This routine computes the scaled regular modified cylindrical Bessel function of zeroth order \\exp(-|x|) I_0(x).",null,{"inputs":[{"name":"f64"}],"output":{"name":"f64"}}],[5,"I0_scaled_e","","This routine computes the scaled regular modified cylindrical Bessel function of zeroth order \\exp(-|x|) I_0(x).",null,null],[5,"I1_scaled","","This routine computes the scaled regular modified cylindrical Bessel function of first order \\exp(-|x|) I_1(x).",null,{"inputs":[{"name":"f64"}],"output":{"name":"f64"}}],[5,"I1_scaled_e","","This routine computes the scaled regular modified cylindrical Bessel function of first order \\exp(-|x|) I_1(x).",null,null],[5,"In_scaled","","This routine computes the scaled regular modified cylindrical Bessel function of order n, \\exp(-|x|) I_n(x)",null,{"inputs":[{"name":"i32"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"In_scaled_e","","This routine computes the scaled regular modified cylindrical Bessel function of order n, \\exp(-|x|) I_n(x)",null,null],[5,"In_scaled_array","","This routine computes the values of the scaled regular cylindrical Bessel functions \\exp(-|x|) I_n(x) for n from nmin to nmax inclusive, storing the results in the array result_array.\nThe start of the range nmin must be positive or zero.\nThe values are computed using recurrence relations for efficiency, and therefore may differ slightly from the exact values.",null,null],[5,"i0_scaled","","This routine computes the scaled regular modified spherical Bessel function of zeroth order, \\exp(-|x|) i_0(x).",null,{"inputs":[{"name":"f64"}],"output":{"name":"f64"}}],[5,"i0_scaled_e","","This routine computes the scaled regular modified spherical Bessel function of zeroth order, \\exp(-|x|) i_0(x).",null,null],[5,"i1_scaled","","This routine computes the scaled regular modified spherical Bessel function of first order, \\exp(-|x|) i_1(x).",null,{"inputs":[{"name":"f64"}],"output":{"name":"f64"}}],[5,"i1_scaled_e","","This routine computes the scaled regular modified spherical Bessel function of first order, \\exp(-|x|) i_1(x).",null,null],[5,"i2_scaled","","This routine computes the scaled regular modified spherical Bessel function of second order, \\exp(-|x|) i_2(x)",null,{"inputs":[{"name":"f64"}],"output":{"name":"f64"}}],[5,"i2_scaled_e","","This routine computes the scaled regular modified spherical Bessel function of second order, \\exp(-|x|) i_2(x)",null,null],[5,"il_scaled","","This routine computes the scaled regular modified spherical Bessel function of order l, \\exp(-|x|) i_l(x)",null,{"inputs":[{"name":"i32"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"il_scaled_e","","This routine computes the scaled regular modified spherical Bessel function of order l, \\exp(-|x|) i_l(x)",null,null],[5,"il_scaled_array","","This routine computes the values of the scaled regular modified cylindrical Bessel functions \\exp(-|x|) i_l(x) for l from 0 to lmax inclusive for lmax >= 0, storing the results in the array result_array. The values are computed using recurrence relations for efficiency, and therefore may differ slightly from the exact values.",null,null],[5,"Inu","","This routine computes the regular modified Bessel function of fractional order \\nu, I_\\nu(x) for x>0, \\nu>0.",null,{"inputs":[{"name":"f64"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"Inu_e","","This routine computes the regular modified Bessel function of fractional order \\nu, I_\\nu(x) for x>0, \\nu>0.",null,null],[5,"Inu_scaled","","This routine computes the scaled regular modified Bessel function of fractional order \\nu, \\exp(-|x|)I_\\nu(x) for x>0, \\nu>0.",null,{"inputs":[{"name":"f64"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"Inu_scaled_e","","This routine computes the scaled regular modified Bessel function of fractional order \\nu, \\exp(-|x|)I_\\nu(x) for x>0, \\nu>0.",null,null],[5,"J0","","This routine computes the regular cylindrical Bessel function of zeroth order, J_0(x).",null,{"inputs":[{"name":"f64"}],"output":{"name":"f64"}}],[5,"J0_e","","This routine computes the regular cylindrical Bessel function of zeroth order, J_0(x).",null,null],[5,"J1","","This routine computes the regular cylindrical Bessel function of first order, J_1(x).",null,{"inputs":[{"name":"f64"}],"output":{"name":"f64"}}],[5,"J1_e","","This routine computes the regular cylindrical Bessel function of first order, J_1(x).",null,null],[5,"Jn","","This routine computes the regular cylindrical Bessel function of order n, J_n(x).",null,{"inputs":[{"name":"i32"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"Jn_e","","This routine computes the regular cylindrical Bessel function of order n, J_n(x).",null,null],[5,"Jn_array","","This routine computes the values of the regular cylindrical Bessel functions J_n(x) for n from nmin to nmax inclusive, storing the results in the array result_array.\nThe values are computed using recurrence relations for efficiency, and therefore may differ slightly from the exact values.",null,null],[5,"j0","","This routine computes the regular spherical Bessel function of zeroth order, j_0(x) = \\sin(x)/x.",null,{"inputs":[{"name":"f64"}],"output":{"name":"f64"}}],[5,"j0_e","","This routine computes the regular spherical Bessel function of zeroth order, j_0(x) = \\sin(x)/x.",null,null],[5,"j1","","This routine computes the regular spherical Bessel function of first order, j_1(x) = (\\sin(x)/x - \\cos(x))/x.",null,{"inputs":[{"name":"f64"}],"output":{"name":"f64"}}],[5,"j1_e","","This routine computes the regular spherical Bessel function of first order, j_1(x) = (\\sin(x)/x - \\cos(x))/x.",null,null],[5,"j2","","This routine computes the regular spherical Bessel function of second order, j_2(x) = ((3/x^2 - 1)\\sin(x) - 3\\cos(x)/x)/x.",null,{"inputs":[{"name":"f64"}],"output":{"name":"f64"}}],[5,"j2_e","","This routine computes the regular spherical Bessel function of second order, j_2(x) = ((3/x^2 - 1)\\sin(x) - 3\\cos(x)/x)/x.",null,null],[5,"jl","","This routine computes the regular spherical Bessel function of order l, j_l(x), for l >= 0 and x >= 0.",null,{"inputs":[{"name":"i32"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"jl_e","","This routine computes the regular spherical Bessel function of order l, j_l(x), for l >= 0 and x >= 0.",null,null],[5,"jl_array","","This routine computes the values of the regular spherical Bessel functions j_l(x) for l from 0 to lmax inclusive for lmax >= 0 and x >= 0, storing the results in the array result_array.\nThe values are computed using recurrence relations for efficiency, and therefore may differ slightly from the exact values.",null,null],[5,"jl_steed_array","","This routine uses Steed’s method to compute the values of the regular spherical Bessel functions j_l(x) for l from 0 to lmax inclusive for lmax >= 0 and x >= 0, storing the results in the array result_array.\nThe Steed/Barnett algorithm is described in Comp. Phys. Comm. 21, 297 (1981). Steed’s method is more stable than the recurrence used in the other functions but is also slower.",null,null],[5,"Jnu","","This routine computes the regular cylindrical Bessel function of fractional order \\nu, J_\\nu(x).",null,{"inputs":[{"name":"f64"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"Jnu_e","","This routine computes the regular cylindrical Bessel function of fractional order \\nu, J_\\nu(x).",null,null],[5,"sequence_Jnu","","This function computes the regular cylindrical Bessel function of fractional order \\nu, J_\\nu(x), evaluated at a series of x values. The array v of length size contains the x values.\nThey are assumed to be strictly ordered and positive. The array is over-written with the values of J_\\nu(x_i).",null,null],[5,"K0","","This routine computes the irregular modified cylindrical Bessel function of zeroth order, K_0(x), for x > 0.",null,{"inputs":[{"name":"f64"}],"output":{"name":"f64"}}],[5,"K0_e","","This routine computes the irregular modified cylindrical Bessel function of zeroth order, K_0(x), for x > 0.",null,null],[5,"K1","","This routine computes the irregular modified cylindrical Bessel function of first order, K_1(x), for x > 0.",null,{"inputs":[{"name":"f64"}],"output":{"name":"f64"}}],[5,"K1_e","","This routine computes the irregular modified cylindrical Bessel function of first order, K_1(x), for x > 0.",null,null],[5,"Kn","","This routine computes the irregular modified cylindrical Bessel function of order n, K_n(x), for x > 0.",null,{"inputs":[{"name":"i32"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"Kn_e","","This routine computes the irregular modified cylindrical Bessel function of order n, K_n(x), for x > 0.",null,null],[5,"Kn_array","","This routine computes the values of the irregular modified cylindrical Bessel functions K_n(x) for n from nmin to nmax inclusive, storing the results in the array result_array.\nThe start of the range nmin must be positive or zero. The domain of the function is x>0.\nThe values are computed using recurrence relations for efficiency, and therefore may differ slightly from the exact values.",null,null],[5,"K0_scaled","","This routine computes the scaled irregular modified cylindrical Bessel function of zeroth order \\exp(x) K_0(x) for x>0.",null,{"inputs":[{"name":"f64"}],"output":{"name":"f64"}}],[5,"K0_scaled_e","","This routine computes the scaled irregular modified cylindrical Bessel function of zeroth order \\exp(x) K_0(x) for x>0.",null,null],[5,"K1_scaled","","This routine computes the scaled irregular modified cylindrical Bessel function of first order \\exp(x) K_1(x) for x>0.",null,{"inputs":[{"name":"f64"}],"output":{"name":"f64"}}],[5,"K1_scaled_e","","This routine computes the scaled irregular modified cylindrical Bessel function of first order \\exp(x) K_1(x) for x>0.",null,null],[5,"Kn_scaled","","This routine computes the scaled irregular modified cylindrical Bessel function of order n, \\exp(x) K_n(x), for x>0.",null,{"inputs":[{"name":"i32"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"Kn_scaled_e","","This routine computes the scaled irregular modified cylindrical Bessel function of order n, \\exp(x) K_n(x), for x>0.",null,null],[5,"Kn_scaled_array","","This routine computes the values of the scaled irregular cylindrical Bessel functions \\exp(x) K_n(x) for n from nmin to nmax inclusive, storing the results in the array result_array.\nThe start of the range nmin must be positive or zero. The domain of the function is x>0.\nThe values are computed using recurrence relations for efficiency, and therefore may differ slightly from the exact values.",null,null],[5,"k0_scaled","","The irregular modified spherical Bessel functions k_l(x) are related to the irregular modified Bessel functions of fractional order, k_l(x) = \\sqrt{\\pi/(2x)} K_{l+1/2}(x).\nThis routine computes the scaled irregular modified spherical Bessel function of zeroth order, \\exp(x) k_0(x), for x>0.",null,{"inputs":[{"name":"f64"}],"output":{"name":"f64"}}],[5,"k0_scaled_e","","The irregular modified spherical Bessel functions k_l(x) are related to the irregular modified Bessel functions of fractional order, k_l(x) = \\sqrt{\\pi/(2x)} K_{l+1/2}(x).\nThis routine computes the scaled irregular modified spherical Bessel function of zeroth order, \\exp(x) k_0(x), for x>0.",null,null],[5,"k1_scaled","","This routine computes the scaled irregular modified spherical Bessel function of first order, \\exp(x) k_1(x), for x>0.",null,{"inputs":[{"name":"f64"}],"output":{"name":"f64"}}],[5,"k1_scaled_e","","This routine computes the scaled irregular modified spherical Bessel function of first order, \\exp(x) k_1(x), for x>0.",null,null],[5,"k2_scaled","","This routine computes the scaled irregular modified spherical Bessel function of second order, \\exp(x) k_2(x), for x>0.",null,{"inputs":[{"name":"f64"}],"output":{"name":"f64"}}],[5,"k2_scaled_e","","This routine computes the scaled irregular modified spherical Bessel function of second order, \\exp(x) k_2(x), for x>0.",null,null],[5,"kl_scaled","","This routine computes the scaled irregular modified spherical Bessel function of order l, \\exp(x) k_l(x), for x>0.",null,{"inputs":[{"name":"i32"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"kl_scaled_e","","This routine computes the scaled irregular modified spherical Bessel function of order l, \\exp(x) k_l(x), for x>0.",null,null],[5,"kl_scaled_array","","This routine computes the values of the scaled irregular modified spherical Bessel functions \\exp(x) k_l(x) for l from 0 to lmax inclusive for lmax >= 0 and x>0, storing the results in the array result_array.\nThe values are computed using recurrence relations for efficiency, and therefore may differ slightly from the exact values.",null,null],[5,"Knu","","This routine computes the irregular modified Bessel function of fractional order \\nu, K_\\nu(x) for x>0, \\nu>0.",null,{"inputs":[{"name":"f64"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"Knu_e","","This routine computes the irregular modified Bessel function of fractional order \\nu, K_\\nu(x) for x>0, \\nu>0.",null,null],[5,"lnKnu","","This routine computes the logarithm of the irregular modified Bessel function of fractional order \\nu, \\ln(K_\\nu(x)) for x>0, \\nu>0.",null,{"inputs":[{"name":"f64"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"lnKnu_e","","This routine computes the logarithm of the irregular modified Bessel function of fractional order \\nu, \\ln(K_\\nu(x)) for x>0, \\nu>0.",null,null],[5,"Knu_scaled","","This routine computes the scaled irregular modified Bessel function of fractional order \\nu, \\exp(+|x|) K_\\nu(x) for x>0, \\nu>0.",null,{"inputs":[{"name":"f64"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"Knu_scaled_e","","This routine computes the scaled irregular modified Bessel function of fractional order \\nu, \\exp(+|x|) K_\\nu(x) for x>0, \\nu>0.",null,null],[5,"Y0","","This routine computes the irregular cylindrical Bessel function of zeroth order, Y_0(x), for x>0.",null,{"inputs":[{"name":"f64"}],"output":{"name":"f64"}}],[5,"Y0_e","","This routine computes the irregular cylindrical Bessel function of zeroth order, Y_0(x), for x>0.",null,null],[5,"Y1","","This routine computes the irregular cylindrical Bessel function of first order, Y_1(x), for x>0.",null,{"inputs":[{"name":"f64"}],"output":{"name":"f64"}}],[5,"Y1_e","","This routine computes the irregular cylindrical Bessel function of first order, Y_1(x), for x>0.",null,null],[5,"Yn","","This routine computes the irregular cylindrical Bessel function of order n, Y_n(x), for x>0.",null,{"inputs":[{"name":"i32"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"Yn_e","","This routine computes the irregular cylindrical Bessel function of order n, Y_n(x), for x>0.",null,null],[5,"Yn_array","","This routine computes the values of the irregular cylindrical Bessel functions Y_n(x) for n from nmin to nmax inclusive, storing the results in the array result_array.\nThe domain of the function is x>0.\nThe values are computed using recurrence relations for efficiency, and therefore may differ slightly from the exact values.",null,null],[5,"y0","","This routine computes the irregular spherical Bessel function of zeroth order, y_0(x) = -\\cos(x)/x.",null,{"inputs":[{"name":"f64"}],"output":{"name":"f64"}}],[5,"y0_e","","This routine computes the irregular spherical Bessel function of zeroth order, y_0(x) = -\\cos(x)/x.",null,null],[5,"y1","","This routine computes the irregular spherical Bessel function of first order, y_1(x) = -(\\cos(x)/x + \\sin(x))/x.",null,{"inputs":[{"name":"f64"}],"output":{"name":"f64"}}],[5,"y1_e","","This routine computes the irregular spherical Bessel function of first order, y_1(x) = -(\\cos(x)/x + \\sin(x))/x.",null,null],[5,"y2","","This routine computes the irregular spherical Bessel function of second order, y_2(x) = (-3/x^3 + 1/x)\\cos(x) - (3/x^2)\\sin(x).",null,{"inputs":[{"name":"f64"}],"output":{"name":"f64"}}],[5,"y2_e","","This routine computes the irregular spherical Bessel function of second order, y_2(x) = (-3/x^3 + 1/x)\\cos(x) - (3/x^2)\\sin(x).",null,null],[5,"yl","","This routine computes the irregular spherical Bessel function of order l, y_l(x), for l >= 0.",null,{"inputs":[{"name":"i32"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"yl_e","","This routine computes the irregular spherical Bessel function of order l, y_l(x), for l >= 0.",null,null],[5,"yl_array","","This routine computes the values of the irregular spherical Bessel functions y_l(x) for l from 0 to lmax inclusive for lmax >= 0, storing the results in the array result_array.\nThe values are computed using recurrence relations for efficiency, and therefore may differ slightly from the exact values.",null,null],[5,"Ynu","","This routine computes the irregular cylindrical Bessel function of fractional order \\nu, Y_\\nu(x).",null,{"inputs":[{"name":"f64"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"Ynu_e","","This routine computes the irregular cylindrical Bessel function of fractional order \\nu, Y_\\nu(x).",null,null],[5,"zero_J0","","This routine computes the location of the s-th positive zero of the Bessel function J_0(x).",null,{"inputs":[{"name":"u32"}],"output":{"name":"f64"}}],[5,"zero_J0_e","","This routine computes the location of the s-th positive zero of the Bessel function J_0(x).",null,null],[5,"zero_J1","","This routine computes the location of the s-th positive zero of the Bessel function J_1(x).",null,{"inputs":[{"name":"u32"}],"output":{"name":"f64"}}],[5,"zero_J1_e","","This routine computes the location of the s-th positive zero of the Bessel function J_1(x).",null,null],[5,"zero_Jnu","","This routine computes the location of the s-th positive zero of the Bessel function J_\\nu(x).\nThe current implementation does not support negative values of nu.",null,{"inputs":[{"name":"f64"},{"name":"u32"}],"output":{"name":"f64"}}],[5,"zero_Jnu_e","","This routine computes the location of the s-th positive zero of the Bessel function J_\\nu(x).\nThe current implementation does not support negative values of nu.",null,null],[0,"blas","rgsl","",null,null],[0,"level1","rgsl::blas","",null,null],[5,"sdsdot","rgsl::blas::level1","This function computes the sum \\alpha + x^T y for the vectors x and y, returning the result in result.",null,{"inputs":[{"name":"f32"},{"name":"vectorf32"},{"name":"vectorf32"},{"name":"f32"}],"output":{"name":"value"}}],[5,"sdot","","This function computes the scalar product x^T y for the vectors x and y, returning the result in result.",null,{"inputs":[{"name":"vectorf32"},{"name":"vectorf32"},{"name":"f32"}],"output":{"name":"value"}}],[5,"dsdot","","This function computes the scalar product x^T y for the vectors x and y, returning the result in result.",null,{"inputs":[{"name":"vectorf32"},{"name":"vectorf32"},{"name":"f64"}],"output":{"name":"value"}}],[5,"ddot","","This function computes the scalar product x^T y for the vectors x and y, returning the result in result.",null,{"inputs":[{"name":"vectorf64"},{"name":"vectorf64"},{"name":"f64"}],"output":{"name":"value"}}],[5,"cdotu","","This function computes the complex scalar product x^T y for the vectors x and y, returning the result in dotu.",null,{"inputs":[{"name":"vectorcomplexf32"},{"name":"vectorcomplexf32"},{"name":"complexf32"}],"output":{"name":"value"}}],[5,"zdotu","","This function computes the complex scalar product x^T y for the vectors x and y, returning the result in dotu.",null,{"inputs":[{"name":"vectorcomplexf64"},{"name":"vectorcomplexf64"},{"name":"complexf64"}],"output":{"name":"value"}}],[5,"cdotc","","This function computes the complex conjugate scalar product x^H y for the vectors x and y, returning the result in dotc.",null,{"inputs":[{"name":"vectorcomplexf32"},{"name":"vectorcomplexf32"},{"name":"complexf32"}],"output":{"name":"value"}}],[5,"zdotc","","This function computes the complex conjugate scalar product x^H y for the vectors x and y, returning the result in dotc.",null,{"inputs":[{"name":"vectorcomplexf64"},{"name":"vectorcomplexf64"},{"name":"complexf64"}],"output":{"name":"value"}}],[5,"snrm2","","This function computes the Euclidean norm ||x||_2 = \\sqrt {\\sum x_i^2} of the vector x.",null,{"inputs":[{"name":"vectorf32"}],"output":{"name":"f32"}}],[5,"dnrm2","","This function computes the Euclidean norm ||x||_2 = \\sqrt {\\sum x_i^2} of the vector x.",null,{"inputs":[{"name":"vectorf64"}],"output":{"name":"f64"}}],[5,"scnrm2","","This function computes the Euclidean norm of the complex vector x,",null,{"inputs":[{"name":"vectorcomplexf32"}],"output":{"name":"f32"}}],[5,"dznrm2","","This function computes the Euclidean norm of the complex vector x,",null,{"inputs":[{"name":"vectorcomplexf64"}],"output":{"name":"f64"}}],[5,"sasum","","This function computes the absolute sum \\sum |x_i| of the elements of the vector x.",null,{"inputs":[{"name":"vectorf32"}],"output":{"name":"f32"}}],[5,"dasum","","This function computes the absolute sum \\sum |x_i| of the elements of the vector x.",null,{"inputs":[{"name":"vectorf64"}],"output":{"name":"f64"}}],[5,"scasum","","This function computes the sum of the magnitudes of the real and imaginary parts of the complex vector x, \\sum |\\Re(x_i)| + |\\Im(x_i)|.",null,{"inputs":[{"name":"vectorcomplexf32"}],"output":{"name":"f32"}}],[5,"dzasum","","This function computes the sum of the magnitudes of the real and imaginary parts of the complex vector x, \\sum |\\Re(x_i)| + |\\Im(x_i)|.",null,{"inputs":[{"name":"vectorcomplexf64"}],"output":{"name":"f64"}}],[5,"isamax","","This function returns the index of the largest element of the vector x.\nThe largest element is determined by its absolute magnitude for real vectors and by the sum of the magnitudes of the real and imaginary parts |\\Re(x_i)| + |\\Im(x_i)| for complex vectors.\nIf the largest value occurs several times then the index of the first occurrence is returned.",null,{"inputs":[{"name":"vectorf32"}],"output":{"name":"u32"}}],[5,"idamax","","This function returns the index of the largest element of the vector x.\nThe largest element is determined by its absolute magnitude for real vectors and by the sum of the magnitudes of the real and imaginary parts |\\Re(x_i)| + |\\Im(x_i)| for complex vectors.\nIf the largest value occurs several times then the index of the first occurrence is returned.",null,{"inputs":[{"name":"vectorf64"}],"output":{"name":"u32"}}],[5,"icamax","","This function returns the index of the largest element of the vector x.\nThe largest element is determined by its absolute magnitude for real vectors and by the sum of the magnitudes of the real and imaginary parts |\\Re(x_i)| + |\\Im(x_i)| for complex vectors.\nIf the largest value occurs several times then the index of the first occurrence is returned.",null,{"inputs":[{"name":"vectorcomplexf32"}],"output":{"name":"u32"}}],[5,"izamax","","This function returns the index of the largest element of the vector x.\nThe largest element is determined by its absolute magnitude for real vectors and by the sum of the magnitudes of the real and imaginary parts |\\Re(x_i)| + |\\Im(x_i)| for complex vectors.\nIf the largest value occurs several times then the index of the first occurrence is returned.",null,{"inputs":[{"name":"vectorcomplexf64"}],"output":{"name":"u32"}}],[5,"sswap","","This function exchanges the elements of the vectors x and y.",null,{"inputs":[{"name":"vectorf32"},{"name":"vectorf32"}],"output":{"name":"value"}}],[5,"dswap","","This function exchanges the elements of the vectors x and y.",null,{"inputs":[{"name":"vectorf64"},{"name":"vectorf64"}],"output":{"name":"value"}}],[5,"cswap","","This function exchanges the elements of the vectors x and y.",null,{"inputs":[{"name":"vectorcomplexf32"},{"name":"vectorcomplexf32"}],"output":{"name":"value"}}],[5,"zswap","","This function exchanges the elements of the vectors x and y.",null,{"inputs":[{"name":"vectorcomplexf64"},{"name":"vectorcomplexf64"}],"output":{"name":"value"}}],[5,"scopy","","This function copy the elements of the vector x into the vector y.",null,{"inputs":[{"name":"vectorf32"},{"name":"vectorf32"}],"output":{"name":"value"}}],[5,"dcopy","","This function copy the elements of the vector x into the vector y.",null,{"inputs":[{"name":"vectorf64"},{"name":"vectorf64"}],"output":{"name":"value"}}],[5,"ccopy","","This function copy the elements of the vector x into the vector y.",null,{"inputs":[{"name":"vectorcomplexf32"},{"name":"vectorcomplexf32"}],"output":{"name":"value"}}],[5,"zcopy","","This function copy the elements of the vector x into the vector y.",null,{"inputs":[{"name":"vectorcomplexf64"},{"name":"vectorcomplexf64"}],"output":{"name":"value"}}],[5,"saxpy","","This function computes the sum y = \\alpha x + y for the vectors x and y.",null,{"inputs":[{"name":"f32"},{"name":"vectorf32"},{"name":"vectorf32"}],"output":{"name":"value"}}],[5,"daxpy","","This function computes the sum y = \\alpha x + y for the vectors x and y.",null,{"inputs":[{"name":"f64"},{"name":"vectorf64"},{"name":"vectorf64"}],"output":{"name":"value"}}],[5,"caxpy","","This function computes the sum y = \\alpha x + y for the vectors x and y.",null,{"inputs":[{"name":"complexf32"},{"name":"vectorcomplexf32"},{"name":"vectorcomplexf32"}],"output":{"name":"value"}}],[5,"zaxpy","","This function computes the sum y = \\alpha x + y for the vectors x and y.",null,{"inputs":[{"name":"complexf64"},{"name":"vectorcomplexf64"},{"name":"vectorcomplexf64"}],"output":{"name":"value"}}],[5,"sscal","","This function rescales the vector x by the multiplicative factor alpha.",null,{"inputs":[{"name":"f32"},{"name":"vectorf32"}],"output":null}],[5,"dscal","","This function rescales the vector x by the multiplicative factor alpha.",null,{"inputs":[{"name":"f64"},{"name":"vectorf64"}],"output":null}],[5,"cscal","","This function rescales the vector x by the multiplicative factor alpha.",null,{"inputs":[{"name":"complexf32"},{"name":"vectorcomplexf32"}],"output":null}],[5,"zscal","","This function rescales the vector x by the multiplicative factor alpha.",null,{"inputs":[{"name":"complexf64"},{"name":"vectorcomplexf64"}],"output":null}],[5,"csscal","","This function rescales the vector x by the multiplicative factor alpha.",null,{"inputs":[{"name":"f32"},{"name":"vectorcomplexf32"}],"output":null}],[5,"zdscal","","This function rescales the vector x by the multiplicative factor alpha.",null,{"inputs":[{"name":"f64"},{"name":"vectorcomplexf64"}],"output":null}],[5,"srotg","","This function computes a Givens rotation (c,s) which zeroes the vector (a,b),",null,null],[5,"drotg","","This function computes a Givens rotation (c,s) which zeroes the vector (a,b),",null,null],[5,"srot","","This function applies a Givens rotation (x', y') = (c x + s y, -s x + c y) to the vectors x, y.",null,{"inputs":[{"name":"vectorf32"},{"name":"vectorf32"},{"name":"f32"},{"name":"f32"}],"output":{"name":"value"}}],[5,"drot","","This function applies a Givens rotation (x', y') = (c x + s y, -s x + c y) to the vectors x, y.",null,{"inputs":[{"name":"vectorf64"},{"name":"vectorf64"},{"name":"f64"},{"name":"f64"}],"output":{"name":"value"}}],[5,"srotmg","","This function computes a modified Givens transformation.\nThe modified Givens transformation is defined in the original Level-1 BLAS specification, given in the references.",null,null],[5,"drotmg","","This function computes a modified Givens transformation.\nThe modified Givens transformation is defined in the original Level-1 BLAS specification, given in the references.",null,null],[5,"srotm","","This function applies a modified Givens transformation.",null,null],[5,"drotm","","This function applies a modified Givens transformation.",null,null],[0,"level2","rgsl::blas","",null,null],[5,"sgemv","rgsl::blas::level2","This function computes the matrix-vector product and sum y = \\alpha op(A) x + \\beta y, where op(A) = A, A^T, A^H for TransA = CblasNoTrans, CblasTrans, CblasConjTrans.",null,{"inputs":[{"name":"transpose"},{"name":"f32"},{"name":"matrixf32"},{"name":"vectorf32"},{"name":"f32"},{"name":"vectorf32"}],"output":{"name":"value"}}],[5,"dgemv","","This function computes the matrix-vector product and sum y = \\alpha op(A) x + \\beta y, where op(A) = A, A^T, A^H for TransA = CblasNoTrans, CblasTrans, CblasConjTrans.",null,{"inputs":[{"name":"transpose"},{"name":"f64"},{"name":"matrixf64"},{"name":"vectorf64"},{"name":"f64"},{"name":"vectorf64"}],"output":{"name":"value"}}],[5,"cgemv","","This function computes the matrix-vector product and sum y = \\alpha op(A) x + \\beta y, where op(A) = A, A^T, A^H for TransA = CblasNoTrans, CblasTrans, CblasConjTrans.",null,{"inputs":[{"name":"transpose"},{"name":"complexf32"},{"name":"matrixcomplexf32"},{"name":"vectorcomplexf32"},{"name":"complexf32"},{"name":"vectorcomplexf32"}],"output":{"name":"value"}}],[5,"zgemv","","This function computes the matrix-vector product and sum y = \\alpha op(A) x + \\beta y, where op(A) = A, A^T, A^H for TransA = CblasNoTrans, CblasTrans, CblasConjTrans.",null,{"inputs":[{"name":"transpose"},{"name":"complexf64"},{"name":"matrixcomplexf64"},{"name":"vectorcomplexf64"},{"name":"complexf64"},{"name":"vectorcomplexf64"}],"output":{"name":"value"}}],[5,"strmv","","This function computes the matrix-vector product x = op(A) x for the triangular matrix A, where op(A) = A, A^T, A^H for TransA = CblasNoTrans, CblasTrans, CblasConjTrans.\nWhen Uplo is CblasUpper then the upper triangle of A is used, and when Uplo is CblasLower then the lower triangle of A is used.\nIf Diag is CblasNonUnit then the diagonal of the matrix is used, but if Diag is CblasUnit then the diagonal elements of the matrix A are taken as unity and are not referenced.",null,{"inputs":[{"name":"uplo"},{"name":"transpose"},{"name":"diag"},{"name":"matrixf32"},{"name":"vectorf32"}],"output":{"name":"value"}}],[5,"dtrmv","","This function computes the matrix-vector product x = op(A) x for the triangular matrix A, where op(A) = A, A^T, A^H for TransA = CblasNoTrans, CblasTrans, CblasConjTrans.\nWhen Uplo is CblasUpper then the upper triangle of A is used, and when Uplo is CblasLower then the lower triangle of A is used.\nIf Diag is CblasNonUnit then the diagonal of the matrix is used, but if Diag is CblasUnit then the diagonal elements of the matrix A are taken as unity and are not referenced.",null,{"inputs":[{"name":"uplo"},{"name":"transpose"},{"name":"diag"},{"name":"matrixf64"},{"name":"vectorf64"}],"output":{"name":"value"}}],[5,"ctrmv","","This function computes the matrix-vector product x = op(A) x for the triangular matrix A, where op(A) = A, A^T, A^H for TransA = CblasNoTrans, CblasTrans, CblasConjTrans.\nWhen Uplo is CblasUpper then the upper triangle of A is used, and when Uplo is CblasLower then the lower triangle of A is used.\nIf Diag is CblasNonUnit then the diagonal of the matrix is used, but if Diag is CblasUnit then the diagonal elements of the matrix A are taken as unity and are not referenced.",null,{"inputs":[{"name":"uplo"},{"name":"transpose"},{"name":"diag"},{"name":"matrixcomplexf32"},{"name":"vectorcomplexf32"}],"output":{"name":"value"}}],[5,"ztrmv","","This function computes the matrix-vector product x = op(A) x for the triangular matrix A, where op(A) = A, A^T, A^H for TransA = CblasNoTrans, CblasTrans, CblasConjTrans.\nWhen Uplo is CblasUpper then the upper triangle of A is used, and when Uplo is CblasLower then the lower triangle of A is used.\nIf Diag is CblasNonUnit then the diagonal of the matrix is used, but if Diag is CblasUnit then the diagonal elements of the matrix A are taken as unity and are not referenced.",null,{"inputs":[{"name":"uplo"},{"name":"transpose"},{"name":"diag"},{"name":"matrixcomplexf64"},{"name":"vectorcomplexf64"}],"output":{"name":"value"}}],[5,"strsv","","This function computes inv(op(A)) x for x, where op(A) = A, A^T, A^H for TransA = CblasNoTrans, CblasTrans, CblasConjTrans.\nWhen Uplo is CblasUpper then the upper triangle of A is used, and when Uplo is CblasLower then the lower triangle of A is used.\nIf Diag is CblasNonUnit then the diagonal of the matrix is used, but if Diag is CblasUnit then the diagonal elements of the matrix A are taken as unity and are not referenced.",null,{"inputs":[{"name":"uplo"},{"name":"transpose"},{"name":"diag"},{"name":"matrixf32"},{"name":"vectorf32"}],"output":{"name":"value"}}],[5,"dtrsv","","This function computes inv(op(A)) x for x, where op(A) = A, A^T, A^H for TransA = CblasNoTrans, CblasTrans, CblasConjTrans.\nWhen Uplo is CblasUpper then the upper triangle of A is used, and when Uplo is CblasLower then the lower triangle of A is used.\nIf Diag is CblasNonUnit then the diagonal of the matrix is used, but if Diag is CblasUnit then the diagonal elements of the matrix A are taken as unity and are not referenced.",null,{"inputs":[{"name":"uplo"},{"name":"transpose"},{"name":"diag"},{"name":"matrixf64"},{"name":"vectorf64"}],"output":{"name":"value"}}],[5,"ctrsv","","This function computes inv(op(A)) x for x, where op(A) = A, A^T, A^H for TransA = CblasNoTrans, CblasTrans, CblasConjTrans.\nWhen Uplo is CblasUpper then the upper triangle of A is used, and when Uplo is CblasLower then the lower triangle of A is used.\nIf Diag is CblasNonUnit then the diagonal of the matrix is used, but if Diag is CblasUnit then the diagonal elements of the matrix A are taken as unity and are not referenced.",null,{"inputs":[{"name":"uplo"},{"name":"transpose"},{"name":"diag"},{"name":"matrixcomplexf32"},{"name":"vectorcomplexf32"}],"output":{"name":"value"}}],[5,"ztrsv","","This function computes inv(op(A)) x for x, where op(A) = A, A^T, A^H for TransA = CblasNoTrans, CblasTrans, CblasConjTrans.\nWhen Uplo is CblasUpper then the upper triangle of A is used, and when Uplo is CblasLower then the lower triangle of A is used.\nIf Diag is CblasNonUnit then the diagonal of the matrix is used, but if Diag is CblasUnit then the diagonal elements of the matrix A are taken as unity and are not referenced.",null,{"inputs":[{"name":"uplo"},{"name":"transpose"},{"name":"diag"},{"name":"matrixcomplexf64"},{"name":"vectorcomplexf64"}],"output":{"name":"value"}}],[5,"ssymv","","These functions compute the matrix-vector product and sum y = \\alpha A x + \\beta y for the symmetric matrix A.\nSince the matrix A is symmetric only its upper half or lower half need to be stored.\nWhen Uplo is CblasUpper then the upper triangle and diagonal of A are used, and when Uplo is CblasLower then the lower triangle and diagonal of A are used.",null,{"inputs":[{"name":"uplo"},{"name":"f32"},{"name":"matrixf32"},{"name":"vectorf32"},{"name":"f32"},{"name":"vectorf32"}],"output":{"name":"value"}}],[5,"dsymv","","These functions compute the matrix-vector product and sum y = \\alpha A x + \\beta y for the symmetric matrix A.\nSince the matrix A is symmetric only its upper half or lower half need to be stored.\nWhen Uplo is CblasUpper then the upper triangle and diagonal of A are used, and when Uplo is CblasLower then the lower triangle and diagonal of A are used.",null,{"inputs":[{"name":"uplo"},{"name":"f64"},{"name":"matrixf64"},{"name":"vectorf64"},{"name":"f64"},{"name":"vectorf64"}],"output":{"name":"value"}}],[5,"chemv","","These functions compute the matrix-vector product and sum y = \\alpha A x + \\beta y for the hermitian matrix A.\nSince the matrix A is hermitian only its upper half or lower half need to be stored. When Uplo is CblasUpper then the upper triangle and diagonal of A are used, and when Uplo is CblasLower then the lower triangle and diagonal of A are used.\nThe imaginary elements of the diagonal are automatically assumed to be zero and are not referenced.",null,{"inputs":[{"name":"uplo"},{"name":"complexf32"},{"name":"matrixcomplexf32"},{"name":"vectorcomplexf32"},{"name":"complexf32"},{"name":"vectorcomplexf32"}],"output":{"name":"value"}}],[5,"zhemv","","These functions compute the matrix-vector product and sum y = \\alpha A x + \\beta y for the hermitian matrix A.\nSince the matrix A is hermitian only its upper half or lower half need to be stored. When Uplo is CblasUpper then the upper triangle and diagonal of A are used, and when Uplo is CblasLower then the lower triangle and diagonal of A are used.\nThe imaginary elements of the diagonal are automatically assumed to be zero and are not referenced.",null,{"inputs":[{"name":"uplo"},{"name":"complexf64"},{"name":"matrixcomplexf64"},{"name":"vectorcomplexf64"},{"name":"complexf64"},{"name":"vectorcomplexf64"}],"output":{"name":"value"}}],[5,"sger","","This function computes the rank-1 update A = \\alpha x y^T + A of the matrix A.",null,{"inputs":[{"name":"f32"},{"name":"vectorf32"},{"name":"vectorf32"},{"name":"matrixf32"}],"output":{"name":"value"}}],[5,"dger","","This function computes the rank-1 update A = \\alpha x y^T + A of the matrix A.",null,{"inputs":[{"name":"f64"},{"name":"vectorf64"},{"name":"vectorf64"},{"name":"matrixf64"}],"output":{"name":"value"}}],[5,"cgeru","","This function computes the rank-1 update A = \\alpha x y^T + A of the matrix A.",null,{"inputs":[{"name":"complexf32"},{"name":"vectorcomplexf32"},{"name":"vectorcomplexf32"},{"name":"matrixcomplexf32"}],"output":{"name":"value"}}],[5,"zgeru","","This function computes the rank-1 update A = \\alpha x y^T + A of the matrix A.",null,{"inputs":[{"name":"complexf64"},{"name":"vectorcomplexf64"},{"name":"vectorcomplexf64"},{"name":"matrixcomplexf64"}],"output":{"name":"value"}}],[5,"cgerc","","This function computes the conjugate rank-1 update A = \\alpha x y^H + A of the matrix A.",null,{"inputs":[{"name":"complexf32"},{"name":"vectorcomplexf32"},{"name":"vectorcomplexf32"},{"name":"matrixcomplexf32"}],"output":{"name":"value"}}],[5,"zgerc","","This function computes the conjugate rank-1 update A = \\alpha x y^H + A of the matrix A.",null,{"inputs":[{"name":"complexf64"},{"name":"vectorcomplexf64"},{"name":"vectorcomplexf64"},{"name":"matrixcomplexf64"}],"output":{"name":"value"}}],[5,"ssyr","","This function computes the symmetric rank-1 update A = \\alpha x x^T + A of the symmetric matrix A. Since the matrix A is symmetric only its upper half or lower half need to be stored.\nWhen Uplo is CblasUpper then the upper triangle and diagonal of A are used, and when Uplo is CblasLower then the lower triangle and diagonal of A are used.",null,{"inputs":[{"name":"uplo"},{"name":"f32"},{"name":"vectorf32"},{"name":"matrixf32"}],"output":{"name":"value"}}],[5,"dsyr","","This function computes the symmetric rank-1 update A = \\alpha x x^T + A of the symmetric matrix A. Since the matrix A is symmetric only its upper half or lower half need to be stored.\nWhen Uplo is CblasUpper then the upper triangle and diagonal of A are used, and when Uplo is CblasLower then the lower triangle and diagonal of A are used.",null,{"inputs":[{"name":"uplo"},{"name":"f64"},{"name":"vectorf64"},{"name":"matrixf64"}],"output":{"name":"value"}}],[5,"cher","","These functions compute the hermitian rank-1 update A = \\alpha x x^H + A of the hermitian matrix A.\nSince the matrix A is hermitian only its upper half or lower half need to be stored.\nWhen Uplo is CblasUpper then the upper triangle and diagonal of A are used, and when Uplo is CblasLower then the lower triangle and diagonal of A are used.\nThe imaginary elements of the diagonal are automatically set to zero.",null,{"inputs":[{"name":"uplo"},{"name":"f32"},{"name":"vectorcomplexf32"},{"name":"matrixcomplexf32"}],"output":{"name":"value"}}],[5,"zher","","These functions compute the hermitian rank-1 update A = \\alpha x x^H + A of the hermitian matrix A.\nSince the matrix A is hermitian only its upper half or lower half need to be stored.\nWhen Uplo is CblasUpper then the upper triangle and diagonal of A are used, and when Uplo is CblasLower then the lower triangle and diagonal of A are used.\nThe imaginary elements of the diagonal are automatically set to zero.",null,{"inputs":[{"name":"uplo"},{"name":"f64"},{"name":"vectorcomplexf64"},{"name":"matrixcomplexf64"}],"output":{"name":"value"}}],[5,"ssyr2","","These functions compute the symmetric rank-2 update A = \\alpha x y^T + \\alpha y x^T + A of the symmetric matrix A.\nSince the matrix A is symmetric only its upper half or lower half need to be stored.\nWhen Uplo is CblasUpper then the upper triangle and diagonal of A are used, and when Uplo is CblasLower then the lower triangle and diagonal of A are used.",null,{"inputs":[{"name":"uplo"},{"name":"f32"},{"name":"vectorf32"},{"name":"vectorf32"},{"name":"matrixf32"}],"output":{"name":"value"}}],[5,"dsyr2","","These functions compute the symmetric rank-2 update A = \\alpha x y^T + \\alpha y x^T + A of the symmetric matrix A.\nSince the matrix A is symmetric only its upper half or lower half need to be stored.\nWhen Uplo is CblasUpper then the upper triangle and diagonal of A are used, and when Uplo is CblasLower then the lower triangle and diagonal of A are used.",null,{"inputs":[{"name":"uplo"},{"name":"f64"},{"name":"vectorf64"},{"name":"vectorf64"},{"name":"matrixf64"}],"output":{"name":"value"}}],[5,"cher2","","These functions compute the hermitian rank-2 update A = \\alpha x y^H + \\alpha^* y x^H + A of the hermitian matrix A.\nSince the matrix A is hermitian only its upper half or lower half need to be stored.\nWhen Uplo is CblasUpper then the upper triangle and diagonal of A are used, and when Uplo is CblasLower then the lower triangle and diagonal of A are used.\nThe imaginary elements of the diagonal are automatically set to zero.",null,{"inputs":[{"name":"uplo"},{"name":"complexf32"},{"name":"vectorcomplexf32"},{"name":"vectorcomplexf32"},{"name":"matrixcomplexf32"}],"output":{"name":"value"}}],[5,"zher2","","These functions compute the hermitian rank-2 update A = \\alpha x y^H + \\alpha^* y x^H + A of the hermitian matrix A.\nSince the matrix A is hermitian only its upper half or lower half need to be stored.\nWhen Uplo is CblasUpper then the upper triangle and diagonal of A are used, and when Uplo is CblasLower then the lower triangle and diagonal of A are used.\nThe imaginary elements of the diagonal are automatically set to zero.",null,{"inputs":[{"name":"uplo"},{"name":"complexf64"},{"name":"vectorcomplexf64"},{"name":"vectorcomplexf64"},{"name":"matrixcomplexf64"}],"output":{"name":"value"}}],[0,"level3","rgsl::blas","",null,null],[5,"sgemm","rgsl::blas::level3","This function computes the matrix-matrix product and sum C = \\alpha op(A) op(B) + \\beta C where op(A) = A, A^T, A^H for TransA = CblasNoTrans, CblasTrans, CblasConjTrans and similarly for the parameter TransB.",null,{"inputs":[{"name":"transpose"},{"name":"transpose"},{"name":"f32"},{"name":"matrixf32"},{"name":"matrixf32"},{"name":"f32"},{"name":"matrixf32"}],"output":{"name":"value"}}],[5,"dgemm","","This function computes the matrix-matrix product and sum C = \\alpha op(A) op(B) + \\beta C where op(A) = A, A^T, A^H for TransA = CblasNoTrans, CblasTrans, CblasConjTrans and similarly for the parameter TransB.",null,{"inputs":[{"name":"transpose"},{"name":"transpose"},{"name":"f64"},{"name":"matrixf64"},{"name":"matrixf64"},{"name":"f64"},{"name":"matrixf64"}],"output":{"name":"value"}}],[5,"cgemm","","This function computes the matrix-matrix product and sum C = \\alpha op(A) op(B) + \\beta C where op(A) = A, A^T, A^H for TransA = CblasNoTrans, CblasTrans, CblasConjTrans and similarly for the parameter TransB.",null,{"inputs":[{"name":"transpose"},{"name":"transpose"},{"name":"complexf32"},{"name":"matrixcomplexf32"},{"name":"matrixcomplexf32"},{"name":"complexf32"},{"name":"matrixcomplexf32"}],"output":{"name":"value"}}],[5,"zgemm","","This function computes the matrix-matrix product and sum C = \\alpha op(A) op(B) + \\beta C where op(A) = A, A^T, A^H for TransA = CblasNoTrans, CblasTrans, CblasConjTrans and similarly for the parameter TransB.",null,{"inputs":[{"name":"transpose"},{"name":"transpose"},{"name":"complexf64"},{"name":"matrixcomplexf64"},{"name":"matrixcomplexf64"},{"name":"complexf64"},{"name":"matrixcomplexf64"}],"output":{"name":"value"}}],[5,"ssymm","","This function computes the matrix-matrix product and sum C = \\alpha A B + \\beta C for Side is CblasLeft and C = \\alpha B A + \\beta C for Side is CblasRight, where the matrix A is symmetric.\nWhen Uplo is CblasUpper then the upper triangle and diagonal of A are used, and when Uplo is CblasLower then the lower triangle and diagonal of A are used.",null,{"inputs":[{"name":"side"},{"name":"uplo"},{"name":"f32"},{"name":"matrixf32"},{"name":"matrixf32"},{"name":"f32"},{"name":"matrixf32"}],"output":{"name":"value"}}],[5,"dsymm","","This function computes the matrix-matrix product and sum C = \\alpha A B + \\beta C for Side is CblasLeft and C = \\alpha B A + \\beta C for Side is CblasRight, where the matrix A is symmetric.\nWhen Uplo is CblasUpper then the upper triangle and diagonal of A are used, and when Uplo is CblasLower then the lower triangle and diagonal of A are used.",null,{"inputs":[{"name":"side"},{"name":"uplo"},{"name":"f64"},{"name":"matrixf64"},{"name":"matrixf64"},{"name":"f64"},{"name":"matrixf64"}],"output":{"name":"value"}}],[5,"csymm","","This function computes the matrix-matrix product and sum C = \\alpha A B + \\beta C for Side is CblasLeft and C = \\alpha B A + \\beta C for Side is CblasRight, where the matrix A is symmetric.\nWhen Uplo is CblasUpper then the upper triangle and diagonal of A are used, and when Uplo is CblasLower then the lower triangle and diagonal of A are used.",null,{"inputs":[{"name":"side"},{"name":"uplo"},{"name":"complexf32"},{"name":"matrixcomplexf32"},{"name":"matrixcomplexf32"},{"name":"complexf32"},{"name":"matrixcomplexf32"}],"output":{"name":"value"}}],[5,"zsymm","","This function computes the matrix-matrix product and sum C = \\alpha A B + \\beta C for Side is CblasLeft and C = \\alpha B A + \\beta C for Side is CblasRight, where the matrix A is symmetric.\nWhen Uplo is CblasUpper then the upper triangle and diagonal of A are used, and when Uplo is CblasLower then the lower triangle and diagonal of A are used.",null,{"inputs":[{"name":"side"},{"name":"uplo"},{"name":"complexf64"},{"name":"matrixcomplexf64"},{"name":"matrixcomplexf64"},{"name":"complexf64"},{"name":"matrixcomplexf64"}],"output":{"name":"value"}}],[5,"chemm","","This function computes the matrix-matrix product and sum C = \\alpha A B + \\beta C for Side is Left and C = \\alpha B A + \\beta C for Side is Right, where the matrix A is hermitian.\nWhen Uplo is Upper then the upper triangle and diagonal of A are used, and when Uplo is Lower then the lower triangle and diagonal of A are used.\nThe imaginary elements of the diagonal are automatically set to zero.",null,{"inputs":[{"name":"side"},{"name":"uplo"},{"name":"complexf32"},{"name":"matrixcomplexf32"},{"name":"matrixcomplexf32"},{"name":"complexf32"},{"name":"matrixcomplexf32"}],"output":{"name":"value"}}],[5,"zhemm","","This function computes the matrix-matrix product and sum C = \\alpha A B + \\beta C for Side is CblasLeft and C = \\alpha B A + \\beta C for Side is CblasRight, where the matrix A is hermitian.\nWhen Uplo is CblasUpper then the upper triangle and diagonal of A are used, and when Uplo is CblasLower then the lower triangle and diagonal of A are used.\nThe imaginary elements of the diagonal are automatically set to zero.",null,{"inputs":[{"name":"side"},{"name":"uplo"},{"name":"complexf64"},{"name":"matrixcomplexf64"},{"name":"matrixcomplexf64"},{"name":"complexf64"},{"name":"matrixcomplexf64"}],"output":{"name":"value"}}],[5,"strmm","","This function computes the matrix-matrix product B = \\alpha op(A) B for Side is Left and B = \\alpha B op(A) for Side is CblasRight.\nThe matrix A is triangular and op(A) = A, A^T, A^H for TransA = NoTrans, Trans, ConjTrans.\nWhen Uplo is Upper then the upper triangle of A is used, and when Uplo is Lower then the lower triangle of A is used.\nIf Diag is NonUnit then the diagonal of A is used, but if Diag is Unit then the diagonal elements of the matrix A are taken as unity and are not referenced.",null,{"inputs":[{"name":"side"},{"name":"uplo"},{"name":"transpose"},{"name":"diag"},{"name":"f32"},{"name":"matrixf32"},{"name":"matrixf32"}],"output":{"name":"value"}}],[5,"dtrmm","","This function computes the matrix-matrix product B = \\alpha op(A) B for Side is Left and B = \\alpha B op(A) for Side is CblasRight.\nThe matrix A is triangular and op(A) = A, A^T, A^H for TransA = NoTrans, Trans, ConjTrans.\nWhen Uplo is Upper then the upper triangle of A is used, and when Uplo is Lower then the lower triangle of A is used.\nIf Diag is NonUnit then the diagonal of A is used, but if Diag is Unit then the diagonal elements of the matrix A are taken as unity and are not referenced.",null,{"inputs":[{"name":"side"},{"name":"uplo"},{"name":"transpose"},{"name":"diag"},{"name":"f64"},{"name":"matrixf64"},{"name":"matrixf64"}],"output":{"name":"value"}}],[5,"ctrmm","","This function computes the matrix-matrix product B = \\alpha op(A) B for Side is Left and B = \\alpha B op(A) for Side is CblasRight.\nThe matrix A is triangular and op(A) = A, A^T, A^H for TransA = NoTrans, Trans, ConjTrans.\nWhen Uplo is Upper then the upper triangle of A is used, and when Uplo is Lower then the lower triangle of A is used.\nIf Diag is NonUnit then the diagonal of A is used, but if Diag is Unit then the diagonal elements of the matrix A are taken as unity and are not referenced.",null,{"inputs":[{"name":"side"},{"name":"uplo"},{"name":"transpose"},{"name":"diag"},{"name":"complexf32"},{"name":"matrixcomplexf32"},{"name":"matrixcomplexf32"}],"output":{"name":"value"}}],[5,"ztrmm","","This function computes the matrix-matrix product B = \\alpha op(A) B for Side is Left and B = \\alpha B op(A) for Side is CblasRight.\nThe matrix A is triangular and op(A) = A, A^T, A^H for TransA = NoTrans, Trans, ConjTrans.\nWhen Uplo is Upper then the upper triangle of A is used, and when Uplo is Lower then the lower triangle of A is used.\nIf Diag is NonUnit then the diagonal of A is used, but if Diag is Unit then the diagonal elements of the matrix A are taken as unity and are not referenced.",null,{"inputs":[{"name":"side"},{"name":"uplo"},{"name":"transpose"},{"name":"diag"},{"name":"complexf64"},{"name":"matrixcomplexf64"},{"name":"matrixcomplexf64"}],"output":{"name":"value"}}],[5,"strsm","","This function computes the inverse-matrix matrix product B = \\alpha op(inv(A))B for Side is Left and B = \\alpha B op(inv(A)) for Side is Right.\nThe matrix A is triangular and op(A) = A, A^T, A^H for TransA = NoTrans, Trans, ConjTrans.\nWhen Uplo is Upper then the upper triangle of A is used, and when Uplo is Lower then the lower triangle of A is used.\nIf Diag is NonUnit then the diagonal of A is used, but if Diag is Unit then the diagonal elements of the matrix A are taken as unity and are not referenced.",null,{"inputs":[{"name":"side"},{"name":"uplo"},{"name":"transpose"},{"name":"diag"},{"name":"f32"},{"name":"matrixf32"},{"name":"matrixf32"}],"output":{"name":"value"}}],[5,"dtrsm","","This function computes the inverse-matrix matrix product B = \\alpha op(inv(A))B for Side is Left and B = \\alpha B op(inv(A)) for Side is Right.\nThe matrix A is triangular and op(A) = A, A^T, A^H for TransA = NoTrans, Trans, ConjTrans.\nWhen Uplo is Upper then the upper triangle of A is used, and when Uplo is Lower then the lower triangle of A is used.\nIf Diag is NonUnit then the diagonal of A is used, but if Diag is Unit then the diagonal elements of the matrix A are taken as unity and are not referenced.",null,{"inputs":[{"name":"side"},{"name":"uplo"},{"name":"transpose"},{"name":"diag"},{"name":"f64"},{"name":"matrixf64"},{"name":"matrixf64"}],"output":{"name":"value"}}],[5,"ctrsm","","This function computes the inverse-matrix matrix product B = \\alpha op(inv(A))B for Side is Left and B = \\alpha B op(inv(A)) for Side is Right.\nThe matrix A is triangular and op(A) = A, A^T, A^H for TransA = NoTrans, Trans, ConjTrans.\nWhen Uplo is Upper then the upper triangle of A is used, and when Uplo is Lower then the lower triangle of A is used.\nIf Diag is NonUnit then the diagonal of A is used, but if Diag is Unit then the diagonal elements of the matrix A are taken as unity and are not referenced.",null,{"inputs":[{"name":"side"},{"name":"uplo"},{"name":"transpose"},{"name":"diag"},{"name":"complexf32"},{"name":"matrixcomplexf32"},{"name":"matrixcomplexf32"}],"output":{"name":"value"}}],[5,"ztrsm","","This function computes the inverse-matrix matrix product B = \\alpha op(inv(A))B for Side is Left and B = \\alpha B op(inv(A)) for Side is Right.\nThe matrix A is triangular and op(A) = A, A^T, A^H for TransA = NoTrans, Trans, ConjTrans.\nWhen Uplo is Upper then the upper triangle of A is used, and when Uplo is Lower then the lower triangle of A is used.\nIf Diag is NonUnit then the diagonal of A is used, but if Diag is Unit then the diagonal elements of the matrix A are taken as unity and are not referenced.",null,{"inputs":[{"name":"side"},{"name":"uplo"},{"name":"transpose"},{"name":"diag"},{"name":"complexf64"},{"name":"matrixcomplexf64"},{"name":"matrixcomplexf64"}],"output":{"name":"value"}}],[5,"ssyrk","","This function computes a rank-k update of the symmetric matrix C, C = \\alpha A A^T + \\beta C when Trans is NoTrans and C = \\alpha A^T A + \\beta C when Trans is Trans.\nSince the matrix C is symmetric only its upper half or lower half need to be stored.\nWhen Uplo is Upper then the upper triangle and diagonal of C are used, and when Uplo is Lower then the lower triangle and diagonal of C are used.",null,{"inputs":[{"name":"uplo"},{"name":"transpose"},{"name":"f32"},{"name":"matrixf32"},{"name":"f32"},{"name":"matrixf32"}],"output":{"name":"value"}}],[5,"dsyrk","","This function computes a rank-k update of the symmetric matrix C, C = \\alpha A A^T + \\beta C when Trans is NoTrans and C = \\alpha A^T A + \\beta C when Trans is Trans.\nSince the matrix C is symmetric only its upper half or lower half need to be stored.\nWhen Uplo is Upper then the upper triangle and diagonal of C are used, and when Uplo is Lower then the lower triangle and diagonal of C are used.",null,{"inputs":[{"name":"uplo"},{"name":"transpose"},{"name":"f64"},{"name":"matrixf64"},{"name":"f64"},{"name":"matrixf64"}],"output":{"name":"value"}}],[5,"csyrk","","This function computes a rank-k update of the symmetric matrix C, C = \\alpha A A^T + \\beta C when Trans is NoTrans and C = \\alpha A^T A + \\beta C when Trans is Trans.\nSince the matrix C is symmetric only its upper half or lower half need to be stored.\nWhen Uplo is Upper then the upper triangle and diagonal of C are used, and when Uplo is Lower then the lower triangle and diagonal of C are used.",null,{"inputs":[{"name":"uplo"},{"name":"transpose"},{"name":"complexf32"},{"name":"matrixcomplexf32"},{"name":"complexf32"},{"name":"matrixcomplexf32"}],"output":{"name":"value"}}],[5,"zsyrk","","This function computes a rank-k update of the symmetric matrix C, C = \\alpha A A^T + \\beta C when Trans is NoTrans and C = \\alpha A^T A + \\beta C when Trans is Trans.\nSince the matrix C is symmetric only its upper half or lower half need to be stored.\nWhen Uplo is Upper then the upper triangle and diagonal of C are used, and when Uplo is Lower then the lower triangle and diagonal of C are used.",null,{"inputs":[{"name":"uplo"},{"name":"transpose"},{"name":"complexf64"},{"name":"matrixcomplexf64"},{"name":"complexf64"},{"name":"matrixcomplexf64"}],"output":{"name":"value"}}],[5,"cherk","","These functions compute a rank-k update of the hermitian matrix C, C = \\alpha A A^H + \\beta C when Trans is NoTrans and C = \\alpha A^H A + \\beta C when Trans is ConjTrans.\nSince the matrix C is hermitian only its upper half or lower half need to be stored.\nWhen Uplo is Upper then the upper triangle and diagonal of C are used, and when Uplo is Lower then the lower triangle and diagonal of C are used.\nThe imaginary elements of the diagonal are automatically set to zero.",null,{"inputs":[{"name":"uplo"},{"name":"transpose"},{"name":"f32"},{"name":"matrixcomplexf32"},{"name":"f32"},{"name":"matrixcomplexf32"}],"output":{"name":"value"}}],[5,"zherk","","These functions compute a rank-k update of the hermitian matrix C, C = \\alpha A A^H + \\beta C when Trans is NoTrans and C = \\alpha A^H A + \\beta C when Trans is ConjTrans.\nSince the matrix C is hermitian only its upper half or lower half need to be stored.\nWhen Uplo is Upper then the upper triangle and diagonal of C are used, and when Uplo is Lower then the lower triangle and diagonal of C are used.\nThe imaginary elements of the diagonal are automatically set to zero.",null,{"inputs":[{"name":"uplo"},{"name":"transpose"},{"name":"f64"},{"name":"matrixcomplexf64"},{"name":"f64"},{"name":"matrixcomplexf64"}],"output":{"name":"value"}}],[5,"ssyr2k","","This function computes a rank-2k update of the symmetric matrix C, C = \\alpha A B^T + \\alpha B A^T + \\beta C when Trans is NoTrans and C = \\alpha A^T B + \\alpha B^T A + \\beta C when Trans is Trans.\nSince the matrix C is symmetric only its upper half or lower half need to be stored.\nWhen Uplo is Upper then the upper triangle and diagonal of C are used, and when Uplo is Lower then the lower triangle and diagonal of C are used.",null,{"inputs":[{"name":"uplo"},{"name":"transpose"},{"name":"f32"},{"name":"matrixf32"},{"name":"matrixf32"},{"name":"f32"},{"name":"matrixf32"}],"output":{"name":"value"}}],[5,"dsyr2k","","This function computes a rank-2k update of the symmetric matrix C, C = \\alpha A B^T + \\alpha B A^T + \\beta C when Trans is NoTrans and C = \\alpha A^T B + \\alpha B^T A + \\beta C when Trans is Trans.\nSince the matrix C is symmetric only its upper half or lower half need to be stored.\nWhen Uplo is Upper then the upper triangle and diagonal of C are used, and when Uplo is Lower then the lower triangle and diagonal of C are used.",null,{"inputs":[{"name":"uplo"},{"name":"transpose"},{"name":"f64"},{"name":"matrixf64"},{"name":"matrixf64"},{"name":"f64"},{"name":"matrixf64"}],"output":{"name":"value"}}],[5,"csyr2k","","This function computes a rank-2k update of the symmetric matrix C, C = \\alpha A B^T + \\alpha B A^T + \\beta C when Trans is NoTrans and C = \\alpha A^T B + \\alpha B^T A + \\beta C when Trans is Trans.\nSince the matrix C is symmetric only its upper half or lower half need to be stored.\nWhen Uplo is Upper then the upper triangle and diagonal of C are used, and when Uplo is Lower then the lower triangle and diagonal of C are used.",null,{"inputs":[{"name":"uplo"},{"name":"transpose"},{"name":"complexf32"},{"name":"matrixcomplexf32"},{"name":"matrixcomplexf32"},{"name":"complexf32"},{"name":"matrixcomplexf32"}],"output":{"name":"value"}}],[5,"zsyr2k","","This function computes a rank-2k update of the symmetric matrix C, C = \\alpha A B^T + \\alpha B A^T + \\beta C when Trans is NoTrans and C = \\alpha A^T B + \\alpha B^T A + \\beta C when Trans is Trans.\nSince the matrix C is symmetric only its upper half or lower half need to be stored.\nWhen Uplo is Upper then the upper triangle and diagonal of C are used, and when Uplo is Lower then the lower triangle and diagonal of C are used.",null,{"inputs":[{"name":"uplo"},{"name":"transpose"},{"name":"complexf64"},{"name":"matrixcomplexf64"},{"name":"matrixcomplexf64"},{"name":"complexf64"},{"name":"matrixcomplexf64"}],"output":{"name":"value"}}],[5,"cher2k","","This function computes a rank-2k update of the hermitian matrix C, C = \\alpha A B^H + \\alpha^* B A^H + \\beta C when Trans is NoTrans and C = \\alpha A^H B + \\alpha^* B^H A + \\beta C when Trans is ConjTrans.\nSince the matrix C is hermitian only its upper half or lower half need to be stored.\nWhen Uplo is Upper then the upper triangle and diagonal of C are used, and when Uplo is Lower then the lower triangle and diagonal of C are used.\nThe imaginary elements of the diagonal are automatically set to zero.",null,{"inputs":[{"name":"uplo"},{"name":"transpose"},{"name":"complexf32"},{"name":"matrixcomplexf32"},{"name":"matrixcomplexf32"},{"name":"f32"},{"name":"matrixcomplexf32"}],"output":{"name":"value"}}],[5,"zher2k","","This function computes a rank-2k update of the hermitian matrix C, C = \\alpha A B^H + \\alpha^* B A^H + \\beta C when Trans is NoTrans and C = \\alpha A^H B + \\alpha^* B^H A + \\beta C when Trans is ConjTrans.\nSince the matrix C is hermitian only its upper half or lower half need to be stored.\nWhen Uplo is Upper then the upper triangle and diagonal of C are used, and when Uplo is Lower then the lower triangle and diagonal of C are used.\nThe imaginary elements of the diagonal are automatically set to zero.",null,{"inputs":[{"name":"uplo"},{"name":"transpose"},{"name":"complexf64"},{"name":"matrixcomplexf64"},{"name":"matrixcomplexf64"},{"name":"f64"},{"name":"matrixcomplexf64"}],"output":{"name":"value"}}],[0,"cblas","rgsl","",null,null],[3,"Index","rgsl::cblas","",null,null],[12,"0","","",87,null],[4,"Order","","Indicates whether a matrix is in Row Major or Column Major order.\nRow major order is the native order for C programs, while Column major order is native for Fortran.",null,null],[13,"RowMajor","","",88,null],[13,"ColMajoyr","","",88,null],[4,"Side","","Used to indicate the order of a matrix-matrix multiply.",null,null],[13,"Left","","Means __A__ __B__",89,null],[13,"Right","","Means __B__ __A__",89,null],[4,"Transpose","","Used to represent transpose operations on a matrix.",null,null],[13,"NoTrans","","Represents __X__",90,null],[13,"Trans","","Represents __X^T__",90,null],[13,"ConjTrans","","Represents __X^H__",90,null],[4,"Uplo","","Used to indicate which part of a symmetric matrix to use.",null,null],[13,"Upper","","Means user the upper triagle of the matrix.",91,null],[13,"Lower","","Means use the lower triange of the matrix.",91,null],[4,"Diag","","",null,null],[13,"NonUnit","","",92,null],[13,"Unit","","",92,null],[0,"level1","","",null,null],[5,"sdsdot","rgsl::cblas::level1","",null,null],[5,"dsdot","","",null,null],[5,"sdot","","",null,null],[5,"ddot","","",null,null],[5,"cdotu_sub","","",null,null],[5,"cdotc_sub","","",null,null],[5,"zdotu_sub","","",null,null],[5,"zdotc_sub","","",null,null],[5,"snrm2","","",null,null],[5,"sasum","","",null,null],[5,"dnrm2","","",null,null],[5,"dasum","","",null,null],[5,"scnrm2","","",null,null],[5,"scasum","","",null,null],[5,"dznrm2","","",null,null],[5,"dzasum","","",null,null],[5,"isamax","","",null,null],[5,"idamax","","",null,null],[5,"icamax","","",null,null],[5,"izamax","","",null,null],[5,"sswap","","",null,null],[5,"scopy","","",null,null],[5,"saxpy","","",null,null],[5,"dswap","","",null,null],[5,"dcopy","","",null,null],[5,"daxpy","","",null,null],[5,"cswap","","",null,null],[5,"ccopy","","",null,null],[5,"caxpy","","",null,null],[5,"zswap","","",null,null],[5,"zcopy","","",null,null],[5,"zaxpy","","",null,null],[5,"srotg","","",null,null],[5,"srotmg","","",null,null],[5,"srot","","",null,null],[5,"srotm","","",null,null],[5,"drotg","","",null,null],[5,"drotmg","","",null,null],[5,"drot","","",null,null],[5,"drotm","","",null,null],[5,"sscal","","Multiple each element of a matrix/vector by a constant.",null,null],[5,"dscal","","Multiple each element of a matrix/vector by a constant.",null,null],[5,"cscal","","Multiple each element of a matrix/vector by a constant.",null,null],[5,"zscal","","Multiple each element of a matrix/vector by a constant.",null,null],[5,"csscal","","Multiple each element of a matrix/vector by a constant.",null,null],[5,"zdscal","","Multiple each element of a matrix/vector by a constant.",null,null],[0,"level2","rgsl::cblas","",null,null],[5,"sgemv","rgsl::cblas::level2","Multiplies a matrix and a vector.",null,null],[5,"sgbmv","","",null,null],[5,"strmv","","",null,null],[5,"stbmv","","",null,null],[5,"stpmv","","",null,null],[5,"strsv","","",null,null],[5,"stbsv","","",null,null],[5,"stpsv","","",null,null],[5,"dgemv","","",null,null],[5,"dgbmv","","",null,null],[5,"dtrmv","","",null,null],[5,"dtbmv","","",null,null],[5,"dtpmv","","",null,null],[5,"dtrsv","","",null,null],[5,"dtbsv","","",null,null],[5,"dtpsv","","",null,null],[5,"cgemv","","",null,null],[5,"cgbmv","","",null,null],[5,"ctrmv","","",null,null],[5,"ctbmv","","",null,null],[5,"ctpmv","","",null,null],[5,"ctrsv","","",null,null],[5,"ctbsv","","",null,null],[5,"ctpsv","","",null,null],[5,"zgemv","","",null,null],[5,"zgbmv","","",null,null],[5,"ztrmv","","",null,null],[5,"ztbmv","","",null,null],[5,"ztpmv","","",null,null],[5,"ztrsv","","",null,null],[5,"ztbsv","","",null,null],[5,"ztpsv","","",null,null],[5,"ssymv","","",null,null],[5,"ssbmv","","",null,null],[5,"sspmv","","",null,null],[5,"sger","","",null,null],[5,"ssyr","","",null,null],[5,"sspr","","",null,null],[5,"ssyr2","","",null,null],[5,"sspr2","","",null,null],[5,"dsymv","","",null,null],[5,"dsbmv","","",null,null],[5,"dspmv","","",null,null],[5,"dger","","",null,null],[5,"dsyr","","",null,null],[5,"dspr","","",null,null],[5,"dsyr2","","",null,null],[5,"dspr2","","",null,null],[5,"csymv","","",null,null],[5,"csbmv","","",null,null],[5,"cspmv","","",null,null],[5,"cgeru","","",null,null],[5,"cgerc","","",null,null],[5,"cher","","",null,null],[5,"chpr","","",null,null],[5,"cher2","","",null,null],[5,"chpr2","","",null,null],[5,"zsymv","","",null,null],[5,"zsbmv","","",null,null],[5,"zspmv","","",null,null],[5,"zgeru","","",null,null],[5,"zgerc","","",null,null],[5,"zher","","",null,null],[5,"zhpr","","",null,null],[5,"zher2","","",null,null],[5,"zhpr2","","",null,null],[0,"level3","rgsl::cblas","",null,null],[5,"sgemm","rgsl::cblas::level3","General ::types::Matrix-MatrixF64 multiplication for single precision float.",null,null],[5,"ssymm","","Symmetric ::types::Matrix-MatrixF64 multiplication for single precision float.",null,null],[5,"ssyrk","","",null,null],[5,"ssyr2k","","",null,null],[5,"strmm","","",null,null],[5,"strsm","","",null,null],[5,"dgemm","","",null,null],[5,"dsymm","","",null,null],[5,"dsyrk","","",null,null],[5,"dsyr2k","","",null,null],[5,"dtrmm","","",null,null],[5,"dtrsm","","",null,null],[5,"cgemm","","",null,null],[5,"csymm","","",null,null],[5,"csyrk","","",null,null],[5,"csyr2k","","",null,null],[5,"ctrmm","","",null,null],[5,"ctrsm","","",null,null],[5,"zgemm","","",null,null],[5,"zsymm","","",null,null],[5,"zsyrk","","",null,null],[5,"zsyr2k","","",null,null],[5,"ztrmm","","",null,null],[5,"ztrsm","","",null,null],[5,"chemm","","",null,null],[5,"cherk","","",null,null],[5,"cher2k","","",null,null],[5,"zhemm","","",null,null],[5,"zherk","","",null,null],[5,"zher2k","","",null,null],[11,"clone","rgsl::cblas","",87,null],[11,"clone","","",88,null],[11,"fmt","","",88,null],[11,"partial_cmp","","",88,null],[11,"eq","","",88,null],[11,"clone","","",89,null],[11,"fmt","","",89,null],[11,"partial_cmp","","",89,null],[11,"eq","","",89,null],[11,"clone","","",90,null],[11,"fmt","","",90,null],[11,"partial_cmp","","",90,null],[11,"eq","","",90,null],[11,"clone","","",91,null],[11,"fmt","","",91,null],[11,"partial_cmp","","",91,null],[11,"eq","","",91,null],[11,"clone","","",92,null],[11,"fmt","","",92,null],[11,"partial_cmp","","",92,null],[11,"eq","","",92,null],[0,"clausen","rgsl","The Clausen function is defined by the following integral,",null,null],[5,"clausen","rgsl::clausen","This routine computes the Clausen integral Cl_2(x).",null,{"inputs":[{"name":"f64"}],"output":{"name":"f64"}}],[5,"clausen_e","","This routine computes the Clausen integral Cl_2(x).",null,null],[0,"coulomb","rgsl","",null,null],[5,"hydrogenicR_1","rgsl::coulomb","This routine computes the lowest-order normalized hydrogenic bound state radial wavefunction R_1 := 2Z \\sqrt{Z} \\exp(-Z r).",null,{"inputs":[{"name":"f64"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"hydrogenicR_1_e","","This routine computes the lowest-order normalized hydrogenic bound state radial wavefunction R_1 := 2Z \\sqrt{Z} \\exp(-Z r).",null,null],[5,"hydrogenicR","","This routine computes the n-th normalized hydrogenic bound state radial wavefunction,",null,{"inputs":[{"name":"i32"},{"name":"i32"},{"name":"f64"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"hydrogenicR_e","","This routine computes the n-th normalized hydrogenic bound state radial wavefunction,",null,null],[5,"wave_FG_e","","This function computes the Coulomb wave functions F_L(\\eta,x), G_{L-k}(\\eta,x) and their derivatives F'_L(\\eta,x), G'_{L-k}(\\eta,x) with respect to x. The parameters are restricted to L, L-k > -1/2, x > 0 and integer k. Note that L itself is not restricted to being an integer. The results are stored in the parameters F, G for the function values and Fp, Gp for the derivative values.\nIf an overflow occurs, GSL_EOVRFLW is returned and scaling exponents are stored in the modifiable parameters exp_F, exp_G.",null,null],[5,"wave_F_array","","This function computes the Coulomb wave function F_L(\\eta,x) for L = Lmin \\dots Lmin + kmax, storing the results in fc_array.\nIn the case of overflow the exponent is stored in F_exponent.",null,null],[5,"wave_FG_array","","This function computes the functions F_L(\\eta,x), G_L(\\eta,x) for L = Lmin \\dots Lmin + kmax storing the results in fc_array and gc_array.\nIn the case of overflow the exponents are stored in F_exponent and G_exponent.",null,null],[5,"wave_FGp_array","","This function computes the functions F_L(\\eta,x), G_L(\\eta,x) and their derivatives F'_L(\\eta,x), G'_L(\\eta,x) for L = Lmin \\dots Lmin + kmax storing the results in fc_array, gc_array, fcp_array and gcp_array.\nIn the case of overflow the exponents are stored in F_exponent and G_exponent.",null,null],[5,"wave_sphF_array","","This function computes the Coulomb wave function divided by the argument F_L(\\eta, x)/x for L = Lmin \\dots Lmin + kmax, storing the results in fc_array.\nIn the case of overflow the exponent is stored in F_exponent. This function reduces to spherical Bessel functions in the limit \\eta \\to 0.",null,null],[5,"CL_e","","This function computes the Coulomb wave function normalization constant C_L(\\eta) for L > -1.",null,null],[5,"CL_array","","This function computes the Coulomb wave function normalization constant C_L(\\eta) for L = Lmin \\dots Lmin + kmax, Lmin > -1.",null,null],[0,"coupling_coefficients","rgsl","The Wigner 3-j, 6-j and 9-j symbols give the coupling coefficients for combined angular momentum vectors.\nSince the arguments of the standard coupling coefficient functions are integer or half-integer, the arguments of the following functions\nare, by convention, integers equal to twice the actual spin value.",null,null],[5,"_3j","rgsl::coupling_coefficients","This routine computes the Wigner 3-j coefficient,",null,{"inputs":[{"name":"i32"},{"name":"i32"},{"name":"i32"},{"name":"i32"},{"name":"i32"},{"name":"i32"}],"output":{"name":"f64"}}],[5,"_3j_e","","This routine computes the Wigner 3-j coefficient,",null,null],[5,"_6j","","This routine computes the Wigner 6-j coefficient,",null,{"inputs":[{"name":"i32"},{"name":"i32"},{"name":"i32"},{"name":"i32"},{"name":"i32"},{"name":"i32"}],"output":{"name":"f64"}}],[5,"_6j_e","","This routine computes the Wigner 6-j coefficient,",null,null],[5,"_9j","","This routine computes the Wigner 9-j coefficient,",null,{"inputs":[{"name":"i32"},{"name":"i32"},{"name":"i32"},{"name":"i32"},{"name":"i32"},{"name":"i32"},{"name":"i32"},{"name":"i32"},{"name":"i32"}],"output":{"name":"f64"}}],[5,"_9j_e","","This routine computes the Wigner 9-j coefficient,",null,null],[0,"dawson","rgsl","The Dawson integral is defined by \\exp(-x^2) \\int_0^x dt \\exp(t^2).\nA table of Dawson’s integral can be found in Abramowitz & Stegun, Table 7.5.",null,null],[5,"dawson","rgsl::dawson","This routine computes the value of Dawson’s integral for x.",null,{"inputs":[{"name":"f64"}],"output":{"name":"f64"}}],[5,"dawson_e","","This routine computes the value of Dawson’s integral for x.",null,null],[0,"debye","rgsl","The Debye functions D_n(x) are defined by the following integral,",null,null],[5,"_1","rgsl::debye","This routine computes the first-order Debye function D_1(x) = (1/x) \\int_0^x dt (t/(e^t - 1)).",null,{"inputs":[{"name":"f64"}],"output":{"name":"f64"}}],[5,"_1_e","","This routine computes the first-order Debye function D_1(x) = (1/x) \\int_0^x dt (t/(e^t - 1)).",null,null],[5,"_2","","This routine computes the second-order Debye function D_2(x) = (2/x^2) \\int_0^x dt (t^2/(e^t - 1)).",null,{"inputs":[{"name":"f64"}],"output":{"name":"f64"}}],[5,"_2_e","","This routine computes the second-order Debye function D_2(x) = (2/x^2) \\int_0^x dt (t^2/(e^t - 1)).",null,null],[5,"_3","","This routine computes the third-order Debye function D_3(x) = (3/x^3) \\int_0^x dt (t^3/(e^t - 1)).",null,{"inputs":[{"name":"f64"}],"output":{"name":"f64"}}],[5,"_3_e","","This routine computes the third-order Debye function D_3(x) = (3/x^3) \\int_0^x dt (t^3/(e^t - 1)).",null,null],[5,"_4","","This routine computes the fourth-order Debye function D_4(x) = (4/x^4) \\int_0^x dt (t^4/(e^t - 1)).",null,{"inputs":[{"name":"f64"}],"output":{"name":"f64"}}],[5,"_4_e","","This routine computes the fourth-order Debye function D_4(x) = (4/x^4) \\int_0^x dt (t^4/(e^t - 1)).",null,null],[5,"_5","","This routine computes the fifth-order Debye function D_5(x) = (5/x^5) \\int_0^x dt (t^5/(e^t - 1)).",null,{"inputs":[{"name":"f64"}],"output":{"name":"f64"}}],[5,"_5_e","","This routine computes the fifth-order Debye function D_5(x) = (5/x^5) \\int_0^x dt (t^5/(e^t - 1)).",null,null],[5,"_6","","This routine computes the sixth-order Debye function D_6(x) = (6/x^6) \\int_0^x dt (t^6/(e^t - 1)).",null,{"inputs":[{"name":"f64"}],"output":{"name":"f64"}}],[5,"_6_e","","This routine computes the sixth-order Debye function D_6(x) = (6/x^6) \\int_0^x dt (t^6/(e^t - 1)).",null,null],[0,"dilogarithm","rgsl","",null,null],[5,"dilog","rgsl::dilogarithm","These routines compute the dilogarithm for a real argument. In Lewin’s notation this is Li_2(x), the real part of the dilogarithm of a real x.\nIt is defined by the integral representation Li_2(x) = - \\Re \\int_0^x ds \\log(1-s) / s. Note that \\Im(Li_2(x)) = 0 for x <= 1, and -\\pi\\log(x) for x > 1.",null,{"inputs":[{"name":"f64"}],"output":{"name":"f64"}}],[5,"dilog_e","","These routines compute the dilogarithm for a real argument. In Lewin’s notation this is Li_2(x), the real part of the dilogarithm of a real x.\nIt is defined by the integral representation Li_2(x) = - \\Re \\int_0^x ds \\log(1-s) / s. Note that \\Im(Li_2(x)) = 0 for x <= 1, and -\\pi\\log(x) for x > 1.",null,null],[5,"complex_dilog_e","","This function computes the full complex-valued dilogarithm for the complex argument z = r \\exp(i \\theta).\nThe real and imaginary parts of the result are returned in result_re, result_im.",null,null],[0,"eigen","rgsl","##References and Further Reading",null,null],[5,"symmv_sort","rgsl::eigen","This function simultaneously sorts the eigenvalues stored in the vector eval and the corresponding real eigenvectors stored in the columns\nof the matrix evec into ascending or descending order according to the value of the parameter sort_type",null,{"inputs":[{"name":"vectorf64"},{"name":"matrixf64"},{"name":"eigensort"}],"output":{"name":"value"}}],[5,"hermv_sort","","This function simultaneously sorts the eigenvalues stored in the vector eval and the corresponding complex eigenvectors stored in the columns\nof the matrix evec into ascending or descending order according to the value of the parameter sort_type.",null,{"inputs":[{"name":"vectorf64"},{"name":"matrixcomplexf64"},{"name":"eigensort"}],"output":{"name":"value"}}],[5,"nonsymmv_sort","","This function simultaneously sorts the eigenvalues stored in the vector eval and the corresponding complex eigenvectors stored in the columns\nof the matrix evec into ascending or descending order according to the value of the parameter sort_type. Only EigenSort::AbsAsc and\nEigenSort::AbsDesc are supported due to the eigenvalues being complex.",null,{"inputs":[{"name":"vectorcomplexf64"},{"name":"matrixcomplexf64"},{"name":"eigensort"}],"output":{"name":"value"}}],[5,"gensymmv_sort","","This function simultaneously sorts the eigenvalues stored in the vector eval and the corresponding real eigenvectors stored in the columns\nof the matrix evec into ascending or descending order according to the value of the parameter sort_type.",null,{"inputs":[{"name":"vectorf64"},{"name":"matrixf64"},{"name":"eigensort"}],"output":{"name":"value"}}],[5,"genhermv_sort","","This function simultaneously sorts the eigenvalues stored in the vector eval and the corresponding complex eigenvectors stored in the\ncolumns of the matrix evec into ascending or descending order according to the value of the parameter sort_type.",null,{"inputs":[{"name":"vectorf64"},{"name":"matrixcomplexf64"},{"name":"eigensort"}],"output":{"name":"value"}}],[5,"genv_sort","","This function simultaneously sorts the eigenvalues stored in the vectors (alpha, beta) and the corresponding complex eigenvectors stored\nin the columns of the matrix evec into ascending or descending order according to the value of the parameter sort_type. Only\nEigenSort::AbsAsc and EigenSort::AbsDesc are supported due to the eigenvalues being complex.",null,{"inputs":[{"name":"vectorcomplexf64"},{"name":"vectorf64"},{"name":"matrixcomplexf64"},{"name":"eigensort"}],"output":{"name":"value"}}],[0,"elementary","rgsl","",null,null],[8,"Elementary","rgsl::elementary","",null,null],[10,"log1p","","This function computes the value of __log(1+x)__ in a way that is accurate for small x. It provides an alternative to the BSD math function log1p(x).",93,null],[10,"expm1","","This function computes the value of __exp(x)-1__ in a way that is accurate for small x. It provides an alternative to the BSD math function expm1(x).",93,null],[10,"hypot","","This function computes the value of __sqrt{x^2 + y^2}__ in a way that avoids overflow. It provides an alternative to the BSD math function hypot(x,y).",93,null],[10,"hypot3","","This function computes the value of __sqrt{x^2 + y^2 + z^2}__ in a way that avoids overflow.",93,null],[10,"acosh","","This function computes the value of __arccosh(x)__. It provides an alternative to the standard math function acosh(x).",93,null],[10,"asinh","","This function computes the value of __arcsinh(x)__. It provides an alternative to the standard math function asinh(x).",93,null],[10,"atanh","","This function computes the value of __arctanh(x)__. It provides an alternative to the standard math function atanh(x).",93,null],[10,"ldexp","","This function computes the value of __x * 2^e__. It provides an alternative to the standard math function ldexp(x,e).",93,null],[10,"frexp","","This function splits the number x into its normalized fraction f and exponent e, such that x = f * 2^e and 0.5 <= f < 1. The function returns f and stores the exponent in e.\nIf x is zero, both f and e are set to zero. This function provides an alternative to the standard math function frexp(x, e).",93,null],[0,"elementary_operations","rgsl","",null,null],[5,"multiply_e","rgsl::elementary_operations","This function multiplies x and y storing the product and its associated error in result.",null,null],[5,"multiply_err_e","","This function multiplies x and y with associated absolute errors dx and dy.\nThe product xy +/- xy \\sqrt((dx/x)^2 +(dy/y)^2) is stored in result.",null,null],[0,"elliptic","rgsl","Further information about the elliptic integrals can be found in Abramowitz & Stegun, Chapter 17.",null,null],[0,"legendre","rgsl::elliptic","The Legendre forms of elliptic integrals F(\\phi,k), E(\\phi,k) and \\Pi(\\phi,k,n) are defined by,",null,null],[0,"complete","rgsl::elliptic::legendre","",null,null],[5,"ellint_Kcomp","rgsl::elliptic::legendre::complete","This routine computes the complete elliptic integral K(k) to the accuracy specified by the mode variable mode.\nNote that Abramowitz & Stegun define this function in terms of the parameter m = k^2.",null,{"inputs":[{"name":"f64"},{"name":"mode"}],"output":{"name":"f64"}}],[5,"ellint_Kcomp_e","","This routine computes the complete elliptic integral K(k) to the accuracy specified by the mode variable mode.\nNote that Abramowitz & Stegun define this function in terms of the parameter m = k^2.",null,null],[5,"ellint_Ecomp","","This routine computes the complete elliptic integral E(k) to the accuracy specified by the mode variable mode.\nNote that Abramowitz & Stegun define this function in terms of the parameter m = k^2.",null,{"inputs":[{"name":"f64"},{"name":"mode"}],"output":{"name":"f64"}}],[5,"ellint_Ecomp_e","","This routine computes the complete elliptic integral E(k) to the accuracy specified by the mode variable mode.\nNote that Abramowitz & Stegun define this function in terms of the parameter m = k^2.",null,null],[5,"ellint_Pcomp","","This routine computes the complete elliptic integral \\Pi(k,n) to the accuracy specified by the mode variable mode.\nNote that Abramowitz & Stegun define this function in terms of the parameters m = k^2 and \\sin^2(\\alpha) = k^2, with the change of sign n \\to -n.",null,{"inputs":[{"name":"f64"},{"name":"f64"},{"name":"mode"}],"output":{"name":"f64"}}],[5,"ellint_Pcomp_e","","This routine computes the complete elliptic integral \\Pi(k,n) to the accuracy specified by the mode variable mode.\nNote that Abramowitz & Stegun define this function in terms of the parameters m = k^2 and \\sin^2(\\alpha) = k^2, with the change of sign n \\to -n.",null,null],[0,"incomplete","rgsl::elliptic::legendre","",null,null],[5,"ellint_F","rgsl::elliptic::legendre::incomplete","This routine computes the incomplete elliptic integral F(\\phi,k) to the accuracy specified by the mode variable mode.\nNote that Abramowitz & Stegun define this function in terms of the parameter m = k^2.",null,{"inputs":[{"name":"f64"},{"name":"f64"},{"name":"mode"}],"output":{"name":"f64"}}],[5,"ellint_F_e","","This routine computes the incomplete elliptic integral F(\\phi,k) to the accuracy specified by the mode variable mode.\nNote that Abramowitz & Stegun define this function in terms of the parameter m = k^2.",null,null],[5,"ellint_E","","This routine computes the incomplete elliptic integral E(\\phi,k) to the accuracy specified by the mode variable mode.\nNote that Abramowitz & Stegun define this function in terms of the parameter m = k^2.",null,{"inputs":[{"name":"f64"},{"name":"f64"},{"name":"mode"}],"output":{"name":"f64"}}],[5,"ellint_E_e","","This routine computes the incomplete elliptic integral E(\\phi,k) to the accuracy specified by the mode variable mode.\nNote that Abramowitz & Stegun define this function in terms of the parameter m = k^2.",null,null],[5,"ellint_P","","This routine computes the incomplete elliptic integral \\Pi(\\phi,k,n) to the accuracy specified by the mode variable mode.\nNote that Abramowitz & Stegun define this function in terms of the parameters m = k^2 and \\sin^2(\\alpha) = k^2, with the change of sign n \\to -n.",null,{"inputs":[{"name":"f64"},{"name":"f64"},{"name":"f64"},{"name":"mode"}],"output":{"name":"f64"}}],[5,"ellint_P_e","","This routine computes the incomplete elliptic integral \\Pi(\\phi,k,n) to the accuracy specified by the mode variable mode.\nNote that Abramowitz & Stegun define this function in terms of the parameters m = k^2 and \\sin^2(\\alpha) = k^2, with the change of sign n \\to -n.",null,null],[5,"ellint_D","","This routine computes the incomplete elliptic integral D(\\phi,k) which is defined through the Carlson form RD(x,y,z) by the following relation,",null,{"inputs":[{"name":"f64"},{"name":"f64"},{"name":"f64"},{"name":"mode"}],"output":{"name":"f64"}}],[5,"ellint_D_e","","This routine computes the incomplete elliptic integral D(\\phi,k) which is defined through the Carlson form RD(x,y,z) by the following relation,",null,null],[0,"carlson","rgsl::elliptic","The Carlson symmetric forms of elliptical integrals RC(x,y), RD(x,y,z), RF(x,y,z) and RJ(x,y,z,p) are defined by,",null,null],[5,"ellint_RC","rgsl::elliptic::carlson","This routine computes the incomplete elliptic integral RC(x,y) to the accuracy specified by the mode variable mode.",null,{"inputs":[{"name":"f64"},{"name":"f64"},{"name":"mode"}],"output":{"name":"f64"}}],[5,"ellint_RC_e","","This routine computes the incomplete elliptic integral RC(x,y) to the accuracy specified by the mode variable mode.",null,null],[5,"ellint_RD","","This routine computes the incomplete elliptic integral RD(x,y,z) to the accuracy specified by the mode variable mode.",null,{"inputs":[{"name":"f64"},{"name":"f64"},{"name":"f64"},{"name":"mode"}],"output":{"name":"f64"}}],[5,"ellint_RD_e","","This routine computes the incomplete elliptic integral RD(x,y,z) to the accuracy specified by the mode variable mode.",null,null],[5,"ellint_RF","","This routine computes the incomplete elliptic integral RF(x,y,z) to the accuracy specified by the mode variable mode.",null,{"inputs":[{"name":"f64"},{"name":"f64"},{"name":"f64"},{"name":"mode"}],"output":{"name":"f64"}}],[5,"ellint_RF_e","","This routine computes the incomplete elliptic integral RF(x,y,z) to the accuracy specified by the mode variable mode.",null,null],[5,"ellint_RJ","","This routine computes the incomplete elliptic integral RJ(x,y,z,p) to the accuracy specified by the mode variable mode.",null,{"inputs":[{"name":"f64"},{"name":"f64"},{"name":"f64"},{"name":"f64"},{"name":"mode"}],"output":{"name":"f64"}}],[5,"ellint_RJ_e","","This routine computes the incomplete elliptic integral RJ(x,y,z,p) to the accuracy specified by the mode variable mode.",null,null],[0,"error","rgsl","The error function is described in Abramowitz & Stegun, Chapter 7.",null,null],[5,"erf","rgsl::error","This routine computes the error function erf(x), where erf(x) = (2/\\sqrt(\\pi)) \\int_0^x dt \\exp(-t^2).",null,{"inputs":[{"name":"f64"}],"output":{"name":"f64"}}],[5,"erf_e","","This routine computes the error function erf(x), where erf(x) = (2/\\sqrt(\\pi)) \\int_0^x dt \\exp(-t^2).",null,null],[5,"erfc","","This routine computes the complementary error function erfc(x) = 1 - erf(x) = (2/\\sqrt(\\pi)) \\int_x^\\infty \\exp(-t^2).",null,{"inputs":[{"name":"f64"}],"output":{"name":"f64"}}],[5,"erfc_e","","This routine computes the complementary error function erfc(x) = 1 - erf(x) = (2/\\sqrt(\\pi)) \\int_x^\\infty \\exp(-t^2).",null,null],[5,"log_erfc","","This routine computes the logarithm of the complementary error function \\log(\\erfc(x)).",null,{"inputs":[{"name":"f64"}],"output":{"name":"f64"}}],[5,"log_erfc_e","","This routine computes the logarithm of the complementary error function \\log(\\erfc(x)).",null,null],[5,"erf_Z","","This routine computes the Gaussian probability density function Z(x) = (1/\\sqrt{2\\pi}) \\exp(-x^2/2).",null,{"inputs":[{"name":"f64"}],"output":{"name":"f64"}}],[5,"erf_Z_e","","This routine computes the Gaussian probability density function Z(x) = (1/\\sqrt{2\\pi}) \\exp(-x^2/2).",null,null],[5,"erf_Q","","This routine computes the upper tail of the Gaussian probability function Q(x) = (1/\\sqrt{2\\pi}) \\int_x^\\infty dt \\exp(-t^2/2).",null,{"inputs":[{"name":"f64"}],"output":{"name":"f64"}}],[5,"erf_Q_e","","This routine computes the upper tail of the Gaussian probability function Q(x) = (1/\\sqrt{2\\pi}) \\int_x^\\infty dt \\exp(-t^2/2).",null,null],[5,"hazard","","This routine computes the hazard function for the normal distribution.",null,{"inputs":[{"name":"f64"}],"output":{"name":"f64"}}],[5,"hazard_e","","This routine computes the hazard function for the normal distribution.",null,null],[5,"str_error","","",null,{"inputs":[{"name":"value"}],"output":{"name":"str"}}],[0,"exponential","rgsl","",null,null],[5,"exp","rgsl::exponential","This routine provides an exponential function \\exp(x) using GSL semantics and error checking.",null,{"inputs":[{"name":"f64"}],"output":{"name":"f64"}}],[5,"exp_e","","This routine provides an exponential function \\exp(x) using GSL semantics and error checking.",null,null],[5,"exp_e10_e","","This function computes the exponential \\exp(x) using the gsl_sf_result_e10 type to return a result with extended range.\nThis function may be useful if the value of \\exp(x) would overflow the numeric range of double.",null,null],[5,"exp_mult","","This routine exponentiates x and multiply by the factor y to return the product y \\exp(x).",null,{"inputs":[{"name":"f64"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"exp_mult_e","","This routine exponentiates x and multiply by the factor y to return the product y \\exp(x).",null,null],[5,"exp_mult_e10_e","","This function computes the exponential \\exp(x) using the gsl_sf_result_e10 type to return a result with extended range.\nThis function may be useful if the value of \\exp(x) would overflow the numeric range of double.",null,null],[5,"expm1","","This routine computes the quantity \\exp(x)-1 using an algorithm that is accurate for small x.",null,{"inputs":[{"name":"f64"}],"output":{"name":"f64"}}],[5,"expm1_e","","This routine computes the quantity \\exp(x)-1 using an algorithm that is accurate for small x.",null,null],[5,"exprel","","This routine computes the quantity (\\exp(x)-1)/x using an algorithm that is accurate for small x.\nFor small x the algorithm is based on the expansion (\\exp(x)-1)/x = 1 + x/2 + x^2/(2*3) + x^3/(2*3*4) + \\dots.",null,{"inputs":[{"name":"f64"}],"output":{"name":"f64"}}],[5,"exprel_e","","This routine computes the quantity (\\exp(x)-1)/x using an algorithm that is accurate for small x.\nFor small x the algorithm is based on the expansion (\\exp(x)-1)/x = 1 + x/2 + x^2/(2*3) + x^3/(2*3*4) + \\dots.",null,null],[5,"exprel_2","","This routine computes the quantity 2(\\exp(x)-1-x)/x^2 using an algorithm that is accurate for small x.\nFor small x the algorithm is based on the expansion 2(\\exp(x)-1-x)/x^2 = 1 + x/3 + x^2/(3*4) + x^3/(3*4*5) + \\dots.",null,{"inputs":[{"name":"f64"}],"output":{"name":"f64"}}],[5,"exprel_2_e","","This routine computes the quantity 2(\\exp(x)-1-x)/x^2 using an algorithm that is accurate for small x.\nFor small x the algorithm is based on the expansion 2(\\exp(x)-1-x)/x^2 = 1 + x/3 + x^2/(3*4) + x^3/(3*4*5) + \\dots.",null,null],[5,"exprel_n","","This routine computes the N-relative exponential, which is the n-th generalization of the functions gsl_sf_exprel and gsl_sf_exprel_2.\nThe N-relative exponential is given by:",null,{"inputs":[{"name":"i32"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"exprel_n_e","","This routine computes the N-relative exponential, which is the n-th generalization of the functions gsl_sf_exprel and gsl_sf_exprel_2.\nThe N-relative exponential is given by:",null,null],[5,"exp_err_e","","This function exponentiates x with an associated absolute error dx.",null,null],[5,"exp_err_e10_e","","This function exponentiates a quantity x with an associated absolute error dx using the ::types::ResultE10 type to return a result with extended range.",null,null],[5,"exp_mult_err_e","","This routine computes the product y \\exp(x) for the quantities x, y with associated absolute errors dx, dy.",null,null],[5,"exp_mult_err_e10_e","","This routine computes the product y \\exp(x) for the quantities x, y with associated absolute errors dx, dy using the gsl_sf_result_e10 type to return a result with extended range.",null,null],[0,"exponential_integrals","rgsl","",null,null],[5,"E1","rgsl::exponential_integrals","This routine computes the exponential integral E_1(x),",null,{"inputs":[{"name":"f64"}],"output":{"name":"f64"}}],[5,"E1_e","","This routine computes the exponential integral E_1(x),",null,null],[5,"E2","","This routine computes the second-order exponential integral E_2(x),",null,{"inputs":[{"name":"f64"}],"output":{"name":"f64"}}],[5,"E2_e","","This routine computes the second-order exponential integral E_2(x),",null,null],[5,"En","","This routine computes the exponential integral E_n(x) of order n,",null,{"inputs":[{"name":"i32"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"En_e","","This routine computes the exponential integral E_n(x) of order n,",null,null],[5,"Ei","","This routine computes the exponential integral Ei(x),",null,{"inputs":[{"name":"f64"}],"output":{"name":"f64"}}],[5,"Ei_e","","This routine computes the exponential integral Ei(x),",null,null],[5,"Shi","","This routine computes the integral Shi(x) = \\int_0^x dt \\sinh(t)/t.",null,{"inputs":[{"name":"f64"}],"output":{"name":"f64"}}],[5,"Shi_e","","This routine computes the integral Shi(x) = \\int_0^x dt \\sinh(t)/t.",null,null],[5,"Chi","","This routine computes the integral Chi(x) := \\Re[ \\gamma_E + \\log(x) + \\int_0^x dt (\\cosh(t)-1)/t] , where \\gamma_E is the Euler constant (available as the macro M_EULER).",null,{"inputs":[{"name":"f64"}],"output":{"name":"f64"}}],[5,"Chi_e","","This routine computes the integral Chi(x) := \\Re[ \\gamma_E + \\log(x) + \\int_0^x dt (\\cosh(t)-1)/t] , where \\gamma_E is the Euler constant (available as the macro M_EULER).",null,null],[5,"_3","","This routine computes the third-order exponential integral Ei_3(x) = \\int_0^xdt \\exp(-t^3) for x >= 0.",null,{"inputs":[{"name":"f64"}],"output":{"name":"f64"}}],[5,"_3_e","","This routine computes the third-order exponential integral Ei_3(x) = \\int_0^xdt \\exp(-t^3) for x >= 0.",null,null],[5,"Si","","This routine computes the Sine integral Si(x) = \\int_0^x dt \\sin(t)/t.",null,{"inputs":[{"name":"f64"}],"output":{"name":"f64"}}],[5,"Si_e","","This routine computes the Sine integral Si(x) = \\int_0^x dt \\sin(t)/t.",null,null],[5,"Ci","","This routine computes the Cosine integral Ci(x) = -\\int_x^\\infty dt \\cos(t)/t for x > 0.",null,{"inputs":[{"name":"f64"}],"output":{"name":"f64"}}],[5,"Ci_e","","This routine computes the Cosine integral Ci(x) = -\\int_x^\\infty dt \\cos(t)/t for x > 0.",null,null],[5,"atanint","","This routine computes the Arctangent integral, which is defined as AtanInt(x) = \\int_0^x dt \\arctan(t)/t.",null,{"inputs":[{"name":"f64"}],"output":{"name":"f64"}}],[5,"atanint_e","","This routine computes the Arctangent integral, which is defined as AtanInt(x) = \\int_0^x dt \\arctan(t)/t.",null,null],[0,"fermi_dirac","rgsl","",null,null],[0,"complete_integrals","rgsl::fermi_dirac","The complete Fermi-Dirac integral F_j(x) is given by,",null,null],[5,"fermi_dirac_m1","rgsl::fermi_dirac::complete_integrals","This routine computes the complete Fermi-Dirac integral with an index of -1.\nThis integral is given by F_{-1}(x) = e^x / (1 + e^x).",null,{"inputs":[{"name":"f64"}],"output":{"name":"f64"}}],[5,"fermi_dirac_m1_e","","This routine computes the complete Fermi-Dirac integral with an index of -1.\nThis integral is given by F_{-1}(x) = e^x / (1 + e^x).",null,null],[5,"fermi_dirac_0","","This routine computes the complete Fermi-Dirac integral with an index of 0.\nThis integral is given by F_0(x) = \\ln(1 + e^x).",null,{"inputs":[{"name":"f64"}],"output":{"name":"f64"}}],[5,"fermi_dirac_0_e","","This routine computes the complete Fermi-Dirac integral with an index of 0.\nThis integral is given by F_0(x) = \\ln(1 + e^x).",null,null],[5,"fermi_dirac_1","","This routine computes the complete Fermi-Dirac integral with an index of 1, F_1(x) = \\int_0^\\infty dt (t /(\\exp(t-x)+1)).",null,{"inputs":[{"name":"f64"}],"output":{"name":"f64"}}],[5,"fermi_dirac_1_e","","This routine computes the complete Fermi-Dirac integral with an index of 1, F_1(x) = \\int_0^\\infty dt (t /(\\exp(t-x)+1)).",null,null],[5,"fermi_dirac_2","","This routine computes the complete Fermi-Dirac integral with an index of 2, F_2(x) = (1/2) \\int_0^\\infty dt (t^2 /(\\exp(t-x)+1)).",null,{"inputs":[{"name":"f64"}],"output":{"name":"f64"}}],[5,"fermi_dirac_2_e","","This routine computes the complete Fermi-Dirac integral with an index of 2, F_2(x) = (1/2) \\int_0^\\infty dt (t^2 /(\\exp(t-x)+1)).",null,null],[5,"fermi_dirac_int","","This routine computes the complete Fermi-Dirac integral with an integer index of j, F_j(x) = (1/\\Gamma(j+1)) \\int_0^\\infty dt (t^j /(\\exp(t-x)+1)).",null,{"inputs":[{"name":"i32"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"fermi_dirac_int_e","","This routine computes the complete Fermi-Dirac integral with an integer index of j, F_j(x) = (1/\\Gamma(j+1)) \\int_0^\\infty dt (t^j /(\\exp(t-x)+1)).",null,null],[5,"fermi_dirac_mhalf","","This routine computes the complete Fermi-Dirac integral F_{-1/2}(x).",null,{"inputs":[{"name":"f64"}],"output":{"name":"f64"}}],[5,"fermi_dirac_mhalf_e","","This routine computes the complete Fermi-Dirac integral F_{-1/2}(x).",null,null],[5,"fermi_dirac_half","","This routine computes the complete Fermi-Dirac integral F_{1/2}(x).",null,{"inputs":[{"name":"f64"}],"output":{"name":"f64"}}],[5,"fermi_dirac_half_e","","This routine computes the complete Fermi-Dirac integral F_{1/2}(x).",null,null],[5,"fermi_dirac_3half","","This routine computes the complete Fermi-Dirac integral F_{3/2}(x).",null,{"inputs":[{"name":"f64"}],"output":{"name":"f64"}}],[5,"fermi_dirac_3half_e","","This routine computes the complete Fermi-Dirac integral F_{3/2}(x).",null,null],[0,"incomplete_integrals","rgsl::fermi_dirac","The incomplete Fermi-Dirac integral F_j(x,b) is given by,",null,null],[5,"fermi_dirac_inc_0","rgsl::fermi_dirac::incomplete_integrals","This routine computes the incomplete Fermi-Dirac integral with an index of zero, F_0(x,b) = \\ln(1 + e^{b-x}) - (b-x).",null,{"inputs":[{"name":"f64"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"fermi_dirac_inc_0_e","","This routine computes the incomplete Fermi-Dirac integral with an index of zero, F_0(x,b) = \\ln(1 + e^{b-x}) - (b-x).",null,null],[0,"fft","rgsl","#Fast Fourier Transforms (FFTs)",null,null],[0,"radix2","rgsl::fft","These functions compute forward, backward and inverse FFTs of length n with stride stride, on the packed complex array data using an in-place radix-2\ndecimation-in-time algorithm. The length of the transform is restricted to powers of two. For the transform version of the function\nthe sign argument can be either forward (-1) or backward (+1).",null,null],[5,"forward","rgsl::fft::radix2","",null,null],[5,"transform","","",null,null],[5,"backward","","",null,null],[5,"inverse","","",null,null],[5,"dif_forward","","This is decimation-in-frequency version of the radix-2 FFT function.",null,null],[5,"dif_transform","","This is decimation-in-frequency version of the radix-2 FFT function.",null,null],[5,"dif_backward","","This is decimation-in-frequency version of the radix-2 FFT function.",null,null],[5,"dif_inverse","","This is decimation-in-frequency version of the radix-2 FFT function.",null,null],[0,"mixed_radix","rgsl::fft","These functions compute forward, backward and inverse FFTs of length n with stride stride, on the packed complex array data, using a\nmixed radix decimation-in-frequency algorithm. There is no restriction on the length n. Efficient modules are provided for subtransforms\nof length 2, 3, 4, 5, 6 and 7. Any remaining factors are computed with a slow, O(n^2), general-n module. The caller must supply a\nwavetable containing the trigonometric lookup tables and a workspace work. For the transform version of the function the sign argument\ncan be either forward (-1) or backward (+1).",null,null],[5,"forward","rgsl::fft::mixed_radix","",null,null],[5,"transform","","",null,null],[5,"backward","","",null,null],[5,"inverse","","",null,null],[0,"real_radix2","rgsl::fft","This section describes radix-2 FFT algorithms for real data. They use the Cooley-Tukey algorithm to compute in-place FFTs for lengths which\nare a power of 2.",null,null],[5,"transform","rgsl::fft::real_radix2","This function computes an in-place radix-2 FFT of length n and stride stride on the real array data. The output is a half-complex sequence,\nwhich is stored in-place. The arrangement of the half-complex terms uses the following scheme: for k < n/2 the real part of the k-th term\nis stored in location k, and the corresponding imaginary part is stored in location n-k. Terms with k > n/2 can be reconstructed using the\nsymmetry z_k = z^*_{n-k}. The terms for k=0 and k=n/2 are both purely real, and count as a special case. Their real parts are stored in\nlocations 0 and n/2 respectively, while their imaginary parts which are zero are not stored.",null,null],[5,"inverse","","This function computes the inverse or backwards in-place radix-2 FFT of length n and stride stride on the half-complex sequence data\nstored according the output scheme used by gsl_fft_real_radix2. The result is a real array stored in natural order.",null,null],[5,"backward","","This function computes the inverse or backwards in-place radix-2 FFT of length n and stride stride on the half-complex sequence data\nstored according the output scheme used by gsl_fft_real_radix2. The result is a real array stored in natural order.",null,null],[5,"unpack","","This function converts halfcomplex_coefficient, an array of half-complex coefficients as returned by gsl_fft_real_radix2_transform,\ninto an ordinary complex array, complex_coefficient. It fills in the complex array using the symmetry z_k = z_{n-k}^* to reconstruct\nthe redundant elements. The algorithm for the conversion is,",null,null],[0,"fit","rgsl","Linear Regression",null,null],[5,"linear","rgsl::fit","This function computes the best-fit linear regression coefficients (c0,c1) of the model Y = c_0 + c_1 X for the dataset (x, y), two vectors of length n with strides xstride and ystride.\nThe errors on y are assumed unknown so the variance-covariance matrix for the parameters (c0, c1) is estimated from the scatter of the points around the best-fit line and returned via the parameters (cov00, cov01, cov11).\nThe sum of squares of the residuals from the best-fit line is returned in sumsq. Note: the correlation coefficient of the data can be computed using gsl_stats_correlation (see [`Correlation`](http://www.gnu.org/software/gsl/manual/html_node/Correlation.html#Correlation)), it does not depend on the fit.",null,null],[5,"wlinear","","This function computes the best-fit linear regression coefficients (c0,c1) of the model Y = c_0 + c_1 X for the weighted dataset (x, y), two vectors of length n with strides xstride and ystride.\nThe vector w, of length n and stride wstride, specifies the weight of each datapoint.\nThe weight is the reciprocal of the variance for each datapoint in y.",null,null],[5,"linear_est","","This function uses the best-fit linear regression coefficients c0, c1 and their covariance cov00, cov01, cov11 to compute the fitted function y and its standard deviation y_err for the model Y = c_0 + c_1 X at the point x.",null,{"inputs":[{"name":"f64"},{"name":"f64"},{"name":"f64"},{"name":"f64"},{"name":"f64"},{"name":"f64"},{"name":"f64"},{"name":"f64"}],"output":{"name":"value"}}],[5,"mul","","This function computes the best-fit linear regression coefficient c1 of the model Y = c_1 X for the datasets (x, y), two vectors of length n with strides xstride and ystride.\nThe errors on y are assumed unknown so the variance of the parameter c1 is estimated from the scatter of the points around the best-fit line and returned via the parameter cov11.\nThe sum of squares of the residuals from the best-fit line is returned in sumsq.",null,null],[5,"wmul","","This function computes the best-fit linear regression coefficient c1 of the model Y = c_1 X for the weighted datasets (x, y), two vectors of length n with strides xstride and ystride.\nThe vector w, of length n and stride wstride, specifies the weight of each datapoint.\nThe weight is the reciprocal of the variance for each datapoint in y.",null,null],[5,"mul_est","","This function uses the best-fit linear regression coefficient c1 and its covariance cov11 to compute the fitted function y and its standard deviation y_err for the model Y = c_1 X at the point x.",null,{"inputs":[{"name":"f64"},{"name":"f64"},{"name":"f64"},{"name":"f64"},{"name":"f64"}],"output":{"name":"value"}}],[0,"gamma_beta","rgsl","This following routines compute the gamma and beta functions in their full and incomplete forms, as well as various kinds of factorials.",null,null],[0,"gamma","rgsl::gamma_beta","The Gamma function is defined by the following integral,",null,null],[5,"gamma","rgsl::gamma_beta::gamma","These routines compute the Gamma function \\Gamma(x), subject to x not being a negative integer or zero. The function is computed using the real Lanczos method.\nThe maximum value of x such that \\Gamma(x) is not considered an overflow is given by the macro GSL_SF_GAMMA_XMAX and is 171.0.",null,{"inputs":[{"name":"f64"}],"output":{"name":"f64"}}],[5,"gamma_e","","This routine provides an exponential function \\exp(x) using GSL semantics and error checking.",null,null],[5,"lngamma","","This routine computes the Gamma function \\Gamma(x), subject to x not being a negative integer or zero.\nThe function is computed using the real Lanczos method. The maximum value of x such that \\Gamma(x) is not considered an overflow is given by the macro GSL_SF_GAMMA_XMAX and is 171.0.",null,{"inputs":[{"name":"f64"}],"output":{"name":"f64"}}],[5,"lngamma_e","","This routine computes the Gamma function \\Gamma(x), subject to x not being a negative integer or zero.\nThe function is computed using the real Lanczos method. The maximum value of x such that \\Gamma(x) is not considered an overflow is given by the macro GSL_SF_GAMMA_XMAX and is 171.0.",null,null],[5,"lngamma_sgn_e","","This routine computes the sign of the gamma function and the logarithm of its magnitude, subject to x not being a negative integer or zero.\nThe function is computed using the real Lanczos method.\nThe value of the gamma function and its error can be reconstructed using the relation \\Gamma(x) = sgn * \\exp(result\\_lg), taking into account the two components of result_lg.",null,null],[5,"gammastar","","This routine computes the regulated Gamma Function \\Gamma^*(x) for x > 0. The regulated gamma function is given by,",null,{"inputs":[{"name":"f64"}],"output":{"name":"f64"}}],[5,"gammastar_e","","This routine computes the regulated Gamma Function \\Gamma^*(x) for x > 0. The regulated gamma function is given by,",null,null],[5,"gammainv","","This routine computes the reciprocal of the gamma function, 1/\\Gamma(x) using the real Lanczos method.",null,{"inputs":[{"name":"f64"}],"output":{"name":"f64"}}],[5,"gammainv_e","","This routine computes the reciprocal of the gamma function, 1/\\Gamma(x) using the real Lanczos method.",null,null],[5,"lngamma_complex_e","","This routine computes \\log(\\Gamma(z)) for complex z=z_r+i z_i and z not a negative integer or zero, using the complex Lanczos method.\nThe returned parameters are lnr = \\log|\\Gamma(z)| and arg = \\arg(\\Gamma(z)) in (-\\pi,\\pi]. Note that the phase part (arg) is not well-determined when |z| is very large, due to inevitable roundoff in restricting to (-\\pi,\\pi].\nThis will result in a GSL_ELOSS error when it occurs. The absolute value part (lnr), however, never suffers from loss of precision.",null,null],[0,"factorials","rgsl::gamma_beta","Although factorials can be computed from the Gamma function, using the relation n! = \\Gamma(n+1) for non-negative integer n, it is usually more\nefficient to call the functions in this section, particularly for small values of n, whose factorial values are maintained in hardcoded tables.",null,null],[5,"fact","rgsl::gamma_beta::factorials","This routine computes the factorial n!. The factorial is related to the Gamma function by n! = \\Gamma(n+1).\nThe maximum value of n such that n! is not considered an overflow is given by the macro SF_FACT_NMAX and is 170.",null,{"inputs":[{"name":"u32"}],"output":{"name":"f64"}}],[5,"fact_e","","This routine computes the factorial n!. The factorial is related to the Gamma function by n! = \\Gamma(n+1).\nThe maximum value of n such that n! is not considered an overflow is given by the macro SF_FACT_NMAX and is 170.",null,null],[5,"doublefact","","This routine computes the double factorial n!! = n(n-2)(n-4) \\dots.\nThe maximum value of n such that n!! is not considered an overflow is given by the macro SF_DOUBLEFACT_NMAX and is 297.",null,{"inputs":[{"name":"u32"}],"output":{"name":"f64"}}],[5,"doublefact_e","","This routine computes the double factorial n!! = n(n-2)(n-4) \\dots.\nThe maximum value of n such that n!! is not considered an overflow is given by the macro SF_DOUBLEFACT_NMAX and is 297.",null,null],[5,"lnfact","","This routine computes the logarithm of the factorial of n, \\log(n!).\nThe algorithm is faster than computing \\ln(\\Gamma(n+1)) via gsl_sf_lngamma for n < 170, but defers for larger n.",null,{"inputs":[{"name":"u32"}],"output":{"name":"f64"}}],[5,"lnfact_e","","This routine computes the logarithm of the factorial of n, \\log(n!).\nThe algorithm is faster than computing \\ln(\\Gamma(n+1)) via gsl_sf_lngamma for n < 170, but defers for larger n.",null,null],[5,"lndoublefact","","This routine computes the logarithm of the double factorial of n, \\log(n!!).",null,{"inputs":[{"name":"u32"}],"output":{"name":"f64"}}],[5,"lndoublefact_e","","This routine computes the logarithm of the double factorial of n, \\log(n!!).",null,null],[5,"choose","","This routine computes the combinatorial factor n choose m = n!/(m!(n-m)!)",null,{"inputs":[{"name":"u32"},{"name":"u32"}],"output":{"name":"f64"}}],[5,"choose_e","","This routine computes the combinatorial factor n choose m = n!/(m!(n-m)!)",null,null],[5,"lnchoose","","This routine computes the logarithm of n choose m. This is equivalent to the sum \\log(n!) - \\log(m!) - \\log((n-m)!).",null,{"inputs":[{"name":"u32"},{"name":"u32"}],"output":{"name":"f64"}}],[5,"lnchoose_e","","This routine computes the logarithm of n choose m. This is equivalent to the sum \\log(n!) - \\log(m!) - \\log((n-m)!).",null,null],[5,"taylorcoeff","","This routine computes the Taylor coefficient x^n / n! for x >= 0, n >= 0.",null,{"inputs":[{"name":"i32"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"taylorcoeff_e","","This routine computes the Taylor coefficient x^n / n! for x >= 0, n >= 0.",null,null],[0,"pochhammer_symbol","rgsl::gamma_beta","",null,null],[5,"poch","rgsl::gamma_beta::pochhammer_symbol","This routine computes the Pochhammer symbol (a)_x = \\Gamma(a + x)/\\Gamma(a).\nThe Pochhammer symbol is also known as the Apell symbol and sometimes written as (a,x).\nWhen a and a+x are negative integers or zero, the limiting value of the ratio is returned.",null,{"inputs":[{"name":"f64"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"poch_e","","This routine computes the Pochhammer symbol (a)_x = \\Gamma(a + x)/\\Gamma(a).\nThe Pochhammer symbol is also known as the Apell symbol and sometimes written as (a,x).\nWhen a and a+x are negative integers or zero, the limiting value of the ratio is returned.",null,null],[5,"lnpoch","","This routine computes the logarithm of the Pochhammer symbol, \\log((a)_x) = \\log(\\Gamma(a + x)/\\Gamma(a)).",null,{"inputs":[{"name":"f64"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"lnpoch_e","","This routine computes the logarithm of the Pochhammer symbol, \\log((a)_x) = \\log(\\Gamma(a + x)/\\Gamma(a)).",null,null],[5,"lnpoch_sgn_e","","These routines compute the sign of the Pochhammer symbol and the logarithm of its magnitude.\nThe computed parameters are result = \\log(|(a)_x|) with a corresponding error term, and sgn = \\sgn((a)_x) where (a)_x = \\Gamma(a + x)/\\Gamma(a).",null,null],[5,"pochrel","","This routine computes the relative Pochhammer symbol ((a)_x - 1)/x where (a)_x = \\Gamma(a + x)/\\Gamma(a).",null,{"inputs":[{"name":"f64"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"pochrel_e","","This routine computes the relative Pochhammer symbol ((a)_x - 1)/x where (a)_x = \\Gamma(a + x)/\\Gamma(a).",null,null],[0,"beta","rgsl::gamma_beta","",null,null],[5,"beta","rgsl::gamma_beta::beta","This routine computes the Beta Function, B(a,b) = \\Gamma(a)\\Gamma(b)/\\Gamma(a+b) subject to a and b not being negative integers.",null,{"inputs":[{"name":"f64"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"beta_e","","This routine computes the Beta Function, B(a,b) = \\Gamma(a)\\Gamma(b)/\\Gamma(a+b) subject to a and b not being negative integers.",null,null],[5,"lnbeta","","This routine computes the logarithm of the Beta Function, \\log(B(a,b)) subject to a and b not being negative integers.",null,{"inputs":[{"name":"f64"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"lnbeta_e","","This routine computes the logarithm of the Beta Function, \\log(B(a,b)) subject to a and b not being negative integers.",null,null],[0,"incomplete_gamma","rgsl::gamma_beta","",null,null],[5,"gamma_inc","rgsl::gamma_beta::incomplete_gamma","This routine computes the unnormalized incomplete Gamma Function \\Gamma(a,x) = \\int_x^\\infty dt t^{a-1} \\exp(-t) for a real and x >= 0.",null,{"inputs":[{"name":"f64"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"gamma_inc_e","","This routine computes the unnormalized incomplete Gamma Function \\Gamma(a,x) = \\int_x^\\infty dt t^{a-1} \\exp(-t) for a real and x >= 0.",null,null],[5,"gamma_inc_Q","","This routine computes the normalized incomplete Gamma Function Q(a,x) = 1/\\Gamma(a) \\int_x^\\infty dt t^{a-1} \\exp(-t) for a > 0, x >= 0.",null,{"inputs":[{"name":"f64"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"gamma_inc_Q_e","","This routine computes the normalized incomplete Gamma Function Q(a,x) = 1/\\Gamma(a) \\int_x^\\infty dt t^{a-1} \\exp(-t) for a > 0, x >= 0.",null,null],[5,"gamma_inc_P","","This routine computes the complementary normalized incomplete Gamma Function P(a,x) = 1 - Q(a,x) = 1/\\Gamma(a) \\int_0^x dt t^{a-1} \\exp(-t) for a > 0, x >= 0.",null,{"inputs":[{"name":"f64"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"gamma_inc_P_e","","This routine computes the complementary normalized incomplete Gamma Function P(a,x) = 1 - Q(a,x) = 1/\\Gamma(a) \\int_0^x dt t^{a-1} \\exp(-t) for a > 0, x >= 0.",null,null],[0,"incomplete_beta","rgsl::gamma_beta","",null,null],[5,"beta_inc","rgsl::gamma_beta::incomplete_beta","This routine computes the normalized incomplete Beta function I_x(a,b)=B_x(a,b)/B(a,b) where B_x(a,b) = \\int_0^x t^{a-1} (1-t)^{b-1} dt for 0 <= x <= 1.\nFor a > 0, b > 0 the value is computed using a continued fraction expansion.\nFor all other values it is computed using the relation I_x(a,b,x) = (1/a) x^a 2F1(a,1-b,a+1,x)/B(a,b).",null,{"inputs":[{"name":"f64"},{"name":"f64"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"beta_inc_e","","This routine computes the normalized incomplete Beta function I_x(a,b)=B_x(a,b)/B(a,b) where B_x(a,b) = \\int_0^x t^{a-1} (1-t)^{b-1} dt for 0 <= x <= 1.\nFor a > 0, b > 0 the value is computed using a continued fraction expansion.\nFor all other values it is computed using the relation I_x(a,b,x) = (1/a) x^a 2F1(a,1-b,a+1,x)/B(a,b).",null,null],[0,"gegenbauer","rgsl","The Gegenbauer polynomials are defined in Abramowitz & Stegun, Chapter 22, where they are known as Ultraspherical polynomials.",null,null],[5,"gegenpoly_1","rgsl::gegenbauer","This function evaluates the Gegenbauer polynomials C^{(\\lambda)}_n(x) using explicit representations for n =1, 2, 3.",null,{"inputs":[{"name":"f64"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"gegenpoly_2","","This function evaluates the Gegenbauer polynomials C^{(\\lambda)}_n(x) using explicit representations for n =1, 2, 3.",null,{"inputs":[{"name":"f64"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"gegenpoly_3","","This function evaluates the Gegenbauer polynomials C^{(\\lambda)}_n(x) using explicit representations for n =1, 2, 3.",null,{"inputs":[{"name":"f64"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"gegenpoly_1_e","","This function evaluates the Gegenbauer polynomials C^{(\\lambda)}_n(x) using explicit representations for n =1, 2, 3.",null,null],[5,"gegenpoly_2_e","","This function evaluates the Gegenbauer polynomials C^{(\\lambda)}_n(x) using explicit representations for n =1, 2, 3.",null,null],[5,"gegenpoly_3_e","","This function evaluates the Gegenbauer polynomials C^{(\\lambda)}_n(x) using explicit representations for n =1, 2, 3.",null,null],[5,"gegenpoly_n","","This function evaluates the Gegenbauer polynomial C^{(\\lambda)}_n(x) for a specific value of n, lambda, x subject to \\lambda > -1/2, n >= 0.",null,{"inputs":[{"name":"i32"},{"name":"f64"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"gegenpoly_n_e","","This function evaluates the Gegenbauer polynomial C^{(\\lambda)}_n(x) for a specific value of n, lambda, x subject to \\lambda > -1/2, n >= 0.",null,null],[5,"gegenpoly_array","","This function computes an array of Gegenbauer polynomials C^{(\\lambda)}_n(x) for n = 0, 1, 2, \\dots, nmax, subject to \\lambda > -1/2, nmax >= 0.",null,null],[0,"hypergeometric","rgsl","Hypergeometric functions are described in Abramowitz & Stegun, Chapters 13 and 15.",null,null],[5,"hyperg_0F1","rgsl::hypergeometric","This routine computes the hypergeometric function 0F1(c,x).",null,{"inputs":[{"name":"f64"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"hyperg_0F1_e","","This routine computes the hypergeometric function 0F1(c,x).",null,null],[5,"hyperg_1F1_int","","This routine computes the confluent hypergeometric function 1F1(m,n,x) = M(m,n,x) for integer parameters m, n.",null,{"inputs":[{"name":"i32"},{"name":"i32"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"hyperg_1F1_int_e","","This routine computes the confluent hypergeometric function 1F1(m,n,x) = M(m,n,x) for integer parameters m, n.",null,null],[5,"hyperg_1F1","","This routine computes the confluent hypergeometric function 1F1(a,b,x) = M(a,b,x) for general parameters a, b.",null,{"inputs":[{"name":"f64"},{"name":"f64"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"hyperg_1F1_e","","This routine computes the confluent hypergeometric function 1F1(a,b,x) = M(a,b,x) for general parameters a, b.",null,null],[5,"hyperg_1F1_U_int","","This routine computes the confluent hypergeometric function U(m,n,x) for integer parameters m, n.",null,{"inputs":[{"name":"i32"},{"name":"i32"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"hyperg_1F1_U_int_e","","This routine computes the confluent hypergeometric function U(m,n,x) for integer parameters m, n.",null,null],[5,"hyperg_1F1_U_int_e10_e","","This routine computes the confluent hypergeometric function U(m,n,x) for integer parameters m, n using the\n[`ResultE10]`(types/result/struct.ResultE10.html) type to return a result with extended range.",null,null],[5,"hyperg_U","","This routine computes the confluent hypergeometric function U(a,b,x).",null,{"inputs":[{"name":"f64"},{"name":"f64"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"hyperg_U_e","","This routine computes the confluent hypergeometric function U(a,b,x).",null,null],[5,"hyperg_U_e10_e","","This routine computes the confluent hypergeometric function U(a,b,x) using the\n[`ResultE10]`(types/result/struct.ResultE10.html) type to return a result with extended range.",null,null],[5,"hyperg_2F1","","This routine computes the Gauss hypergeometric function 2F1(a,b,c,x) = F(a,b,c,x) for |x| < 1.",null,{"inputs":[{"name":"f64"},{"name":"f64"},{"name":"f64"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"hyperg_2F1_e","","This routine computes the Gauss hypergeometric function 2F1(a,b,c,x) = F(a,b,c,x) for |x| < 1.",null,null],[5,"hyperg_2F1_conj","","This routine computes the Gauss hypergeometric function 2F1(a_R + i a_I, a_R - i a_I, c, x) with complex parameters for |x| < 1.",null,{"inputs":[{"name":"f64"},{"name":"f64"},{"name":"f64"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"hyperg_2F1_conj_e","","This routine computes the Gauss hypergeometric function 2F1(a_R + i a_I, a_R - i a_I, c, x) with complex parameters for |x| < 1.",null,null],[5,"hyperg_2F1_renorm","","This routine computes the renormalized Gauss hypergeometric function 2F1(a,b,c,x) / \\Gamma(c) for |x| < 1.",null,{"inputs":[{"name":"f64"},{"name":"f64"},{"name":"f64"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"hyperg_2F1_renorm_e","","This routine computes the renormalized Gauss hypergeometric function 2F1(a,b,c,x) / \\Gamma(c) for |x| < 1.",null,null],[5,"hyperg_2F1_conj_renorm","","This routine computes the renormalized Gauss hypergeometric function 2F1(a_R + i a_I, a_R - i a_I, c, x) / \\Gamma(c) for |x| < 1.",null,{"inputs":[{"name":"f64"},{"name":"f64"},{"name":"f64"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"hyperg_2F1_conj_renorm_e","","This routine computes the renormalized Gauss hypergeometric function 2F1(a_R + i a_I, a_R - i a_I, c, x) / \\Gamma(c) for |x| < 1.",null,null],[5,"hyperg_2F0","","This routine computes the hypergeometric function 2F0(a,b,x). The series representation is a divergent hypergeometric series.\nHowever, for x < 0 we have 2F0(a,b,x) = (-1/x)^a U(a,1+a-b,-1/x)",null,{"inputs":[{"name":"f64"},{"name":"f64"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"hyperg_2F0_e","","This routine computes the hypergeometric function 2F0(a,b,x). The series representation is a divergent hypergeometric series.\nHowever, for x < 0 we have 2F0(a,b,x) = (-1/x)^a U(a,1+a-b,-1/x)",null,null],[0,"integration","rgsl","##Introduction",null,null],[5,"qng","rgsl::integration","This function applies the Gauss-Kronrod 10-point, 21-point, 43-point and 87-point integration rules in succession until an estimate of the\nintegral of f over (a,b) is achieved within the desired absolute and relative error limits, eps_abs and eps_rel. The function returns the final\napproximation, result, an estimate of the absolute error, abserr and the number of function evaluations used, neval. The Gauss-Kronrod rules\nare designed in such a way that each rule uses all the results of its predecessors, in order to minimize the total number of function\nevaluations.",null,{"inputs":[{"name":"function"},{"name":"t"},{"name":"f64"},{"name":"f64"},{"name":"f64"},{"name":"f64"},{"name":"f64"},{"name":"f64"},{"name":"usize"}],"output":{"name":"value"}}],[5,"qk15","","Gauss quadrature weights and kronrod quadrature abscissae and weights as evaluated with 80 decimal digit arithmetic by L. W.\nFullerton, Bell Labs, Nov. 1981.",null,{"inputs":[{"name":"function"},{"name":"t"},{"name":"f64"},{"name":"f64"},{"name":"f64"},{"name":"f64"},{"name":"f64"},{"name":"f64"}],"output":null}],[5,"qk21","","",null,{"inputs":[{"name":"function"},{"name":"t"},{"name":"f64"},{"name":"f64"},{"name":"f64"},{"name":"f64"},{"name":"f64"},{"name":"f64"}],"output":null}],[5,"qk31","","",null,{"inputs":[{"name":"function"},{"name":"t"},{"name":"f64"},{"name":"f64"},{"name":"f64"},{"name":"f64"},{"name":"f64"},{"name":"f64"}],"output":null}],[5,"qk41","","",null,{"inputs":[{"name":"function"},{"name":"t"},{"name":"f64"},{"name":"f64"},{"name":"f64"},{"name":"f64"},{"name":"f64"},{"name":"f64"}],"output":null}],[5,"qk51","","",null,{"inputs":[{"name":"function"},{"name":"t"},{"name":"f64"},{"name":"f64"},{"name":"f64"},{"name":"f64"},{"name":"f64"},{"name":"f64"}],"output":null}],[5,"qk61","","",null,{"inputs":[{"name":"function"},{"name":"t"},{"name":"f64"},{"name":"f64"},{"name":"f64"},{"name":"f64"},{"name":"f64"},{"name":"f64"}],"output":null}],[5,"qk","","",null,null],[5,"qawf","","This function attempts to compute a Fourier integral of the function f over the semi-infinite interval [a,+\\infty).",null,{"inputs":[{"name":"function"},{"name":"t"},{"name":"f64"},{"name":"f64"},{"name":"usize"},{"name":"integrationworkspace"},{"name":"integrationworkspace"},{"name":"integrationqawotable"},{"name":"f64"},{"name":"f64"}],"output":{"name":"value"}}],[0,"interpolation","rgsl","",null,null],[5,"bsearch","rgsl::interpolation","This function returns the index i of the array x_array such that x_array[i] <= x < x_array[i+1]. The index is searched for in the\nrange [index_lo,index_hi].",null,null],[5,"eval","","This function returns the interpolated value of y for a given point x, using the interpolation object interp, data arrays xa and ya and\nthe accelerator acc. When x is outside the range of xa, the error code ::Dom is returned with a value of rgsl::NAN for y.",null,null],[5,"eval_e","","This function returns the interpolated value of y for a given point x, using the interpolation object interp, data arrays xa and ya and\nthe accelerator acc. When x is outside the range of xa, the error code ::Dom is returned with a value of rgsl::NAN for y.",null,null],[5,"eval_deriv","","This function returns the derivative d of an interpolated function for a given point x, using the interpolation object interp, data\narrays xa and ya and the accelerator acc.",null,null],[5,"eval_deriv_e","","This function returns the derivative d of an interpolated function for a given point x, using the interpolation object interp, data\narrays xa and ya and the accelerator acc.",null,null],[5,"eval_deriv2","","This function returns the second derivative d2 of an interpolated function for a given point x, using the interpolation object interp,\ndata arrays xa and ya and the accelerator acc.",null,null],[5,"eval_deriv2_e","","This function returns the second derivative d2 of an interpolated function for a given point x, using the interpolation object interp,\ndata arrays xa and ya and the accelerator acc.",null,null],[5,"eval_integ","","This function returns the numerical integral result of an interpolated function over the range [a, b], using the interpolation object\ninterp, data arrays xa and ya and the accelerator acc.",null,null],[5,"eval_integ_e","","This function returns the numerical integral result of an interpolated function over the range [a, b], using the interpolation object\ninterp, data arrays xa and ya and the accelerator acc.",null,null],[0,"jacobian_elliptic","rgsl","The Jacobian Elliptic functions are defined in Abramowitz & Stegun, Chapter 16.",null,null],[5,"elljac_e","rgsl::jacobian_elliptic","This function computes the Jacobian elliptic functions sn(u|m), cn(u|m), dn(u|m) by descending Landen transformations.",null,{"inputs":[{"name":"f64"},{"name":"f64"},{"name":"f64"},{"name":"f64"},{"name":"f64"}],"output":{"name":"value"}}],[0,"laguerre","rgsl","The generalized Laguerre polynomials are defined in terms of confluent hypergeometric functions as L^a_n(x) = ((a+1)_n / n!) 1F1(-n,a+1,x), and are sometimes referred to as the associated Laguerre polynomials.\nThey are related to the plain Laguerre polynomials L_n(x) by L^0_n(x) = L_n(x) and L^k_n(x) = (-1)^k (d^k/dx^k) L_(n+k)(x). For more information see Abramowitz & Stegun, Chapter 22.",null,null],[5,"laguerre_1","rgsl::laguerre","This function evaluates the generalized Laguerre polynomials L^a_1(x), L^a_2(x), L^a_3(x) using explicit representations.",null,{"inputs":[{"name":"f64"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"laguerre_2","","This function evaluates the generalized Laguerre polynomials L^a_1(x), L^a_2(x), L^a_3(x) using explicit representations.",null,{"inputs":[{"name":"f64"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"laguerre_3","","This function evaluates the generalized Laguerre polynomials L^a_1(x), L^a_2(x), L^a_3(x) using explicit representations.",null,{"inputs":[{"name":"f64"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"laguerre_1_e","","This function evaluates the generalized Laguerre polynomials L^a_1(x), L^a_2(x), L^a_3(x) using explicit representations.",null,null],[5,"laguerre_2_e","","This function evaluates the generalized Laguerre polynomials L^a_1(x), L^a_2(x), L^a_3(x) using explicit representations.",null,null],[5,"laguerre_3_e","","This function evaluates the generalized Laguerre polynomials L^a_1(x), L^a_2(x), L^a_3(x) using explicit representations.",null,null],[5,"laguerre_n","","the generalized Laguerre polynomials L^a_n(x) for a > -1, n >= 0.",null,{"inputs":[{"name":"i32"},{"name":"f64"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"laguerre_n_e","","the generalized Laguerre polynomials L^a_n(x) for a > -1, n >= 0.",null,null],[0,"lambert_w","rgsl","Lambert’s W functions, W(x), are defined to be solutions of the equation W(x) \\exp(W(x)) = x. This function has multiple branches for x < 0; however, it has only two real-valued branches.\nWe define W_0(x) to be the principal branch, where W > -1 for x < 0, and W_{-1}(x) to be the other real branch, where W < -1 for x < 0.",null,null],[5,"lambert_W0","rgsl::lambert_w","This computes the principal branch of the Lambert W function, W_0(x).",null,{"inputs":[{"name":"f64"}],"output":{"name":"f64"}}],[5,"lambert_W0_e","","This computes the principal branch of the Lambert W function, W_0(x).",null,null],[5,"lambert_Wm1","","This computes the secondary real-valued branch of the Lambert W function, W_{-1}(x).",null,{"inputs":[{"name":"f64"}],"output":{"name":"f64"}}],[5,"lambert_Wm1_e","","This computes the secondary real-valued branch of the Lambert W function, W_{-1}(x).",null,null],[0,"legendre","rgsl","The Legendre Functions and Legendre Polynomials are described in Abramowitz & Stegun, Chapter 8.",null,null],[0,"polynomials","rgsl::legendre","",null,null],[5,"legendre_P1","rgsl::legendre::polynomials","This function evaluates the Legendre polynomials P_l(x) using explicit representations for l=1, 2, 3.",null,{"inputs":[{"name":"f64"}],"output":{"name":"f64"}}],[5,"legendre_P2","","This function evaluates the Legendre polynomials P_l(x) using explicit representations for l=1, 2, 3.",null,{"inputs":[{"name":"f64"}],"output":{"name":"f64"}}],[5,"legendre_P3","","This function evaluates the Legendre polynomials P_l(x) using explicit representations for l=1, 2, 3.",null,{"inputs":[{"name":"f64"}],"output":{"name":"f64"}}],[5,"legendre_P1_e","","This function evaluates the Legendre polynomials P_l(x) using explicit representations for l=1, 2, 3.",null,null],[5,"legendre_P2_e","","This function evaluates the Legendre polynomials P_l(x) using explicit representations for l=1, 2, 3.",null,null],[5,"legendre_P3_e","","This function evaluates the Legendre polynomials P_l(x) using explicit representations for l=1, 2, 3.",null,null],[5,"legendre_Pl","","This function evaluates the Legendre polynomial P_l(x) for a specific value of l, x subject to l >= 0, |x| <= 1",null,{"inputs":[{"name":"i32"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"legendre_Pl_e","","This function evaluates the Legendre polynomial P_l(x) for a specific value of l, x subject to l >= 0, |x| <= 1",null,null],[5,"legendre_Pl_array","","This function computes arrays of Legendre polynomials P_l(x) and derivatives dP_l(x)/dx, for l = 0, \\dots, lmax, |x| <= 1",null,null],[5,"legendre_Pl_deriv_array","","This function computes arrays of Legendre polynomials P_l(x) and derivatives dP_l(x)/dx, for l = 0, \\dots, lmax, |x| <= 1",null,null],[5,"legendre_Q0","","This function computes the Legendre function Q_0(x) for x > -1, x != 1",null,{"inputs":[{"name":"f64"}],"output":{"name":"f64"}}],[5,"legendre_Q0_e","","This function computes the Legendre function Q_0(x) for x > -1, x != 1",null,null],[5,"legendre_Q1","","This function computes the Legendre function Q_0(x) for x > -1, x != 1.",null,{"inputs":[{"name":"f64"}],"output":{"name":"f64"}}],[5,"legendre_Q1_e","","This function computes the Legendre function Q_0(x) for x > -1, x != 1.",null,null],[5,"legendre_Ql","","This function computes the Legendre function Q_l(x) for x > -1, x != 1 and l >= 0.",null,{"inputs":[{"name":"i32"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"legendre_Ql_e","","This function computes the Legendre function Q_l(x) for x > -1, x != 1 and l >= 0.",null,null],[0,"associated_polynomials","rgsl::legendre","The following functions compute the associated Legendre Polynomials P_l^m(x).\nNote that this function grows combinatorially with l and can overflow for l larger than about 150.\nThere is no trouble for small m, but overflow occurs when m and l are both large.\nRather than allow overflows, these functions refuse to calculate P_l^m(x) and return [`OvrFlw`](enums/type.Value.html) when they can sense that l and m are too big.",null,null],[5,"legendre_Plm","rgsl::legendre::associated_polynomials","This routine computes the associated Legendre polynomial P_l^m(x) for m >= 0, l >= m, |x| <= 1.",null,{"inputs":[{"name":"i32"},{"name":"i32"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"legendre_Plm_e","","This routine computes the associated Legendre polynomial P_l^m(x) for m >= 0, l >= m, |x| <= 1.",null,null],[5,"legendre_Plm_array","","This function computes arrays of Legendre polynomials P_l^m(x) and derivatives dP_l^m(x)/dx, for m >= 0, l = |m|, ..., lmax, |x| <= 1.",null,null],[5,"legendre_Plm_deriv_array","","This function computes arrays of Legendre polynomials P_l^m(x) and derivatives dP_l^m(x)/dx, for m >= 0, l = |m|, ..., lmax, |x| <= 1.",null,null],[5,"legendre_sphPlm","","This routine computes the normalized associated Legendre polynomial \\sqrt{(2l+1)/(4\\pi)} \\sqrt{(l-m)!/(l+m)!} P_l^m(x) suitable for use in spherical harmonics.\nThe parameters must satisfy m >= 0, l >= m, |x| <= 1.\nThis routine avoids the overflows that occur for the standard normalization of P_l^m(x).",null,{"inputs":[{"name":"i32"},{"name":"i32"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"legendre_sphPlm_e","","This routine computes the normalized associated Legendre polynomial \\sqrt{(2l+1)/(4\\pi)} \\sqrt{(l-m)!/(l+m)!} P_l^m(x) suitable for use in spherical harmonics.\nThe parameters must satisfy m >= 0, l >= m, |x| <= 1.\nThis routine avoids the overflows that occur for the standard normalization of P_l^m(x).",null,null],[5,"legendre_sphPlm_array","","This function computes arrays of normalized associated Legendre functions \\sqrt{(2l+1)/(4\\pi)} \\sqrt{(l-m)!/(l+m)!} P_l^m(x), and derivatives, for m >= 0, l = |m|, ..., lmax, |x| <= 1.0",null,null],[5,"legendre_sphPlm_deriv_array","","This function computes arrays of normalized associated Legendre functions \\sqrt{(2l+1)/(4\\pi)} \\sqrt{(l-m)!/(l+m)!} P_l^m(x), and derivatives, for m >= 0, l = |m|, ..., lmax, |x| <= 1.0",null,null],[5,"legendre_array_size","","This function returns the size of result_array[] needed for the array versions of P_l^m(x), lmax - m + 1.",null,{"inputs":[{"name":"i32"},{"name":"i32"}],"output":{"name":"value"}}],[0,"conical","rgsl::legendre","The Conical Functions P^\\mu_{-(1/2)+i\\lambda}(x) and Q^\\mu_{-(1/2)+i\\lambda} are described in Abramowitz & Stegun, Section 8.12.",null,null],[5,"half","rgsl::legendre::conical","This routine computes the irregular Spherical Conical Function P^{1/2}_{-1/2 + i \\lambda}(x) for x > -1.",null,{"inputs":[{"name":"f64"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"half_e","","This routine computes the irregular Spherical Conical Function P^{1/2}_{-1/2 + i \\lambda}(x) for x > -1.",null,null],[5,"mhalf","","This routine computes the regular Spherical Conical Function P^{-1/2}_{-1/2 + i \\lambda}(x) for x > -1.",null,{"inputs":[{"name":"f64"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"mhalf_e","","This routine computes the regular Spherical Conical Function P^{-1/2}_{-1/2 + i \\lambda}(x) for x > -1.",null,null],[5,"_0","","This routine computes the conical function P^0_{-1/2 + i \\lambda}(x) for x > -1.",null,{"inputs":[{"name":"f64"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"_0_e","","This routine computes the conical function P^0_{-1/2 + i \\lambda}(x) for x > -1.",null,null],[5,"_1","","This routine computes the conical function P^1_{-1/2 + i \\lambda}(x) for x > -1.",null,{"inputs":[{"name":"f64"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"_1_e","","This routine computes the conical function P^1_{-1/2 + i \\lambda}(x) for x > -1.",null,null],[5,"sph_reg","","This routine computes the Regular Spherical Conical Function P^{-1/2-l}_{-1/2 + i \\lambda}(x) for x > -1, l >= -1.",null,{"inputs":[{"name":"i32"},{"name":"f64"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"sph_reg_e","","This routine computes the Regular Spherical Conical Function P^{-1/2-l}_{-1/2 + i \\lambda}(x) for x > -1, l >= -1.",null,null],[5,"cyl_reg","","This routine computes the Regular Cylindrical Conical Function P^{-m}_{-1/2 + i \\lambda}(x) for x > -1, m >= -1.",null,{"inputs":[{"name":"i32"},{"name":"f64"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"cyl_reg_e","","This routine computes the Regular Cylindrical Conical Function P^{-m}_{-1/2 + i \\lambda}(x) for x > -1, m >= -1.",null,null],[0,"radial","rgsl::legendre","The following spherical functions are specializations of Legendre functions which give the regular eigenfunctions of the Laplacian on a 3-dimensional hyperbolic space H3d.\nOf particular interest is the flat limit, \\lambda \\to \\infty, \\eta \\to 0, \\lambda\\eta fixed.",null,null],[5,"legendre_H3d_0","rgsl::legendre::radial","This routine computes the zeroth radial eigenfunction of the Laplacian on the 3-dimensional hyperbolic space, L^{H3d}_0(\\lambda,\\eta) := \\sin(\\lambda\\eta)/(\\lambda\\sinh(\\eta)) for \\eta >= 0.\nIn the flat limit this takes the form L^{H3d}_0(\\lambda,\\eta) = j_0(\\lambda\\eta).",null,{"inputs":[{"name":"f64"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"legendre_H3d_0_e","","This routine computes the zeroth radial eigenfunction of the Laplacian on the 3-dimensional hyperbolic space, L^{H3d}_0(\\lambda,\\eta) := \\sin(\\lambda\\eta)/(\\lambda\\sinh(\\eta)) for \\eta >= 0.\nIn the flat limit this takes the form L^{H3d}_0(\\lambda,\\eta) = j_0(\\lambda\\eta).",null,null],[5,"legendre_H3d_1","","This routine computes the first radial eigenfunction of the Laplacian on the 3-dimensional hyperbolic space, L^{H3d}_1(\\lambda,\\eta) := 1/\\sqrt{\\lambda^2 + 1} \\sin(\\lambda \\eta)/(\\lambda \\sinh(\\eta))\n(\\coth(\\eta) - \\lambda \\cot(\\lambda\\eta)) for \\eta >= 0.\nIn the flat limit this takes the form L^{H3d}_1(\\lambda,\\eta) = j_1(\\lambda\\eta).",null,{"inputs":[{"name":"f64"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"legendre_H3d_1_e","","This routine computes the first radial eigenfunction of the Laplacian on the 3-dimensional hyperbolic space, L^{H3d}_1(\\lambda,\\eta) := 1/\\sqrt{\\lambda^2 + 1} \\sin(\\lambda \\eta)/(\\lambda \\sinh(\\eta))\n(\\coth(\\eta) - \\lambda \\cot(\\lambda\\eta)) for \\eta >= 0.\nIn the flat limit this takes the form L^{H3d}_1(\\lambda,\\eta) = j_1(\\lambda\\eta).",null,null],[5,"legendre_H3d","","This routine computes the l-th radial eigenfunction of the Laplacian on the 3-dimensional hyperbolic space \\eta >= 0, l >= 0. In the flat limit this takes the form L^{H3d}_l(\\lambda,\\eta) = j_l(\\lambda\\eta).",null,{"inputs":[{"name":"i32"},{"name":"f64"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"legendre_H3d_e","","This routine computes the l-th radial eigenfunction of the Laplacian on the 3-dimensional hyperbolic space \\eta >= 0, l >= 0. In the flat limit this takes the form L^{H3d}_l(\\lambda,\\eta) = j_l(\\lambda\\eta).",null,null],[5,"legendre_H3d_array","","This function computes an array of radial eigenfunctions L^{H3d}_l(\\lambda, \\eta) for 0 <= l <= lmax.",null,null],[0,"linear_algebra","rgsl","#Linear Algebra",null,null],[5,"LU_decomp","rgsl::linear_algebra","Factorise a general N x N matrix A into,",null,{"inputs":[{"name":"matrixf64"},{"name":"permutation"},{"name":"i32"}],"output":{"name":"value"}}],[5,"complex_LU_decomp","","Factorise a general N x N complex matrix A into,",null,{"inputs":[{"name":"matrixcomplexf64"},{"name":"permutation"},{"name":"i32"}],"output":{"name":"value"}}],[5,"LU_solve","","This function solves the square system A x = b using the LU decomposition of A into (LU, p) given by LU_decomp or LU_decomp as input.",null,{"inputs":[{"name":"matrixf64"},{"name":"permutation"},{"name":"vectorf64"},{"name":"vectorf64"}],"output":{"name":"value"}}],[5,"complex_LU_solve","","This function solves the square system A x = b using the LU decomposition of A into (LU, p) given by LU_decomp or LU_decomp as input.",null,{"inputs":[{"name":"matrixcomplexf64"},{"name":"permutation"},{"name":"vectorcomplexf64"},{"name":"vectorcomplexf64"}],"output":{"name":"value"}}],[5,"LU_svx","","This function solves the square system A x = b in-place using the precomputed LU decomposition of A into (LU,p). On input x should contain\nthe right-hand side b, which is replaced by the solution on output.",null,{"inputs":[{"name":"matrixf64"},{"name":"permutation"},{"name":"vectorf64"}],"output":{"name":"value"}}],[5,"complex_LU_svx","","This function solves the square system A x = b in-place using the precomputed LU decomposition of A into (LU,p). On input x should contain\nthe right-hand side b, which is replaced by the solution on output.",null,{"inputs":[{"name":"matrixcomplexf64"},{"name":"permutation"},{"name":"vectorcomplexf64"}],"output":{"name":"value"}}],[5,"LU_refine","","This function applies an iterative improvement to x, the solution of A x = b, from the precomputed LU decomposition of A into (LU,p). The\ninitial residual r = A x - b is also computed and stored in residual.",null,{"inputs":[{"name":"matrixf64"},{"name":"matrixf64"},{"name":"permutation"},{"name":"vectorf64"},{"name":"vectorf64"},{"name":"vectorf64"}],"output":{"name":"value"}}],[5,"complex_LU_refine","","This function applies an iterative improvement to x, the solution of A x = b, from the precomputed LU decomposition of A into (LU,p). The\ninitial residual r = A x - b is also computed and stored in residual.",null,{"inputs":[{"name":"matrixcomplexf64"},{"name":"matrixcomplexf64"},{"name":"permutation"},{"name":"vectorcomplexf64"},{"name":"vectorcomplexf64"},{"name":"vectorcomplexf64"}],"output":{"name":"value"}}],[5,"LU_invert","","This function computes the inverse of a matrix A from its LU decomposition (LU,p), storing the result in the matrix inverse. The inverse\nis computed by solving the system A x = b for each column of the identity matrix. It is preferable to avoid direct use of the inverse\nwhenever possible, as the linear solver functions can obtain the same result more efficiently and reliably (consult any introductory\ntextbook on numerical linear algebra for details).",null,{"inputs":[{"name":"matrixf64"},{"name":"permutation"},{"name":"matrixf64"}],"output":{"name":"value"}}],[5,"complex_LU_invert","","This function computes the inverse of a matrix A from its LU decomposition (LU,p), storing the result in the matrix inverse. The inverse\nis computed by solving the system A x = b for each column of the identity matrix. It is preferable to avoid direct use of the inverse\nwhenever possible, as the linear solver functions can obtain the same result more efficiently and reliably (consult any introductory\ntextbook on numerical linear algebra for details).",null,{"inputs":[{"name":"matrixcomplexf64"},{"name":"permutation"},{"name":"matrixcomplexf64"}],"output":{"name":"value"}}],[5,"LU_det","","This function computes the determinant of a matrix A from its LU decomposition, LU. The determinant is computed as the product of the\ndiagonal elements of U and the sign of the row permutation signum.",null,{"inputs":[{"name":"matrixf64"},{"name":"i32"}],"output":{"name":"f64"}}],[5,"complex_LU_det","","This function computes the determinant of a matrix A from its LU decomposition, LU. The determinant is computed as the product of the\ndiagonal elements of U and the sign of the row permutation signum.",null,{"inputs":[{"name":"matrixcomplexf64"},{"name":"i32"}],"output":{"name":"complexf64"}}],[5,"LU_lndet","","These functions compute the logarithm of the absolute value of the determinant of a matrix A, \\ln|\\det(A)|, from its LU decomposition,\nLU. This function may be useful if the direct computation of the determinant would overflow or underflow.",null,{"inputs":[{"name":"matrixf64"}],"output":{"name":"f64"}}],[5,"complex_LU_lndet","","These functions compute the logarithm of the absolute value of the determinant of a matrix A, \\ln|\\det(A)|, from its LU decomposition,\nLU. This function may be useful if the direct computation of the determinant would overflow or underflow.",null,{"inputs":[{"name":"matrixcomplexf64"}],"output":{"name":"f64"}}],[5,"LU_sgndet","","This function computes the sign or phase factor of the determinant of a matrix A, \\det(A)/|\\det(A)|, from its LU decomposition, LU.",null,{"inputs":[{"name":"matrixf64"},{"name":"i32"}],"output":{"name":"f64"}}],[5,"complex_LU_sgndet","","This function computes the sign or phase factor of the determinant of a matrix A, \\det(A)/|\\det(A)|, from its LU decomposition, LU.",null,{"inputs":[{"name":"matrixcomplexf64"},{"name":"i32"}],"output":{"name":"complexf64"}}],[5,"QR_decomp","","This function factorizes the M-by-N matrix A into the QR decomposition A = Q R. On output the diagonal and upper triangular part of the\ninput matrix contain the matrix R. The vector tau and the columns of the lower triangular part of the matrix A contain the Householder\ncoefficients and Householder vectors which encode the orthogonal matrix Q. The vector tau must be of length k=\\min(M,N). The matrix Q\nis related to these components by, Q = Q_k ... Q_2 Q_1 where Q_i = I - \\tau_i v_i v_i^T and v_i is the Householder vector v_i =\n(0,...,1,A(i+1,i),A(i+2,i),...,A(m,i)). This is the same storage scheme as used by LAPACK.",null,{"inputs":[{"name":"matrixf64"},{"name":"vectorf64"}],"output":{"name":"value"}}],[5,"QR_solve","","This function solves the square system A x = b using the QR decomposition of A held in (QR, tau) which must have been computed previously\nwith gsl_linalg_QR_decomp. The least-squares solution for rectangular systems can be found using QR_lssolve.",null,{"inputs":[{"name":"matrixf64"},{"name":"vectorf64"},{"name":"vectorf64"},{"name":"vectorf64"}],"output":{"name":"value"}}],[5,"QR_svx","","This function solves the square system A x = b in-place using the QR decomposition of A held in (QR,tau) which must have been computed\npreviously by gsl_linalg_QR_decomp. On input x should contain the right-hand side b, which is replaced by the solution on output.",null,{"inputs":[{"name":"matrixf64"},{"name":"vectorf64"},{"name":"vectorf64"}],"output":{"name":"value"}}],[5,"QR_lssolve","","This function finds the least squares solution to the overdetermined system A x = b where the matrix A has more rows than columns. The\nleast squares solution minimizes the Euclidean norm of the residual, ||Ax - b||.The routine requires as input the QR decomposition of\nA into (QR, tau) given by gsl_linalg_QR_decomp. The solution is returned in x. The residual is computed as a by-product and stored in\nresidual.",null,{"inputs":[{"name":"matrixf64"},{"name":"vectorf64"},{"name":"vectorf64"},{"name":"vectorf64"},{"name":"vectorf64"}],"output":{"name":"value"}}],[5,"QR_QTvec","","This function applies the matrix Q^T encoded in the decomposition (QR,tau) to the vector v, storing the result Q^T v in v. The matrix\nmultiplication is carried out directly using the encoding of the Householder vectors without needing to form the full matrix Q^T.",null,{"inputs":[{"name":"matrixf64"},{"name":"vectorf64"},{"name":"vectorf64"}],"output":{"name":"value"}}],[5,"QR_Qvec","","This function applies the matrix Q encoded in the decomposition (QR,tau) to the vector v, storing the result Q v in v. The matrix\nmultiplication is carried out directly using the encoding of the Householder vectors without needing to form the full matrix Q.",null,{"inputs":[{"name":"matrixf64"},{"name":"vectorf64"},{"name":"vectorf64"}],"output":{"name":"value"}}],[5,"QR_QTmat","","This function applies the matrix Q^T encoded in the decomposition (QR,tau) to the matrix A, storing the result Q^T A in A. The matrix\nmultiplication is carried out directly using the encoding of the Householder vectors without needing to form the full matrix Q^T.",null,{"inputs":[{"name":"matrixf64"},{"name":"vectorf64"},{"name":"matrixf64"}],"output":{"name":"value"}}],[5,"QR_Rsolve","","This function solves the triangular system R x = b for x. It may be useful if the product b' = Q^T b has already been computed using\ngsl_linalg_QR_QTvec.",null,{"inputs":[{"name":"matrixf64"},{"name":"vectorf64"},{"name":"vectorf64"}],"output":{"name":"value"}}],[5,"QR_Rsvx","","This function solves the triangular system R x = b for x in-place. On input x should contain the right-hand side b and is replaced by\nthe solution on output. This function may be useful if the product b' = Q^T b has already been computed using gsl_linalg_QR_QTvec.",null,{"inputs":[{"name":"matrixf64"},{"name":"vectorf64"}],"output":{"name":"value"}}],[5,"QR_unpack","","This function unpacks the encoded QR decomposition (QR,tau) into the matrices Q and R, where Q is M-by-M and R is M-by-N.",null,{"inputs":[{"name":"matrixf64"},{"name":"vectorf64"},{"name":"matrixf64"},{"name":"matrixf64"}],"output":{"name":"value"}}],[5,"QR_QRsolve","","This function solves the system R x = Q^T b for x. It can be used when the QR decomposition of a matrix is available in unpacked\nform as (Q, R).",null,{"inputs":[{"name":"matrixf64"},{"name":"matrixf64"},{"name":"vectorf64"},{"name":"vectorf64"}],"output":{"name":"value"}}],[5,"QR_update","","This function performs a rank-1 update w v^T of the QR decomposition (Q, R). The update is given by Q'R' = Q (R + w v^T) where the\noutput matrices Q' and R' are also orthogonal and right triangular. Note that w is destroyed by the update.",null,{"inputs":[{"name":"matrixf64"},{"name":"matrixf64"},{"name":"vectorf64"},{"name":"vectorf64"}],"output":{"name":"value"}}],[5,"R_solve","","This function solves the triangular system R x = b for the N-by-N matrix R.",null,{"inputs":[{"name":"matrixf64"},{"name":"vectorf64"},{"name":"vectorf64"}],"output":{"name":"value"}}],[5,"R_svx","","This function solves the triangular system R x = b in-place. On input x should contain the right-hand side b, which is replaced by\nthe solution on output.",null,{"inputs":[{"name":"matrixf64"},{"name":"vectorf64"}],"output":{"name":"value"}}],[5,"QRPT_decomp","","This function factorizes the M-by-N matrix A into the QRP^T decomposition A = Q R P^T. On output the diagonal and upper triangular part\nof the input matrix contain the matrix R. The permutation matrix P is stored in the permutation p. The sign of the permutation is given\nby signum. It has the value (-1)^n, where n is the number of interchanges in the permutation. The vector tau and the columns of the lower\ntriangular part of the matrix A contain the Householder coefficients and vectors which encode the orthogonal matrix Q. The vector tau must\nbe of length k=\\min(M,N). The matrix Q is related to these components by, Q = Q_k ... Q_2 Q_1 where Q_i = I - \\tau_i v_i v_i^T and v_i is\nthe Householder vector v_i = (0,...,1,A(i+1,i),A(i+2,i),...,A(m,i)). This is the same storage scheme as used by LAPACK. The vector norm is\na workspace of length N used for column pivoting.",null,{"inputs":[{"name":"matrixf64"},{"name":"vectorf64"},{"name":"permutation"},{"name":"i32"},{"name":"vectorf64"}],"output":{"name":"value"}}],[5,"QRPT_decomp2","","This function factorizes the matrix A into the decomposition A = Q R P^T without modifying A itself and storing the output in the separate\nmatrices q and r.",null,{"inputs":[{"name":"matrixf64"},{"name":"matrixf64"},{"name":"matrixf64"},{"name":"vectorf64"},{"name":"permutation"},{"name":"i32"},{"name":"vectorf64"}],"output":{"name":"value"}}],[5,"QRPT_solve","","This function solves the square system A x = b using the QRP^T decomposition of A held in (QR, tau, p) which must have been computed previously\nby QRPT_decomp.",null,{"inputs":[{"name":"matrixf64"},{"name":"vectorf64"},{"name":"permutation"},{"name":"vectorf64"},{"name":"vectorf64"}],"output":{"name":"value"}}],[5,"QRPT_svx","","This function solves the square system A x = b in-place using the QRP^T decomposition of A held in (QR,tau,p). On input x should contain the\nright-hand side b, which is replaced by the solution on output.",null,{"inputs":[{"name":"matrixf64"},{"name":"vectorf64"},{"name":"permutation"},{"name":"vectorf64"}],"output":{"name":"value"}}],[5,"QRPT_QRsolve","","This function solves the square system R P^T x = Q^T b for x. It can be used when the QR decomposition of a matrix is available in unpacked\nform as (Q, R).",null,{"inputs":[{"name":"matrixf64"},{"name":"matrixf64"},{"name":"permutation"},{"name":"vectorf64"},{"name":"vectorf64"}],"output":{"name":"value"}}],[5,"QRPT_update","","This function performs a rank-1 update w v^T of the QRP^T decomposition (Q, R, p). The update is given by Q'R' = Q (R + w v^T P) where the\noutput matrices Q' and R' are also orthogonal and right triangular. Note that w is destroyed by the update. The permutation p is not changed.",null,{"inputs":[{"name":"matrixf64"},{"name":"matrixf64"},{"name":"permutation"},{"name":"vectorf64"},{"name":"vectorf64"}],"output":{"name":"value"}}],[5,"QRPT_Rsolve","","This function solves the triangular system R P^T x = b for the N-by-N matrix R contained in QR.",null,{"inputs":[{"name":"matrixf64"},{"name":"permutation"},{"name":"vectorf64"},{"name":"vectorf64"}],"output":{"name":"value"}}],[5,"QRPT_Rsvx","","This function solves the triangular system R P^T x = b in-place for the N-by-N matrix R contained in QR. On input x should contain the\nright-hand side b, which is replaced by the solution on output.",null,{"inputs":[{"name":"matrixf64"},{"name":"permutation"},{"name":"vectorf64"}],"output":{"name":"value"}}],[5,"SV_decomp","","This function factorizes the M-by-N matrix A into the singular value decomposition A = U S V^T for M >= N. On output the matrix A is replaced\nby U. The diagonal elements of the singular value matrix S are stored in the vector S. The singular values are non-negative and form a\nnon-increasing sequence from S_1 to S_N. The matrix V contains the elements of V in untransposed form. To form the product U S V^T it is\nnecessary to take the transpose of V. A workspace of length N is required in work.",null,{"inputs":[{"name":"matrixf64"},{"name":"matrixf64"},{"name":"vectorf64"},{"name":"vectorf64"}],"output":{"name":"value"}}],[5,"SV_decomp_mod","","This function computes the SVD using the modified Golub-Reinsch algorithm, which is faster for M>>N. It requires the vector work of length\nN and the N-by-N matrix X as additional working space.",null,{"inputs":[{"name":"matrixf64"},{"name":"matrixf64"},{"name":"matrixf64"},{"name":"vectorf64"},{"name":"vectorf64"}],"output":{"name":"value"}}],[5,"SV_decomp_jacobi","","This function computes the SVD of the M-by-N matrix A using one-sided Jacobi orthogonalization for M >= N. The Jacobi method can compute\nsingular values to higher relative accuracy than Golub-Reinsch algorithms (see references for details).",null,{"inputs":[{"name":"matrixf64"},{"name":"matrixf64"},{"name":"vectorf64"}],"output":{"name":"value"}}],[5,"SV_solve","","This function solves the system A x = b using the singular value decomposition (U, S, V) of A which must have been computed previously\nwith gsl_linalg_SV_decomp.",null,{"inputs":[{"name":"matrixf64"},{"name":"matrixf64"},{"name":"vectorf64"},{"name":"vectorf64"},{"name":"vectorf64"}],"output":{"name":"value"}}],[5,"SV_leverage","","This function computes the statistical leverage values h_i of a matrix A using its singular value decomposition (U, S, V) previously computed\nwith gsl_linalg_SV_decomp. h_i are the diagonal values of the matrix A (A^T A)^{-1} A^T and depend only on the matrix U which is the input to\nthis function.",null,{"inputs":[{"name":"matrixf64"},{"name":"vectorf64"}],"output":{"name":"value"}}],[5,"cholesky_decomp","","This function factorizes the symmetric, positive-definite square matrix A into the Cholesky decomposition A = L L^T (or A = L L^H for\nthe complex case). On input, the values from the diagonal and lower-triangular part of the matrix A are used (the upper triangular part\nis ignored). On output the diagonal and lower triangular part of the input matrix A contain the matrix L, while the upper triangular part\nof the input matrix is overwritten with L^T (the diagonal terms being identical for both L and L^T). If the matrix is not positive-definite\nthen the decomposition will fail, returning the error code ::Dom.",null,{"inputs":[{"name":"matrixf64"}],"output":{"name":"value"}}],[5,"complex_cholesky_decomp","","This function factorizes the symmetric, positive-definite square matrix A into the Cholesky decomposition A = L L^T (or A = L L^H for\nthe complex case). On input, the values from the diagonal and lower-triangular part of the matrix A are used (the upper triangular part\nis ignored). On output the diagonal and lower triangular part of the input matrix A contain the matrix L, while the upper triangular part\nof the input matrix is overwritten with L^T (the diagonal terms being identical for both L and L^T). If the matrix is not positive-definite\nthen the decomposition will fail, returning the error code ::Dom.",null,{"inputs":[{"name":"matrixcomplexf64"}],"output":{"name":"value"}}],[5,"cholesky_solve","","This function solves the system A x = b using the Cholesky decomposition of A held in the matrix cholesky which must have been previously\ncomputed by gsl_linalg_cholesky_decomp or gsl_linalg_complex_cholesky_decomp.",null,{"inputs":[{"name":"matrixf64"},{"name":"vectorf64"},{"name":"vectorf64"}],"output":{"name":"value"}}],[5,"complex_cholesky_solve","","This function solves the system A x = b using the Cholesky decomposition of A held in the matrix cholesky which must have been previously\ncomputed by gsl_linalg_cholesky_decomp or gsl_linalg_complex_cholesky_decomp.",null,{"inputs":[{"name":"matrixcomplexf64"},{"name":"vectorcomplexf64"},{"name":"vectorcomplexf64"}],"output":{"name":"value"}}],[5,"cholesky_svx","","This function solves the system A x = b in-place using the Cholesky decomposition of A held in the matrix cholesky which must have been\npreviously computed by gsl_linalg_cholesky_decomp or gsl_linalg_complex_cholesky_decomp. On input x should contain the right-hand side\nb, which is replaced by the solution on output.",null,{"inputs":[{"name":"matrixf64"},{"name":"vectorf64"}],"output":{"name":"value"}}],[5,"complex_cholesky_svx","","This function solves the system A x = b in-place using the Cholesky decomposition of A held in the matrix cholesky which must have been\npreviously computed by gsl_linalg_cholesky_decomp or gsl_linalg_complex_cholesky_decomp. On input x should contain the right-hand side\nb, which is replaced by the solution on output.",null,{"inputs":[{"name":"matrixcomplexf64"},{"name":"vectorcomplexf64"}],"output":{"name":"value"}}],[5,"cholesky_invert","","This function computes the inverse of a matrix from its Cholesky decomposition cholesky, which must have been previously computed by\ngsl_linalg_cholesky_decomp or gsl_linalg_complex_cholesky_decomp. On output, the inverse is stored in-place in cholesky.",null,{"inputs":[{"name":"matrixf64"}],"output":{"name":"value"}}],[5,"complex_cholesky_invert","","This function computes the inverse of a matrix from its Cholesky decomposition cholesky, which must have been previously computed by\ngsl_linalg_cholesky_decomp or gsl_linalg_complex_cholesky_decomp. On output, the inverse is stored in-place in cholesky.",null,{"inputs":[{"name":"matrixcomplexf64"}],"output":{"name":"value"}}],[5,"symmtd_decomp","","This function factorizes the symmetric square matrix A into the symmetric tridiagonal decomposition Q T Q^T. On output the diagonal and\nsubdiagonal part of the input matrix A contain the tridiagonal matrix T. The remaining lower triangular part of the input matrix contains\nthe Householder vectors which, together with the Householder coefficients tau, encode the orthogonal matrix Q. This storage scheme is\nthe same as used by LAPACK. The upper triangular part of A is not referenced.",null,{"inputs":[{"name":"matrixf64"},{"name":"vectorf64"}],"output":{"name":"value"}}],[5,"symmtd_unpack","","This function unpacks the encoded symmetric tridiagonal decomposition (A, tau) obtained from gsl_linalg_symmtd_decomp into the orthogonal\nmatrix Q, the vector of diagonal elements diag and the vector of subdiagonal elements subdiag.",null,{"inputs":[{"name":"matrixf64"},{"name":"vectorf64"},{"name":"matrixf64"},{"name":"vectorf64"},{"name":"vectorf64"}],"output":{"name":"value"}}],[5,"symmtd_unpack_T","","This function unpacks the diagonal and subdiagonal of the encoded symmetric tridiagonal decomposition (A, tau) obtained from\ngsl_linalg_symmtd_decomp into the vectors diag and subdiag.",null,{"inputs":[{"name":"matrixf64"},{"name":"vectorf64"},{"name":"vectorf64"}],"output":{"name":"value"}}],[5,"hermtd_decomp","","This function factorizes the hermitian matrix A into the symmetric tridiagonal decomposition U T U^T. On output the real parts of the\ndiagonal and subdiagonal part of the input matrix A contain the tridiagonal matrix T. The remaining lower triangular part of the input\nmatrix contains the Householder vectors which, together with the Householder coefficients tau, encode the unitary matrix U. This storage\nscheme is the same as used by LAPACK. The upper triangular part of A and imaginary parts of the diagonal are not referenced.",null,{"inputs":[{"name":"matrixcomplexf64"},{"name":"vectorcomplexf64"}],"output":{"name":"value"}}],[5,"hermtd_unpack","","This function unpacks the encoded tridiagonal decomposition (A, tau) obtained from gsl_linalg_hermtd_decomp into the unitary matrix U,\nthe real vector of diagonal elements diag and the real vector of subdiagonal elements subdiag.",null,{"inputs":[{"name":"matrixcomplexf64"},{"name":"vectorcomplexf64"},{"name":"matrixcomplexf64"},{"name":"vectorf64"},{"name":"vectorf64"}],"output":{"name":"value"}}],[5,"hermtd_unpack_T","","This function unpacks the diagonal and subdiagonal of the encoded tridiagonal decomposition (A, tau) obtained from the\ngsl_linalg_hermtd_decomp into the real vectors diag and subdiag.",null,{"inputs":[{"name":"matrixcomplexf64"},{"name":"vectorf64"},{"name":"vectorf64"}],"output":{"name":"value"}}],[5,"hessenberg_decomp","","This function computes the Hessenberg decomposition of the matrix A by applying the similarity transformation H = U^T A U. On output, H\nis stored in the upper portion of A. The information required to construct the matrix U is stored in the lower triangular portion of A.\nU is a product of N - 2 Householder matrices. The Householder vectors are stored in the lower portion of A (below the subdiagonal) and\nthe Householder coefficients are stored in the vector tau. tau must be of length N.",null,{"inputs":[{"name":"matrixf64"},{"name":"vectorf64"}],"output":{"name":"value"}}],[5,"hessenberg_unpack","","This function constructs the orthogonal matrix U from the information stored in the Hessenberg matrix H along with the vector tau. H and\ntau are outputs from gsl_linalg_hessenberg_decomp.",null,{"inputs":[{"name":"matrixf64"},{"name":"vectorf64"},{"name":"matrixf64"}],"output":{"name":"value"}}],[5,"hessenberg_unpack_accum","","This function is similar to gsl_linalg_hessenberg_unpack, except it accumulates the matrix U into V, so that V' = VU. The matrix V must\nbe initialized prior to calling this function. Setting V to the identity matrix provides the same result as gsl_linalg_hessenberg_unpack.\nIf H is order N, then V must have N columns but may have any number of rows.",null,{"inputs":[{"name":"matrixf64"},{"name":"vectorf64"},{"name":"matrixf64"}],"output":{"name":"value"}}],[5,"hessenberg_set_zero","","This function sets the lower triangular portion of H, below the subdiagonal, to zero. It is useful for clearing out the Householder\nvectors after calling gsl_linalg_hessenberg_decomp.",null,{"inputs":[{"name":"matrixf64"}],"output":{"name":"value"}}],[5,"hesstri_decomp","","This function computes the Hessenberg-Triangular decomposition of the matrix pair (A, B). On output, H is stored in A, and R is stored\nin B. If U and V are provided (they may be null), the similarity transformations are stored in them. Additional workspace of length N\nis needed in work.",null,{"inputs":[{"name":"matrixf64"},{"name":"matrixf64"},{"name":"matrixf64"},{"name":"matrixf64"},{"name":"vectorf64"}],"output":{"name":"value"}}],[5,"bidiag_decomp","","This function factorizes the M-by-N matrix A into bidiagonal form U B V^T. The diagonal and superdiagonal of the matrix B are stored in\nthe diagonal and superdiagonal of A. The orthogonal matrices U and V are stored as compressed Householder vectors in the remaining elements\nof A. The Householder coefficients are stored in the vectors tau_U and tau_V. The length of tau_U must equal the number of elements in\nthe diagonal of A and the length of tau_V should be one element shorter.",null,{"inputs":[{"name":"matrixf64"},{"name":"vectorf64"},{"name":"vectorf64"}],"output":{"name":"value"}}],[5,"bidiag_unpack","","This function unpacks the bidiagonal decomposition of A produced by gsl_linalg_bidiag_decomp, (A, tau_U, tau_V) into the separate orthogonal\nmatrices U, V and the diagonal vector diag and superdiagonal superdiag. Note that U is stored as a compact M-by-N orthogonal matrix satisfying\nU^T U = I for efficiency.",null,{"inputs":[{"name":"matrixf64"},{"name":"vectorf64"},{"name":"matrixf64"},{"name":"vectorf64"},{"name":"matrixf64"},{"name":"vectorf64"},{"name":"vectorf64"}],"output":{"name":"value"}}],[5,"bidiag_unpack2","","This function unpacks the bidiagonal decomposition of A produced by gsl_linalg_bidiag_decomp, (A, tau_U, tau_V) into the separate orthogonal\nmatrices U, V and the diagonal vector diag and superdiagonal superdiag. The matrix U is stored in-place in A.",null,{"inputs":[{"name":"matrixf64"},{"name":"vectorf64"},{"name":"vectorf64"},{"name":"matrixf64"}],"output":{"name":"value"}}],[5,"bidiag_unpack_B","","This function unpacks the diagonal and superdiagonal of the bidiagonal decomposition of A from gsl_linalg_bidiag_decomp, into the diagonal\nvector diag and superdiagonal vector superdiag.",null,{"inputs":[{"name":"matrixf64"},{"name":"vectorf64"},{"name":"vectorf64"}],"output":{"name":"value"}}],[5,"householder_transform","","This function prepares a Householder transformation P = I - \\tau v v^T which can be used to zero all the elements of the input vector except\nthe first. On output the transformation is stored in the vector v and the scalar \\tau is returned.",null,{"inputs":[{"name":"vectorf64"}],"output":{"name":"f64"}}],[5,"complex_householder_transform","","This function prepares a Householder transformation P = I - \\tau v v^T which can be used to zero all the elements of the input vector except\nthe first. On output the transformation is stored in the vector v and the scalar \\tau is returned.",null,{"inputs":[{"name":"vectorcomplexf64"}],"output":{"name":"complexf64"}}],[5,"householder_hm","","This function applies the Householder matrix P defined by the scalar tau and the vector v to the left-hand side of the matrix A. On output\nthe result P A is stored in A.",null,{"inputs":[{"name":"f64"},{"name":"vectorf64"},{"name":"matrixf64"}],"output":{"name":"value"}}],[5,"complex_householder_hm","","This function applies the Householder matrix P defined by the scalar tau and the vector v to the left-hand side of the matrix A. On output\nthe result P A is stored in A.",null,{"inputs":[{"name":"complexf64"},{"name":"vectorcomplexf64"},{"name":"matrixcomplexf64"}],"output":{"name":"value"}}],[5,"householder_mh","","This function applies the Householder matrix P defined by the scalar tau and the vector v to the right-hand side of the matrix A. On output\nthe result A P is stored in A.",null,{"inputs":[{"name":"f64"},{"name":"vectorf64"},{"name":"matrixf64"}],"output":{"name":"value"}}],[5,"complex_householder_mh","","This function applies the Householder matrix P defined by the scalar tau and the vector v to the right-hand side of the matrix A. On output\nthe result A P is stored in A.",null,{"inputs":[{"name":"complexf64"},{"name":"vectorcomplexf64"},{"name":"matrixcomplexf64"}],"output":{"name":"value"}}],[5,"householder_hv","","This function applies the Householder transformation P defined by the scalar tau and the vector v to the vector w. On output the result P\nw is stored in w.",null,{"inputs":[{"name":"f64"},{"name":"vectorf64"},{"name":"matrixf64"}],"output":{"name":"value"}}],[5,"complex_householder_hv","","This function applies the Householder transformation P defined by the scalar tau and the vector v to the vector w. On output the result P\nw is stored in w.",null,{"inputs":[{"name":"complexf64"},{"name":"vectorcomplexf64"},{"name":"matrixcomplexf64"}],"output":{"name":"value"}}],[5,"HH_solve","","This function solves the system A x = b directly using Householder transformations. On output the solution is stored in x and b is not\nmodified. The matrix A is destroyed by the Householder transformations.",null,{"inputs":[{"name":"matrixf64"},{"name":"vectorf64"},{"name":"vectorf64"}],"output":{"name":"value"}}],[5,"HH_svx","","This function solves the system A x = b in-place using Householder transformations. On input x should contain the right-hand side b,\nwhich is replaced by the solution on output. The matrix A is destroyed by the Householder transformations.",null,{"inputs":[{"name":"matrixf64"},{"name":"vectorf64"}],"output":{"name":"value"}}],[5,"solve_tridiag","","This function solves the general N-by-N system A x = b where A is tridiagonal (N >= 2). The super-diagonal and sub-diagonal vectors\ne and f must be one element shorter than the diagonal vector diag. The form of A for the 4-by-4 case is shown below,",null,{"inputs":[{"name":"vectorf64"},{"name":"vectorf64"},{"name":"vectorf64"},{"name":"vectorf64"},{"name":"vectorf64"}],"output":{"name":"value"}}],[5,"solve_symm_tridiag","","This function solves the general N-by-N system A x = b where A is symmetric tridiagonal (N >= 2). The off-diagonal vector e must be one\nelement shorter than the diagonal vector diag. The form of A for the 4-by-4 case is shown below,",null,{"inputs":[{"name":"vectorf64"},{"name":"vectorf64"},{"name":"vectorf64"},{"name":"vectorf64"}],"output":{"name":"value"}}],[5,"solve_cyc_tridiag","","This function solves the general N-by-N system A x = b where A is cyclic tridiagonal (N >= 3). The cyclic super-diagonal and sub-diagonal\nvectors e and f must have the same number of elements as the diagonal vector diag. The form of A for the 4-by-4 case is shown below,",null,{"inputs":[{"name":"vectorf64"},{"name":"vectorf64"},{"name":"vectorf64"},{"name":"vectorf64"},{"name":"vectorf64"}],"output":{"name":"value"}}],[5,"solve_symm_cyc_tridiag","","This function solves the general N-by-N system A x = b where A is symmetric cyclic tridiagonal (N >= 3). The cyclic off-diagonal vector\ne must have the same number of elements as the diagonal vector diag. The form of A for the 4-by-4 case is shown below,",null,{"inputs":[{"name":"vectorf64"},{"name":"vectorf64"},{"name":"vectorf64"},{"name":"vectorf64"}],"output":{"name":"value"}}],[5,"balance_matrix","","This function replaces the matrix A with its balanced counterpart and stores the diagonal elements of the similarity transformation into\nthe vector D.",null,{"inputs":[{"name":"matrixf64"},{"name":"vectorf64"}],"output":{"name":"value"}}],[0,"logarithm","rgsl","Information on the properties of the Logarithm function can be found in Abramowitz & Stegun, Chapter 4.",null,null],[5,"log","rgsl::logarithm","This routine computes the logarithm of x, \\log(x), for x > 0.",null,{"inputs":[{"name":"f64"}],"output":{"name":"f64"}}],[5,"log_e","","This routine computes the logarithm of x, \\log(x), for x > 0.",null,null],[5,"log_abs","","This routine computes the logarithm of the magnitude of x, \\log(|x|), for x \\ne 0.",null,{"inputs":[{"name":"f64"}],"output":{"name":"f64"}}],[5,"log_abs_e","","This routine computes the logarithm of the magnitude of x, \\log(|x|), for x \\ne 0.",null,null],[5,"complex_log_e","","This routine computes the complex logarithm of z = z_r + i z_i.\nThe results are returned as lnr, theta such that \\exp(lnr + i \\theta) = z_r + i z_i, where \\theta lies in the range [-\\pi,\\pi].",null,null],[5,"log_1plusx","","This routine computes \\log(1 + x) for x > -1 using an algorithm that is accurate for small x.",null,{"inputs":[{"name":"f64"}],"output":{"name":"f64"}}],[5,"log_1plusx_e","","This routine computes \\log(1 + x) for x > -1 using an algorithm that is accurate for small x.",null,null],[5,"log_1plusx_mx","","This routine computes \\log(1 + x) - x for x > -1 using an algorithm that is accurate for small x.",null,{"inputs":[{"name":"f64"}],"output":{"name":"f64"}}],[5,"log_1plusx_mx_e","","This routine computes \\log(1 + x) - x for x > -1 using an algorithm that is accurate for small x.",null,null],[0,"minimizer","rgsl","",null,null],[5,"test_interval","rgsl::minimizer","This function tests for the convergence of the interval [x_lower, x_upper] with absolute error epsabs and relative error epsrel. The\ntest returns ::Value::Success if the following condition is achieved,",null,{"inputs":[{"name":"f64"},{"name":"f64"},{"name":"f64"},{"name":"f64"}],"output":{"name":"value"}}],[0,"multifit","rgsl","",null,null],[5,"covar","rgsl::multifit","Compute the covariance matrix cov = inv (J^T J) by QRP^T decomposition of J",null,{"inputs":[{"name":"matrixf64"},{"name":"f64"},{"name":"matrixf64"}],"output":{"name":"value"}}],[5,"test_delta","","",null,{"inputs":[{"name":"vectorf64"},{"name":"vectorf64"},{"name":"f64"},{"name":"f64"}],"output":{"name":"value"}}],[5,"gradient","","",null,{"inputs":[{"name":"matrixf64"},{"name":"vectorf64"},{"name":"vectorf64"}],"output":{"name":"value"}}],[0,"numerical_differentiation","rgsl","#Numerical Differentiation",null,null],[5,"deriv_central","rgsl::numerical_differentiation","This function computes the numerical derivative of the function f at the point x using an adaptive central difference algorithm with a step-size\nof h. The derivative is returned in result and an estimate of its absolute error is returned in abserr.",null,{"inputs":[{"name":"function"},{"name":"t"},{"name":"f64"},{"name":"f64"},{"name":"f64"},{"name":"f64"}],"output":{"name":"value"}}],[5,"deriv_forward","","This function computes the numerical derivative of the function f at the point x using an adaptive forward difference algorithm with a step-size\nof h. The function is evaluated only at points greater than x, and never at x itself. The derivative is returned in result and an estimate\nof its absolute error is returned in abserr. This function should be used if f(x) has a discontinuity at x, or is undefined for values less\nthan x.",null,{"inputs":[{"name":"function"},{"name":"t"},{"name":"f64"},{"name":"f64"},{"name":"f64"},{"name":"f64"}],"output":{"name":"value"}}],[5,"deriv_backward","","This function computes the numerical derivative of the function f at the point x using an adaptive backward difference algorithm with a\nstep-size of h. The function is evaluated only at points less than x, and never at x itself. The derivative is returned in result and an\nestimate of its absolute error is returned in abserr. This function should be used if f(x) has a discontinuity at x, or is undefined for\nvalues greater than x.",null,{"inputs":[{"name":"function"},{"name":"t"},{"name":"f64"},{"name":"f64"},{"name":"f64"},{"name":"f64"}],"output":{"name":"value"}}],[0,"physical_constant","rgsl","Physical Constants",null,null],[7,"MKSA_SPEED_OF_LIGHT","rgsl::physical_constant","The speed of light in vacuum, c. m / s",null,null],[7,"MKSA_VACUUM_PERMEABILITY","","The permeability of free space, \\mu_0. This constant is defined in the MKSA system only. kg m / A^2 s^2",null,null],[7,"MKSA_VACUUM_PERMITTIVITY","","The permittivity of free space, \\epsilon_0. This constant is defined in the MKSA system only. A^2 s^4 / kg m^3",null,null],[7,"MKSA_PLANCKS_CONSTANT_H","","Planck’s constant, h. kg m^2 / s",null,null],[7,"MKSA_PLANCKS_CONSTANT_HBAR","","Planck’s constant divided by 2\\pi, \\hbar. kg m^2 / s",null,null],[7,"NUM_AVOGADRO","","Avogadro’s number, N_a. 1 / mol",null,null],[7,"MKSA_FARADAY","","The molar charge of 1 Faraday. A s / mol",null,null],[7,"MKSA_BOLTZMANN","","The Boltzmann constant, k. kg m^2 / K s^2",null,null],[7,"MKSA_MOLAR_GAS","","The molar gas constant, R_0. kg m^2 / K mol s^2",null,null],[7,"MKSA_STANDARD_GAS_VOLUME","","The standard gas volume, V_0. m^3 / mol",null,null],[7,"MKSA_STEFAN_BOLTZMANN_CONSTANT","","The Stefan-Boltzmann radiation constant, \\sigma. kg / K^4 s^3",null,null],[7,"MKSA_GAUSS","","The magnetic field of 1 Gauss. kg / A s^2",null,null],[7,"MKSA_ASTRONOMICAL_UNIT","","The length of 1 astronomical unit (mean earth-sun distance), au. m",null,null],[7,"MKSA_GRAVITATIONAL_CONSTANT","","The gravitational constant, G. m^3 / kg s^2",null,null],[7,"MKSA_LIGHT_YEAR","","The distance of 1 light-year, ly. m",null,null],[7,"MKSA_PARSEC","","The distance of 1 parsec, pc. m",null,null],[7,"MKSA_GRAV_ACCEL","","The standard gravitational acceleration on Earth, g. m / s^2",null,null],[7,"MKSA_SOLAR_MASS","","The mass of the Sun. kg",null,null],[7,"MKSA_ELECTRON_CHARGE","","The charge of the electron, e. A s",null,null],[7,"MKSA_ELECTRON_VOLT","","The energy of 1 electron volt, eV. kg m^2 / s^2",null,null],[7,"MKSA_UNIFIED_ATOMIC_MASS","","The unified atomic mass, amu. kg",null,null],[7,"MKSA_MASS_ELECTRON","","The mass of the electron, m_e. kg",null,null],[7,"MKSA_MASS_MUON","","The mass of the muon, m_\\mu. kg",null,null],[7,"MKSA_MASS_PROTON","","The mass of the proton, m_p. kg",null,null],[7,"MKSA_MASS_NEUTRON","","The mass of the neutron, m_n. kg",null,null],[7,"NUM_FINE_STRUCTURE","","The electromagnetic fine structure constant \\alpha. 1",null,null],[7,"MKSA_RYDBERG","","The Rydberg constant, Ry, in units of energy. This is related to the Rydberg inverse wavelength R_\\infty by Ry = h c R_\\infty. kg m^2 / s^2",null,null],[7,"MKSA_BOHR_RADIUS","","The Bohr radius, a_0. m",null,null],[7,"MKSA_ANGSTROM","","The length of 1 angstrom. m",null,null],[7,"MKSA_BARN","","The area of 1 barn. m^2",null,null],[7,"MKSA_BOHR_MAGNETON","","The Bohr Magneton, \\mu_B. A m^2",null,null],[7,"MKSA_NUCLEAR_MAGNETON","","The Nuclear Magneton, \\mu_N. A m^2",null,null],[7,"MKSA_ELECTRON_MAGNETIC_MOMENT","","The absolute value of the magnetic moment of the electron, \\mu_e. The physical magnetic moment of the electron is negative. A m^2",null,null],[7,"MKSA_PROTON_MAGNETIC_MOMENT","","The magnetic moment of the proton, \\mu_p. A m^2",null,null],[7,"MKSA_THOMSON_CROSS_SECTION","","The Thomson cross section, \\sigma_T. m^2",null,null],[7,"MKSA_DEBYE","","The electric dipole moment of 1 Debye, D. A s^2 / m^2",null,null],[7,"MKSA_MINUTE","","The number of seconds in 1 minute. s",null,null],[7,"MKSA_HOUR","","The number of seconds in 1 hour. s",null,null],[7,"MKSA_DAY","","The number of seconds in 1 day. s",null,null],[7,"MKSA_WEEK","","The number of seconds in 1 week. s",null,null],[7,"MKSA_INCH","","The length of 1 inch. m",null,null],[7,"MKSA_FOOT","","The length of 1 foot. m",null,null],[7,"MKSA_YARD","","The length of 1 yard. m",null,null],[7,"MKSA_MILE","","The length of 1 mile. m",null,null],[7,"MKSA_MIL","","The length of 1 mil (1/1000th of an inch). m",null,null],[7,"MKSA_KILOMETERS_PER_HOUR","","The speed of 1 kilometer per hour. m / s",null,null],[7,"MKSA_MILES_PER_HOUR","","The speed of 1 mile per hour. m / s",null,null],[7,"MKSA_NAUTICAL_MILE","","The length of 1 nautical mile. m",null,null],[7,"MKSA_FATHOM","","The length of 1 fathom. m",null,null],[7,"MKSA_KNOT","","The speed of 1 knot. m / s",null,null],[7,"MKSA_POINT","","The length of 1 printer’s point (1/72 inch). m",null,null],[7,"MKSA_TEXPOINT","","The length of 1 TeX point (1/72.27 inch). m",null,null],[7,"MKSA_MICRON","","The length of 1 micron. m",null,null],[7,"MKSA_HECTARE","","The area of 1 hectare. m^2",null,null],[7,"MKSA_ACRE","","The area of 1 acre. m^2",null,null],[7,"MKSA_LITER","","The volume of 1 liter. m^3",null,null],[7,"MKSA_US_GALLON","","The volume of 1 US gallon. m^3",null,null],[7,"MKSA_CANADIAN_GALLON","","The volume of 1 Canadian gallon. m^3",null,null],[7,"MKSA_UK_GALLON","","The volume of 1 UK gallon. m^3",null,null],[7,"MKSA_QUART","","The volume of 1 quart. m^3",null,null],[7,"MKSA_PINT","","The volume of 1 pint. m^3",null,null],[7,"MKSA_CUP","","m^3",null,null],[7,"MKSA_POUND_MASS","","The mass of 1 pound. kg",null,null],[7,"MKSA_OUNCE_MASS","","The mass of 1 ounce. kg",null,null],[7,"MKSA_TON","","The mass of 1 ton. kg",null,null],[7,"MKSA_METRIC_TON","","The mass of 1 metric ton (1000 kg). kg",null,null],[7,"MKSA_UK_TON","","The mass of 1 UK ton. kg",null,null],[7,"MKSA_TROY_OUNCE","","The mass of 1 troy ounce. kg",null,null],[7,"MKSA_CARAT","","The mass of 1 carat. kg",null,null],[7,"MKSA_GRAM_FORCE","","The force of 1 gram weight. kg m / s^2",null,null],[7,"MKSA_POUND_FORCE","","The force of 1 pound weight. kg m / s^2",null,null],[7,"MKSA_KILOPOUND_FORCE","","The force of 1 kilopound weight. kg m / s^2",null,null],[7,"MKSA_POUNDAL","","The force of 1 poundal. kg m / s^2",null,null],[7,"MKSA_CALORIE","","The energy of 1 calorie. kg m^2 / s^2",null,null],[7,"MKSA_BTU","","The energy of 1 British Thermal Unit, btu. kg m^2 / s^2",null,null],[7,"MKSA_THERM","","The energy of 1 Therm. kg m^2 / s^2",null,null],[7,"MKSA_HORSEPOWER","","The power of 1 horsepower. kg m^2 / s^3",null,null],[7,"MKSA_BAR","","The pressure of 1 bar. kg / m s^2",null,null],[7,"MKSA_STD_ATMOSPHERE","","The pressure of 1 standard atmosphere. kg / m s^2",null,null],[7,"MKSA_TORR","","The pressure of 1 torr. kg / m s^2",null,null],[7,"MKSA_METER_OF_MERCURY","","The pressure of 1 meter of mercury. kg / m s^2",null,null],[7,"MKSA_INCH_OF_MERCURY","","The pressure of 1 inch of mercury. kg / m s^2",null,null],[7,"MKSA_INCH_OF_WATER","","The pressure of 1 inch of water. kg / m s^2",null,null],[7,"MKSA_PSI","","The pressure of 1 pound per square inch. kg / m s^2",null,null],[7,"MKSA_POISE","","The dynamic viscosity of 1 poise. kg m^-1 s^-1",null,null],[7,"MKSA_STOKES","","The kinematic viscosity of 1 stokes. m^2 / s",null,null],[7,"MKSA_STILB","","The luminance of 1 stilb. cd / m^2",null,null],[7,"MKSA_LUMEN","","The luminous flux of 1 lumen. cd sr",null,null],[7,"MKSA_LUX","","The illuminance of 1 lux. cd sr / m^2",null,null],[7,"MKSA_PHOT","","The illuminance of 1 phot. cd sr / m^2",null,null],[7,"MKSA_FOOTCANDLE","","The illuminance of 1 footcandle. cd sr / m^2",null,null],[7,"MKSA_LAMBERT","","The luminance of 1 lambert. cd sr / m^2",null,null],[7,"MKSA_FOOTLAMBERT","","The luminance of 1 footlambert. cd sr / m^2",null,null],[7,"MKSA_CURIE","","The activity of 1 curie. 1 / s",null,null],[7,"MKSA_ROENTGEN","","The exposure of 1 roentgen. A s / kg",null,null],[7,"MKSA_RAD","","The absorbed dose of 1 rad. m^2 / s^2",null,null],[7,"MKSA_NEWTON","","The SI unit of force, 1 Newton. kg m / s^2",null,null],[7,"MKSA_DYNE","","The force of 1 Dyne = 10^-5 Newton. kg m / s^2",null,null],[7,"MKSA_JOULE","","The SI unit of energy, 1 Joule. kg m^2 / s^2",null,null],[7,"MKSA_ERG","","The energy 1 erg = 10^-7 Joule. kg m^2 / s^2",null,null],[7,"NUM_YOTTA","","10^24",null,null],[7,"NUM_ZETTA","","10^21",null,null],[7,"NUM_EXA","","10^18",null,null],[7,"NUM_PETA","","10^15",null,null],[7,"NUM_TERA","","10^12",null,null],[7,"NUM_GIGA","","10^9",null,null],[7,"NUM_MEGA","","10^6",null,null],[7,"NUM_KILO","","10^3",null,null],[7,"NUM_MILLI","","10^-3",null,null],[7,"NUM_MICRO","","10^-6",null,null],[7,"NUM_NANO","","10^-9",null,null],[7,"NUM_PICO","","10^-12",null,null],[7,"NUM_FEMTO","","10^-15",null,null],[7,"NUM_ATTO","","10^-18",null,null],[7,"NUM_ZEPTO","","10^-21",null,null],[7,"NUM_YOCTO","","10^-24",null,null],[0,"polynomials","rgsl","#Polynomials",null,null],[0,"evaluation","rgsl::polynomials","The functions described here evaluate the polynomial P(x) = c[0] + c[1] x + c[2] x^2 + \\dots + c[len-1] x^{len-1} using Horner’s method\nfor stability.",null,null],[5,"poly_eval","rgsl::polynomials::evaluation","This function evaluates a polynomial with real coefficients for the real variable x.",null,null],[5,"poly_complex_eval","","This function evaluates a polynomial with real coefficients for the complex variable z.",null,null],[5,"complex_poly_complex_eval","","This function evaluates a polynomial with complex coefficients for the complex variable z.",null,null],[5,"poly_eval_derivs","","This function evaluates a polynomial and its derivatives storing the results in the array res of size lenres. The output array contains\nthe values of d^k P/d x^k for the specified value of x starting with k = 0.",null,null],[0,"divided_difference_representation","rgsl::polynomials","The functions described here manipulate polynomials stored in Newton’s divided-difference representation. The use of divided-differences\nis described in Abramowitz & Stegun sections 25.1.4 and 25.2.26, and Burden and Faires, chapter 3, and discussed briefly below.",null,null],[5,"poly_dd_init","rgsl::polynomials::divided_difference_representation","This function computes a divided-difference representation of the interpolating polynomial for the points (x, y) stored in the arrays\nxa and ya of length size. On output the divided-differences of (xa,ya) are stored in the array dd, also of length size. Using the\nnotation above, dd[k] = [x_0,x_1,...,x_k].",null,null],[5,"poly_dd_eval","","This function evaluates the polynomial stored in divided-difference form in the arrays dd and xa of length size at the point x.",null,null],[5,"poly_dd_taylor","","This function converts the divided-difference representation of a polynomial to a Taylor expansion. The divided-difference representation\nis supplied in the arrays dd and xa of length size. On output the Taylor coefficients of the polynomial expanded about the point xp are\nstored in the array c also of length size. A workspace of length size must be provided in the array w.",null,null],[5,"poly_dd_hermite_init","","This function computes a divided-difference representation of the interpolating Hermite polynomial for the points (x, y) stored in the\narrays xa and ya of length size. Hermite interpolation constructs polynomials which also match first derivatives dy/dx which are provided\nin the array dya also of length size. The first derivatives can be incorported into the usual divided-difference algorithm by forming a\nnew dataset z = \\{x_0,x_0,x_1,x_1,...\\}, which is stored in the array za of length 2*size on output. On output the divided-differences\nof the Hermite representation are stored in the array dd, also of length 2*size. Using the notation above, dd[k] = [z_0,z_1,...,z_k].\nThe resulting Hermite polynomial can be evaluated by calling gsl_poly_dd_eval and using za for the input argument xa.",null,null],[0,"quadratic_equations","rgsl::polynomials","",null,null],[5,"poly_solve_quadratic","rgsl::polynomials::quadratic_equations","This function finds the real roots of the quadratic equation,",null,{"inputs":[{"name":"f64"},{"name":"f64"},{"name":"f64"},{"name":"f64"},{"name":"f64"}],"output":{"name":"i32"}}],[5,"poly_complex_solve_quadratic","","This function finds the complex roots of the quadratic equation,",null,{"inputs":[{"name":"f64"},{"name":"f64"},{"name":"f64"},{"name":"complexf64"},{"name":"complexf64"}],"output":{"name":"i32"}}],[0,"cubic_equations","rgsl::polynomials","",null,null],[5,"poly_solve_cubic","rgsl::polynomials::cubic_equations","This function finds the real roots of the cubic equation,",null,{"inputs":[{"name":"f64"},{"name":"f64"},{"name":"f64"},{"name":"f64"},{"name":"f64"},{"name":"f64"}],"output":{"name":"i32"}}],[5,"poly_complex_solve_cubic","","This function finds the complex roots of the cubic equation,",null,{"inputs":[{"name":"f64"},{"name":"f64"},{"name":"f64"},{"name":"complexf64"},{"name":"complexf64"},{"name":"complexf64"}],"output":{"name":"i32"}}],[0,"pow","rgsl","",null,null],[8,"Pow","rgsl::pow","",null,null],[10,"pow_int","","This routine computes the power x^n for integer n. The power is computed efficiently—for example, x^8 is computed as ((x^2)^2)^2, requiring only 3 multiplications.\nA version of this function which also computes the numerical error in the result is available as gsl_sf_pow_int_e.",94,null],[10,"pow_uint","","This routine computes the power x^n for integer n. The power is computed efficiently—for example, x^8 is computed as ((x^2)^2)^2, requiring only 3 multiplications.\nA version of this function which also computes the numerical error in the result is available as gsl_sf_pow_int_e.",94,null],[10,"pow2","","This function can be used to compute small integer powers x^2, x^3, etc. efficiently.",94,null],[10,"pow3","","This function can be used to compute small integer powers x^2, x^3, etc. efficiently.",94,null],[10,"pow4","","This function can be used to compute small integer powers x^2, x^3, etc. efficiently.",94,null],[10,"pow5","","This function can be used to compute small integer powers x^2, x^3, etc. efficiently.",94,null],[10,"pow6","","This function can be used to compute small integer powers x^2, x^3, etc. efficiently.",94,null],[10,"pow7","","This function can be used to compute small integer powers x^2, x^3, etc. efficiently.",94,null],[10,"pow8","","This function can be used to compute small integer powers x^2, x^3, etc. efficiently.",94,null],[10,"pow9","","This function can be used to compute small integer powers x^2, x^3, etc. efficiently.",94,null],[0,"power","rgsl","The following functions are equivalent to the function gsl_pow_int (see [1Small integer powers1](Pow.html)) with an error estimate.",null,null],[5,"pow_int","rgsl::power","This routine computes the power x^n for integer n. The power is computed using the minimum number of multiplications.\nFor example, x^8 is computed as ((x^2)^2)^2, requiring only 3 multiplications.\nFor reasons of efficiency, these functions do not check for overflow or underflow conditions.",null,{"inputs":[{"name":"f64"},{"name":"i32"}],"output":{"name":"f64"}}],[5,"pow_int_e","","This routine computes the power x^n for integer n. The power is computed using the minimum number of multiplications.\nFor example, x^8 is computed as ((x^2)^2)^2, requiring only 3 multiplications.\nFor reasons of efficiency, these functions do not check for overflow or underflow conditions.",null,null],[0,"psi","rgsl","The polygamma functions of order n are defined by",null,null],[0,"diagamma","rgsl::psi","",null,null],[5,"psi_int","rgsl::psi::diagamma","This routine computes the digamma function \\psi(n) for positive integer n. The digamma function is also called the Psi function.",null,{"inputs":[{"name":"i32"}],"output":{"name":"f64"}}],[5,"psi_int_e","","This routine computes the digamma function \\psi(n) for positive integer n. The digamma function is also called the Psi function.",null,null],[5,"psi","","This routine computes the digamma function \\psi(x) for general x, x \\ne 0.",null,{"inputs":[{"name":"f64"}],"output":{"name":"f64"}}],[5,"psi_e","","This routine computes the digamma function \\psi(x) for general x, x \\ne 0.",null,null],[5,"psi_1piy","","This routine computes the real part of the digamma function on the line 1+i y, \\Re[\\psi(1 + i y)].",null,{"inputs":[{"name":"f64"}],"output":{"name":"f64"}}],[5,"psi_1piy_e","","This routine computes the real part of the digamma function on the line 1+i y, \\Re[\\psi(1 + i y)].",null,null],[0,"trigamma","rgsl::psi","",null,null],[5,"psi_1_int","rgsl::psi::trigamma","This routine computes the Trigamma function \\psi'(n) for positive integer n.",null,{"inputs":[{"name":"i32"}],"output":{"name":"f64"}}],[5,"psi_1_int_e","","This routine computes the Trigamma function \\psi'(n) for positive integer n.",null,null],[5,"psi_1","","This routine computes the Trigamma function \\psi'(x) for general x.",null,{"inputs":[{"name":"f64"}],"output":{"name":"f64"}}],[5,"psi_1_e","","This routine computes the Trigamma function \\psi'(x) for general x.",null,null],[0,"polygamma","rgsl::psi","",null,null],[5,"psi_n","rgsl::psi::polygamma","This routine computes the polygamma function \\psi^{(n)}(x) for n >= 0, x > 0.",null,{"inputs":[{"name":"i32"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"psi_n_e","","This routine computes the polygamma function \\psi^{(n)}(x) for n >= 0, x > 0.",null,null],[0,"sort","rgsl","#Sorting",null,null],[0,"objects","rgsl::sort","The following function provides a simple alternative to the standard library function qsort. It is intended for systems lacking qsort, not\nas a replacement for it. The function qsort should be used whenever possible, as it will be faster and can provide stable ordering of equal\nelements. Documentation for qsort is available in the GNU C Library Reference Manual.",null,null],[5,"heapsort","rgsl::sort::objects","This function sorts the count elements of the array array, each of size size, into ascending order using the comparison function compare.\nThe type of the comparison function is defined by,",null,null],[5,"heapsort_index","","This function indirectly sorts the count elements of the array array, each of size size, into ascending order using the comparison\nfunction compare. The resulting permutation is stored in p, an array of length n. The elements of p give the index of the array element\nwhich would have been stored in that position if the array had been sorted in place. The first element of p gives the index of the\nleast element in array, and the last element of p gives the index of the greatest element in array. The array itself is not changed.",null,null],[0,"vectors","rgsl::sort","The following functions will sort the elements of an array or vector, either directly or indirectly. They are defined for all real and\ninteger types using the normal suffix rules. For example, the float versions of the array functions are gsl_sort_float and gsl_sort_float_index.\nThe corresponding vector functions are gsl_sort_vector_float and gsl_sort_vector_float_index. The prototypes are available in the header files\ngsl_sort_float.h gsl_sort_vector_float.h. The complete set of prototypes can be included using the header files gsl_sort.h and gsl_sort_vector.h.",null,null],[5,"sort","rgsl::sort::vectors","This function sorts the n elements of the array data with stride stride into ascending numerical order.",null,null],[5,"sort2","","This function sorts the n elements of the array data1 with stride stride1 into ascending numerical order, while making the same rearrangement\nof the array data2 with stride stride2, also of size n.",null,null],[5,"sort_vector","","This function sorts the elements of the vector v into ascending numerical order.",null,{"inputs":[{"name":"vectorf64"}],"output":null}],[5,"sort_vector2","","This function sorts the elements of the vector v1 into ascending numerical order, while making the same rearrangement of the vector v2.",null,{"inputs":[{"name":"vectorf64"},{"name":"vectorf64"}],"output":null}],[5,"sort_index","","This function indirectly sorts the n elements of the array data with stride stride into ascending order, storing the resulting\npermutation in p. The array p must be allocated with a sufficient length to store the n elements of the permutation. The elements of p\ngive the index of the array element which would have been stored in that position if the array had been sorted in place. The array data is not changed.",null,null],[5,"sort_vector_index","","This function indirectly sorts the elements of the vector v into ascending order, storing the resulting permutation in p. The elements of p give the\nindex of the vector element which would have been stored in that position if the vector had been sorted in place. The first element of p gives the index\nof the least element in v, and the last element of p gives the index of the greatest element in v. The vector v is not changed.",null,{"inputs":[{"name":"permutation"},{"name":"vectorf64"}],"output":{"name":"value"}}],[0,"select","rgsl::sort","The functions described in this section select the k smallest or largest elements of a data set of size N. The routines use an O(kN) direct insertion\nalgorithm which is suited to subsets that are small compared with the total size of the dataset. For example, the routines are useful for selecting the\n10 largest values from one million data points, but not for selecting the largest 100,000 values. If the subset is a significant part of the total dataset\nit may be faster to sort all the elements of the dataset directly with an O(N \\log N) algorithm and obtain the smallest or largest values that way.",null,null],[5,"sort_smallest","rgsl::sort::select","This function copies the k smallest elements of the array src, of size n and stride stride, in ascending numerical order into the array dest. The size\nk of the subset must be less than or equal to n. The data src is not modified by this operation.",null,null],[5,"sort_largest","","This function copies the k largest elements of the array src, of size n and stride stride, in descending numerical order into the array dest. k must\nbe less than or equal to n. The data src is not modified by this operation.",null,null],[5,"sort_vector_smallest","","This function copies the k smallest or largest elements of the vector v into the array dest. k must be less than or equal to the length of the vector v.",null,null],[5,"sort_vector_largest","","This function copies the k smallest or largest elements of the vector v into the array dest. k must be less than or equal to the length of the vector v.",null,null],[5,"sort_smallest_index","","This function stores the indices of the k smallest elements of the array src, of size n and stride stride, in the array p. The indices are chosen so that\nthe corresponding data is in ascending numerical order. k must be less than or equal to n. The data src is not modified by this operation.",null,null],[5,"sort_largest_index","","This function stores the indices of the k largest elements of the array src, of size n and stride stride, in the array p. The indices are chosen so that\nthe corresponding data is in descending numerical order. k must be less than or equal to n. The data src is not modified by this operation.",null,null],[5,"sort_vector_smallest_index","","This function stores the indices of the k smallest or largest elements of the vector v in the array p. k must be less than or equal to the length of\nthe vector v.",null,null],[5,"sort_vector_largest_index","","This function stores the indices of the k smallest or largest elements of the vector v in the array p. k must be less than or equal to the length of\nthe vector v.",null,null],[0,"statistics","rgsl","#Statistics",null,null],[5,"mean","rgsl::statistics","This function returns the arithmetic mean of data, a dataset of length n with stride stride. The arithmetic mean, or sample mean, is\ndenoted by \\Hat\\mu and defined as,",null,null],[5,"variance","","This function returns the estimated, or sample, variance of data, a dataset of length n with stride stride. The estimated variance is\ndenoted by \\Hat\\sigma^2 and is defined by,",null,null],[5,"variance_m","","This function returns the sample variance of data relative to the given value of mean. The function is computed with \\Hat\\mu replaced\nby the value of mean that you supply,",null,null],[5,"sd","","The standard deviation is defined as the square root of the variance. This function returns the square root of the corresponding\nvariance functions above.",null,null],[5,"sd_m","","The standard deviation is defined as the square root of the variance. This function returns the square root of the corresponding\nvariance functions above.",null,null],[5,"tss","","This function returns the total sum of squares (TSS) of data about the mean. For gsl_stats_tss_m the user-supplied value of mean is\nused, and for gsl_stats_tss it is computed using gsl_stats_mean.",null,null],[5,"tss_m","","This function returns the total sum of squares (TSS) of data about the mean. For gsl_stats_tss_m the user-supplied value of mean is\nused, and for gsl_stats_tss it is computed using gsl_stats_mean.",null,null],[5,"variance_with_fixed_mean","","This function computes an unbiased estimate of the variance of data when the population mean mean of the underlying distribution is\nknown a priori. In this case the estimator for the variance uses the factor 1/N and the sample mean \\Hat\\mu is replaced by the known\npopulation mean \\mu,",null,null],[5,"sd_with_fixed_mean","","This function calculates the standard deviation of data for a fixed population mean mean. The result is the square root of the\ncorresponding variance function.",null,null],[5,"absdev","","This function computes the absolute deviation from the mean of data, a dataset of length n with stride stride. The absolute deviation\nfrom the mean is defined as,",null,null],[5,"absdev_m","","This function computes the absolute deviation of the dataset data relative to the given value of mean,",null,null],[5,"skew","","This function computes the skewness of data, a dataset of length n with stride stride. The skewness is defined as,",null,null],[5,"skew_m_sd","","This function computes the skewness of the dataset data using the given values of the mean mean and standard deviation sd,",null,null],[5,"kurtosis","","This function computes the kurtosis of data, a dataset of length n with stride stride. The kurtosis is defined as,",null,null],[5,"kurtosis_m_sd","","This function computes the kurtosis of the dataset data using the given values of the mean mean and standard deviation sd,",null,null],[5,"lag1_autocorrelation","","This function computes the lag-1 autocorrelation of the dataset data.",null,null],[5,"lag1_autocorrelation_m","","This function computes the lag-1 autocorrelation of the dataset data using the given value of the mean mean.",null,null],[5,"covariance","","This function computes the covariance of the datasets data1 and data2 which must both be of the same length n.",null,null],[5,"covariance_m","","This function computes the covariance of the datasets data1 and data2 using the given values of the means, mean1 and mean2. This is\nuseful if you have already computed the means of data1 and data2 and want to avoid recomputing them.",null,null],[5,"correlation","","This function efficiently computes the Pearson correlation coefficient between the datasets data1 and data2 which must both be of the\nsame length n.",null,null],[5,"spearman","","This function computes the Spearman rank correlation coefficient between the datasets data1 and data2 which must both be of the same\nlength n. Additional workspace of size 2*n is required in work. The Spearman rank correlation between vectors x and y is equivalent to\nthe Pearson correlation between the ranked vectors x_R and y_R, where ranks are defined to be the average of the positions of an\nelement in the ascending order of the values.",null,null],[5,"wmean","","This function returns the weighted mean of the dataset data with stride stride and length n, using the set of weights w with stride\nwstride and length n. The weighted mean is defined as,",null,null],[5,"wvariance","","This function returns the estimated variance of the dataset data with stride stride and length n, using the set of weights w with\nstride wstride and length n. The estimated variance of a weighted dataset is calculated as,",null,null],[5,"wvariance_m","","This function returns the estimated variance of the weighted dataset data using the given weighted mean wmean.",null,null],[5,"wsd","","The standard deviation is defined as the square root of the variance. This function returns the square root of the corresponding\nvariance function gsl_stats_wvariance above.",null,null],[5,"wsd_m","","This function returns the square root of the corresponding variance function gsl_stats_wvariance_m above.",null,null],[5,"wvariance_with_fixed_mean","","This function computes an unbiased estimate of the variance of the weighted dataset data when the population mean mean of the\nunderlying distribution is known a priori. In this case the estimator for the variance replaces the sample mean \\Hat\\mu by the known\npopulation mean \\mu,",null,null],[5,"wsd_with_fixed_mean","","The standard deviation is defined as the square root of the variance. This function returns the square root of the corresponding\nvariance function above.",null,null],[5,"wtss","","This function returns the weighted total sum of squares (TSS) of data about the weighted mean. For gsl_stats_wtss_m the user-supplied\nvalue of wmean is used, and for gsl_stats_wtss it is computed using gsl_stats_wmean.",null,null],[5,"wtss_m","","This function returns the weighted total sum of squares (TSS) of data about the weighted mean. For gsl_stats_wtss_m the user-supplied\nvalue of wmean is used, and for gsl_stats_wtss it is computed using gsl_stats_wmean.",null,null],[5,"wabsdev","","This function computes the weighted absolute deviation from the weighted mean of data. The absolute deviation from the mean is defined\nas,",null,null],[5,"wabsdev_m","","This function computes the absolute deviation of the weighted dataset data about the given weighted mean wmean.",null,null],[5,"wskew","","This function computes the weighted skewness of the dataset data.",null,null],[5,"wskew_m_sd","","This function computes the weighted skewness of the dataset data using the given values of the weighted mean and weighted standard\ndeviation, wmean and wsd.",null,null],[5,"wkurtosis","","This function computes the weighted kurtosis of the dataset data.",null,null],[5,"wkurtosis_m_sd","","This function computes the weighted kurtosis of the dataset data using the given values of the weighted mean and weighted standard\ndeviation, wmean and wsd.",null,null],[5,"max","","This function returns the maximum value in data, a dataset of length n with stride stride. The maximum value is defined as the value\nof the element x_i which satisfies x_i >= x_j for all j.",null,null],[5,"min","","This function returns the minimum value in data, a dataset of length n with stride stride. The minimum value is defined as the value\nof the element x_i which satisfies x_i <= x_j for all j.",null,null],[5,"minmax","","This function finds both the minimum and maximum values min, max in data in a single pass.",null,null],[5,"max_index","","This function returns the index of the maximum value in data, a dataset of length n with stride stride. The maximum value is defined\nas the value of the element x_i which satisfies x_i >= x_j for all j. When there are several equal maximum elements then the first\none is chosen.",null,null],[5,"min_index","","This function returns the index of the minimum value in data, a dataset of length n with stride stride. The minimum value is defined\nas the value of the element x_i which satisfies x_i >= x_j for all j. When there are several equal minimum elements then the first\none is chosen.",null,null],[5,"minmax_index","","This function returns the indexes min_index, max_index of the minimum and maximum values in data in a single pass.",null,null],[5,"median_from_sorted_data","","This function returns the median value of sorted_data, a dataset of length n with stride stride. The elements of the array must be in\nascending numerical order. There are no checks to see whether the data are sorted, so the function gsl_sort should always be used\nfirst.",null,null],[5,"quantile_from_sorted_data","","This function returns a quantile value of sorted_data, a double-precision array of length n with stride stride. The elements of the\narray must be in ascending numerical order. The quantile is determined by the f, a fraction between 0 and 1. For example, to compute\nthe value of the 75th percentile f should have the value 0.75.",null,null],[0,"synchrotron","rgsl","",null,null],[5,"synchrotron_1","rgsl::synchrotron","This routine computes the first synchrotron function x \\int_x^\\infty dt K_{5/3}(t) for x >= 0.",null,{"inputs":[{"name":"f64"}],"output":{"name":"f64"}}],[5,"synchrotron_1_e","","This routine computes the first synchrotron function x \\int_x^\\infty dt K_{5/3}(t) for x >= 0.",null,null],[5,"synchrotron_2","","This routine computes the second synchrotron function x K_{2/3}(x) for x >= 0.",null,{"inputs":[{"name":"f64"}],"output":{"name":"f64"}}],[5,"synchrotron_2_e","","This routine computes the second synchrotron function x K_{2/3}(x) for x >= 0.",null,null],[0,"transport","rgsl","The transport functions J(n,x) are defined by the integral representations J(n,x) := \\int_0^x dt t^n e^t /(e^t - 1)^2.",null,null],[5,"transport_2","rgsl::transport","This routine computes the transport function J(2,x).",null,{"inputs":[{"name":"f64"}],"output":{"name":"f64"}}],[5,"transport_2_e","","This routine computes the transport function J(2,x).",null,null],[5,"transport_3","","This routine computes the transport function J(3,x).",null,{"inputs":[{"name":"f64"}],"output":{"name":"f64"}}],[5,"transport_3_e","","This routine computes the transport function J(3,x).",null,null],[5,"transport_4","","This routine computes the transport function J(4,x).",null,{"inputs":[{"name":"f64"}],"output":{"name":"f64"}}],[5,"transport_4_e","","This routine computes the transport function J(4,x).",null,null],[5,"transport_5","","This routine computes the transport function J(5,x).",null,{"inputs":[{"name":"f64"}],"output":{"name":"f64"}}],[5,"transport_5_e","","This routine computes the transport function J(5,x).",null,null],[0,"trigonometric","rgsl","",null,null],[8,"Trigonometric","rgsl::trigonometric","",null,null],[10,"sin","","This routine computes the sine function \\sin(x).",95,null],[10,"sin_e","","This routine computes the sine function \\sin(x).",95,null],[10,"cos","","This routine computes the cosine function \\sin(x).",95,null],[10,"cos_e","","This routine computes the cosine function \\sin(x).",95,null],[10,"sf_hypot","","This routine computes the hypotenuse function \\sqrt{x^2 + y^2} avoiding overflow and underflow.",95,null],[10,"sf_hypot_e","","This routine computes the hypotenuse function \\sqrt{x^2 + y^2} avoiding overflow and underflow.",95,null],[10,"sinc","","This routine computes \\sinc(x) = \\sin(\\pi x) / (\\pi x) for any value of x.",95,null],[10,"sinc_e","","This routine computes \\sinc(x) = \\sin(\\pi x) / (\\pi x) for any value of x.",95,null],[10,"complex_sin_e","","This function computes the complex sine, \\sin(z_r + i z_i) storing the real and imaginary parts in szr, szi.",95,null],[10,"complex_cos_e","","This function computes the complex cosine, \\cos(z_r + i z_i) storing the real and imaginary parts in czr, czi.",95,null],[10,"complex_logsin_e","","This function computes the logarithm of the complex sine, \\log(\\sin(z_r + i z_i)) storing the real and imaginary parts in lszr, lszi.",95,null],[10,"lnsinh","","This routine computes \\log(\\sinh(x)) for x > 0.",95,null],[10,"lnsinh_e","","This routine computes \\log(\\sinh(x)) for x > 0.",95,null],[10,"lncosh","","This routine computes \\log(\\cosh(x)) for x > 0.",95,null],[10,"lncosh_e","","This routine computes \\log(\\cosh(x)) for x > 0.",95,null],[10,"polar_to_rect","","This function converts the polar coordinates (r,theta) to rectilinear coordinates (x,y), x = r\\cos(\\theta), y = r\\sin(\\theta).",95,null],[10,"rect_to_polar","","This function converts the rectilinear coordinates (x,y) to polar coordinates (r,theta), such that x = r\\cos(\\theta), y = r\\sin(\\theta).\nThe argument theta lies in the range [-\\pi, \\pi].",95,null],[10,"angle_restrict_symm","","This routine forces the angle theta to lie in the range (-\\pi,\\pi].",95,null],[10,"angle_restrict_symm_e","","This routine forces the angle theta to lie in the range (-\\pi,\\pi].",95,null],[10,"angle_restrict_pos","","This routine forces the angle theta to lie in the range [0, 2\\pi).",95,null],[10,"angle_restrict_pos_e","","This routine forces the angle theta to lie in the range [0, 2\\pi).",95,null],[10,"sin_err_e","","This routine computes the sine of an angle x with an associated absolute error dx, \\sin(x \\pm dx).",95,null],[10,"cos_err_e","","This routine computes the cosine of an angle x with an associated absolute error dx, \\cos(x \\pm dx).",95,null],[0,"util","rgsl","",null,null],[5,"subinterval_too_small","rgsl::util","",null,{"inputs":[{"name":"f64"},{"name":"f64"},{"name":"f64"}],"output":{"name":"bool"}}],[0,"wavelet_transforms","rgsl","##Transform Functions",null,null],[0,"one_dimension","rgsl::wavelet_transforms","These functions compute in-place forward and inverse discrete wavelet transforms of length n with stride stride on the array data. The\nlength of the transform n is restricted to powers of two. For the transform version of the function the argument dir can be either\nforward (+1) or backward (-1). A workspace work of length n must be provided.",null,null],[5,"transform","rgsl::wavelet_transforms::one_dimension","",null,null],[5,"transform_forward","","",null,null],[5,"transform_inverse","","",null,null],[0,"two_dimension","rgsl::wavelet_transforms","The library provides functions to perform two-dimensional discrete wavelet transforms on square matrices. The matrix dimensions must\nbe an integer power of two. There are two possible orderings of the rows and columns in the two-dimensional wavelet transform,\nreferred to as the “standard” and “non-standard” forms.",null,null],[5,"transform","rgsl::wavelet_transforms::two_dimension","These functions compute two-dimensional in-place forward and inverse discrete wavelet transforms in standard form on the array\ndata stored in row-major form with dimensions size1 and size2 and physical row length tda. The dimensions must be equal\n(square matrix) and are restricted to powers of two. For the transform version of the function the argument dir can be either\nforward (+1) or backward (-1). A workspace work of the appropriate size must be provided. On exit, the appropriate elements of\nthe array data are replaced by their two-dimensional wavelet transform.",null,null],[5,"transform_forward","","These functions compute two-dimensional in-place forward and inverse discrete wavelet transforms in standard form on the array\ndata stored in row-major form with dimensions size1 and size2 and physical row length tda. The dimensions must be equal\n(square matrix) and are restricted to powers of two. For the transform version of the function the argument dir can be either\nforward (+1) or backward (-1). A workspace work of the appropriate size must be provided. On exit, the appropriate elements of\nthe array data are replaced by their two-dimensional wavelet transform.",null,null],[5,"transform_inverse","","These functions compute two-dimensional in-place forward and inverse discrete wavelet transforms in standard form on the array\ndata stored in row-major form with dimensions size1 and size2 and physical row length tda. The dimensions must be equal\n(square matrix) and are restricted to powers of two. For the transform version of the function the argument dir can be either\nforward (+1) or backward (-1). A workspace work of the appropriate size must be provided. On exit, the appropriate elements of\nthe array data are replaced by their two-dimensional wavelet transform.",null,null],[5,"transform_matrix","","These functions compute the two-dimensional in-place wavelet transform on a matrix a.",null,{"inputs":[{"name":"wavelet"},{"name":"matrixf64"},{"name":"waveletdirection"},{"name":"waveletworkspace"}],"output":{"name":"value"}}],[5,"transform_matrix_forward","","These functions compute the two-dimensional in-place wavelet transform on a matrix a.",null,{"inputs":[{"name":"wavelet"},{"name":"matrixf64"},{"name":"waveletworkspace"}],"output":{"name":"value"}}],[5,"transform_matrix_inverse","","These functions compute the two-dimensional in-place wavelet transform on a matrix a.",null,{"inputs":[{"name":"wavelet"},{"name":"matrixf64"},{"name":"waveletworkspace"}],"output":{"name":"value"}}],[5,"nstransform","","These functions compute the two-dimensional wavelet transform in non-standard form.",null,null],[5,"nstransform_forward","","These functions compute the two-dimensional wavelet transform in non-standard form.",null,null],[5,"nstransform_inverse","","These functions compute the two-dimensional wavelet transform in non-standard form.",null,null],[5,"nstransform_matrix","","These functions compute the non-standard form of the two-dimensional in-place wavelet transform on a matrix a.",null,{"inputs":[{"name":"wavelet"},{"name":"matrixf64"},{"name":"waveletdirection"},{"name":"waveletworkspace"}],"output":{"name":"value"}}],[5,"nstransform_matrix_forward","","These functions compute the non-standard form of the two-dimensional in-place wavelet transform on a matrix a.",null,{"inputs":[{"name":"wavelet"},{"name":"matrixf64"},{"name":"waveletworkspace"}],"output":{"name":"value"}}],[5,"nstransform_matrix_inverse","","These functions compute the non-standard form of the two-dimensional in-place wavelet transform on a matrix a.",null,{"inputs":[{"name":"wavelet"},{"name":"matrixf64"},{"name":"waveletworkspace"}],"output":{"name":"value"}}],[0,"zeta","rgsl","The Riemann zeta function is defined in Abramowitz & Stegun, Section 23.2.",null,null],[0,"riemann","rgsl::zeta","The Riemann zeta function is defined by the infinite sum \\zeta(s) = \\sum_{k=1}^\\infty k^{-s}.",null,null],[5,"zeta_int","rgsl::zeta::riemann","This routine computes the Riemann zeta function \\zeta(n) for integer n, n \\ne 1.",null,{"inputs":[{"name":"i32"}],"output":{"name":"f64"}}],[5,"zeta_int_e","","This routine computes the Riemann zeta function \\zeta(n) for integer n, n \\ne 1.",null,null],[5,"zeta","","This routine computes the Riemann zeta function \\zeta(s) for arbitrary s, s \\ne 1.",null,{"inputs":[{"name":"f64"}],"output":{"name":"f64"}}],[5,"zeta_e","","This routine computes the Riemann zeta function \\zeta(s) for arbitrary s, s \\ne 1.",null,null],[0,"riemann_mins_one","rgsl::zeta","For large positive argument, the Riemann zeta function approaches one.\nIn this region the fractional part is interesting, and therefore we need a function to evaluate it explicitly.",null,null],[5,"zetam1_int","rgsl::zeta::riemann_mins_one","This routine computes the Riemann zeta function \\zeta(n) for integer n, n \\ne 1.",null,{"inputs":[{"name":"i32"}],"output":{"name":"f64"}}],[5,"zetam1_int_e","","This routine computes the Riemann zeta function \\zeta(n) for integer n, n \\ne 1.",null,null],[5,"zetam1","","This routine computes \\zeta(s) - 1 for arbitrary s, s \\ne 1.",null,{"inputs":[{"name":"f64"}],"output":{"name":"f64"}}],[5,"zetam1_e","","This routine computes \\zeta(s) - 1 for arbitrary s, s \\ne 1.",null,null],[0,"hurwitz","rgsl::zeta","The Hurwitz zeta function is defined by \\zeta(s,q) = \\sum_0^\\infty (k+q)^{-s}.",null,null],[5,"hzeta","rgsl::zeta::hurwitz","This routine computes the Hurwitz zeta function \\zeta(s,q) for s > 1, q > 0.",null,{"inputs":[{"name":"f64"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"hzeta_e","","This routine computes the Hurwitz zeta function \\zeta(s,q) for s > 1, q > 0.",null,null],[0,"eta","rgsl::zeta","The eta function is defined by \\eta(s) = (1-2^{1-s}) \\zeta(s).",null,null],[5,"eta_int","rgsl::zeta::eta","This routine computes the eta function \\eta(n) for integer n.",null,{"inputs":[{"name":"i32"}],"output":{"name":"f64"}}],[5,"eta_int_e","","This routine computes the eta function \\eta(n) for integer n.",null,null],[5,"eta","","This routine computes the eta function \\eta(s) for arbitrary s.",null,{"inputs":[{"name":"f64"}],"output":{"name":"f64"}}],[5,"eta_e","","This routine computes the eta function \\eta(s) for arbitrary s.",null,null],[6,"GSLResult","rgsl","A type for results generated by GSL functions where `Err` is `enums::value::Value`.",null,null],[6,"comparison_fn","","",null,null],[6,"function","","",null,null],[6,"integration_function","","",null,null],[6,"monte_function","","",null,null],[6,"select_function","","",null,null],[6,"value_function","","",null,null],[7,"SF_GAMMA_XMAX","","The maximum x such that gamma(x) is not considered an overflow.",null,null],[7,"SF_FACT_NMAX","","The maximum n such that gsl_sf_fact(n) does not give an overflow.",null,null],[7,"SF_DOUBLEFACT_NMAX","","The maximum n such that gsl_sf_doublefact(n) does not give an overflow.",null,null],[7,"SF_MATHIEU_COEFF","","",null,null],[7,"DBL_EPSILON","","",null,null],[7,"SQRT_DBL_EPSILON","","",null,null],[7,"ROOT3_DBL_EPSILON","","",null,null],[7,"ROOT4_DBL_EPSILON","","",null,null],[7,"ROOT5_DBL_EPSILON","","",null,null],[7,"ROOT6_DBL_EPSILON","","",null,null],[7,"DBL_MIN","","",null,null],[7,"SQRT_DBL_MIN","","",null,null],[7,"ROOT3_DBL_MIN","","",null,null],[7,"ROOT4_DBL_MIN","","",null,null],[7,"ROOT5_DBL_MIN","","",null,null],[7,"ROOT6_DBL_MIN","","",null,null],[7,"DBL_MAX","","",null,null],[7,"SQRT_DBL_MAX","","",null,null],[7,"ROOT3_DBL_MAX","","",null,null],[7,"ROOT4_DBL_MAX","","",null,null],[7,"ROOT5_DBL_MAX","","",null,null],[7,"ROOT6_DBL_MAX","","",null,null],[7,"LOG_DBL_MAX","","",null,null],[7,"NAN","","",null,null],[7,"POSINF","","",null,null],[7,"NEGINF","","",null,null],[11,"from","","",96,{"inputs":[{"name":"value"}],"output":{"name":"self"}}]],"paths":[[4,"Mode"],[4,"Value"],[4,"EigenSort"],[4,"FftDirection"],[4,"GaussKonrodRule"],[4,"IntegrationQawo"],[4,"VegasMode"],[4,"ODEiv"],[4,"WaveletDirection"],[3,"BSpLineWorkspace"],[3,"BSpLineDerivWorkspace"],[3,"ChebSeries"],[3,"Combination"],[3,"ComplexF64"],[3,"ComplexF32"],[3,"DiscreteHankel"],[3,"EigenSymmetricWorkspace"],[3,"EigenSymmetricVWorkspace"],[3,"EigenHermitianWorkspace"],[3,"EigenHermitianVWorkspace"],[3,"EigenNonSymmWorkspace"],[3,"EigenNonSymmVWorkspace"],[3,"EigenGenSymmWorkspace"],[3,"EigenGenSymmVWorkspace"],[3,"EigenGenHermWorkspace"],[3,"EigenGenHermVWorkspace"],[3,"EigenGenWorkspace"],[3,"EigenGenVWorkspace"],[3,"FftComplexWaveTable"],[3,"FftComplexWorkspace"],[3,"Histogram"],[3,"HistogramPdf"],[3,"Histogram2D"],[3,"Histogram2DPdf"],[3,"IntegrationWorkspace"],[3,"IntegrationQawsTable"],[3,"IntegrationQawoTable"],[3,"CquadWorkspace"],[3,"GLFixedTable"],[3,"InterpAccel"],[3,"Interp"],[3,"InterpType"],[3,"Spline"],[3,"MathieuWorkspace"],[3,"MatrixView"],[3,"MatrixF64"],[3,"MatrixF32"],[3,"MatrixComplexF64"],[3,"MatrixComplexF32"],[3,"MinimizerType"],[3,"Minimizer"],[3,"VegasParams"],[3,"PlainMonteCarlo"],[3,"MiserMonteCarlo"],[3,"VegasMonteCarlo"],[3,"MultiFitFunction"],[3,"MultiFitFdfSolver"],[3,"MultiFitFunctionFdf"],[3,"MultiFitFdfSolverType"],[3,"MultiSet"],[3,"NTuples"],[3,"ODEiv2System"],[3,"ODEiv2Step"],[3,"ODEiv2StepType"],[3,"ODEiv2Control"],[3,"ODEiv2ControlType"],[3,"ODEiv2Evolve"],[3,"ODEiv2Driver"],[3,"Permutation"],[3,"PolyComplex"],[3,"QRng"],[3,"QRngType"],[3,"RanDiscrete"],[3,"Result"],[3,"ResultE10"],[3,"LevinUWorkspace"],[3,"LevinUTruncWorkspace"],[3,"Rng"],[3,"RngType"],[3,"VectorView"],[3,"VectorF32"],[3,"VectorF64"],[3,"VectorComplexF64"],[3,"VectorComplexF32"],[3,"Wavelet"],[3,"WaveletType"],[3,"WaveletWorkspace"],[3,"Index"],[4,"Order"],[4,"Side"],[4,"Transpose"],[4,"Uplo"],[4,"Diag"],[8,"Elementary"],[8,"Pow"],[8,"Trigonometric"],[6,"GSLResult"]]}; initSearch(searchIndex);