Git commit 5545028be21c588ef76688257013e42727f2e513 by Stefan Gerlach.
Committed on 24/12/2016 at 04:52.
Pushed by sgerlach into branch 'master'.

improved list of standard math parser functions

M  +14   -5    doc/index.docbook
M  +56   -85   src/backend/gsl/ExpressionParser.cpp
M  +4    -7    src/backend/gsl/functions.h

https://commits.kde.org/labplot/5545028be21c588ef76688257013e42727f2e513

diff --git a/doc/index.docbook b/doc/index.docbook
index 4c5a9d38..3ec00d78 100644
--- a/doc/index.docbook
+++ b/doc/index.docbook
@@ -1550,15 +1550,24 @@ The &LabPlot; parser allows you to use following 
functions:
 
 <row><entry>cbrt(x)</entry><entry><action>Cube root</action></entry></row>
 <row><entry>ceil(x)</entry><entry><action>Truncate upward to 
integer</action></entry></row>
-<row><entry>exp(x)</entry><entry><action>Exponential, base 
e</action></entry></row>
-<row><entry>expm1(x)</entry><entry><action>exp(x)-1</action></entry></row>
 <row><entry>fabs(x)</entry><entry><action>Absolute value</action></entry></row>
 <row><entry>gamma(x)</entry><entry><action>Gamma 
function</action></entry></row>
+<row><entry>ldexp(x,y)</entry><entry><action>x * 
2<superscript>y</superscript></action></entry></row>
 <row><entry>ln(x)</entry><entry><action>Logarithm, base 
e</action></entry></row>
 <row><entry>log(x)</entry><entry><action>Logarithm, base 
e</action></entry></row>
+<row><entry>log1p(x)</entry><entry><action>log(1+x)</action></entry></row>
 <row><entry>log10(x)</entry><entry><action>Logarithm, base 
10</action></entry></row>
 <row><entry>logb(x)</entry><entry><action>Radix-independent 
exponent</action></entry></row>
 <row><entry>pow(x,n)</entry><entry><action>power function 
x<superscript>n</superscript></action></entry></row>
+<row><entry>powint(x,n)</entry><entry><action>integer power function 
x<superscript>n</superscript></action></entry></row>
+<row><entry>pow2(x)</entry><entry><action>power function 
x<superscript>2</superscript></action></entry></row>
+<row><entry>pow3(x)</entry><entry><action>power function 
x<superscript>3</superscript></action></entry></row>
+<row><entry>pow4(x)</entry><entry><action>power function 
x<superscript>4</superscript></action></entry></row>
+<row><entry>pow5(x)</entry><entry><action>power function 
x<superscript>5</superscript></action></entry></row>
+<row><entry>pow6(x)</entry><entry><action>power function 
x<superscript>6</superscript></action></entry></row>
+<row><entry>pow7(x)</entry><entry><action>power function 
x<superscript>7</superscript></action></entry></row>
+<row><entry>pow8(x)</entry><entry><action>power function 
x<superscript>8</superscript></action></entry></row>
+<row><entry>pow9(x)</entry><entry><action>power function 
x<superscript>9</superscript></action></entry></row>
 <row><entry>rint(x)</entry><entry><action>round to nearest 
integer</action></entry></row>
 <row><entry>round(x)</entry><entry><action>round to nearest 
integer</action></entry></row>
 <row><entry>sqrt(x)</entry><entry><action>Square root</action></entry></row>
@@ -1708,7 +1717,9 @@ For more information about the functions see the 
documentation of GSL.
 <row><entry>erf_Z(x)</entry><entry><action>Gaussian probability function Z(x) 
= (1/(2&pi;)) exp(-x<superscript>2</superscript>/2)</action></entry></row>
 <row><entry>erf_Q(x)</entry><entry><action>upper tail of the Gaussian 
probability function Q(x) = (1/(2&pi;)) 
&int;<subscript>x</subscript><superscript>&infin;</superscript> 
exp(-t<superscript>2</superscript>/2) dt</action></entry></row>
 <row><entry>hazard(x)</entry><entry><action>hazard function for the normal 
