Hello community,

here is the log from the commit of package octave-forge-stk for 
openSUSE:Factory checked in at 2015-06-23 12:00:56
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/octave-forge-stk (Old)
 and      /work/SRC/openSUSE:Factory/.octave-forge-stk.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "octave-forge-stk"

Changes:
--------
--- /work/SRC/openSUSE:Factory/octave-forge-stk/octave-forge-stk.changes        
2015-06-16 15:14:04.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.octave-forge-stk.new/octave-forge-stk.changes   
2015-06-23 12:00:57.000000000 +0200
@@ -1,0 +2,6 @@
+Mon Jun 22 19:41:57 UTC 2015 - [email protected]
+
+- Update to version 2.3.1
+  * Bugfix release
+
+-------------------------------------------------------------------

Old:
----
  stk-2.3.0.tar.gz

New:
----
  stk-2.3.1.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ octave-forge-stk.spec ++++++
--- /var/tmp/diff_new_pack.wn2fQ7/_old  2015-06-23 12:00:57.000000000 +0200
+++ /var/tmp/diff_new_pack.wn2fQ7/_new  2015-06-23 12:00:57.000000000 +0200
@@ -18,7 +18,7 @@
 
 %define octpkg  stk
 Name:           octave-forge-%{octpkg}
-Version:        2.3.0
+Version:        2.3.1
 Release:        0
 Summary:        Small Octave Toolbox for Kriging
 License:        GPL-3.0+

