changeset 9324:6e47f7cd8aa1 octave-forge

actuarial: fix identation and use of usage()
author carandraug
date Mon, 09 Jan 2012 20:04:38 +0000
parents 05e7c17b5051
children 5dfc4caa3423
files main/actuarial/inst/bfanalisis.m main/actuarial/inst/bferguson.m main/actuarial/inst/porcentual.m main/actuarial/inst/quotaad.m main/actuarial/inst/quotald.m main/actuarial/inst/quotamack.m main/actuarial/inst/quotapanning.m main/actuarial/inst/ultimatead.m main/actuarial/inst/ultimatecc.m main/actuarial/inst/ultimateld.m main/actuarial/inst/ultimatemack.m main/actuarial/inst/ultimatepanning.m
diffstat 12 files changed, 265 insertions(+), 267 deletions(-) [+]
line wrap: on
line diff
--- a/main/actuarial/inst/bfanalisis.m	Mon Jan 09 20:03:31 2012 +0000
+++ b/main/actuarial/inst/bfanalisis.m	Mon Jan 09 20:04:38 2012 +0000
@@ -71,78 +71,77 @@
 
 function [quotas,outcome] = bfanalisis (S,V,quota_ext,ultimate_ext)
 
-#check number of arguments in
-if (nargin==0)
- usage("insuficient args. Enter a mxn triangle of losses at least");
-else
- #check S 
- [m,n] = size (S);  #triangle with m years (i=1,2,u,...u+1,u+2,....m) and n periods (k=0,1,2,...n-1)
- u = m - n;                                        #rows of the upper square
- S = fliplr(triu(fliplr(S),-u));                   #ensure S is triangular  
- quotas.ld = quotald(S);                           #quotas LD
- quotas.panning = quotapanning(S);                 #Panning quotas
- for k=1:n
-  outcome.ultld.quotasld(:,k) = bferguson(S,quotas.ld,ultimateld(S,quotas.ld),k-1);
-  outcome.ultld.quotaspanning(:,k) = bferguson(S,quotas.panning,ultimateld(S,quotas.panning),k-1);
-  outcome.ultpanning.quotasld(:,k) = bferguson(S,quotas.ld,ultimatepanning(S,quotas.ld),k-1);
-  outcome.ultpanning.quotaspanning(:,k) = bferguson(S,quotas.panning,ultimatepanning(S,quotas.panning),k-1);
- endfor
- 
- if (nargin>1)
-  # verify V
-  if (size(V) ~= [m,1])
-   usage(strcat("volume V must be of size [",num2str(m),",1]" ));
-  else 
-  for k=1:n	
-  quotas.ad = quotaad(S,V);                                #quotas AD
-  quotas.mack = quotamack(S,V);                            #quotas Mack  
-  outcome.ultld.quotasad(:,k) = bferguson(S,quotas.ad,ultimateld(S,quotas.ad),k-1);
-  outcome.ultld.quotasmack(:,k) = bferguson(S,quotas.mack,ultimateld(S,quotas.mack),k-1);
-  outcome.ultpanning.quotasad(:,k) = bferguson(S,quotas.ad,ultimatepanning(S,quotas.ad),k-1);
-  outcome.ultpanning.quotasmack(:,k) = bferguson(S,quotas.mack,ultimatepanning(S,quotas.mack),k-1);  
-  outcome.ultad.quotasld(:,k) = bferguson(S,quotas.ld,ultimatead(S,V),k-1);
-  outcome.ultad.quotaspanning(:,k) = bferguson(S,quotas.panning,ultimatead(S,V),k-1);
-  outcome.ultad.quotasad(:,k) = bferguson(S,quotas.ad,ultimatead(S,V),k-1);
-  outcome.ultad.quotasmack(:,k) = bferguson(S,quotas.mack,ultimatead(S,V),k-1);
-  outcome.ultcc.quotasld(:,k) = bferguson(S,quotas.ld,ultimatecc(S,V,quotas.ld),k-1);
-  outcome.ultcc.quotaspanning(:,k) = bferguson(S,quotas.panning,ultimatecc(S,V,quotas.panning),k-1);
-  outcome.ultcc.quotasad(:,k) = bferguson(S,quotas.ad,ultimatecc(S,V,quotas.ad),k-1);
-  outcome.ultcc.quotasmack(:,k) = bferguson(S,quotas.mack,ultimatecc(S,V,quotas.mack),k-1);
-  outcome.ultmack.quotasld(:,k) = bferguson(S,quotas.ld,ultimatemack(S,V),k-1);
-  outcome.ultmack.quotaspanning(:,k) = bferguson(S,quotas.panning,ultimatemack(S,V),k-1);
-  outcome.ultmack.quotasad(:,k) = bferguson(S,quotas.ad,ultimatemack(S,V),k-1);
-  outcome.ultmack.quotasmack(:,k) = bferguson(S,quotas.mack,ultimatemack(S,V),k-1);  
-  endfor
-  if (nargin>2)
-   #check out quota_ext
-   if (size(quota_ext) ~= [1,n])
-     usage(strcat("quota_ext must be of size [1,",num2str(n),"]" ));
-   else
-     for k=1:n	 
-     quotas.external = quota_ext;                           #external quotas    	
-     outcome.ultld.quotasexternal(:,k) = bferguson(S,quotas.external,ultimateld(S,quotas.external),k-1);   	
-     outcome.ultpanning.quotasexternal(:,k) = bferguson(S,quotas.external,ultimatepanning(S,quotas.external),k-1);
-     outcome.ultad.quotasexternal(:,k) = bferguson(S,quotas.external,ultimatead(S,V),k-1);
-     outcome.ultcc.quotasexternal(:,k) = bferguson(S,quotas.external,ultimatecc(S,V,quotas.external),k-1);
-     outcome.ultmack.quotasexternal(:,k) = bferguson(S,quotas.external,ultimatemack(S,V),k-1);
-     endfor
-     if (nargin>3)
-      #verify ultimate_ext
-      if (size(ultimate_ext) ~= [m,1])
-       usage(strcat("ultimate_ext must be of size [",num2str(m),",1]" ));
-      else 
+  #check number of arguments in
+  if (nargin==0)
+    print_usage;
+  else
+    #check S 
+    [m,n] = size (S);  #triangle with m years (i=1,2,u,...u+1,u+2,....m) and n periods (k=0,1,2,...n-1)
+    u = m - n;                                        #rows of the upper square
+    S = fliplr(triu(fliplr(S),-u));                   #ensure S is triangular
+    quotas.ld = quotald(S);                           #quotas LD
+    quotas.panning = quotapanning(S);                 #Panning quotas
+    for k=1:n
+      outcome.ultld.quotasld(:,k) = bferguson(S,quotas.ld,ultimateld(S,quotas.ld),k-1);
+      outcome.ultld.quotaspanning(:,k) = bferguson(S,quotas.panning,ultimateld(S,quotas.panning),k-1);
+      outcome.ultpanning.quotasld(:,k) = bferguson(S,quotas.ld,ultimatepanning(S,quotas.ld),k-1);
+      outcome.ultpanning.quotaspanning(:,k) = bferguson(S,quotas.panning,ultimatepanning(S,quotas.panning),k-1);
+    endfor
+
+     if (nargin>1)
+      # verify V
+      if (size(V) ~= [m,1])
+        error(strcat("volume V must be of size [",num2str(m),",1]" ));
+      else
         for k=1:n