distribution</action></entry></row>
-<row><entry>exp_mult(x,x)</entry><entry><action>exponentiate x and multiply by 
the factor y to return the product y exp(x)</action></entry></row>
+<row><entry>exp(x)</entry><entry><action>Exponential, base 
e</action></entry></row>
+<row><entry>expm1(x)</entry><entry><action>exp(x)-1</action></entry></row>
+<row><entry>exp_mult(x,y)</entry><entry><action>exponentiate x and multiply by 
the factor y to return the product y exp(x)</action></entry></row>
 <row><entry>exprel(x)</entry><entry><action>(exp(x)-1)/x using an algorithm 
that is accurate for small x</action></entry></row>
 
<row><entry>exprel2(x)</entry><entry><action>2(exp(x)-1-x)/x<superscript>2</superscript>
 using an algorithm that is accurate for small x</action></entry></row>
 <row><entry>expreln(n,x)</entry><entry><action>n-relative exponential, which 
is the n-th generalization of the functions `exprel'</action></entry></row>
@@ -1810,8 +1821,6 @@ For more information about the functions see the 
documentation of GSL.
 <row><entry>hzeta(s,q)</entry><entry><action>Hurwitz zeta function &zeta;(s,q) 
for s &gt; 1, q &gt; 0</action></entry></row>
 <row><entry>etaint(n)</entry><entry><action>eta function &eta;(n) for integer 
n</action></entry></row>
 <row><entry>eta(s)</entry><entry><action>eta function &eta;(s) for arbitrary 
s</action></entry></row>
-<row><entry>gsl_log1p(x)</entry><entry><action>log(1+x)</action></entry></row>
-<row><entry>gsl_expm1(x)</entry><entry><action>exp(x)-1</action></entry></row>
 </tbody>
 </tgroup>
 </informaltable>
diff --git a/src/backend/gsl/ExpressionParser.cpp 
b/src/backend/gsl/ExpressionParser.cpp
index d3083d96..aa8edb08 100644
--- a/src/backend/gsl/ExpressionParser.cpp
+++ b/src/backend/gsl/ExpressionParser.cpp
@@ -55,7 +55,6 @@ void ExpressionParser::initFunctions() {
                m_functions << _functions[i].name;
 
        m_functionsGroups << i18n("Standard Mathematical functions");
-       m_functionsGroups << i18n("GSL Mathematical functions");
        
//http://www.gnu.org/software/gsl/manual/html_node/Special-Functions.html
        m_functionsGroups << i18n("Airy Functions and Derivatives");
        m_functionsGroups << i18n("Bessel Functions");
@@ -120,7 +119,6 @@ void ExpressionParser::initFunctions() {
        m_functionsNames << i18n("Smallest integral value not less");
        m_functionsNames << i18n("Absolute value");
 
-       m_functionsNames << i18n("x * 2^y");
        m_functionsNames << i18n("Base 10 logarithm");
        m_functionsNames << i18n("Power function [x^y]");
        m_functionsNames << i18n("Nonnegative square root");
@@ -133,40 +131,10 @@ void ExpressionParser::initFunctions() {
        m_functionsNames << i18n("Round to the nearest integer");
        m_functionsNames << i18n("Round to the nearest integer");
 #endif
-//     m_functionsNames << i18n("Bessel function of first kind, orders 0");
-//     m_functionsNames << i18n("Bessel function of first kind, orders 1");
-//     m_functionsNames << i18n("Bessel function of first kind, orders n");
-//     m_functionsNames << i18n("Bessel function of second kind, orders 0");
-//     m_functionsNames << i18n("Bessel function of second kind, orders 1");
-//     m_functionsNames << i18n("Bessel function of second kind, orders n");
-//     m_functionsNames << i18n("Error function");
-//     m_functionsNames << i18n("Complementary error function");
-//     m_functionsNames << i18n("Exponential function");
-//     m_functionsNames << i18n("exp() - 1");
-//     m_functionsNames << i18n("Logarithm of the gamma function");
-//     m_functionsNames << i18n("Natural logarithm of the Gamma function 
(absolute value)");
-//     m_functionsNames << i18n("(True) Gamma function");
-//     m_functionsNames << i18n("Natural logarithm");
-//     m_functionsNames << i18n("Natural logarithm");
-//     m_functionsNames << i18n("log (1 + x)");
-//     m_functionsNames << i18n("Cosine");
-//     m_functionsNames << i18n("Length of the hypotenuse sqrt(x*x+y*y)");
-//     m_functionsNames << i18n("Sine");
-
-#ifndef _WIN32
-       for (int i = 0; i < 15; i++)
-#else
-       for (int i = 0; i < 10; i++)
-#endif
-               m_functionsGroupIndex << 0;
-
-       // GSL mathematical functions
        m_functionsNames << i18n("log(1+x)");
-       m_functionsNames << i18n("exp(x)-1");
        m_functionsNames << i18n("x * 2^e");
        m_functionsNames << i18n("x^n");
        m_functionsNames << i18n("x^2");
-
        m_functionsNames << i18n("x^3");
        m_functionsNames << i18n("x^4");
        m_functionsNames << i18n("x^5");
@@ -175,9 +143,12 @@ void ExpressionParser::initFunctions() {
        m_functionsNames << i18n("x^8");
        m_functionsNames << i18n("x^9");
 
-       for (int i = 0; i < 12; i++)
-               m_functionsGroupIndex << 1;
-
+#ifndef _WIN32
+       for (int i = 0; i < 25; i++)
+#else
+       for (int i = 0; i < 20; i++)
+#endif
+               m_functionsGroupIndex << 0;
 
        // Airy Functions and Derivatives
        m_functionsNames << i18n("Airy function of the first kind");
@@ -194,7 +165,7 @@ void ExpressionParser::initFunctions() {
        m_functionsNames << i18n("n-th zero of the Airy function derivative of 
the second kind");
 
        for (int i = 0; i < 12; i++)
-               m_functionsGroupIndex << 2;
+               m_functionsGroupIndex << 1;
 
        // Bessel Functions
        m_functionsNames << i18n("Regular cylindrical Bessel function of zeroth 
order");
@@ -247,22 +218,22 @@ void ExpressionParser::initFunctions() {
        m_functionsNames << i18n("n-th positive zero of the Bessel function 
Jnu");
 
        for (int i = 0; i < 44; i++)
-               m_functionsGroupIndex << 3;
+               m_functionsGroupIndex << 2;
 
        // Clausen Functions
        m_functionsNames << i18n("Clausen function");
-       m_functionsGroupIndex << 4;
+       m_functionsGroupIndex << 3;
 
        // Coulomb Functions
        m_functionsNames << i18n("Lowest-order normalized hydrogenic bound 
state radial wavefunction");
        m_functionsNames << i18n("n-th normalized hydrogenic bound state radial 
wavefunction");
 
        for (int i = 0; i < 2; i++)
-               m_functionsGroupIndex << 5;
+               m_functionsGroupIndex << 4;
 
        // Dawson Function
        m_functionsNames << i18n("Dawson integral");
-       m_functionsGroupIndex << 6;
+       m_functionsGroupIndex << 5;
 
        // Debye Functions
        m_functionsNames << i18n("First-order Debye function");
@@ -273,11 +244,11 @@ void ExpressionParser::initFunctions() {
        m_functionsNames << i18n("Sixth-order Debye function");
 
        for (int i = 0; i < 6; i++)
-               m_functionsGroupIndex << 7;
+               m_functionsGroupIndex << 6;
 
        // Dilogarithm
         m_functionsNames << i18n("Dilogarithm for a real argument");
-       m_functionsGroupIndex << 8;
+       m_functionsGroupIndex << 7;
 
        // Elliptic Integrals
         m_functionsNames << i18n("Legendre form of complete elliptic integral 
K");
@@ -293,7 +264,7 @@ void ExpressionParser::initFunctions() {
         m_functionsNames << i18n("Carlson form of incomplete elliptic integral 
RJ");
 
        for (int i = 0; i < 11; i++)
-               m_functionsGroupIndex << 9;
+               m_functionsGroupIndex << 8;
 
        // Error Functions
         m_functionsNames << i18n("Error function");
@@ -304,7 +275,7 @@ void ExpressionParser::initFunctions() {
         m_functionsNames << i18n("Hazard function for the normal distribution 
Z/Q");
 
        for (int i = 0; i < 6; i++)
-               m_functionsGroupIndex << 10;
+               m_functionsGroupIndex << 9;
 
        // Exponential Functions
         m_functionsNames << i18n("Exponential function");
@@ -315,7 +286,7 @@ void ExpressionParser::initFunctions() {
         m_functionsNames << i18n("n-relative exponential");
 
        for (int i = 0; i < 6; i++)
-               m_functionsGroupIndex << 11;
+               m_functionsGroupIndex << 10;
 
        // Exponential Integrals
         m_functionsNames << i18n("Exponential integral");
@@ -330,7 +301,7 @@ void ExpressionParser::initFunctions() {
         m_functionsNames << i18n("Arctangent integral");
 
        for (int i = 0; i < 10; i++)
-               m_functionsGroupIndex << 12;
+               m_functionsGroupIndex << 11;
 
        // Fermi-Dirac Function
         m_functionsNames << i18n("Complete Fermi-Dirac integral with index 
-1");
@@ -344,7 +315,7 @@ void ExpressionParser::initFunctions() {
         m_functionsNames << i18n("Incomplete Fermi-Dirac integral with index 
zero");
 
        for (int i = 0; i < 9; i++)
-               m_functionsGroupIndex << 13;
+               m_functionsGroupIndex << 12;
 
        // Gamma and Beta Functions
         m_functionsNames << i18n("Gamma function");
@@ -373,7 +344,7 @@ void ExpressionParser::initFunctions() {
         m_functionsNames << i18n("Normalized incomplete beta function");
 
        for (int i = 0; i < 22; i++)
-               m_functionsGroupIndex << 14;
+               m_functionsGroupIndex << 13;
 
        // Gegenbauer Functions
         m_functionsNames << i18n("Gegenbauer polynomial C_1");
@@ -382,7 +353,7 @@ void ExpressionParser::initFunctions() {
         m_functionsNames << i18n("Gegenbauer polynomial C_n");
 
        for (int i = 0; i < 4; i++)
-               m_functionsGroupIndex << 15;
+               m_functionsGroupIndex << 14;
 
        // Hypergeometric Functions
         m_functionsNames << i18n("Hypergeometric function 0F1");
@@ -397,7 +368,7 @@ void ExpressionParser::initFunctions() {
         m_functionsNames << i18n("Hypergeometric function 2F0");
 
        for (int i = 0; i < 10; i++)
-               m_functionsGroupIndex << 16;
+               m_functionsGroupIndex << 15;
 
        // Laguerre Functions
         m_functionsNames << i18n("generalized Laguerre polynomials L_1");
@@ -405,14 +376,14 @@ void ExpressionParser::initFunctions() {
         m_functionsNames << i18n("generalized Laguerre polynomials L_3");
 
        for (int i = 0; i < 3; i++)
-               m_functionsGroupIndex << 17;
+               m_functionsGroupIndex << 16;
 
        // Lambert W Functions
         m_functionsNames << i18n("Principal branch of the Lambert W function");
         m_functionsNames << i18n("Secondary real-valued branch of the Lambert 
W function");
 
        for (int i = 0; i < 2; i++)
-               m_functionsGroupIndex << 18;
+               m_functionsGroupIndex << 17;
 
        // Legendre Functions and Spherical Harmonics
         m_functionsNames << i18n("Legendre polynomial P_1");
@@ -436,7 +407,7 @@ void ExpressionParser::initFunctions() {
         m_functionsNames << i18n("l-th radial eigenfunction of the Laplacian 
on the 3-dimensional hyperbolic space");
 
        for (int i = 0; i < 18; i++)
-               m_functionsGroupIndex << 19;
+               m_functionsGroupIndex << 18;
 
        // Logarithm and Related Functions
         m_functionsNames << i18n("Logarithm");
@@ -445,11 +416,11 @@ void ExpressionParser::initFunctions() {
         m_functionsNames << i18n("log(1+x) - x");
 
        for (int i = 0; i < 4; i++)
-               m_functionsGroupIndex << 20;
+               m_functionsGroupIndex << 19;
 
        // Power Function
         m_functionsNames << i18n("x^n for integer n with an error estimate");
-       m_functionsGroupIndex << 21;
+       m_functionsGroupIndex << 20;
 
        // Psi (Digamma) Function
         m_functionsNames << i18n("Digamma function for positive integer n");
@@ -460,14 +431,14 @@ void ExpressionParser::initFunctions() {
         m_functionsNames << i18n("Polygamma function psi^(n)");
 
        for (int i = 0; i < 6; i++)
-               m_functionsGroupIndex << 22;
+               m_functionsGroupIndex << 21;
 
        // Synchrotron Functions
         m_functionsNames << i18n("First synchrotron function");
         m_functionsNames << i18n("Second synchrotron function");
 
        for (int i = 0; i < 2; i++)
-               m_functionsGroupIndex << 23;
+               m_functionsGroupIndex << 22;
 
        // Transport Functions
         m_functionsNames << i18n("Transport function");
@@ -476,7 +447,7 @@ void ExpressionParser::initFunctions() {
         m_functionsNames << i18n("Transport function");
 
        for (int i = 0; i < 4; i++)
-               m_functionsGroupIndex << 24;
+               m_functionsGroupIndex << 23;
 
        // Trigonometric Functions
         m_functionsNames << i18n("Sine");
@@ -513,7 +484,7 @@ void ExpressionParser::initFunctions() {
         m_functionsNames << i18n("restrict to [0,2 pi]");
 
        for (int i = 0; i < 32; i++)
-               m_functionsGroupIndex << 25;
+               m_functionsGroupIndex << 24;
 
        // Zeta Functions
         m_functionsNames << i18n("Riemann zeta function for integer n");
@@ -525,7 +496,7 @@ void ExpressionParser::initFunctions() {
         m_functionsNames << i18n("Eta function");
 
        for (int i = 0; i < 7; i++)
-               m_functionsGroupIndex << 26;
+               m_functionsGroupIndex << 25;
 
        // GSL Random Number Distributions: see 
http://www.gnu.org/software/gsl/manual/html_node/Random-Number-Distributions.html
        // Gaussian Distribution
@@ -545,7 +516,7 @@ void ExpressionParser::initFunctions() {
         m_functionsNames << i18n("Probability density for a bivariate Gaussian 
distribution");
 
        for (int i = 0; i < 13; i++)
-               m_functionsGroupIndex << 27;
+               m_functionsGroupIndex << 26;
 
        // Exponential Distribution
         m_functionsNames << i18n("Probability density for an exponential 
distribution");
@@ -555,7 +526,7 @@ void ExpressionParser::initFunctions() {
         m_functionsNames << i18n("Inverse cumulative distribution function Q");
 
        for (int i = 0; i < 5; i++)
-               m_functionsGroupIndex << 28;
+               m_functionsGroupIndex << 27;
 
        // Laplace Distribution
         m_functionsNames << i18n("Probability density for a Laplace 
distribution");
@@ -565,7 +536,7 @@ void ExpressionParser::initFunctions() {
         m_functionsNames << i18n("Inverse cumulative distribution function Q");
 
        for (int i = 0; i < 5; i++)
-               m_functionsGroupIndex << 29;
+               m_functionsGroupIndex << 28;
 
        // Exponential Power Distribution
        m_functionsNames << i18n("Probability density for an exponential power 
distribution");
@@ -573,7 +544,7 @@ void ExpressionParser::initFunctions() {
         m_functionsNames << i18n("Cumulative distribution function Q");
 
        for (int i = 0; i < 3; i++)
-               m_functionsGroupIndex << 30;
+               m_functionsGroupIndex << 29;
 
        // Cauchy Distribution
         m_functionsNames << i18n("Probability density for a Cauchy 
distribution");
@@ -583,7 +554,7 @@ void ExpressionParser::initFunctions() {
         m_functionsNames << i18n("Inverse cumulative distribution function Q");
 
        for (int i = 0; i < 5; i++)
-               m_functionsGroupIndex << 31;
+               m_functionsGroupIndex << 30;
 
        // Rayleigh Distribution
         m_functionsNames << i18n("Probability density for a Rayleigh 
distribution");
@@ -594,11 +565,11 @@ void ExpressionParser::initFunctions() {
         m_functionsNames << i18n("Probability density for a Rayleigh tail 
distribution");
 
        for (int i = 0; i < 6; i++)
-               m_functionsGroupIndex << 32;
+               m_functionsGroupIndex << 31;
 
        // Landau Distribution
         m_functionsNames << i18n("Probability density for a Landau 
distribution");
-       m_functionsGroupIndex << 33;
+       m_functionsGroupIndex << 32;
 
        // Gamma Distribution
         m_functionsNames << i18n("Probability density for a gamma 
distribution");
@@ -608,7 +579,7 @@ void ExpressionParser::initFunctions() {
         m_functionsNames << i18n("Inverse cumulative distribution function Q");
 
        for (int i = 0; i < 5; i++)
-               m_functionsGroupIndex << 34;
+               m_functionsGroupIndex << 33;
 
        // Flat (Uniform) Distribution
         m_functionsNames << i18n("Probability density for a uniform 
distribution");
@@ -618,7 +589,7 @@ void ExpressionParser::initFunctions() {
         m_functionsNames << i18n("Inverse cumulative distribution function Q");
 
        for (int i = 0; i < 5; i++)
-               m_functionsGroupIndex << 35;
+               m_functionsGroupIndex << 34;
 
        // Lognormal Distribution
         m_functionsNames << i18n("Probability density for a lognormal 
distribution");
@@ -628,7 +599,7 @@ void ExpressionParser::initFunctions() {
         m_functionsNames << i18n("Inverse cumulative distribution function Q");
 
        for (int i = 0; i < 5; i++)
-               m_functionsGroupIndex << 36;
+               m_functionsGroupIndex << 35;
 
        // Chi-squared Distribution
         m_functionsNames << i18n("Probability density for a chi squared 
distribution");
@@ -638,7 +609,7 @@ void ExpressionParser::initFunctions() {
         m_functionsNames << i18n("Inverse cumulative distribution function Q");
 
        for (int i = 0; i < 5; i++)
-               m_functionsGroupIndex << 37;
+               m_functionsGroupIndex << 36;
 
        // F-distribution
         m_functionsNames << i18n("Probability density for a F-distribution");
@@ -648,7 +619,7 @@ void ExpressionParser::initFunctions() {
         m_functionsNames << i18n("Inverse cumulative distribution function Q");
 
        for (int i = 0; i < 5; i++)
-               m_functionsGroupIndex << 38;
+               m_functionsGroupIndex << 37;
 
        // t-distribution
         m_functionsNames << i18n("Probability density for a t-distribution");
@@ -658,7 +629,7 @@ void ExpressionParser::initFunctions() {
         m_functionsNames << i18n("Inverse cumulative distribution function Q");
 
        for (int i = 0; i < 5; i++)
-               m_functionsGroupIndex << 39;
+               m_functionsGroupIndex << 38;
 
        // Beta Distribution
         m_functionsNames << i18n("Probability density for a beta 
distribution");
@@ -668,7 +639,7 @@ void ExpressionParser::initFunctions() {
         m_functionsNames << i18n("Inverse cumulative distribution function Q");
 
        for (int i = 0; i < 5; i++)
-               m_functionsGroupIndex << 40;
+               m_functionsGroupIndex << 39;
 
        // Logistic Distribution
         m_functionsNames << i18n("Probability density for a logistic 
distribution");
@@ -678,7 +649,7 @@ void ExpressionParser::initFunctions() {
         m_functionsNames << i18n("Inverse cumulative distribution function Q");
 
        for (int i = 0; i < 5; i++)
-               m_functionsGroupIndex << 41;
+               m_functionsGroupIndex << 40;
 
        // Pareto Distribution
         m_functionsNames << i18n("Probability density for a Pareto 
distribution");
@@ -688,7 +659,7 @@ void ExpressionParser::initFunctions() {
         m_functionsNames << i18n("Inverse cumulative distribution function Q");
 
        for (int i = 0; i < 5; i++)
-               m_functionsGroupIndex << 42;
+               m_functionsGroupIndex << 41;
 
        // Weibull Distribution
         m_functionsNames << i18n("Probability density for a Weibull 
distribution");
@@ -698,7 +669,7 @@ void ExpressionParser::initFunctions() {
         m_functionsNames << i18n("Inverse cumulative distribution function Q");
 
        for (int i = 0; i < 5; i++)
-               m_functionsGroupIndex << 43;
+               m_functionsGroupIndex << 42;
 
        // Gumbel Distribution
         m_functionsNames << i18n("Probability density for a Type-1 Gumbel 
distribution");
@@ -713,7 +684,7 @@ void ExpressionParser::initFunctions() {
         m_functionsNames << i18n("Inverse cumulative distribution function Q");
 
        for (int i = 0; i < 10; i++)
-               m_functionsGroupIndex << 44;
+               m_functionsGroupIndex << 43;
 
        // Poisson Distribution
         m_functionsNames << i18n("Probability density for a Poisson 
distribution");
@@ -721,11 +692,11 @@ void ExpressionParser::initFunctions() {
         m_functionsNames << i18n("Cumulative distribution function Q");
 
        for (int i = 0; i < 3; i++)
-               m_functionsGroupIndex << 45;
+               m_functionsGroupIndex << 44;
 
        // Bernoulli Distribution
         m_functionsNames << i18n("Probability density for a Bernoulli 
distribution");
-       m_functionsGroupIndex << 46;
+       m_functionsGroupIndex << 45;
 
        // Binomial Distribution
         m_functionsNames << i18n("Probability density for a binomial 
distribution");
@@ -736,7 +707,7 @@ void ExpressionParser::initFunctions() {
         m_functionsNames << i18n("Cumulative distribution function Q");
 
        for (int i = 0; i < 6; i++)
-               m_functionsGroupIndex << 47;
+               m_functionsGroupIndex << 46;
 
        // Pascal Distribution
         m_functionsNames << i18n("Probability density for a Pascal 
distribution");
@@ -744,7 +715,7 @@ void ExpressionParser::initFunctions() {
         m_functionsNames << i18n("Cumulative distribution function Q");
 
        for (int i = 0; i < 3; i++)
-               m_functionsGroupIndex << 48;
+               m_functionsGroupIndex << 47;
 
        // Geometric Distribution
         m_functionsNames << i18n("Probability density for a geometric 
distribution");
@@ -752,7 +723,7 @@ void ExpressionParser::initFunctions() {
         m_functionsNames << i18n("Cumulative distribution function Q");
 
        for (int i = 0; i < 3; i++)
-               m_functionsGroupIndex << 49;
+               m_functionsGroupIndex << 48;
 
        // Hypergeometric Distribution
         m_functionsNames << i18n("Probability density for a hypergeometric 
distribution");
@@ -760,11 +731,11 @@ void ExpressionParser::initFunctions() {
         m_functionsNames << i18n("Cumulative distribution function Q");
 
        for (int i = 0; i < 3; i++)
-               m_functionsGroupIndex << 50;
+               m_functionsGroupIndex << 49;
 
        // Logarithmic Distribution
         m_functionsNames << i18n("Probability density for a logarithmic 
distribution");
-       m_functionsGroupIndex << 51;
+       m_functionsGroupIndex << 50;
 }
 
 //TODO: decide whether we want to have i18n here in the backend part of the 
code
diff --git a/src/backend/gsl/functions.h b/src/backend/gsl/functions.h
index 40fc4378..6bbfdb33 100644
--- a/src/backend/gsl/functions.h
+++ b/src/backend/gsl/functions.h
@@ -43,7 +43,6 @@ double my_rand() { return rand(); }
 double my_random() { return random(); }
 double my_drand() { return random()/(double)RAND_MAX; }
 /* math.h */
-double my_ldexp(double x, double expo) { return ldexp(x, (int)expo); }
 #ifndef _WIN32
 double my_jn(double n, double x) { return jn((int)n, x); }
 double my_yn(double n,double x) { return yn((int)n, x); }
@@ -186,7 +185,6 @@ struct func _functions[] = {
        /* math.h */
        {"ceil", ceil},
        {"fabs", fabs},
-       {"ldexp", my_ldexp},
        {"log10", log10},
        {"pow", pow},
        {"sqrt", sqrt},
@@ -220,10 +218,9 @@ struct func _functions[] = {
        {"yn", my_yn},
 */
        /* GSL mathematical functions: see 
http://www.gnu.org/software/gsl/manual/gsl-ref.html#Mathematical-Functions */
-       {"gsl_log1p", gsl_log1p},
-       {"gsl_expm1", gsl_expm1},
-       {"gsl_ldexp", gsl_ldexp},
-       {"gsl_powint", my_gsl_powint},
+       {"log1p", gsl_log1p},
+       {"ldexp", my_gsl_ldexp},
+       {"powint", my_gsl_powint},
        {"pow2", gsl_pow_2},
        {"pow3", gsl_pow_3},
        {"pow4", gsl_pow_4},
@@ -423,7 +420,7 @@ struct func _functions[] = {
        {"logp", gsl_sf_log_1plusx},
        {"logpm", gsl_sf_log_1plusx_mx},
        /* Power Function */
-       {"powint", powint},
+       {"gsl_powint", powint},
        /* Psi (Digamma) Function */
        {"psiint", psiint},
        {"psi", gsl_sf_psi},

Reply via email to