++++++ stk-2.3.0.tar.gz -> stk-2.3.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/stk/ChangeLog new/stk/ChangeLog
--- old/stk/ChangeLog   2015-05-17 17:16:26.000000000 +0200
+++ new/stk/ChangeLog   2015-06-22 08:42:19.000000000 +0200
@@ -1,3 +1,99 @@
+2015-06-16  Julien Bect  <[email protected]>
+
+       check_index_file.m: Fix error handling.
+
+       * admin/build_tools/check_index_file.m: Fix error handling.
+
+       Use PKG_ADD/PKG_DEL directives in the Octave package.
+
+       * stk_init.m: Add PKG_ADD/PKG_DEL directives. Also, add an
+       optional input argument 'do_quit'; when it is true, stk_init
+       removes STK from the path.
+       * admin/build_tools/build_octpkg.m: No more PKG_ADD/PKG_DEL
+       files. They are replaced by corresponding directives in
+       stk_init.m, which is no longer renamed to PKG_ADD. Also, there are
+       now two STK_OCTAVE_PACKAGE variables to set (one in stk_init.m,
+       the other one in stk_config_rmpath.m).
+       * admin/build_tools/check_index_file.m: No need to warry about
+       PKG_ADD.m ad PKG_DEL.m anymore.
+       * admin/octpkg/post_install.m: Idem.
+       * admin/octpkg/INDEX: Add stk_init to the INDEX.
+       * config/stk_config_path.m: Do not look for PKG_ADD to detect
+       Octave package mode, since there no longer is a PKG_ADD
+       file. Instead, rely on a hard-coded STK_OCTAVE_PACKAGE variable,
+       which is modified at build time by build_octpkg (similarly to the
+       one in stk_init).
+       * config/stk_config_rmpath.m: Modify comment.
+       * config/stk_config_addpath.m: Modify comment.
+       * admin/octpkg/PKG_DEL.m: Removed. Instead, a PKD_DEL directive
+       has been inserted in stk_init.
+
+2015-06-15  Julien Bect  <[email protected]>
+
+       Avoid unnecessary calls to stk_commonsize.
+
+       * misc/distrib/stk_distrib_bivnorm_cdf.m: Avoid unnecessary calls
+       to stk_commonsize.
+       * misc/distrib/stk_distrib_normal_cdf.m: Idem.
+
+2015-06-12  Julien Bect  <[email protected]>
+
+       stk_commonsize.m: Avoid unnecessary calls to repmat.
+
+       * arrays/generic/stk_commonsize.m: Avoid unnecessary calls to
+       repmat.
+
+2015-06-11  Julien Bect  <[email protected]>
+
+       stk_commonsize.m: Accept empty dimensions
+
+       * arrays/generic/stk_commonsize.m: Accept empty dimensions, under
+       the condition that all input arguments have the same empty
+       dimensions (in which case the result is empty).
+
+2015-06-10  Julien Bect  <[email protected]>
+
+       @stk_dataframe/subsasgn.m: Preserve column names when deleting rows
+
+       * arrays/@stk_dataframe/subsasgn.m: Preserve column names when
+       deleting rows, even if the resulting array is empty.
+
+2015-05-29  Julien Bect  <[email protected]>
+
+       stk_distrib_bivnorm_cdf.m: Bugfix
+
+       * misc/distrib/stk_distrib_bivnorm_cdf.m: Fix a bug in the case of
+       mixtures of singular and non-singular cases. Add unit test.
+
+2015-05-24  Julien Bect  <[email protected]>
+
+       Clear persistent variables in stk_init
+
+       * config/stk_config_clearpersistents.m: New function that unlocks
+       all possibly mlock-ed STK files and clears all STK functions that
+       contain persistent variables.
+       * stk_init.m: Call stk_config_clearpersistents.
+       * admin/RELEASE.md: Update release instructions.
+
+2015-05-20  Julien Bect  <[email protected]>
+
+       @stk_dataframe/set.m: Fix stk_error calls (missing mnemonic)
+
+       * arrays/@stk_dataframe/set.m: Fix stk_error calls (missing mnemonic)
+
+       stk_param_estim.m: Make sure that lnv0 falls within the bounds
+
+       * paramestim/stk_param_estim.m (get_default_bounds_lnv): Make sure
+       that lnv0 falls within the bounds returned by get_default_bounds_lnv.
+
+2015-05-19  Julien Bect  <[email protected]>
+
+       stk_optim_hasfmincon.m: Improve fmincon detection
+
+       * misc/optim/stk_optim_hasfmincon.m: Try to use fmincon to check
+       that it is there, instead of relying on the result of the exist
+       function (closes ticket #30).
+
 2015-05-17  Julien Bect  <[email protected]>
 
        admin/octpkg/Makefile: Use $(MKOCTFILE) if defined
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/stk/DESCRIPTION new/stk/DESCRIPTION
--- old/stk/DESCRIPTION 2015-05-17 17:16:30.000000000 +0200
+++ new/stk/DESCRIPTION 2015-06-22 08:42:24.000000000 +0200
@@ -1,8 +1,8 @@
 Name: STK
 #
-Version: 2.3.0
+Version: 2.3.1
 #
-Date: 17-May-2015
+Date: 22-Jun-2015
 #
 Title: STK: A Small Toolbox for Kriging
 #
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/stk/INDEX new/stk/INDEX
--- old/stk/INDEX       2015-05-17 17:16:30.000000000 +0200
+++ new/stk/INDEX       2015-06-22 08:42:25.000000000 +0200
@@ -281,6 +281,7 @@
 
 Miscellaneous: options, plots...
  stk_dist
+ stk_init
  stk_options_get
  stk_options_set
  stk_plot1d
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/stk/NEWS new/stk/NEWS
--- old/stk/NEWS        2015-05-17 17:16:26.000000000 +0200
+++ new/stk/NEWS        2015-06-22 08:42:19.000000000 +0200
@@ -1,3 +1,38 @@
+Changes in version 2.3.1
+========================
+
+* Bug fixes
+
+   o stk_optim_hasfmincon.m: Detect fmincon by trying to use it, instead of
+     relying on the result of the exist function (ticket #30 closed).
+
+   o stk_param_estim.m: Make sure that the bounds that we use for the lnv
+     parameter contain the starting point lnv0 when it is provided.
+
+   o @stk_dataframe/set.m: Fix stk_error calls (missing mnemonic).
+
+   o stk_distrib_bivnorm_cdf.m: Fix a bug in the case of mixtures of
+     singular and non-singular cases.
+
+   o @stk_dataframe/subsasgn.m: Preserve column names when deleting rows, even
+     if the resulting array is empty.
+
+* Minor changes
+
+   o stk_init.m: Clear persistent variables. As a consequence, stk_init can now
+     be used to restart STK completely.
+
+   o stk_commonsize.m: Accept empty dimensions, under the condition that all
+     input arguments have the same empty dimensions (in which case the result 
is
+     empty).
+
+   o stk_commonsize.m: is now faster when some arguments already have the 
proper
+     size (unnecessary calls to repmat are avoided).
+
+   o stk_distrib_normal_cdf.m, stk_distrib_bivnorm_cdf.m: are now slightly
+     faster (unnecessary calls to stk_commonsize are avoided).
+
+
 Changes in version 2.3.0
 ========================
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/stk/doc/AUTHORS new/stk/doc/AUTHORS
--- old/stk/doc/AUTHORS 2015-05-17 17:16:26.000000000 +0200
+++ new/stk/doc/AUTHORS 2015-06-22 08:42:19.000000000 +0200
@@ -8,7 +8,8 @@
 
    BENASSI Romain
    DABOUSSI Elias
-   DUTRIEUX Heloise
+   DRAUG Carnë
+   DUTRIEUX Héloïse
    FELIOT Paul
    FRASNEDO Sophie
    JAN Benoit
@@ -19,6 +20,7 @@
    RAHALI Elham
    RAVISANKAR Ashwin
    RESSEGUIER Valentin
+   STROH Rémi
    VILLEMONTEIX Julien
 
 Individual copyright notices are provided at the beginning of each
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/stk/doc/README new/stk/doc/README
--- old/stk/doc/README  2015-05-17 17:16:26.000000000 +0200
+++ new/stk/doc/README  2015-06-22 08:42:19.000000000 +0200
@@ -34,7 +34,7 @@
 
 o General information
 
-    Version:      2.3.0
+    Version:      2.3.1
 
     Authors:      See AUTHORS file
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/stk/inst/PKG_ADD.m new/stk/inst/PKG_ADD.m
--- old/stk/inst/PKG_ADD.m      2015-05-17 17:16:30.000000000 +0200
+++ new/stk/inst/PKG_ADD.m      1970-01-01 01:00:00.000000000 +0100
@@ -1,73 +0,0 @@
-% STK_INIT initializes the STK
-%
-% CALL: stk_init()
-%
-% STK_INIT sets paths and environment variables
-
-% Copyright Notice
-%
-%    Copyright (C) 2011-2014 SUPELEC
-%
-%    Authors:   Julien Bect       <[email protected]>
-%               Emmanuel Vazquez  <[email protected]>
-
-% Copying Permission Statement
-%
-%    This file is part of
-%
-%            STK: a Small (Matlab/Octave) Toolbox for Kriging
-%               (http://sourceforge.net/projects/kriging)
-%
-%    STK is free software: you can redistribute it and/or modify it under
-%    the terms of the GNU General Public License as published by the Free
-%    Software Foundation,  either version 3  of the License, or  (at your
-%    option) any later version.
-%
-%    STK is distributed  in the hope that it will  be useful, but WITHOUT
-%    ANY WARRANTY;  without even the implied  warranty of MERCHANTABILITY
-%    or FITNESS  FOR A  PARTICULAR PURPOSE.  See  the GNU  General Public
-%    License for more details.
-%
-%    You should  have received a copy  of the GNU  General Public License
-%    along with STK.  If not, see <http://www.gnu.org/licenses/>.
-
-% Deduce the root of STK from the path to this script
-root = fileparts (mfilename ('fullpath'));
-config = fullfile (root, 'config');
-
-% Add config to the path. It will be removed at the end of this script.
-addpath (config);
-
-% Activate the MOLE
-stk_config_mole (root);
-
-% Are we using STK installed as an octave package ?
-STK_OCTAVE_PACKAGE = true;
-
-% Build MEX-files "in-place" (unless STK is used as an Octave package)
-if ~ STK_OCTAVE_PACKAGE
-    stk_config_buildmex ();
-    % To force recompilation of all MEX-files, use stk_config_buildmex (true);
-end
-
-% Add STK folders to the path (note: doing this ATFER building the MEX-files 
seems to
-% solve the problem related to having MEX-files in private folders)
-stk_config_addpath (root);
-
-% Check that MEX-files located in private folders are properly detected (note:
-% there are no MEX-files in private folders if STK is used as an Octave 
package)
-if isoctave && (~ STK_OCTAVE_PACKAGE),
-    stk_config_testprivatemex ();
-end
-
-% Configure STK with default settings
-stk_config_setup;
-
-% Uncomment this line if you want to see a lot of details about the internals
-% of stk_dataframe and stk_factorialdesign objects:
-% stk_options_set ('stk_dataframe', 'disp_format', 'verbose');
-
-% Remove config from the path
-rmpath (config);
-
-clear root config STK_OCTAVE_PACKAGE ans;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/stk/inst/PKG_DEL.m new/stk/inst/PKG_DEL.m
--- old/stk/inst/PKG_DEL.m      2015-05-17 17:16:30.000000000 +0200
+++ new/stk/inst/PKG_DEL.m      1970-01-01 01:00:00.000000000 +0100
@@ -1,40 +0,0 @@
-% PKG_DEL
-
-% Copyright Notice
-%
-%    Copyright (C) 2014 SUPELEC
-%
-%    Author:  Julien Bect  <[email protected]>
-
-% Copying Permission Statement
-%
-%    This file is part of
-%
-%            STK: a Small (Matlab/Octave) Toolbox for Kriging
-%               (http://sourceforge.net/projects/kriging)
-%
-%    STK is free software: you can redistribute it and/or modify it under
-%    the terms of the GNU General Public License as published by the Free
-%    Software Foundation,  either version 3  of the License, or  (at your
-%    option) any later version.
-%
-%    STK is distributed  in the hope that it will  be useful, but WITHOUT
-%    ANY WARRANTY;  without even the implied  warranty of MERCHANTABILITY
-%    or FITNESS  FOR A  PARTICULAR PURPOSE.  See  the GNU  General Public
-%    License for more details.
-%
-%    You should  have received a copy  of the GNU  General Public License
-%    along with STK.  If not, see <http://www.gnu.org/licenses/>.
-
-% Deduce the root of STK from the path to this script
-root = fileparts (mfilename ('fullpath'));
-config = fullfile (root, 'config');
-
-% Add config to the path. No need to remove it manually at the end of the
-% script since it will be automatically removed by stk_config_rmpath
-addpath (config);
-
-% Remove STK subdirectories from the path
-stk_config_rmpath (root);
-
-clear root config
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/stk/inst/arrays/@stk_dataframe/set.m 
new/stk/inst/arrays/@stk_dataframe/set.m
--- old/stk/inst/arrays/@stk_dataframe/set.m    2015-05-17 17:16:27.000000000 
+0200
+++ new/stk/inst/arrays/@stk_dataframe/set.m    2015-06-22 08:42:20.000000000 
+0200
@@ -45,7 +45,8 @@
             n1 = size (x.data, 1);
             n2 = length (value);
             if ~ iscell (value)
-                stk_error ('value should be a cell array.');
+                stk_error (['Input argument ''value'' should be a cell' ...
+                    ' array.'], 'InvalidArgument');
             elseif isequal (size (value), [n2 1])
                 x.rownames = value;
             else
@@ -73,7 +74,8 @@
             d2 = length (value);
             
             if ~ iscell (value)
-                stk_error ('value should be a cell array.');
+                stk_error (['Input argument ''value'' should be a cell' ...
+                    ' array.'], 'InvalidArgument');
             elseif isequal (size (value), [1 d2])
                 x.colnames = value;
             else
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/stk/inst/arrays/@stk_dataframe/subsasgn.m 
new/stk/inst/arrays/@stk_dataframe/subsasgn.m
--- old/stk/inst/arrays/@stk_dataframe/subsasgn.m       2015-05-17 
17:16:27.000000000 +0200
+++ new/stk/inst/arrays/@stk_dataframe/subsasgn.m       2015-06-22 
08:42:20.000000000 +0200
@@ -138,47 +138,47 @@
                     
                 end
                 
-            else  % assignment rhs is empty: deletion
+            else  % Assignment rhs is empty: deletion
                 
-                if L == 1,  % linear indexing
-                    if d == 1,
+                if L == 1,  % Linear indexing
+                    
+                    if d == 1,  % Column array => remove rows
                         I = idx(1).subs{1};
                         J = 1;
-                    elseif n == 1,
+                        remove_rows = true;
+                    elseif n == 1,  % Row array => remove columns
                         I = 1;
                         J = idx(1).subs{1};
+                        remove_rows = false;
                     else
-                        stk_error('Illegal indexing.', 'IllegalIndexing');
+                        stk_error ('Illegal indexing.', 'IllegalIndexing');
                     end
-                else
+                    
+                else  % Matrix-style indexing
+                    
                     I = idx(1).subs{1};
                     J = idx(1).subs{2};
+                    remove_rows = strcmp (J, ':');
+                    if ~ (remove_rows || (strcmp (I, ':')))
+                        stk_error ('Illegal indexing.', 'IllegalIndexing');
+                    end
+                    
                 end
                 
-                remove_columns = (strcmp(I, ':') ...
-                    || ((n == 1) && isequal(I, 1)));
-                remove_rows = (strcmp(J, ':') ...
-                    || ((d == 1) && isequal(J, 1)));
-                
-                if ~ (remove_columns || remove_rows)
+                if remove_rows  % Keep column names
                     
-                    stk_error('Illegal indexing.', 'IllegalIndexing');
+                    x.data(I, :) = [];                    
+                    if ~ isempty (x.rownames)
+                        x.rownames(I) = [];
+                    end
                     
-                elseif remove_columns
+                else  % Remove columns
                     
                     x.data(:, J) = [];
-                    if ~ isempty(x.colnames)
+                    if ~ isempty (x.colnames)
                         x.colnames(J) = [];
                     end
                     
-                else % remove_rows
-                    
-                    x.data(I, :) = [];
-                    
-                    if ~ isempty (x.rownames)
-                        x.rownames(I) = [];
-                    end
-                    
                 end
             end
         end
@@ -302,6 +302,14 @@
 %! x(:, :) = [];
 %! assert (isempty (x));
 
+%!test  % Delete the only row of a one-row dataframe
+%! y1 = stk_dataframe ([1.2 3.33], {'mean', 'var'})
+%! y1(1, :) = [];  % Remove the only row of data
+%! assert (isequal (size (y1), [0 2]))
+%! assert (isequal (y1.colnames, {'mean', 'var'}))
+%! y11 = get (y1, 'mean');
+%! assert (isempty (y11));
+
 %!error x{1} = 2;
 %!error x(1, 2) = [];
 %!error x(1, 2).a = 3;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/stk/inst/arrays/generic/stk_commonsize.m 
new/stk/inst/arrays/generic/stk_commonsize.m
--- old/stk/inst/arrays/generic/stk_commonsize.m        2015-05-17 
17:16:27.000000000 +0200
+++ new/stk/inst/arrays/generic/stk_commonsize.m        2015-06-22 
08:42:21.000000000 +0200
@@ -4,6 +4,7 @@
 
 % Copyright Notice
 %
+%    Copyright (C) 2015 CentraleSupelec
 %    Copyright (C) 2013, 2014 SUPELEC
 %
 %    Author:  Julien Bect  <[email protected]>
@@ -41,7 +42,7 @@
     if n == 1
         % varargin{1} is expected to be a cell array in this case
         C = varargin{1};
-        n = length (C);        
+        n = length (C);
     else
         C = varargin;
     end
@@ -54,11 +55,18 @@
     
     smax = max (s);
     
+    % Take care of empty dimensions, if any
+    b = (smax > 0);
+    smax = smax (b);
+    s = s(:, b);
+    
+    nrep = ones (size (smax));
     for i = 1:n,
-        nrep = smax ./ s(i, :);        
-        if ~ all ((s(i, :) == 1) | (nrep == 1))
+        nrep(b) = smax ./ s(i, :);
+        nrep_one = (nrep == 1);
+        if ~ all ((s(i, :) == 1) | nrep_one)
             error ('Input arguments cannot be brought to a common size.');
-        else
+        elseif ~ all (nrep_one)
             C{i} = repmat (C{i}, nrep);
         end
     end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/stk/inst/config/stk_config_addpath.m 
new/stk/inst/config/stk_config_addpath.m
--- old/stk/inst/config/stk_config_addpath.m    2015-05-17 17:16:28.000000000 
+0200
+++ new/stk/inst/config/stk_config_addpath.m    2015-06-22 08:42:21.000000000 
+0200
@@ -2,10 +2,11 @@
 
 % Copyright Notice
 %
+%    Copyright (C) 2015 CentraleSupelec
 %    Copyright (C) 2011-2014 SUPELEC
 %
-%    Authors:   Julien Bect        <[email protected]>
-%               Emmanuel Vazquez   <[email protected]>
+%    Authors:  Julien Bect       <[email protected]>
+%              Emmanuel Vazquez  <[email protected]>
 
 % Copying Permission Statement
 %
@@ -55,7 +56,7 @@
 end
 
 % Selectively add MOLE subdirectories to compensate for missing functions
-% (note that stk_init.m/PKG_ADD also does that, but it is necessary to do it 
again here,
+% (note that stk_init.m also does that, but it is necessary to do it again 
here,
 % just in case some functions were provided by another copy of STK that has 
been removed
 % from the path by stk_config_addpath (see above))
 stk_config_mole (root);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/stk/inst/config/stk_config_clearpersistents.m 
new/stk/inst/config/stk_config_clearpersistents.m
--- old/stk/inst/config/stk_config_clearpersistents.m   1970-01-01 
01:00:00.000000000 +0100
+++ new/stk/inst/config/stk_config_clearpersistents.m   2015-06-22 
08:42:21.000000000 +0200
@@ -0,0 +1,69 @@
+% STK_CONFIG_CLEARPERSISTENTS clears all persistent variables in STK
+
+% Copyright Notice
+%
+%    Copyright (C) 2015 CentraleSupelec
+%
+%    Author:  Julien Bect  <[email protected]>
+
+% Copying Permission Statement
+%
+%    This file is part of
+%
+%            STK: a Small (Matlab/Octave) Toolbox for Kriging
+%               (http://sourceforge.net/projects/kriging)
+%
+%    STK is free software: you can redistribute it and/or modify it under
+%    the terms of the GNU General Public License as published by the Free
+%    Software Foundation,  either version 3  of the License, or  (at your
+%    option) any later version.
+%
+%    STK is distributed  in the hope that it will  be useful, but WITHOUT
+%    ANY WARRANTY;  without even the implied  warranty of MERCHANTABILITY
+%    or FITNESS  FOR A  PARTICULAR PURPOSE.  See  the GNU  General Public
+%    License for more details.
+%
+%    You should  have received a copy  of the GNU  General Public License
+%    along with STK.  If not, see <http://www.gnu.org/licenses/>.
+
+function stk_config_clearpersistents ()
+
+%--- Unlock all mlocked files 
--------------------------------------------------
+
+filenames = { ...
+    'isoctave', ...
+    'stk_optim_hasfmincon', ...   
+    'stk_options_set', ...
+    'stk_parallel_engine_set', ...
+    'stk_select_optimizer'};
+
+for i = 1:(length (filenames))    
+    name = filenames{i};    
+    if mislocked (name),
+        munlock (name);
+    end
+end
+
+%--- Clear all functions that contain persistent variables 
---------------------
+
+filenames = { ...
+    'isoctave', ...
+    'stk_disp_progress', ...
+    'stk_gausscov_iso', ...
+    'stk_gausscov_aniso', ...
+    'stk_materncov_aniso', ...
+    'stk_materncov_iso', ...
+    'stk_materncov32_aniso', ...
+    'stk_materncov32_iso', ...
+    'stk_materncov52_aniso', ...
+    'stk_materncov52_iso', ...
+    'stk_options_set', ...
+    'stk_optim_hasfmincon', ...
+    'stk_parallel_engine_set', ...
+    'stk_select_optimizer'};
+
+for i = 1:(length (filenames))
+    clear (filenames{i});   
+end
+
+end % function stk_config_clearpersistents
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/stk/inst/config/stk_config_path.m 
new/stk/inst/config/stk_config_path.m
--- old/stk/inst/config/stk_config_path.m       2015-05-17 17:16:28.000000000 
+0200
+++ new/stk/inst/config/stk_config_path.m       2015-06-22 08:42:25.000000000 
+0200
@@ -2,9 +2,10 @@
 
 % Copyright Notice
 %
+%    Copyright (C) 2015 CentraleSupelec
 %    Copyright (C) 2012-2014 SUPELEC
 %
-%    Author:   Julien Bect  <[email protected]>
+%    Author:  Julien Bect  <[email protected]>
 
 % Copying Permission Statement
 %
@@ -37,11 +38,13 @@
 isoctave = (exist ('OCTAVE_VERSION', 'builtin') == 5);
 
 % Are we using STK installed as an octave package ?
-if isoctave && (exist (fullfile (root, 'PKG_ADD'), 'file') == 2)
-    STK_OCTAVE_PACKAGE = true;
-    path = {};  % don't include root here (otherwise: infinite PKG_ADD loop)
+STK_OCTAVE_PACKAGE = true;
+
+% Don't include the root in the path when STK is used as an Octave package
+% (otherwise we get an infinite PKG_ADD loop)
+if STK_OCTAVE_PACKAGE
+    path = {};
 else
-    STK_OCTAVE_PACKAGE = false;
     path = {root};
 end
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/stk/inst/config/stk_config_rmpath.m 
new/stk/inst/config/stk_config_rmpath.m
--- old/stk/inst/config/stk_config_rmpath.m     2015-05-17 17:16:28.000000000 
+0200
+++ new/stk/inst/config/stk_config_rmpath.m     2015-06-22 08:42:21.000000000 
+0200
@@ -59,9 +59,9 @@
 end
 
 % Note: it is important NOT to remove STK's root folder at this point. Indeed,
-% in the case where STK is used as an Octave package, this would result in
-% calling PKG_DEL, and therefore stk_config_rmpath again, causing an infinite
-% loop.
+% in the case where STK is used as an Octave package, this would trigger the
+% PKG_DEL directive in stk_init.m, and therefore stk_config_rmpath again,
+% causing an infinite loop.
 
 end % function stk_config_rmpath
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/stk/inst/misc/distrib/stk_distrib_bivnorm_cdf.m 
new/stk/inst/misc/distrib/stk_distrib_bivnorm_cdf.m
--- old/stk/inst/misc/distrib/stk_distrib_bivnorm_cdf.m 2015-05-17 
17:16:29.000000000 +0200
+++ new/stk/inst/misc/distrib/stk_distrib_bivnorm_cdf.m 2015-06-22 
08:42:23.000000000 +0200
@@ -57,7 +57,10 @@
 
 %--- Bring everything to a common size 
-----------------------------------------
 
-[z1, z2, sigma1, sigma2, rho] = stk_commonsize (z1, z2, sigma1, sigma2, rho);
+if ~ isequal (size (z1), size (z2), size (sigma1), size (sigma2), size (rho))
+    [z1, z2, sigma1, sigma2, rho] = stk_commonsize ...
+        (z1, z2, sigma1, sigma2, rho);
+end
 
 p = nan (size (z1));
 q = nan (size (z1));
@@ -99,7 +102,7 @@
 
 b1p = (z1_ >= 0);
 if any (b1p)
-    [p(b1p) q(b1p)] = stk_distrib_normal_cdf (z2_(b1p), 0, sigma2_(b1));
+    [p(b1p) q(b1p)] = stk_distrib_normal_cdf (z2_(b1p), 0, sigma2_(b1p));
 end
 
 end % function handle_singular_case
@@ -151,7 +154,7 @@
 %! [p, q] = stk_distrib_bivnorm_cdf ([inf 10], 0, 0, 1, 1, 0);
 %! assert (p == 1.0);
 %! assert (stk_isequal_tolrel (q, 7.619853024160489e-24, 1e-12))
-     
+
 %!test
 %! [p, q] = stk_distrib_bivnorm_cdf ([inf inf], 0, 0, 1, 1, 0);
 %! assert ((p == 1.0) && (q == 0.0))
@@ -177,7 +180,11 @@
 %! [p, q] = stk_distrib_bivnorm_cdf ([10 inf], 0, 0, 1, 1, 0);
 %! assert (p == 1.0);
 %! assert (stk_isequal_tolrel (q, 7.619853024160489e-24, 1e-12))
-     
+
 %!test
 %! [p, q] = stk_distrib_bivnorm_cdf ([inf inf], 0, 0, 1, 1, 0);
 %! assert ((p == 1.0) && (q == 0.0))
+
+%!test  % A mixture of singular and non-singular cases
+%! p = stk_distrib_bivnorm_cdf ([0 0], 0, 0, [1; 0], 1, 0);
+%! assert (isequal (p, [0.25; 0.5]));
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/stk/inst/misc/distrib/stk_distrib_normal_cdf.m 
new/stk/inst/misc/distrib/stk_distrib_normal_cdf.m
--- old/stk/inst/misc/distrib/stk_distrib_normal_cdf.m  2015-05-17 
17:16:29.000000000 +0200
+++ new/stk/inst/misc/distrib/stk_distrib_normal_cdf.m  2015-06-22 
08:42:23.000000000 +0200
@@ -54,7 +54,9 @@
         k1 = false;
     end
 else
-    [z, sigma] = stk_commonsize (z, sigma);
+    if ~ isequal (size (z), size (sigma))
+        [z, sigma] = stk_commonsize (z, sigma);
+    end
     k0 = (sigma == 0);
     k1 = (sigma > 0);
     z(k1) = z(k1) ./ sigma(k1);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/stk/inst/paramestim/stk_param_estim.m 
new/stk/inst/paramestim/stk_param_estim.m
--- old/stk/inst/paramestim/stk_param_estim.m   2015-05-17 17:16:30.000000000 
+0200
+++ new/stk/inst/paramestim/stk_param_estim.m   2015-06-22 08:42:24.000000000 
+0200
@@ -29,6 +29,7 @@
 
 % Copyright Notice
 %
+%    Copyright (C) 2015 CentraleSupelec
 %    Copyright (C) 2014 SUPELEC & A. Ravisankar
 %    Copyright (C) 2011-2013 SUPELEC
 %
@@ -88,7 +89,7 @@
 
 % Should we estimate the variance of the noise, too ?
 if ~ isempty (lnv0)
-    % param0lnv present => noise variance *must* be estimated
+    % lnv0 present => noise variance *must* be estimated
     do_estim_lnv = true;
 else
     % Otherwise, noise variance estimation happens when lnv has NaNs
@@ -274,16 +275,20 @@
 
 
 function [lblnv,ublnv] = get_default_bounds_lnv ... % 
--------------------------
-    (model, param0lnv, xi, zi) %#ok<INUSL>
+    (model, lnv0, xi, zi) %#ok<INUSL>
 
-% assume NOISEESTIM
-% constants
 TOLVAR = 0.5;
 
-% bounds for the variance parameter
+% Bounds for the variance parameter
 empirical_variance = var(zi);
-lblnv = log(eps);
-ublnv = log(empirical_variance) + TOLVAR;
+lblnv = log (eps);
+ublnv = log (empirical_variance) + TOLVAR;
+
+% Make sure that lnv0 falls within the bounds
+if ~ isempty (lnv0)
+    lblnv = min (lblnv, lnv0 - TOLVAR);
+    ublnv = max (ublnv, lnv0 + TOLVAR);
+end
 
 end % function get_default_bounds_lnv 
------------------------------------------
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/stk/inst/stk_init.m new/stk/inst/stk_init.m
--- old/stk/inst/stk_init.m     1970-01-01 01:00:00.000000000 +0100
+++ new/stk/inst/stk_init.m     2015-06-22 08:42:25.000000000 +0200
@@ -0,0 +1,95 @@
+% STK_INIT initializes the STK
+%
+% CALL: stk_init()
+%
+% STK_INIT sets paths and environment variables
+
+% Copyright Notice
+%
+%    Copyright (C) 2015 CentraleSupelec
+%    Copyright (C) 2011-2014 SUPELEC
+%
+%    Authors:  Julien Bect       <[email protected]>
+%              Emmanuel Vazquez  <[email protected]>
+
+% Copying Permission Statement
+%
+%    This file is part of
+%
+%            STK: a Small (Matlab/Octave) Toolbox for Kriging
+%               (http://sourceforge.net/projects/kriging)
+%
+%    STK is free software: you can redistribute it and/or modify it under
+%    the terms of the GNU General Public License as published by the Free
+%    Software Foundation,  either version 3  of the License, or  (at your
+%    option) any later version.
+%
+%    STK is distributed  in the hope that it will  be useful, but WITHOUT
+%    ANY WARRANTY;  without even the implied  warranty of MERCHANTABILITY
+%    or FITNESS  FOR A  PARTICULAR PURPOSE.  See  the GNU  General Public
+%    License for more details.
+%
+%    You should  have received a copy  of the GNU  General Public License
+%    along with STK.  If not, see <http://www.gnu.org/licenses/>.
+
+%% PKG_ADD: stk_init ();
+
+%% PKG_DEL: stk_init (true);
+
+function stk_init (do_quit)
+
+% Deduce the root of STK from the path to this script
+root = fileparts (mfilename ('fullpath'));
+config = fullfile (root, 'config');
+
+% Add config to the path. It will be removed at the end of this script.
+addpath (config);
+
+% Unlock all possibly mlock-ed STK files and clear all STK functions
+% that contain persistent variables
+stk_config_clearpersistents ();
+
+if (nargin > 0) && (do_quit)
+
+    % Remove STK subdirectories from the path
+    stk_config_rmpath (root);
+
+    % No need to remove config manually at the end of the script since
+    % it is removed by stk_config_rmpath. We can exit.
+    return
+
+end
+
+% Activate the MOLE
+stk_config_mole (root);
+
+% Are we using STK installed as an octave package ?
+STK_OCTAVE_PACKAGE = true;
+
+% Build MEX-files "in-place" (unless STK is used as an Octave package)
+if ~ STK_OCTAVE_PACKAGE
+    stk_config_buildmex ();
+    % To force recompilation of all MEX-files, use stk_config_buildmex (true);
+end
+
+% Add STK folders to the path (note: doing this ATFER building the MEX-files
+% seems to solve the problem related to having MEX-files in private folders)
+stk_config_addpath (root);
+
+% Check that MEX-files located in private folders are properly detected (note:
+% there are no MEX-files in private folders if STK is used as an Octave 
package)
+if isoctave && (~ STK_OCTAVE_PACKAGE),
+    stk_config_testprivatemex ();
+end
+
+% Configure STK with default settings
+stk_config_setup;
+
+% Uncomment this line if you want to see a lot of details about the internals
+% of stk_dataframe and stk_factorialdesign objects:
+% stk_options_set ('stk_dataframe', 'disp_format', 'verbose');
+
+% Remove config from the path
+rmpath (config);
+
+end % function stk_init
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/stk/inst/stk_version.m new/stk/inst/stk_version.m
--- old/stk/inst/stk_version.m  2015-05-17 17:16:30.000000000 +0200
+++ new/stk/inst/stk_version.m  2015-06-22 08:42:24.000000000 +0200
@@ -29,6 +29,6 @@
 
 function v = stk_version ()
 
-v = '2.3.0';
+v = '2.3.1';
 
 end % function stk_version
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/stk/post_install.m new/stk/post_install.m
--- old/stk/post_install.m      2015-05-17 17:16:30.000000000 +0200
+++ new/stk/post_install.m      2015-06-22 08:42:25.000000000 +0200
@@ -8,26 +8,4 @@
   stk_config_mole (root, false, true);
   rmpath (config);
 
-  # PKG_ADD/PKG_DEL (see design notes below)
-  movefile (fullfile (root, "PKG_ADD.m"), ...
-           fullfile (root, "PKG_ADD"));
-  movefile (fullfile (root, "PKG_DEL.m"), ...
-           fullfile (root, "PKG_DEL"));
-
 endfunction
-
-
-# ~~~~~ DESIGN NOTES ~~~~~
-# 
-#   The following approaches didn't work:
-#
-#   1) PKG_ADD/PKG_DEL (without .m) at the package root
-#
-#      The files are copied to the arch-dependent directory,
-#      which is not where we want them to be.
-#
-#   2) PKG_ADD/PKG_DEL (without .m) in ./inst
-#
-#      The files are not copied at all. Pity.
-#
-# ~~~~~~~~~~~~~~~~~~~~~~~~


Reply via email to