-        outcome.ultexternal.quotasld(:,k) = bferguson(S,quotas.ld,ultimate_ext,k-1);
-        outcome.ultexternal.quotaspanning(:,k) = bferguson(S,quotas.panning,ultimate_ext,k-1);
-        outcome.ultexternal.quotasad(:,k) = bferguson(S,quotas.ad,ultimate_ext,k-1);
-        outcome.ultexternal.quotasmack(:,k) = bferguson(S,quotas.mack,ultimate_ext,k-1);
-        outcome.ultexternal.quotasexternal(:,k) = bferguson(S,quotas.external,ultimate_ext,k-1);
+        quotas.ad = quotaad(S,V);                                #quotas AD
+        quotas.mack = quotamack(S,V);                            #quotas Mack
+        outcome.ultld.quotasad(:,k) = bferguson(S,quotas.ad,ultimateld(S,quotas.ad),k-1);
+        outcome.ultld.quotasmack(:,k) = bferguson(S,quotas.mack,ultimateld(S,quotas.mack),k-1);
+        outcome.ultpanning.quotasad(:,k) = bferguson(S,quotas.ad,ultimatepanning(S,quotas.ad),k-1);
+        outcome.ultpanning.quotasmack(:,k) = bferguson(S,quotas.mack,ultimatepanning(S,quotas.mack),k-1);
+        outcome.ultad.quotasld(:,k) = bferguson(S,quotas.ld,ultimatead(S,V),k-1);
+        outcome.ultad.quotaspanning(:,k) = bferguson(S,quotas.panning,ultimatead(S,V),k-1);
+        outcome.ultad.quotasad(:,k) = bferguson(S,quotas.ad,ultimatead(S,V),k-1);
+        outcome.ultad.quotasmack(:,k) = bferguson(S,quotas.mack,ultimatead(S,V),k-1);
+        outcome.ultcc.quotasld(:,k) = bferguson(S,quotas.ld,ultimatecc(S,V,quotas.ld),k-1);
+        outcome.ultcc.quotaspanning(:,k) = bferguson(S,quotas.panning,ultimatecc(S,V,quotas.panning),k-1);
+        outcome.ultcc.quotasad(:,k) = bferguson(S,quotas.ad,ultimatecc(S,V,quotas.ad),k-1);
+        outcome.ultcc.quotasmack(:,k) = bferguson(S,quotas.mack,ultimatecc(S,V,quotas.mack),k-1);
+        outcome.ultmack.quotasld(:,k) = bferguson(S,quotas.ld,ultimatemack(S,V),k-1);
+        outcome.ultmack.quotaspanning(:,k) = bferguson(S,quotas.panning,ultimatemack(S,V),k-1);
+        outcome.ultmack.quotasad(:,k) = bferguson(S,quotas.ad,ultimatemack(S,V),k-1);
+        outcome.ultmack.quotasmack(:,k) = bferguson(S,quotas.mack,ultimatemack(S,V),k-1);
         endfor
