Fix the CR on variancef.sci 49/13349/2
Sylvestre Ledru [Tue, 10 Dec 2013 10:06:46 +0000 (11:06 +0100)]
Change-Id: I0e31f35ac108c5d2f7655b1253fcdada72b67e44

scilab/modules/statistics/macros/variancef.sci

index b36d14c..e593de8 100644 (file)
-\r
-// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab\r
-// Copyright (C) 2013 - Scilab Enterprises - Paul BIGNIER : m parameter added\r
-// Copyright (C) 2013 - Samuel GOUGEON : http://bugzilla.scilab.org/11209 fixed\r
-// Copyright (C) 2000 - INRIA - Carlos Klimann\r
-//\r
-// This file must be used under the terms of the CeCILL.\r
-// This source file is licensed as described in the file COPYING, which\r
-// you should have received as part of this distribution.  The terms\r
-// are also available at\r
-// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt\r
-//\r
-\r
-function [s, m] = variancef(x, fre, orien, m)\r
-    //\r
-    //This function  computes  the variance  of the values  of   a vector or\r
-    //matrix x, each  of  them  counted with  a  frequency signaled   by the\r
-    //corresponding values of the integer vector or matrix fre with the same\r
-    //type of x.\r
-    //\r
-    //For a vector or matrix  x, s=variancef(x,fre) (or s=variancef(x,fre,'*') returns\r
-    //in scalar s the variance  of all the  entries of x, each value counted\r
-    //with the multiplicity indicated by the corresponding value of fre.\r
-    //\r
-    //s=variancef(x,fre,'r')(or,   equivalently, s=variancef(x,fre,1)) returns in each\r
-    //entry of the row vector s  of type 1xsize(x,'c')  the variance of each\r
-    //column of x, each value counted with the multiplicity indicated by the\r
-    //corresponding value of fre.\r
-    //\r
-    //s=variancef(x,fre,'c')(or, equivalently,   s=variancef(x,fre,2)) returns in each\r
-    //entry of  the column vector  s of type   size(x,'c')x1 the variance of\r
-    //each row of  x, each value counted with  the multiplicity indicated by\r
-    //the corresponding value of fre.\r
-    //\r
-    //The input argument m represents the a priori mean. If it is present, then the sum is\r
-    //divided by n. Otherwise ("sample variance"), it is divided by n-1.\r
-    //\r
-    //\r
-\r
-    [lhs,rhs] = argn(0)\r
-    if rhs<2 | rhs>4 then\r
-        msg = gettext("%s: Wrong number of input arguments: %d to %d expected.\n")\r
-        error(msprintf(msg, "variancef", 2, 4))\r
-    end\r
-    if x==[] | fre==[] | fre==0\r
-        s = %nan\r
-        return\r
-    end\r
-    if rhs==2 then\r
-        sumfre = sum(fre)\r
-        if sumfre <= 1 then\r
-            msg = gettext("%s: Wrong value for input argument #%d: Must be > %d.\n")\r
-        error(msprintf(msg, "variancef", 2, 1)), end\r
-        m = meanf(x,fre)\r
-        s = sum((abs(x-m).^2).*fre) / (sumfre-1)\r
-        return\r
-    end\r
-    biased = %f\r
-    if rhs==4 then\r
-        if typeof(m)~="constant" then\r
-            tmp = gettext("%s: Wrong value of m : a priori mean expected.\n")\r
-            error(msprintf(tmp, "variancef", ))\r
-        elseif orien=="*" then\r
-            if ~isscalar(m) then\r
-                tmp = gettext("%s: Wrong value of m : a priori mean expected.\n")\r
-                error(msprintf(tmp, "variancef", ))\r
-            end\r
-        elseif orien=="r" | orien==1 then\r
-            if size(m)~=[1 size(x,"c")] & ~isscalar(m) then\r
-                tmp = gettext("%s: Wrong value of m : a priori mean expected.\n")\r
-                error(msprintf(tmp, "variancef", ))\r
-            end\r
-        elseif orien=="c" | orien==2 then\r
-            if size(m)~=[size(x,"r") 1] & ~isscalar(m) then\r
-                tmp = gettext("%s: Wrong value of m : a priori mean expected.\n")\r
-                error(msprintf(tmp, "variancef", ))\r
-            end\r
-        end\r
-        if isnan(m) then\r
-            biased = %t; // Compute the biased variance\r
-        end\r
-    end\r
-    if orien=="*",\r
-        sumfre = sum(fre)\r
-        if sumfre <= 1 then\r
-            msg = _("%s: Wrong value for input argument #%d: Must be > %d.\n")\r
-        error(msprintf(msg, "variancef", 2, 1)),end\r
-        if rhs<4 then\r
-            m = meanf(x,fre)\r
-            s = sum((abs(x-m).^2).*fre) / (sumfre-1)\r
-        elseif biased == %t\r
-            m = meanf(x,fre)\r
-            s = sum((abs(x-m).^2).*fre) / sumfre\r
-        else\r
-            s = sum((abs(x-m).^2).*fre) / sumfre\r
-        end\r
-    elseif orien=="r" | orien==1,\r
-        sumfre = sum(fre, "r")\r
-        if or(sumfre==0) then\r
-            msg = _("%s: Wrong value for input argument #%d: Must be > %d.\n")\r
-            error(msprintf(msg, "variancef", 2, 1))\r
-        end\r
-        if rhs<4 | biased == %t then\r
-            m = meanf(x,fre,"r")\r
-        elseif isscalar(m) then\r
-            m = m*ones(1, size(x,"c"));\r
-        end\r
-        m2 = ones(size(x,"r"),1)*m\r
-        if rhs<4 then\r
-            s = sum((abs(x-m2).^2).*fre, "r") ./ (sumfre-1)\r
-        else\r
-            s = sum((abs(x-m2).^2).*fre, "r") ./ sumfre\r
-        end\r
-    elseif orien=="c" | orien==2,\r
-        sumfre = sum(fre, "c")\r
-        if or(sumfre==0) then\r
-            msg = _("%s: Wrong value for input argument #%d: Must be > %d.\n")\r
-            error(msprintf(msg, "variancef", 2, 1))\r
-        end\r
-        if rhs<4 | biased == %t then\r
-            m = meanf(x,fre,"c")\r
-        elseif isscalar(m) then\r
-            m = m*ones(size(x,"r"), 1);\r
-        end\r
-        m2 = m*ones(1,size(x,"c"))\r
-        if rhs<4 then\r
-            s = sum((abs(x-m2).^2).*fre, "c") ./ (sumfre-1)\r
-        else\r
-            s = sum((abs(x-m2).^2).*fre, "c") ./ sumfre\r
-        end\r
-    else\r
-        msg = _("%s: Wrong value for input argument #%d: ''%s'', ''%s'', ''%s'', %d or %d expected.\n")\r
-        error(msprintf(msg, "variancef", 3, "*", "c", "r", 1, 2))\r
-    end\r
-\r
-endfunction\r
+
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2013 - Scilab Enterprises - Paul BIGNIER : m parameter added
+// Copyright (C) 2013 - Samuel GOUGEON : http://bugzilla.scilab.org/11209 fixed
+// Copyright (C) 2000 - INRIA - Carlos Klimann
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution.  The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+//
+
+function [s, m] = variancef(x, fre, orien, m)
+    //
+    //This function  computes  the variance  of the values  of   a vector or
+    //matrix x, each  of  them  counted with  a  frequency signaled   by the
+    //corresponding values of the integer vector or matrix fre with the same
+    //type of x.
+    //
+    //For a vector or matrix  x, s=variancef(x,fre) (or s=variancef(x,fre,'*') returns
+    //in scalar s the variance  of all the  entries of x, each value counted
+    //with the multiplicity indicated by the corresponding value of fre.
+    //
+    //s=variancef(x,fre,'r')(or,   equivalently, s=variancef(x,fre,1)) returns in each
+    //entry of the row vector s  of type 1xsize(x,'c')  the variance of each
+    //column of x, each value counted with the multiplicity indicated by the
+    //corresponding value of fre.
+    //
+    //s=variancef(x,fre,'c')(or, equivalently,   s=variancef(x,fre,2)) returns in each
+    //entry of  the column vector  s of type   size(x,'c')x1 the variance of
+    //each row of  x, each value counted with  the multiplicity indicated by
+    //the corresponding value of fre.
+    //
+    //The input argument m represents the a priori mean. If it is present, then the sum is
+    //divided by n. Otherwise ("sample variance"), it is divided by n-1.
+    //
+    //
+
+    [lhs,rhs] = argn(0)
+    if rhs<2 | rhs>4 then
+        msg = gettext("%s: Wrong number of input arguments: %d to %d expected.\n")
+        error(msprintf(msg, "variancef", 2, 4))
+    end
+    if x==[] | fre==[] | fre==0
+        s = %nan
+        return
+    end
+    if rhs==2 then
+        sumfre = sum(fre)
+        if sumfre <= 1 then
+            msg = gettext("%s: Wrong value for input argument #%d: Must be > %d.\n")
+        error(msprintf(msg, "variancef", 2, 1)), end
+        m = meanf(x,fre)
+        s = sum((abs(x-m).^2).*fre) / (sumfre-1)
+        return
+    end
+    biased = %f
+    if rhs==4 then
+        if typeof(m)~="constant" then
+            tmp = gettext("%s: Wrong value of m : a priori mean expected.\n")
+            error(msprintf(tmp, "variancef", ))
+        elseif orien=="*" then
+            if ~isscalar(m) then
+                tmp = gettext("%s: Wrong value of m : a priori mean expected.\n")
+                error(msprintf(tmp, "variancef", ))
+            end
+        elseif orien=="r" | orien==1 then
+            if size(m)~=[1 size(x,"c")] & ~isscalar(m) then
+                tmp = gettext("%s: Wrong value of m : a priori mean expected.\n")
+                error(msprintf(tmp, "variancef", ))
+            end
+        elseif orien=="c" | orien==2 then
+            if size(m)~=[size(x,"r") 1] & ~isscalar(m) then
+                tmp = gettext("%s: Wrong value of m : a priori mean expected.\n")
+                error(msprintf(tmp, "variancef", ))
+            end
+        end
+        if isnan(m) then
+            biased = %t; // Compute the biased variance
+        end
+    end
+    if orien=="*",
+        sumfre = sum(fre)
+        if sumfre <= 1 then
+            msg = _("%s: Wrong value for input argument #%d: Must be > %d.\n")
+        error(msprintf(msg, "variancef", 2, 1)),end
+        if rhs<4 then
+            m = meanf(x,fre)
+            s = sum((abs(x-m).^2).*fre) / (sumfre-1)
+        elseif biased == %t
+            m = meanf(x,fre)
+            s = sum((abs(x-m).^2).*fre) / sumfre
+        else
+            s = sum((abs(x-m).^2).*fre) / sumfre
+        end
+    elseif orien=="r" | orien==1,
+        sumfre = sum(fre, "r")
+        if or(sumfre==0) then
+            msg = _("%s: Wrong value for input argument #%d: Must be > %d.\n")
+            error(msprintf(msg, "variancef", 2, 1))
+        end
+        if rhs<4 | biased == %t then
+            m = meanf(x,fre,"r")
+        elseif isscalar(m) then
+            m = m*ones(1, size(x,"c"));
+        end
+        m2 = ones(size(x,"r"),1)*m
+        if rhs<4 then
+            s = sum((abs(x-m2).^2).*fre, "r") ./ (sumfre-1)
+        else
+            s = sum((abs(x-m2).^2).*fre, "r") ./ sumfre
+        end
+    elseif orien=="c" | orien==2,
+        sumfre = sum(fre, "c")
+        if or(sumfre==0) then
+            msg = _("%s: Wrong value for input argument #%d: Must be > %d.\n")
+            error(msprintf(msg, "variancef", 2, 1))
+        end
+        if rhs<4 | biased == %t then
+            m = meanf(x,fre,"c")
+        elseif isscalar(m) then
+            m = m*ones(size(x,"r"), 1);
+        end
+        m2 = m*ones(1,size(x,"c"))
+        if rhs<4 then
+            s = sum((abs(x-m2).^2).*fre, "c") ./ (sumfre-1)
+        else
+            s = sum((abs(x-m2).^2).*fre, "c") ./ sumfre
+        end
+    else
+        msg = _("%s: Wrong value for input argument #%d: ''%s'', ''%s'', ''%s'', %d or %d expected.\n")
+        error(msprintf(msg, "variancef", 3, "*", "c", "r", 1, 2))
+    end
+
+endfunction