Speed Improvements

Bar graph of timing tests for 4 nonlinear objective functions in GAUSS 17 vs 18.

Nonlinear functions for timings shown above are taken from GAUSS examples for 'eqsolvemt' and the application module Nonlinear Equations. For reference, two of the functions used are shown at the end of this page.

Speed improvements

Experience improved speed for a number of fundamental computations in GAUSS 18 such as chained concatenation, vector-vector multiplication, and descriptive statistics.

  • Chained concatenation operations 2-4x faster.
  • X’Y for vector-vector case 15%-600% faster for vectors larger than approximately 50 elements.
  • Significant speed-up of small matrix indexing.
  • Descriptive statistics with dstatmt and OLS with function ols 15-30% faster for medium to large matrix inputs.

  • Example nonlinear functions

    In order to make the impact of the concatenation and indexing speed-ups more relevant, two of the nonlinear functions used to create the graph at the top of the page are shown below.

    proc fct_a(x);
        local f1,f2,f3;
    
        f1 = 3*x[1]^3 + 2*x[2]^2 + 5*x[3] - 10;
        f2 = -x[1]^3 - 3*x[2]^2 + x[3] + 5;
        f3 = 3*x[1]^3 + 2*x[2]^2 -4*x[3];
        retp(f1|f2|f3);
    endp;
    
    proc  fct_b(x);
        local ff1, ff2, ff3, ff4, ff5, ff6, ff7, P;
        P = 20;
        ff1 = 0.5*x[1] + x[2] + 0.5*x[3] - x[6]/x[7];
        ff2 = x[3] + x[4] + 2*x[5] - 2/x[7];
        ff3 = x[1] + x[2] + x[5] - 1/x[7];
        ff4 = -28837*x[1] - 139009*x[2] - 78213*x[3]
                + 18927*x[4] + 8427*x[5] + 13492/x[7]
                - 10690*x[6]/x[7];
        ff5 = x[1] + x[2] + x[3] + x[4] + x[5] - 1;
        ff6 = (P^2)*x[1]*x[4]^3 - 1.7837e5*x[3]*x[5];
        ff7 = x[1]*x[3] - 2.6058*x[2]*x[4];
        retp(ff1|ff2|ff3|ff4|ff5|ff6|ff7);
    endp;

    Have a Specific Question?

    Get a real answer from a real person

    Need Support?

    Get help from our friendly experts.