+      if (nargin>2)
+        #check out quota_ext
+        if (size(quota_ext) ~= [1,n])
+          error(strcat("quota_ext must be of size [1,",num2str(n),"]" ));
+        else
+          for k=1:n
+            quotas.external = quota_ext;                           #external quotas
+            outcome.ultld.quotasexternal(:,k) = bferguson(S,quotas.external,ultimateld(S,quotas.external),k-1);
+            outcome.ultpanning.quotasexternal(:,k) = bferguson(S,quotas.external,ultimatepanning(S,quotas.external),k-1);
+            outcome.ultad.quotasexternal(:,k) = bferguson(S,quotas.external,ultimatead(S,V),k-1);
+            outcome.ultcc.quotasexternal(:,k) = bferguson(S,quotas.external,ultimatecc(S,V,quotas.external),k-1);
+            outcome.ultmack.quotasexternal(:,k) = bferguson(S,quotas.external,ultimatemack(S,V),k-1);
+          endfor
+          if (nargin>3)
+            #verify ultimate_ext
+            if (size(ultimate_ext) ~= [m,1])
+              error(strcat("ultimate_ext must be of size [",num2str(m),",1]" ));
+            else
+              for k=1:n
+                outcome.ultexternal.quotasld(:,k) = bferguson(S,quotas.ld,ultimate_ext,k-1);
+                outcome.ultexternal.quotaspanning(:,k) = bferguson(S,quotas.panning,ultimate_ext,k-1);
+                outcome.ultexternal.quotasad(:,k) = bferguson(S,quotas.ad,ultimate_ext,k-1);
+                outcome.ultexternal.quotasmack(:,k) = bferguson(S,quotas.mack,ultimate_ext,k-1);
+                outcome.ultexternal.quotasexternal(:,k) = bferguson(S,quotas.external,ultimate_ext,k-1);
+              endfor
+            end
+          end
+        end
       end
-    end   
-   end	
+    end
   end
- end 
 end
-
-end
--- a/main/actuarial/inst/bferguson.m	Mon Jan 09 20:03:31 2012 +0000
+++ b/main/actuarial/inst/bferguson.m	Mon Jan 09 20:04:38 2012 +0000
@@ -46,20 +46,20 @@
 
 function [BF] = bferguson (S, quotas,ultimate,k)
 
-[m,n] = size (S);        #triangle with m years (i=1,2,u,...u+1,u+2,....m) and n periods (k=0,1,2,...n-1)
-if (size(quotas) ~= [1,n])
-    usage(strcat("quotas must be of size [1,",num2str(n),"]" ))
-end
-if (size(ultimate) ~= [m,1])
-    usage(strcat("ultimate must be of size [",num2str(m),",1]" ))
-end
+  [m,n] = size (S);        #triangle with m years (i=1,2,u,...u+1,u+2,....m) and n periods (k=0,1,2,...n-1)
+  if (size(quotas) ~= [1,n])
+      error(strcat("quotas must be of size [1,",num2str(n),"]" ))
+  end
+  if (size(ultimate) ~= [m,1])
+      error(strcat("ultimate must be of size [",num2str(m),",1]" ))
+  end
 
-u = m - n;                #rows of the upper square 
-S = fliplr(triu(fliplr(S),-u));                   #ensure S is triangular  
-diagS = diag(fliplr(S),-u);
+  u = m - n;                #rows of the upper square 
+  S = fliplr(triu(fliplr(S),-u));                   #ensure S is triangular  
+  diagS = diag(fliplr(S),-u);
 
-#calcs the proyection by the bornhuetter-ferguson method
-BF = diagS((n-k+1):n,1) + (quotas(k+1)*ones(1,k) - quotas(k:-1:1))' .* ultimate((m-k+1):m);
-BF = [S(1:m-k,k+1); BF];
+  #calcs the proyection by the bornhuetter-ferguson method
+  BF = diagS((n-k+1):n,1) + (quotas(k+1)*ones(1,k) - quotas(k:-1:1))' .* ultimate((m-k+1):m);
+  BF = [S(1:m-k,k+1); BF];
 
 end
--- a/main/actuarial/inst/porcentual.m	Mon Jan 09 20:03:31 2012 +0000
+++ b/main/actuarial/inst/porcentual.m	Mon Jan 09 20:04:38 2012 +0000
@@ -20,23 +20,23 @@
 ## of the matrix @var{a}
 ## @end deftypefn
 
-function [M] = porcentual (a,dim)
+function [M] = porcentual (a, dim)
 
-if (nargin==0)
- usage("no data");
-end
+  if (nargin==0)
+   print_usage;
+  end
 
-[m,n] = size(a);
+  [m,n] = size(a);
 
-if (nargin == 1) 
- M = a./sum(sum(a));
-else
- if (dim ==1)
- M = a./ (ones(1,m)'*sum(a));
- elseif (dim==2)
- M = (a'./ (ones(1,n)'*sum(a')))';
- else
- usage("invalid dimension");
-end
+  if (nargin == 1) 
+    M = a./sum(sum(a));
+  else
+    if (dim ==1)
+      M = a./ (ones(1,m)'*sum(a));
+    elseif (dim==2)
+      M = (a'./ (ones(1,n)'*sum(a')))';
+    else
+     error("invalid dimension");
+  end
 
 end
--- a/main/actuarial/inst/quotaad.m	Mon Jan 09 20:03:31 2012 +0000
+++ b/main/actuarial/inst/quotaad.m	Mon Jan 09 20:04:38 2012 +0000
@@ -15,7 +15,7 @@
 ## <http://www.gnu.org/licenses/>.
 
 ## -*- texinfo -*-
-## @deftypefn {Function File} {@var{quotas} =} quotaad (@var{s},@var{v})
+## @deftypefn {Function File} {@var{quotas} =} quotaad (@var{s}, @var{v})
 ## Calculate the cumulative quotas by the Additive method.
 ##
 ## @var{s} is a mxn matrix that contains the run-off triangle, where m is the number of accident-years
@@ -56,30 +56,30 @@
 
 function [quotas] = quotaad (S,V)
 
-[m,n] = size (S);           #triangle with m years (i=1,2,u,...u+1,u+2,....m) and n periods (k=0,1,2,...n-1)
-u = m - n;                                     #rows of the upper square
-S = fliplr(triu(fliplr(S),-u));                   #ensure S is triangular  
-if (size(V) ~= [m,1])
- usage(strcat("volume V must be of size [",num2str(m),",1]" ));
-end
+  [m,n] = size (S);           #triangle with m years (i=1,2,u,...u+1,u+2,....m) and n periods (k=0,1,2,...n-1)
+  u = m - n;                                     #rows of the upper square
+  S = fliplr(triu(fliplr(S),-u));                   #ensure S is triangular
+  if (size(V) ~= [m,1])
+    error(strcat("volume V must be of size [",num2str(m),",1]" ));
+  end
 
-# Z triangle
-Z = [S(:,1), S(:,2:n)-S(:,1:n-1)];
-Z = fliplr(triu(fliplr(Z),-u));                #clean Z
+  # Z triangle
+  Z = [S(:,1), S(:,2:n)-S(:,1:n-1)];
+  Z = fliplr(triu(fliplr(Z),-u));                #clean Z
 
-# calc the empirical incremental loss ratios
-LRI = Z ./ repmat (V,1,n);
- 
-#weights V(i)/sum(1,n-k,V(i))
-W = repmat(V,1,n);                             #numerator
-W =fliplr(triu(fliplr(W),-u));                 #clean low triangle
-a = repmat(sum(W),m,1);                        #denominator
-a = fliplr(triu(fliplr(a),-u));                #clean low triangle
-W = W./a;                                      #divide by
-W = fliplr(triu(fliplr(W),-u));
+  # calc the empirical incremental loss ratios
+  LRI = Z ./ repmat (V,1,n);
 
-# incremental Loss Ratios AD
-LRI_AD  = diag(LRI' * W)';                     #weighted product
-quotas = cumsum(porcentual(LRI_AD));           #calc cumulated quota 
+  #weights V(i)/sum(1,n-k,V(i))
+  W = repmat(V,1,n);                             #numerator
+  W =fliplr(triu(fliplr(W),-u));                 #clean low triangle
+  a = repmat(sum(W),m,1);                        #denominator
+  a = fliplr(triu(fliplr(a),-u));                #clean low triangle
+  W = W./a;                                      #divide by
+  W = fliplr(triu(fliplr(W),-u));
+
+  # incremental Loss Ratios AD
+  LRI_AD = diag(LRI' * W)';                     #weighted product
+  quotas = cumsum(porcentual(LRI_AD));           #calc cumulated quota 
 
 end
--- a/main/actuarial/inst/quotald.m	Mon Jan 09 20:03:31 2012 +0000
+++ b/main/actuarial/inst/quotald.m	Mon Jan 09 20:04:38 2012 +0000
@@ -49,24 +49,24 @@
 
 function quotas = quotald(S)
 
-[m,n] = size (S);           #triangle with m years (i=1,2,u,...u+1,u+2,....m) and n periods (k=0,1,2,...n-1)
-u = m - n;                                     #rows of the upper square
-S = fliplr(triu(fliplr(S),-u));                   #ensure S is triangular  
+  [m,n] = size (S);           #triangle with m years (i=1,2,u,...u+1,u+2,....m) and n periods (k=0,1,2,...n-1)
+  u = m - n;                                     #rows of the upper square
+  S = fliplr(triu(fliplr(S),-u));                   #ensure S is triangular
 
-# calculate the triangle of individual development factors (LDI).
-LDI = [ones(m,1), S(:,2:n)./S(:,1:n-1)];
-LDI = fliplr(triu(fliplr(LDI),-u));
-LDI (m,1) = 0;                     #last row element without partner
+  # calculate the triangle of individual development factors (LDI)
+  LDI = [ones(m,1), S(:,2:n)./S(:,1:n-1)];
+  LDI = fliplr(triu(fliplr(LDI),-u));
+  LDI (m,1) = 0;                     #last row element without partner
 
-# weights
-W =  fliplr(triu(fliplr(S),1-u));  #get T values to use
-W =  shift (W,1,2);                #redim k = k-1, 
-W = porcentual(W,1);
+  # weights
+  W =  fliplr(triu(fliplr(S),1-u));  #get T values to use
+  W =  shift (W,1,2);                #redim k = k-1,
+  W = porcentual(W,1);
 
-#individual development factors (LDI) or Chainladder factors
-LDI_CL  = diag(LDI' * W)';                 #weighted product
-quotas = 1./cumprod(fliplr(LDI_CL));       #calcs cumulated quota
-quotas (n) = 1;                            #last value is 1
-quotas = fliplr(shift(quotas,1));
+  #individual development factors (LDI) or Chainladder factors
+  LDI_CL = diag(LDI' * W)';                 #weighted product
+  quotas = 1./cumprod(fliplr(LDI_CL));       #calcs cumulated quota
+  quotas (n) = 1;                            #last value is 1
+  quotas = fliplr(shift(quotas,1));
 
 end
--- a/main/actuarial/inst/quotamack.m	Mon Jan 09 20:03:31 2012 +0000
+++ b/main/actuarial/inst/quotamack.m	Mon Jan 09 20:04:38 2012 +0000
@@ -15,7 +15,7 @@
 ## <http://www.gnu.org/licenses/>.
 
 ## -*- texinfo -*-
-## @deftypefn {Function File} {@var{quotas} =} quotaad (@var{s},@var{v})
+## @deftypefn {Function File} {@var{quotas} =} quotaad (@var{s}, @var{v})
 ## Calculate the cumulative quotas by the Mack method.
 ##
 ## @var{s} is a mxn matrix that contains the run-off triangle, where m is the number of accident-years
@@ -82,47 +82,47 @@
 ## @seealso {bferguson, quotald, quotapanning, quotaad}
 ## @end deftypefn
 
-function [quotas] = quotamack (S,V)
+function [quotas] = quotamack (S, V)
 
-[m,n] = size (S);           #triangle with m years (i=1,2,u,...u+1,u+2,....m) and n periods (k=0,1,2,...n-1)
-u = m - n;                                     #rows of the upper square
-S = fliplr(triu(fliplr(S),-u));                   #ensure S is triangular  
+  [m,n] = size (S);           #triangle with m years (i=1,2,u,...u+1,u+2,....m) and n periods (k=0,1,2,...n-1)
+  u = m - n;                                     #rows of the upper square
+  S = fliplr(triu(fliplr(S),-u));                   #ensure S is triangular
 
-if (size(V) ~= [m,1])
- usage(strcat("volume V must be of size [",num2str(m),",1]" ));
-end  
+  if (size(V) ~= [m,1])
+    error(strcat("volume V must be of size [",num2str(m),",1]" ));
+  end  
 
-# Z triangle 
-Z = [S(:,1), S(:,2:n)-S(:,1:n-1)];
-Z = fliplr(triu(fliplr(Z),-u));             #clean Z
+  # Z triangle 
+  Z = [S(:,1), S(:,2:n)-S(:,1:n-1)];
+  Z = fliplr(triu(fliplr(Z),-u));             #clean Z
 
-# calculate empirical individual loss ratios
-a = repmat (V,1,n);
-LRI = Z ./ a;
+  # calculate empirical individual loss ratios
+  a = repmat (V,1,n);
+  LRI = Z ./ a;
 
-# weights V(i)/sum(1,n-k,V(i)) 
-num =fliplr(triu(fliplr(a),-u));            #numerator and clean low triangle
-den = repmat(sum(num),m,1);                 #denominator
-den = fliplr(triu(fliplr(den),-u));         #clean low triangle
-W = num./den;                               #divide by
-W = fliplr(triu(fliplr(W),-u));
+  # weights V(i)/sum(1,n-k,V(i)) 
+  num =fliplr(triu(fliplr(a),-u));            #numerator and clean low triangle
+  den = repmat(sum(num),m,1);                 #denominator
+  den = fliplr(triu(fliplr(den),-u));         #clean low triangle
+  W = num./den;                               #divide by
+  W = fliplr(triu(fliplr(W),-u));
 
-# incremental Loss Ratios AD
-LRI_AD  = diag(LRI' * W)';                  #weighted product
+  # incremental Loss Ratios AD
+  LRI_AD  = diag(LRI' * W)';                  #weighted product
 
-if (u==0)
-b = (diag(fliplr(S),-u) ./ flipud(cumsum(LRI_AD)') ) ./ V;
-else
-b = ([S(1:u,n); diag(fliplr(S),-u)] ./ [sum(LRI_AD)*ones(1,u);flipud(cumsum(LRI_AD)')] ) ./ V;
-end
+  if (u==0)
+  b = (diag(fliplr(S),-u) ./ flipud(cumsum(LRI_AD)') ) ./ V;
+  else
+  b = ([S(1:u,n); diag(fliplr(S),-u)] ./ [sum(LRI_AD)*ones(1,u);flipud(cumsum(LRI_AD)')] ) ./ V;
+  end
 
-sZ = sum (Z);                              #sum of Z
-sb = repmat(b,1,n);
-sb = fliplr(triu(fliplr(sb),-u));
-sV = repmat(V,1,n);
-sV = fliplr(triu(fliplr(sV),-u));
+  sZ = sum (Z);                              #sum of Z
+  sb = repmat(b,1,n);
+  sb = fliplr(triu(fliplr(sb),-u));
+  sV = repmat(V,1,n);
+  sV = fliplr(triu(fliplr(sV),-u));
 
-LRI_Mack = sZ ./ (diag(sb'*sV))';
-quotas = cumsum(porcentual(LRI_Mack));     #calculate cumulated  quota  
+  LRI_Mack = sZ ./ (diag(sb'*sV))';
+  quotas = cumsum(porcentual(LRI_Mack));     #calculate cumulated  quota
 
 end
--- a/main/actuarial/inst/quotapanning.m	Mon Jan 09 20:03:31 2012 +0000
+++ b/main/actuarial/inst/quotapanning.m	Mon Jan 09 20:04:38 2012 +0000
@@ -55,27 +55,27 @@
 
 function quotas = quotapanning (S)
 
-[m,n] = size (S);           #triangle with m years (i=1,2,u,...u+1,u+2,....m) and n periods (k=0,1,2,...n-1)
-u = m - n;                                     #rows of the upper square
-S = fliplr(triu(fliplr(S),-u));                   #ensure S is triangular  
+  [m,n] = size (S);           #triangle with m years (i=1,2,u,...u+1,u+2,....m) and n periods (k=0,1,2,...n-1)
+  u = m - n;                                     #rows of the upper square
+  S = fliplr(triu(fliplr(S),-u));                   #ensure S is triangular
 
-# calculate Z
-Z = [S(:,1), S(:,2:n)-S(:,1:n-1)];
-Z = fliplr(triu(fliplr(Z),-u));        #clean Z
+  # calculate Z
+  Z = [S(:,1), S(:,2:n)-S(:,1:n-1)];
+  Z = fliplr(triu(fliplr(Z),-u));        #clean Z
+
+  # calc empirical values of the incremental factors
+  B = Z ./ (Z * [ones(n,1),zeros(n,n-1)]');
 
-# calc empirical values of the incremental factors
-B = Z ./ (Z * [ones(n,1),zeros(n,n-1)]');
- 
-# weights Z(i,0)^2/Z(0)^2
- W = repmat((Z(:,1).^2),1,n);          #numerator
- W =fliplr(triu(fliplr(W),-u));        #clean low triangle
- a = repmat(sum(W),m,1);               #denominator
- a = fliplr(triu(fliplr(a),-u));       #clean low triangle
- W = W./a; #divido
- W = fliplr(triu(fliplr(W),-u));       #clean low triangle
+  # weights Z(i,0)^2/Z(0)^2
+   W = repmat((Z(:,1).^2),1,n);          #numerator
+   W =fliplr(triu(fliplr(W),-u));        #clean low triangle
+   a = repmat(sum(W),m,1);               #denominator
+   a = fliplr(triu(fliplr(a),-u));       #clean low triangle
+   W = W./a; #divido
+   W = fliplr(triu(fliplr(W),-u));       #clean low triangle
 
-# Pannings incremental factors
-B_Pan  = diag(B' * W)';                #weighted product
-quotas = cumsum(porcentual(B_Pan));    #cumulated quota
- 
+  # Pannings incremental factors
+  B_Pan  = diag(B' * W)';                #weighted product
+  quotas = cumsum(porcentual(B_Pan));    #cumulated quota
+
 end
--- a/main/actuarial/inst/ultimatead.m	Mon Jan 09 20:03:31 2012 +0000
+++ b/main/actuarial/inst/ultimatead.m	Mon Jan 09 20:04:38 2012 +0000
@@ -15,7 +15,7 @@
 ## <http://www.gnu.org/licenses/>.
 
 ## -*- texinfo -*-
-## @deftypefn {Function File} {@var{ultimate} =} ultimatead (@var{s},@var{v})
+## @deftypefn {Function File} {@var{ultimate} =} ultimatead (@var{s}, @var{v})
 ## Calculate the ultimate values by the Additive method.
 ##
 ## @var{s} is a mxn matrix that contains the run-off triangle, where m is the number of accident-years
@@ -49,8 +49,8 @@
 ## @seealso {bferguson, quotald, quotapanning}
 ## @end deftypefn
 
-function [ultimate] = ultimatead (S,V)
+function [ultimate] = ultimatead (S, V)
 
-ultimate = ultimatecc(S,V,quotaad(S,V));
+  ultimate = ultimatecc(S,V,quotaad(S,V));
 
 end
--- a/main/actuarial/inst/ultimatecc.m	Mon Jan 09 20:03:31 2012 +0000
+++ b/main/actuarial/inst/ultimatecc.m	Mon Jan 09 20:04:38 2012 +0000
@@ -69,26 +69,25 @@
 
 function ultimate = ultimatecc (S,V,quotas)
 
-[m,n] = size (S);           #triangle with m years (i=1,2,u,...u+1,u+2,....m) and n periods (k=0,1,2,...n-1)
-u = m - n;                                     #rows of the upper square
-S = fliplr(triu(fliplr(S),-u));                   #ensure S is triangular  
+  [m,n] = size (S);           #triangle with m years (i=1,2,u,...u+1,u+2,....m) and n periods (k=0,1,2,...n-1)
+  u = m - n;                                     #rows of the upper square
+  S = fliplr(triu(fliplr(S),-u));                   #ensure S is triangular
 
-if (size(V) ~= [m,1])
- usage(strcat("volume V must be of size [",num2str(m),",1]" ));
-end  
-if (size(quotas) ~= [1,n])
- usage("quotas must be of dimension [1,n]");
-end  
+  if (size(V) ~= [m,1])
+    error(strcat("volume V must be of size [",num2str(m),",1]" ));
+  elseif (size(quotas) ~= [1,n])
+    error("quotas must be of dimension [1,n]");
+  end
 
-# CapeCods K   K = S(i+k = n)/quotas*V
+  # CapeCods K   K = S(i+k = n)/quotas*V
 
-if (u==0)
-K = sum(diag(fliplr(S))')/ (fliplr(quotas)*V);
-else
-K = sum([diag(fliplr(S),-u)' S(1:u,n)])/ (fliplr([quotas ones(u)])*V);
-end
+  if (u==0)
+    K = sum(diag(fliplr(S))')/ (fliplr(quotas)*V);
+  else
+    K = sum([diag(fliplr(S),-u)' S(1:u,n)])/ (fliplr([quotas ones(u)])*V);
+  end
 
-#ultimate value
-ultimate = K * V;
+  #ultimate value
+  ultimate = K * V;
 
 end
--- a/main/actuarial/inst/ultimateld.m	Mon Jan 09 20:03:31 2012 +0000
+++ b/main/actuarial/inst/ultimateld.m	Mon Jan 09 20:04:38 2012 +0000
@@ -53,23 +53,23 @@
 ## @seealso {bferguson, quotaad, quotapanning}
 ## @end deftypefn
 
-function ultimate = ultimateld (S,quotas)
+function ultimate = ultimateld (S, quotas)
 
-[m,n] = size (S);           #triangle with m years (i=1,2,u,...u+1,u+2,....m) and n periods (k=0,1,2,...n-1)
-u = m - n;                                     #rows of the upper square
-S = fliplr(triu(fliplr(S),-u));                   #ensure S is triangular  
+  [m,n] = size (S);           #triangle with m years (i=1,2,u,...u+1,u+2,....m) and n periods (k=0,1,2,...n-1)
+  u = m - n;                                     #rows of the upper square
+  S = fliplr(triu(fliplr(S),-u));                   #ensure S is triangular
 
-if (size(quotas) ~= [1,n])
- usage(strcat("quotas must be of size [1,",num2str(n),"]" ));
-end  
+  if (size(quotas) ~= [1,n])
+    error(strcat("quotas must be of size [1,",num2str(n),"]" ));
+  end
 
-#calculate the ultimate value
+  #calculate the ultimate value
 
-if (u==0)
-ultimate = flipud(diag(fliplr(S))) ./ quotas';
-else
-ultimate = [(flipud(diag(fliplr(S),-u)) ./ quotas')', S(1:u,n)]';
-end
-ultimate = flipud(ultimate);
+  if (u==0)
+    ultimate = flipud(diag(fliplr(S))) ./ quotas';
+  else
+    ultimate = [(flipud(diag(fliplr(S),-u)) ./ quotas')', S(1:u,n)]';
+  end
+  ultimate = flipud(ultimate);
 
 end
--- a/main/actuarial/inst/ultimatemack.m	Mon Jan 09 20:03:31 2012 +0000
+++ b/main/actuarial/inst/ultimatemack.m	Mon Jan 09 20:04:38 2012 +0000
@@ -76,50 +76,50 @@
 ## @seealso {bferguson, quotald, quotapanning, quotaad, quotamack}
 ## @end deftypefn
 
-function ultimate = ultimatemack (S,V)
+function ultimate = ultimatemack (S, V)
 
-[m,n] = size (S);           #triangle with m years (i=1,2,u,...u+1,u+2,....m) and n periods (k=0,1,2,...n-1)
-u = m - n;                                     #rows of the upper square
-S = fliplr(triu(fliplr(S),-u));                   #ensure S is triangular  
+  [m,n] = size (S);           #triangle with m years (i=1,2,u,...u+1,u+2,....m) and n periods (k=0,1,2,...n-1)
+  u = m - n;                                     #rows of the upper square
+  S = fliplr(triu(fliplr(S),-u));                   #ensure S is triangular
 
-if (size(V) ~= [m,1])
- usage(strcat("volume V must be of size [",num2str(m),",1]" ));
-end  
+  if (size(V) ~= [m,1])
+    error(strcat("volume V must be of size [",num2str(m),",1]" ));
+  end
 
-# calcs Z triangle
-Z = [S(:,1), S(:,2:n)-S(:,1:n-1)];
-Z = fliplr(triu(fliplr(Z),-u));          #clean Z
+  # calcs Z triangle
+  Z = [S(:,1), S(:,2:n)-S(:,1:n-1)];
+  Z = fliplr(triu(fliplr(Z),-u));          #clean Z
 
-# calculate empirical individual loss ratios
-a = repmat (V,1,n);
-LRI = Z ./ a;
+  # calculate empirical individual loss ratios
+  a = repmat (V,1,n);
+  LRI = Z ./ a;
 
-# weights V(i)/sum(1,n-k,V(i));     
-num =fliplr(triu(fliplr(a),-u));          #numerator, and clean low triangle
-den = repmat(sum(num),m,1);               #denominator
-den = fliplr(triu(fliplr(den),-u));       #clean low triangle
-W = num./den;                             #divide
-W = fliplr(triu(fliplr(W),-u));
+  # weights V(i)/sum(1,n-k,V(i));     
+  num =fliplr(triu(fliplr(a),-u));          #numerator, and clean low triangle
+  den = repmat(sum(num),m,1);               #denominator
+  den = fliplr(triu(fliplr(den),-u));       #clean low triangle
+  W = num./den;                             #divide
+  W = fliplr(triu(fliplr(W),-u));
 
-# incremental Loss Ratios AD
-LRI_AD  = diag(LRI' * W)';                #weighted product
+  # incremental Loss Ratios AD
+  LRI_AD  = diag(LRI' * W)';                #weighted product
 
-if (u==0)
-b = (diag(fliplr(S),-u) ./ flipud(cumsum(LRI_AD)') ) ./ V;
-else
-b = ([S(1:u,n); diag(fliplr(S),-u)] ./ [sum(LRI_AD)*ones(1,u);flipud(cumsum(LRI_AD)')] ) ./ V;
-end
+  if (u==0)
+    b = (diag(fliplr(S),-u) ./ flipud(cumsum(LRI_AD)') ) ./ V;
+  else
+    b = ([S(1:u,n); diag(fliplr(S),-u)] ./ [sum(LRI_AD)*ones(1,u);flipud(cumsum(LRI_AD)')] ) ./ V;
+  end
 
-sZ = sum (Z);                             # sum of Z
-sb = repmat(b,1,n);
-sb = fliplr(triu(fliplr(sb),-u));
-sV = repmat(V,1,n);
-sV =fliplr(triu(fliplr(sV),-u));
+  sZ = sum (Z);                             # sum of Z
+  sb = repmat(b,1,n);
+  sb = fliplr(triu(fliplr(sb),-u));
+  sV = repmat(V,1,n);
+  sV =fliplr(triu(fliplr(sV),-u));
 
-LRI_Mack = sZ ./ (diag(sb'*sV))';
+  LRI_Mack = sZ ./ (diag(sb'*sV))';
 
-K_Mack = b * sum(LRI_Mack); 
+  K_Mack = b * sum(LRI_Mack); 
 
-ultimate = K_Mack .* V;
+  ultimate = K_Mack .* V;
 
 end
--- a/main/actuarial/inst/ultimatepanning.m	Mon Jan 09 20:03:31 2012 +0000
+++ b/main/actuarial/inst/ultimatepanning.m	Mon Jan 09 20:04:38 2012 +0000
@@ -15,7 +15,7 @@
 ## <http://www.gnu.org/licenses/>.
 
 ## -*- texinfo -*-
-## @deftypefn {Function File} {@var{ultimate} =} ultimatepanning (@var{s},@var{quotas})
+## @deftypefn {Function File} {@var{ultimate} =} ultimatepanning (@var{s}, @var{quotas})
 ## Calculate the ultimate value by the Panning method.
 ##
 ## @var{s} is a mxn matrix that contains the run-off triangle, where m is the number of accident-years
@@ -49,14 +49,14 @@
 
 function [ultimate] = ultimatepanning (S,quotas)
 
-[m,n] = size (S);           #triangle with m years (i=1,2,u,...u+1,u+2,....m) and n periods (k=0,1,2,...n-1)
-u = m - n;                                     #rows of the upper square
-S = fliplr(triu(fliplr(S),-u));                   #ensure S is triangular  
+  [m,n] = size (S);           #triangle with m years (i=1,2,u,...u+1,u+2,....m) and n periods (k=0,1,2,...n-1)
+  u = m - n;                                     #rows of the upper square
+  S = fliplr(triu(fliplr(S),-u));                   #ensure S is triangular
 
-if (size(quotas) ~= [1,n])
- usage(strcat("quotas must be of size [1,",num2str(n),"]" ));
-end  
+  if (size(quotas) ~= [1,n])
+    error(strcat("quotas must be of size [1,",num2str(n),"]" ));
+  end
 
-ultimate = S(:,1) / quotas(1);
+  ultimate = S(:,1) / quotas(1);
 
 end