[Uwgarp-commits] r151 - in pkg/GARPFRM: man vignettes

noreply at r-forge.r-project.org noreply at r-forge.r-project.org
Sun Mar 30 19:40:59 CEST 2014


Author: rossbennett34
Date: 2014-03-30 19:40:58 +0200 (Sun, 30 Mar 2014)
New Revision: 151

Added:
   pkg/GARPFRM/vignettes/PerformanceMeasures.Rnw
Removed:
   pkg/GARPFRM/vignettes/PA_vignette.Rnw
Modified:
   pkg/GARPFRM/man/GARP_FRM-package.Rd
   pkg/GARPFRM/vignettes/DataAccess.Rnw
   pkg/GARPFRM/vignettes/DelineatingEfficientPortfolios.Rnw
   pkg/GARPFRM/vignettes/EstimatingVolatilitiesCorrelation.Rnw
   pkg/GARPFRM/vignettes/MonteCarloMethods.Rnw
   pkg/GARPFRM/vignettes/PA_vignette.pdf
   pkg/GARPFRM/vignettes/QuantifyingVolatilityVaRModels.Rnw
   pkg/GARPFRM/vignettes/QuantitativeAnalysisBasics.Rnw
Log:
Cleaning up vignettes and adding content to package Rd file

Modified: pkg/GARPFRM/man/GARP_FRM-package.Rd
===================================================================
--- pkg/GARPFRM/man/GARP_FRM-package.Rd	2014-03-29 23:35:49 UTC (rev 150)
+++ pkg/GARPFRM/man/GARP_FRM-package.Rd	2014-03-30 17:40:58 UTC (rev 151)
@@ -6,7 +6,6 @@
 Functions to implement the topics presented in 'Financial Risk Manager (FRM) Part 1' (2012) series of books.
 }
 \description{
-TODO: Better description
 This package provides a framework to implement the topics and ideas presented in 'Financial Risk Manager (FRM) Part 1: Quantitative Analysis' (2012) and 'Financial Risk Manager (FRM) Part 1: Foundations of Risk Management' (2012)
 }
 
@@ -19,19 +18,40 @@
 License: \tab What license is it under?\cr
 }
 
-An overview of how to use the package, including the most important functions.
-Discuss each section, borrowing text from vignettes. Also make sure that each area of functions is covered.
+The \code{GARPFRM} package provides a framework to implement the topics presented in the Financial Risk Manager (FRM) Part 1 books. The user should be able to follow along in the books and using the \code{GARPFRM} package and supporting packages.
+
+The current version of the package covers the majority of chapters in 'Financial Risk Manager (FRM) Part 1: Quantitative Analysis' (2012) and 'Financial Risk Manager (FRM) Part 1: Foundations of Risk Management' (2012). Due to the nature of econometrics involcing time series data, nearly all functions in this package require data as an \code{xts} object and \verb{GARPFRM} uses the \code{\link[xts]{xts}} package for working with time series data.
 \itemize{
-  \item Delineating Efficient Frontier
-  \item CAPM
+  \item Delineating Efficient Portfolios
+  
+  This section covers the risk and return characteristics of combinations of securities and what is known as the efficient frontier. We first consider the case of a portfolio consisting of two assets and the impact that correlation has on the shape of the efficient frontier. We also learn how to compute the optimal portfolio, optimal in the sense that the portfolio has the maximium return for a given risk. These ideas are then generalized for a portfolio consisting of any number of assets. Key functions in this section are \code{\link{portSDTwoAsset}}, \code{\link{portReturnTwoAsset}}, \code{\link{efficientFrontierTwoAsset}}, \code{\link{efficientFrontierTwoAsset}}, and \code{\link{efficientFrontier}}. See \code{vignette("DelineatingEfficientPortfolios")} for several examples and explanations demonstrating these functions.
+  
+  \item Capital Asset Pricing Model
+  
+  TODO
+  
   \item Performance Measures
-  \item Monte Carlo
-  \item Bootstrap
-  \item EWMA
-  \item GARCH
-  \item VaR
+  
+  The Performance Measures section to evaluate performance in terms of return and risk, i.e. risk adjusted performance measures, to more easily compare assets with different levels of risk. The functions provided in this section are from the \code{PerformanceAnalytics} package. The key functions in this section are \code{\link[PerformanceAnalytics]{TreynorRatio}}, \code{\link[PerformanceAnalytics]{SharpeRatio}}, \code{\link[PerformanceAnalytics]{CAPM.jensenAlpha}}, \code{\link[PerformanceAnalytics]{CAPM.jensenAlpha}}, \code{\link[PerformanceAnalytics]{TrackingError}}, \code{\link[PerformanceAnalytics]{InformationRatio}}, and \code{\link[PerformanceAnalytics]{SortinoRatio}}. See \code{vignette("PerformanceMeasures")} for several examples and explanations demonstrating these functions. See \href{http://spark.rstudio.com/rossbennett3/PerformanceMeasures/}{here} for an interactive web application.
+  
+  \item Quantitative Analysis
+  
+  Chapters 1-8 in Quantitative Analysis cover probability, statistics, and linear regression. Functions to implement these topics are included in the base R distribution. See \code{vignette("QuantitativeAnalysisBasics")} for several examples and explanations.
+  
+  \item Monte Carlo Methods
+  
+  The Monte Carlo Methods chapter presents simulation methods used in derivatives pricing and risk management. The implementation in this package focuses on Monte Carlo simulations with one random variable (i.e. one source of risk) and bootstrap resampling. Key functions are \code{\link{monteCarlo}}, \code{\link{bootFUN}}, \code{\link{bootMean}}, \code{\link{bootSD}}, \code{\link{bootStdDev}}, \code{\link{bootSimpleVolatility}}, \code{\link{bootCor}}, \code{\link{bootCov}}, \code{\link{bootVaR}}, and \code{\link{bootES}}. See the demos \code{demo("monte_carlo")} and \code{demo("bootstrap")}. See \code{vignette("MonteCarloMethods")} for several examples and explanations. Additionally, an interactive web application is available \href{http://spark.rstudio.com/rossbennett3/MonteCarlo/}{here} for generating asset price paths via Monte Carlo simulation.
+  
+  \item Estimating Volatilities and Correlation
+  
+  The main emphasis of this section is estimating volatilities and correlations using an EWMA model and a GARCH model. We provide an \code{\link{EWMA}} function to estimate volatilities, covariances, and correlations. We also provide a \code{\link{forecast}} function to forecast volatility from an EWMA model. To implement univariate GARCH models, we make use of the \verb{rugarch} package. The \code{\link{uvGARCH}} function is a wrapper around \code{ugarchspec} and \code{ugarchfit} to specify and fit a GARCH model. We provide a \code{\link{forecast}} function to forecast volatility from a GARCH model. The \code{\link{forecast}} function is wrapper around \code{ugarchforecast}. 
+  
+  See \code{vignette("EstimatingVolatilitiesCorrelation")} for several examples and explanations of the EWMA and GARCH models. We also provide interactive web applications to implement \href{http://spark.rstudio.com/rossbennett3/EWMA/}{EWMA} and \href{https://github.com/rossb34/UnivariateGARCH}{GARCH} models.
+  
+  \item Quantifying Volatility in VaR Models
+  
+  This section discusses Value at Risk (VaR) models and different methods to estimate VaR levels. Among the methods discussed are EWMA, GARCH, historical simulation, and the VarCov approach. See \code{vignette("QuantifyingVolatilityVaRModels")} for several examples and explanations. Additionally, an interactive web application to implement VaR backtests is available \href{http://spark.rstudio.com/rossbennett3/BacktestVaR/}{here}.
 }
-
 }
 \author{
 Ross Bennett and Thomas Fillebeen
@@ -40,16 +60,17 @@
 }
 \references{
 TODO: Add references
-rugarch
-PerformanceAnalytics
-xts
 GARP books
 }
 
 \keyword{ package }
 \seealso{
 % Optional links to other man pages, e.g.
-% \code{\link[<pkg>:<pkg>-package]{<pkg>}}
+\code{\link[PerformanceAnalytics:PerformanceAnalytics-package]{PerformanceAnalytics}} \cr
+\code{\link[rugarch:rugarch-package]{rugarch}} \cr
+\code{\link[xts:xts-package]{xts}} \cr
+\code{\link[xts]{xts}} \cr
+CRAN task view on Empirical Finance \cr \url{http://cran.r-project.org/src/contrib/Views/Econometrics.html} \cr
 }
 \examples{
 % simple examples of the most important functions

Modified: pkg/GARPFRM/vignettes/DataAccess.Rnw
===================================================================
--- pkg/GARPFRM/vignettes/DataAccess.Rnw	2014-03-29 23:35:49 UTC (rev 150)
+++ pkg/GARPFRM/vignettes/DataAccess.Rnw	2014-03-30 17:40:58 UTC (rev 151)
@@ -15,6 +15,9 @@
 \makeatletter
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% User specified LaTeX commands.
 % \VignetteEngine{knitr::knitr}
+%\VignetteIndexEntry{Data Access Basics}
+%\VignetteDepends{GARPFRM}
+%\VignettePackage{GARPFRM}
 
 \makeatother
 

Modified: pkg/GARPFRM/vignettes/DelineatingEfficientPortfolios.Rnw
===================================================================
--- pkg/GARPFRM/vignettes/DelineatingEfficientPortfolios.Rnw	2014-03-29 23:35:49 UTC (rev 150)
+++ pkg/GARPFRM/vignettes/DelineatingEfficientPortfolios.Rnw	2014-03-30 17:40:58 UTC (rev 151)
@@ -7,6 +7,10 @@
 \usepackage[round]{natbib}
 \bibliographystyle{abbrvnat}
 
+%\VignetteIndexEntry{Delineating Efficient Portfolios}
+%\VignetteDepends{GARPFRM}
+%\VignettePackage{GARPFRM}
+
 \begin{document}
 
 <<echo=FALSE>>=

Modified: pkg/GARPFRM/vignettes/EstimatingVolatilitiesCorrelation.Rnw
===================================================================
--- pkg/GARPFRM/vignettes/EstimatingVolatilitiesCorrelation.Rnw	2014-03-29 23:35:49 UTC (rev 150)
+++ pkg/GARPFRM/vignettes/EstimatingVolatilitiesCorrelation.Rnw	2014-03-30 17:40:58 UTC (rev 151)
@@ -7,6 +7,10 @@
 \usepackage[round]{natbib}
 \bibliographystyle{abbrvnat}
 
+%\VignetteIndexEntry{Estimating Volatility and Correlation}
+%\VignetteDepends{GARPFRM}
+%\VignettePackage{GARPFRM}
+
 \begin{document}
 
 <<echo=FALSE>>=

Modified: pkg/GARPFRM/vignettes/MonteCarloMethods.Rnw
===================================================================
--- pkg/GARPFRM/vignettes/MonteCarloMethods.Rnw	2014-03-29 23:35:49 UTC (rev 150)
+++ pkg/GARPFRM/vignettes/MonteCarloMethods.Rnw	2014-03-30 17:40:58 UTC (rev 151)
@@ -7,6 +7,10 @@
 \usepackage[round]{natbib}
 \bibliographystyle{abbrvnat}
 
+%\VignetteIndexEntry{Monte Carlo Methods}
+%\VignetteDepends{GARPFRM}
+%\VignettePackage{GARPFRM}
+
 \begin{document}
 
 <<echo=FALSE>>=

Deleted: pkg/GARPFRM/vignettes/PA_vignette.Rnw
===================================================================
--- pkg/GARPFRM/vignettes/PA_vignette.Rnw	2014-03-29 23:35:49 UTC (rev 150)
+++ pkg/GARPFRM/vignettes/PA_vignette.Rnw	2014-03-30 17:40:58 UTC (rev 151)
@@ -1,424 +0,0 @@
-\documentclass[a4paper]{article}
-\usepackage[OT1]{fontenc}
-\usepackage{Sweave}
-\usepackage{Rd}
-\usepackage{amsmath}
-\usepackage{hyperref}
-\usepackage{url}
-\usepackage[round]{natbib}
-\usepackage{bm}
-\usepackage{verbatim}
-\usepackage[latin1]{inputenc}
-\bibliographystyle{abbrvnat}
-
-\let\proglang=\textsf
-%\newcommand{\pkg}[1]{{\fontseries{b}\selectfont #1}}
-%\newcommand{\R}[1]{{\fontseries{b}\selectfont #1}}
-%\newcommand{\email}[1]{\href{mailto:#1}{\normalfont\texttt{#1}}}
-%\newcommand{\E}{\mathsf{E}}
-%\newcommand{\VAR}{\mathsf{VAR}}
-%\newcommand{\COV}{\mathsf{COV}}
-%\newcommand{\Prob}{\mathsf{P}}
-
-\renewcommand{\topfraction}{0.85}
-\renewcommand{\textfraction}{0.1}
-\renewcommand{\baselinestretch}{1.5}
-\setlength{\textwidth}{15cm} \setlength{\textheight}{22cm} \topmargin-1cm \evensidemargin0.5cm \oddsidemargin0.5cm
-
-\usepackage[latin1]{inputenc}
-% or whatever
-
-\usepackage{lmodern}
-\usepackage[T1]{fontenc}
-% Or whatever. Note that the encoding and the font should match. If T1
-% does not look nice, try deleting the line with the fontenc.
-
-\begin{document}
-\SweaveOpts{concordance=TRUE}
-
-\title{Performance Analysis Measures}
-\author{Mark L Labovitz}
-
-\maketitle
-
-\begin{abstract}
-Applying The CAPM to Performance Measurement Using Quandl data
-
-
-Uses computations as interpreted from Chapter 7 of 2013 FRM Level I Manual.
-
-Computational Focus:\\
-1. Treynor Ratio;\\
-2. Sharpe Ratio;\\
-3. Jensen's Alpha;\\
-4. Tracking Error;\\
-5. Information Ratio;\\
-6. Sortino Ratio.
-
-
-Ancillary computation (necessary but not focus of Chapter):\\
-1. Beta;\\
-2. Downside Deviation.
-
-
-Assumptions:\\
-1. Computations use the PerformanceAnalytics Library.\\
-2. There are alternative means of computing the measure which relate to such elements as:\\
-   a. The use of as recorded or excess returns;\\
-   b. The method annualization: arithmetic or geometric;\\
-   c. The order of return adjustment and averaging;\\ 
-   
-Relevant Abbreviations:\\
-IP == Investment Portfolio;\\
-MP == Market/Benchmark Portfolio;\\
-RF == Risk Free Rate;\\
-sp == Sub Period (the period of the data, e.g. day, week, month).
-
-\end{abstract}
-
-\tableofcontents
-
-\section{Setting Up The Analysis}
-\subsection{Establishing RunTime Parameters}
-<<ex1>>=
-# Store results
-Measures = rep(NULL,4)
-
-# If equalWts is true portfolio weights will be 1/numberOfSecurities
-equalWts = TRUE
-
-randWts = TRUE
-if(equalWts) randWts = FALSE
-
-# Number of securities to use is 
-numberOfSecurities = 3
-
-# Security Selection Method, "randomSeq" or "serialSeq"
-secSel = "serialSeq"
-
-# type of chaining in forming the aggregate return
-# If geometric is TRUE use geometric chaining if False use arithemetic chaining
-geometricB = TRUE
-
-# Definitioned/Constant variables
-relation = c("Less Than","Equal To","Greater Than")
-
-# Some of run time parameters
-# Should be amongst the input for shiny
-# Minimum Acceptable Return for Sortino Ratio or Downside Deviation
-# defaults to 0
-MAR_set = 0
-
-# Denominator for Sortino Ratio or Downside Deviation 
-# one of "full" or "subset", indicating whether to use the length of the full series
-# or the length of the subset of the series below the MAR as the denominator,
-# defaults to "full"
-denom = "full"
-
-# Portfolio name used in output
-PortName = "Portfolio"
-
-# Market name used in output
-MrktName ="Market"
-
-#Market Name in data set
-mrktDataName = "market"
-
-# Risk free rate name used in output
-RFName="Risk_Free_Rate"
-
-# Risk Free Name in data set
-rfDataName = "t90"
-
-# Number time periods for year for data set
-freQ = 12
-
-# Names of Measures column
-Measures = rbind(Measures, c("Series Name",PortName,MrktName,RFName))
-colnames(Measures) = c("Measure","Portfolio","Market","RiskFree")
-@
-\subsection{Echo Parameters}
-Echo print run-time parameters
-<<ex1a>>=
-cat('\n Random Weights: ',randWts,'\n')
-cat('\n Number of securities in portfolio = ',numberOfSecurities,'\n')
-cat('\n Security selection method: ',secSel,'\n')
-cat('\n Geometric annualization (false means arithmetic): ',geometricB,'\n')
-cat('\n Minimum Acceptable Return for Sortino Ratio or Downside Deviation: ',MAR_set,'\n')
-cat('\n Denominator for downside deviation (Full count or Subset < MAR_set): ',denom,'\n')
-namesUsed = c(PortName,MrktName,RFName)
-names(namesUsed) = c("Portfolio_Name","Market/BenchMark_Name","RiskFreeRate_name")
-cat("\n Names of Portfolio, Market and RiskFree Series used in output")
-print(namesUsed)
-
-cat('\n Number of data units in a year: ',freQ,'\n')
-
-
-@
-\subsection{Extracting and Organizing Data}
-<<ex2>>=
-# 'Load the GARPFRM package and the CAPM dataset.
-suppressMessages(library(GARPFRM))
-options(digits=5)
-data(crsp.short)
-
-# Make the assumption that the last two time series are the Market and RF series
-# Tickers/Names of time series in the test data set
-cat('\n List column headers predominantly tickers/name of securities')
-colnames(largecap.ts)
-@
-Summarize the first and last data values corresponding to the first 5 dates for the first 5 returns, followed by number of periods in time series
-<<ex3>>=
-head(largecap.ts)
-tail(largecap.ts)
-nRow = nrow(largecap.ts)
-nRow
-
-@
-\subsection{Extract Market (Benchmark) And Risk Free Series}
-Determine pointer to column with the market returns and pointer to column of Risk Free Ratw
-<<ex4>>=
-
-ptrMkt = which(colnames(largecap.ts)==mrktDataName,arr.ind=TRUE)
-ptrMkt
-
-ptrRF = which(colnames(largecap.ts)==rfDataName,arr.ind=TRUE)
-ptrRF
-
-# Market returns
-R.market <- largecap.ts[, ptrMkt]
-
-# risk free rate
-rf <- largecap.ts[, ptrRF]
-## 
-@
-
-\subsection{Generate Portforlio For Further Analysis}
-Generate Portfolio weights based upon selected method and create portfolio.
-<<ex5>>=
-# Number of time series in data set
-nSec = ncol(largecap.ts)
-
-if (numberOfSecurities>(nSec-2)) numberOfSecurities = nSec - 2
-cat('\n Number of Securities being used in portfolio = ',numberOfSecurities, '\n')
-
-# Security position numbers of securities in portfolio
-secNbrs = seq(1,numberOfSecurities)
-if(secSel=="randomSeq") secNbrs = sample.int(nSec, size = numberOfSecurities, replace = FALSE)
-
-cat('\n Selected Security position indicies')
-print(secNbrs)
-
-#
-# Created random wts from the non-market non RF series if selected
-if (randWts){
-  coefs = runif(numberOfSecurities)
-  alphas = coefs/sum(coefs)
-  sum(alphas)
-}  
-
-# Generate portfolio from selected securities and associated weigts
-if (equalWts) {
-  R.portfolio <- Return.portfolio(largecap.ts[, secNbrs],geometric=geometricB)  
-} else {
-  R.portfolio = Return.portfolio(largecap.ts[, secNbrs],weights=alphas,geometric=geometricB) 
-}
-
-# Print names of securities in portfolio
-cat('\n Securities in Portfolio')
-print(colnames(largecap.ts)[secNbrs])
-
-colnames(R.portfolio) ="PortRets"
-
-# Compute initial ancillary statistics and set them in the summary matrix
-salient = matrix(data=c("Mean",mean(R.portfolio),mean(R.market),mean(rf),
-                   "Stdev",sd(R.portfolio),sd(R.market),sd(rf),
-                   "NbrSecuritiesInPort",numberOfSecurities,"","",
-                   "AnnuallyFrequency",rep(freQ,3),
-                   "Number of Samples",rep(nRow,3)),ncol=4,byrow=TRUE)
-
-Measures = rbind(Measures, salient)
-
-# Results used later in computation
-# Mean of risk free rate over sampling time series
-meanRF = mean(rf)
-
-# Precompute excess returns
-xCessP1 = R.portfolio - rf
-xCessM1 = R.market - rf
-
-# Precompute relative return [RR] = (Investment Portfolio [IP] - Market Portfolio [MP]) 
-# and average relative return [ARR] = mean(RR)
-  
-RR = R.portfolio-R.market
-ARR = mean(RR)
-
-@
-\section{Treynor Ratio}
-(Add more commentary) Where TR denotes the Treynor Ratio and IP and MP denote the Investment Portfolio and Market Portfolio 
-\subsection{Beta}
-Compute Beta using excess returns.
-<<ex6>>=
-
-# Compute Beta from excess returns.
-betaRF = cov((R.portfolio[,1]-rf),(R.market-rf))/var((R.market-rf))
-
-# Output value of Beta
-cat('\n Beta =',betaRF,', between the excess portfolio represented by ',PortName,' and the excess market represented by ',MrktName,' \n')
-
-Measures = rbind(Measures,c("Beta",betaRF,"",""))
-@
-\subsection{Treynor Ratio}
-Compute the Traynor Ratio.
-<<ex7>>=
-
-# Treynor ratio for portfolio and market
-# Recall that Beta for the market is 1
-tr = TreynorRatio(R.portfolio, R.market,rf,freQ )
-trMarket = TreynorRatio(R.market,R.market,rf,freQ )
-
-# Output salient results from Treynor Ratio computation
-cat('\n PA computed for ',PortName,' Treynor Ratio = ',tr,'\n')
-cat('\n PA computed for ',MrktName,' Treynor Ratio = ',trMarket,'\n')
-
-Measures = rbind(Measures,c("Treynor Ratio",tr,trMarket,""))
-@
-As per the Chapter comparing the Treynor Ratio for the investment portfolio versus the Treynor Ratio for the market portfolio allows a check on whether or not the investment portfolio is being sufficiently rewarded for its level of risk, i.e. the TR(IP) greater than or equal TR(MP).
-<<ex8>>=
-
-# Compare Treynor Ratio for market returns against Treynor Ratio for portfolio returns
-TR_Mrkt2Port = relation[sign(trMarket - tr) + 2]
-cat('\n Treynor Ratio of ',MrktName,' is ',TR_Mrkt2Port,' Treynor Ratio of ',PortName,'\n' )
-@
-\section{Sharpe Ratio}
-Developed by Nobel Laureate William F. Sharpe, the Sharpe ratio is a risk-adjusted measure of performance, also known as the reward-to-volatility or reward per unit of risk ratio.   It is calculated as the average sp excess return divided by the standard deviation of sp excess returns over a period of interest. The excess return is the difference between the IP return and the RF return for an sp. A higher Sharpe ratio means better fund performance relative to the risk-free rate on a risk-adjusted basis.
-<<ex9>>=
-
-# Compute Sharpe and annualized Sharpe Ratio
-shr = SharpeRatio(R.portfolio, rf, FUN = "StdDev")
-shrAnn = SharpeRatio.annualized(R.portfolio, rf, scale=freQ, geometric=TRUE)
-
-# Output salient results for Sharpe Ratio
-cat('\n PA computed ',PortName,' Sharpe Ratio = ',shr,'\n')
-cat('\n PA computed ',PortName,' Annualized Sharpe Ratio = ',shrAnn,'\n')
-
-Measures = rbind(Measures,matrix(c("Sharpe Ratio",shr,"","","Sharpe Ratio Annualized",shrAnn,"",""),ncol=4,byrow=TRUE))
-@
-\section{Jensen's Alpha}
-(Add more commentary)
-<<ex10>>=
-# Compute Jensen's Alpha
-
-# Produces one value
-jaStatic = CAPM.jensenAlpha(R.portfolio,R.market,meanRF)
-
-# Produces multiple values
-jaTV = CAPM.jensenAlpha(R.portfolio, R.market,rf)
-
-# Regression computation and salient results
-lm_ja1.fit = lm(xCessP1 ~ xCessM1)
-values1 = summary(lm_ja1.fit)
-values1
-analT1 = values1[[4]]
-
-# Annualize Jensen's Alpha
-jaHandA = (1+(mean(R.portfolio) - meanRF - betaRF*(mean(R.market)-meanRF)))^freQ -1
-
-# Use Delta Method to approximate standard error of annualized Jensen's Alpha
-deltaCoef = (freQ*(1+analT1[1,1])^(freQ-1))^2
-
-# Output salient results for Jensen's Alpha
-cat('\n PA computed ',PortName,' Static Jensen\'s Alpha = ',jaStatic,'\n')
-cat('\n Hand computed Annualized ',PortName,' Jensen Alpha = ',jaHandA,'\n')
-cat('\n Delta Method Coefficient Value = ', deltaCoef,'\n')
-
-# t stat and pvalue under H0: alpha = 0 against HA: alpha != 0 
-tStat = jaHandA/(analT1[1,2]*deltaCoef^0.5)
-pValue = 2*(1-pt(tStat,nRow-2))
-cat('\n H0: alpha = 0, HA: alpha != 0  p-value: ',pValue,'\n')
-
-Measures = rbind(Measures,matrix(c("Jensen's Alpha",jaStatic,"","","Jensen's Alpha Annualized",jaHandA,"","",
-                                   "Jensen's Alpha P Value",pValue,"",""),ncol=4,byrow=TRUE))
-
-@
-\section{Tracking Error}
-(Add more commentary)
-<<ex11>>=
-
-# Compute Tracking Error
-
-te = TrackingError(R.portfolio, R.market, scale = freQ)
-
-# Output salient results from Tracking Error computation
-cat('\n PA computed ',PortName,' Tracking Error = ',te,'\n')
-
-Measures = rbind(Measures,c("Tracking Error",te,"",""))
-@
-\section{Information Ratio}
-(Add more commentary)
-<<ex12>>=
-
-# Crompute Information Ratio
-# Definition PA, InformationRatio = ActivePremium/TrackingError
-#Active Premium = Investment's annualized return - Benchmark's annualized return
-ir = InformationRatio(R.portfolio, R.market, scale = freQ)
-
-# Output salient results from Information Ratio computation  
-cat('\n PA computed ',PortName,' Information Ratio = ',ir,'\n')
-
-Measures = rbind(Measures,c("Information Ratio",ir,"",""))
-@
-\section{Downside Deviation and Sortino Ratio}
-(Add more commentary)
-\subsection{Downside Deviation}
-Downside Deviation is a measure of risk which just captures the downside or returns below a minimal acceptible return or MAR. Consequently the computation only includes as non-zero those returns less than the MAR. MAR in the present case is set as single value, in other calculations it itself is a series, often the  market/benchmark performance. As downside deviation increases it means higher risk on the downside relative to the MAR. Beyond the MAR, an important parametric consideration is the decision to normalize the deviations by the total number of values in the time series or just the number of deviations which are not equal to zero (in either case the denominator count is maybe reduced by 1)
-<<ex13>>=
-
-# Compute Downside Deviation
-
-# Set value of denominator for Downside Deviation from the parameter set earlier
-denomVal = nRow
-if (denom != "full")
-   { 
-    denomVal = sum(ifelse((R.portfolio - MAR_set)<0,1,0))
-   }
-cat('\n Denominator parameter is set to: ',denom,' which results in a denominator value of ',denomVal,'\n')
-
-cat('\n MAR == Minimal Acceptable Return, number of MAR values = ',length(MAR_set))
-head(as.vector(MAR_set))
-if(length(MAR_set)>5) tail(as.vector(MAR_set))
-
-# PA computation of Downside Deviation
-dwn = DownsideDeviation(R.portfolio, MAR = MAR_set, method = denom)
-
-# Output salient computation of Downside Deviation
-cat('\n PA computed ',PortName,'  Downside Deviation = ',dwn,'\n')
-
-Measures = rbind(Measures,c("Downside Deviation",dwn,"",""))
-Measures = rbind(Measures,c("Denominator DD",denomVal,"",""))
-@
-\subsection{Sortino Ratio}
-(Add more commentary)
-<<ex14>>=
-
-# Compute Sortino Ratio 
-sr = SortinoRatio(R.portfolio, MAR = MAR_set, weights = NULL)
-
-# Output salient computations of Sortino Ratio
-cat('\n PA computed ',PortName,'  Sortino Ratio = ',sr,'\n')
-
-Measures = rbind(Measures,c("Sortino Ratio",sr,"",""))
-@
-\section{Summary of Performance Measures}
-Summary of values and statistics computed from input IP, MP and risk free rate series. 
-<<ex15>>=
-
-Measures.few = cbind(Measures[,1],substr(Measures[,2:4],1,8))
-Measures.few = rbind(Measures[1,],Measures.few[-1,])
-
-Measures.df= as.data.frame(Measures.few,stringsAsFactors=FALSE)
-print(Measures.df)
-@
-
-
-\end{document}
\ No newline at end of file

Modified: pkg/GARPFRM/vignettes/PA_vignette.pdf
===================================================================
--- pkg/GARPFRM/vignettes/PA_vignette.pdf	2014-03-29 23:35:49 UTC (rev 150)
+++ pkg/GARPFRM/vignettes/PA_vignette.pdf	2014-03-30 17:40:58 UTC (rev 151)
@@ -1,3876 +1,1779 @@
 %PDF-1.5
 %ÐÔÅØ
-1 0 obj
-<< /S /GoTo /D (section.1) >>
-endobj
-4 0 obj
-(Setting Up The Analysis)
-endobj
-5 0 obj
-<< /S /GoTo /D (subsection.1.1) >>
-endobj
-8 0 obj
-(Establishing RunTime Parameters)
-endobj
-9 0 obj
-<< /S /GoTo /D (subsection.1.2) >>
-endobj
-12 0 obj
-(Echo Parameters)
-endobj
-13 0 obj
-<< /S /GoTo /D (subsection.1.3) >>
-endobj
-16 0 obj
-(Extracting and Organizing Data)
-endobj
-17 0 obj
-<< /S /GoTo /D (subsection.1.4) >>
-endobj
-20 0 obj
-(Extract Market \(Benchmark\) And Risk Free Series)
-endobj
-21 0 obj
-<< /S /GoTo /D (subsection.1.5) >>
-endobj
-24 0 obj
-(Generate Portforlio For Further Analysis)
-endobj
-25 0 obj
-<< /S /GoTo /D (section.2) >>
-endobj
-28 0 obj
-(Treynor Ratio)
-endobj
-29 0 obj
-<< /S /GoTo /D (subsection.2.1) >>
-endobj
-32 0 obj
-(Beta)
-endobj
-33 0 obj
-<< /S /GoTo /D (subsection.2.2) >>
-endobj
-36 0 obj
-(Treynor Ratio)
-endobj
-37 0 obj
-<< /S /GoTo /D (section.3) >>
-endobj
-40 0 obj
-(Sharpe Ratio)
-endobj
-41 0 obj
-<< /S /GoTo /D (section.4) >>
-endobj
-44 0 obj
-(Jensen's Alpha)
-endobj
-45 0 obj
-<< /S /GoTo /D (section.5) >>
-endobj
-48 0 obj
-(Tracking Error)
-endobj
-49 0 obj
-<< /S /GoTo /D (section.6) >>
-endobj
-52 0 obj
-(Information Ratio)
-endobj
-53 0 obj
-<< /S /GoTo /D (section.7) >>
-endobj
-56 0 obj
-(Downside Deviation and Sortino Ratio)
-endobj
-57 0 obj
-<< /S /GoTo /D (subsection.7.1) >>
-endobj
-60 0 obj
-(Downside Deviation)
-endobj
-61 0 obj
-<< /S /GoTo /D (subsection.7.2) >>
-endobj
-64 0 obj
-(Sortino Ratio)
-endobj
-65 0 obj
-<< /S /GoTo /D (section.8) >>
-endobj
-68 0 obj
-(Summary of Performance Measures)
-endobj
-69 0 obj
-<< /S /GoTo /D [70 0 R /Fit] >>
-endobj
-72 0 obj <<
-/Length 107       
+3 0 obj <<
+/Length 1411      
 /Filter /FlateDecode
 >>
 stream
-xÚ3PHW0Ppç2€ÒN!\ún†æ
-–z–fFf
-!i
-††z†@sSC=C#……häü¼äü¢”ļäTې M#PWÍØ/¸9
-†–¦z†f&
-ºf&Æz¦&æ}†(Š\C¸ 1A®
+xÚÝWKsÛ6¾çWðVp&bð"	æf;q§™xÆ“¨ÓCÒ"AkŠÔ”3î¯ï.¤H[nÒ™¦\´ˆ]ìóÃ.n"ýøŒ?AÏ—Ï^\Š4y"Eª£å&Ežð\E™)’¼0Ñr}`ױ̘k7M»³õÊÅÅ%;«muß•ý»r¶;´®‹]¾™Y$DR¤©ô2MÂU-¤IL!Iä•moä¾E’³·öS¼ ÚÄðsWö¿ÓW[¯iñ®é::yîêÚõ=Þ¥"É3¢U¢u6Š^¡-1*þœ’LÜðâR™È$E–$\ƒº*ML–’̳O]ßÚUÿ>á_%FX¤I&r’°Ü‚ß´6lh÷`©aMvš
+Òœõ[ô&îÜ•7h¢£ýa·oˆ®Ý®©QŸá€Ýï«û²¾	ǶaûâìújÊ™3¼¸˜F}¸*1œ(8„,„|Gñܹ:ŽC“±Cç/ÁåªÙí½íKЄvl %q¸vߺޭisÓ6;Z]líô¬¥ÿ9ôÒ˲ÅJ[ÑßwewK«+[Û×zyеÓ³`¶%•VL¼[Óœ]ÆÄêõ $~Äk”–A.îÜÁ΄òWóHèDéÌçïBê¤à9d„LŠ!Ë.š:Vì$_‹¨€Dòšª@—ŠxQÈ”½‡Àz7*£ØÏ{¤š²7ŽU%3Ã90y¹f"4+´ø
+².¸”ìmc×$^)J¥4ºÈ0»ÂßÛ8M˜L'¨¾`qݺ½m§f¯loã…1†%ñ"Eþ¢‹â©oÓ2Œ>@Å	Åäl÷A,ƒ×¦‘‘e\d¬u÷uÓR4ÞaÊ hnHì—# Çœ;t]YñM]ð]²ïT4Õ|—?ô¶Þ^ÆP5c𠑇àåé3uÿiòعòs¿¦TT ¯­Å×KIðj,•,Ö:O95q¾quçêº s€ïž#Á¶P+Jd…dé)îtZ¢ `póm at OÍ^·­º€€e§Ø3bÿ©ö/>£Ú¨€WÀ»|ÆÞ윸_5xíçº+×ÁêWîγO$Ââ}Ó¾73$®Jkf¾€$áeÉG$‹°Ç‹–ÝÝpi!²ÿCm«$VäÎ'"â#:diö]ûß‚æ!:Ì»¡!g§Ýf¬˜57 ¿¾¹JÍ
+,ÆææQPá)†fÙw@…˜t²àZÊ;5ƒ
+—ÿ¾sý¶ñíôº£3„ü´²Õê`IüÐR/	_ìú·CG½)
+õìÓñ†Ó@ƒñUœ] °Š¤
+-è$ÛH¶—e㿽Ÿi¦²q×ÕöSå:úsÔ÷è@±³¶m8i»ÎõáÀç²ßÒj]~ÐrmpmV€IhGŽû©‚“Ù`D ô¾•ArëªûS– ´h!|ëèÃ3Ü1Nó†ï£a>´}¹:[h¢’FÉÀ´؆jÁÙGžòÛVt·ÇR\ø¶¦ˆ¶kêç´Sœ‚Ó‚ø|°q›æš¼öð´8ZO⻏‰TéÜða´ÔbO€^„§ñ¿I‰UT@óŽo]øØc"0ª¿î2-ó']Fj­ªÃzPrs¨WÃœ¢_¼©Òp˜fç–Úª"0œØ	o˺ìVÈ·0x³a»ÇGºgŽå8:Ì=Ìs$7>mçáåä·ÕL"êíôpèÔpÆ¿±@'AžM7›¦ªè©¿=.êÁ`”{ÀùÓùåË9.d’g0ê	†‡«‡0‰ØùDãùèMš’'…ž
+ÕýZAꤠI‹…Á©öÐ[”‚ ÿÄ®q£?©ÕšTæTS®Æ‡`zæõòÙTn[B
 endstream
 endobj
-70 0 obj <<
-/Type /Page
-/Contents 72 0 R
-/Resources 71 0 R
-/MediaBox [0 0 595.276 841.89]
-/Parent 76 0 R
->> endobj
-73 0 obj <<
-/D [70 0 R /XYZ 85.173 799.236 null]
->> endobj
-74 0 obj <<
-/D [70 0 R /XYZ 86.173 761.374 null]
->> endobj
-71 0 obj <<
-/Font << /F17 75 0 R >>
-/ProcSet [ /PDF /Text ]
->> endobj
-80 0 obj <<
-/Length 974       
+16 0 obj <<
+/Length 2052      
 /Filter /FlateDecode
 >>
 stream
-xڍVKoÛ8¾çWè¶1¢ÞJу“Ö‹1uÝSw´L[ÚÈ”AJIÓ_¿CåZ®ìÅ4‡óžŸ8;'pþ¼
-.¬w««›9Íš‘&±³Ú:4/HfNZä$¥Îjã|wŸ¼0u¹Ü¶rÏDÉ=?
-Bw&Xó¦j¥wÔ]p¦zÉ•÷Ïê¸,JI‘$¡v™&$ÉRǏ’§)º\0ù–à÷Q/™ûÈÖžkëÁÏKÝýÔžœŒPðr’ÉѲÔ:šç׸†µÉo5ÞÌãÀÉI‘¦X_Jh9~LI[—³µê$+»öQqbïÓ$‚rHŠ’ °å̇æ­;È%ŽÜU¥{‡îýìi¢®E	´2·„¶y{.ôi‡Âoêèﯞ‰Mƒâ
-ë˜iM ©¤$ŽrÌà›â
-µKºíÞó©{è;øϺºöŒÙµ†H…Ûqy¼ãt½•ÚLßWì ‡¸Éð´Ýâ¡d¾´Å=òíŽ7¸}ÀeÁLž5d”p	ß·{ÈÏ$Çlms/O  >4¡ìÕ­±òiDr=°Ób)ñü8ÉÜ•—§®äo¢µ¹.µ¿Sý	­É׊Ƀ	Á/šØ#kò…ÅÅ
-“œ5‡ŠM†ˆGY±RWÿ¬ç`ºŸ¥lå¤mbm„†î
-š\N/*jeW‹öDû=Õ¸™(ë¦aòÍBÅÎ PbFîßA^r¥ŽjëÞbR´J¶Ç)áÁÀôŒïŽwl²´aXŸZÝÃW¡êÖ'þR›î¼S£Rýþ`@?•C1Îá†vÀ½²±ºáŸ]ZÃ|]]ZýÇz-u« »ä=ä+HëI‚5Ð-Ññ¡pÏِËpépPGÙÌŒªfܼVµÁ\…[S·a?e ÈUý©ov€Žq;UûUÅY›†ÙÜ"yÙÊ
-’
-œJ<å?4¤®—BMŽ~}gÏ»J£­p-M1ahx¥þiæv‹LÖÈ•¡>];Œè4‡ÈÝñ¼ÉZ3ää-,σëBä¸LLÞöjóo¯º¡V&låLq®’í`vFB’gÆ]Â^<]é§Ùz-¸¿Ç†O¨ÿñ#fø`úƒ‘ϳ{Òÿ0¶ms(gÞÌ—Zã¿»¹ã±³Ç¯÷ûþì@—ó±¿e­¬íÙûóÉ„Ôaìàk¿>‰Íe=B‡¦¯ãõ°D¦2\ª£ÚÆ0 »¶W‚ì,6f„æf_£é«é¶Û}‹_ìJ=à”9<ŸU	/§ãçPÙð®
-GŸWWÿ€0~
+xÚÍËrÛFò®¯@y/`•1Á<ðÚÚ=8»V6®¸J¡YµÇJˆH€@Ëþûôc@ äH*kk/œžFOO¿¦§{z7^èýtNÆW?\¦^&²XÅÞjãI©D¤´—h)b#½ÕÚûèGbñiõî¸ÈûDaèÿ\mêf—we]-­µ¿DxLzæÈųŒ>ÔMWVõ„É—&qDE
+%@2™$^ ‘¦)3”B.9ò©óuYÝ “$ò»[ËÀÕBK?/ð÷nk?¿qòjí(»Ï›ãÊç]λ­‚j¤B§ïúÛ •ÿ~¡RßÁ[€!Üžx€ä'&‰Y¦€ñøéÍòêrùþ|/	czª=È;Ü-¢ˆeGö¿…Qø£­*ÛuŒ°4‚v[ñš1*”È$ÏHYZëVö'I	XƒÞbØìróºa|}p - t·©·eýå£H#ŒV€Ÿœ“{›˜8ñïËí–¡¢®Ú®9Nc‰ÑöCî(x]ys‹cǸñ®¼´Þð7’ßBišÖ1–!#ó”m.«wè0¡Ñ½¥·ysc‹|/`Ñ™O¢DDúè°Sj"ÿ¿h§¡ždÇ"Â0åÐå¨|¹¶`J+»¼¹#¥;þÐØîÐT-,«µ"µL
+®nIþAàš,e+Š—[âL„½ÒèMíÖåè ì—|·ßZ·û¡,AÁ?Ð¥šû²µ|^«º³kw¬…6‘獆æÆ›C/!u3œ¢>G?™úíêâ	’Cñ²Dè(õä•Ä^±»@¼‘‰H”§B
+/ëm.~}²POSø%©ã$…i”B”Š8™vŠ\ºŒéaÊ‘MìÅ!D®IØË[‘˪Q"Ð'.š@~º£¼„J3#Ú½¹r„.xŸ(‰Np
+RÃoæt›"rrÂ'Ûöû‚úŠeþÐåMwØ¿ÌÚg<1»•sMyÝäÍ×çoé|€ž²ü%˜fíî¼çÉR4í^´·£¢<6'¡‚)-29ŠÁ÷Ë0í!ÜgȧKû@l¸;k)vƒ]þð8¸>¾v{J¼Â…ÉP‰”÷£–\×ÀòWÌóÕólûéLÙ”íC›Æº3Úäý~öt!Õl¾—%ýW]þ™pÕç¶ý©*Áé½CsŃÐéÒÇYÙöI’GWøðR(zºY®õf’Q7%V:ÏI¢5Âôh8½±®"ù]]E:UgÞýî‘´“@H=5áÒº%¥Ž·gg¼Q0Ë¿ËðÓe>èMŠz·?tÎùöKEÙËd£½ß~™19›púÁáá´ÏŠÄi.­Ž“íˆÇË`®íäÎÒ`Ñ£œØ>tr+×Q®™3­¨T†ÞpКNšC%Eªœï(Aè4…õÐ’×kpbA³µý¼PÐ mk,ÑX3þø¯¿Ãö/ñïxö‹À12†vÏ„Š’R@'.}·=õ0æ<pç€4'
+ÜA¾þýÐvýÖ;›·‡Æ¶G¯r?aêý«ÂbÓhBÿgä®$Kc¾mQOúwÐÙƒ÷O󞀇ÆRÛ—7ë «ƒÏÔç6e~]nË®7’Ý@µšv“ÎÆ€_av´1 –ÎÀQŠ|[¶9j9£É“f®Í"{Á¶Ÿ©-kø¹ ¾ö'a>yΉågHñgž°›t°=RÂGéX¤Ññ] ›Ùó“¡µìiꁈ“íÚ|çDîÊÝHÛ a €n-ˆeHF<GšÒPúqrî1E:}
+XÛ¶hJם¢¡ÂzUŠ|Tážqä-Y ÚãÁà9ÅmO ²"º84%	1Û²¢x„¶ô
+ßÂÍJ6x+€èc@ˆ|컑‰µëúu'b:'þÕ± )¢˜Î Ž}ø LÏ0òó t¹Ã)]°Î3Í7$t|éñ
+§Ôԏx_ú½æOAËÁQ”9§ƒHC)ÓÝ2„‡5zà>“A£É{F¤'±ž‰B=qC¤nÀ}*·u[Sð"ïŽÛŸ™cF‘A
+‹
+¤Ë@{ Ù!·ün‹Ž1]íÆ[GQÚ•EÙîø„X\—>òù'LÙò{aŒïcø°âàÍ„eE^Ù؝­Ü“ÖicPˆ¤¿u¡gÔ™µ¸v×flq}nñ–œ;µžÜOúäàK§Pk‹	 ¢ˆ€©Ëp3Y#6"ÎðÕ+Ò¸£¿r„¡‹,Ñ)½¤ÁE‰‚Š|¢º:O/™0ҐüsnG)@Ä"qDoÏù$"SÙ)“q«>á£Eš_ö–3'"Š£‘Äûó@{(4}EÌÌ€.a:È­áœDé¿’ÈŒ$º¤Úiôê¥2ð9”šJgBÏ^?…Þ>¾£Ú8õî‰tçEF(‰ë¶Þ‡‹_ù…hl#© ~´§àd6½&Žµ3Wô ƒ|vS B€e˜v„÷·ø®>üƒ`"RgƸÿ¢ÿ™ßV$1Øv at sêÆÿq¬->”ºSÅ	Ž™ý⮸sA׳c…¡]®á£#þ ½Ä`FÿÁ<.Æ/'|ÇÿA´›a´Ïk7R£š~<Ýzˆw·‚è0W>ê>™¢Qú¾X ¿­;è,¡KÅÊ7b6>OJßP_=B}Wåt9O'ŽœÍÕ§¨‘i,$´A¢„N²¾3ÒÀqÿÙ]¸è
 endstream
 endobj
-79 0 obj <<
-/Type /Page
-/Contents 80 0 R
-/Resources 78 0 R
-/MediaBox [0 0 595.276 841.89]
-/Parent 76 0 R
->> endobj
-81 0 obj <<
-/D [79 0 R /XYZ 85.173 799.236 null]
->> endobj
-78 0 obj <<
-/Font << /F18 82 0 R /F19 83 0 R /F40 84 0 R /F39 85 0 R /F17 75 0 R >>
-/ProcSet [ /PDF /Text ]
->> endobj
-104 0 obj <<
-/Length 1188      
+23 0 obj <<
+/Length 2306      
 /Filter /FlateDecode
 >>
 stream
-xÚíXKsÛ6¾ëWp¦‡’3%ƒ7ÀCqíd’IW–§‡´Z†,N$ҁ¨ºî¯ï‚ !ŠVc[»vÓA,]ì‡}EŠ^&£¯‰0Ë($šÌ"%2,i$9ÎÊyô1þ©®ŠãF»a•ü>yûh”g¹ ÂnCQJd¦rávà$Í	OtÓ”ÕE’REãÓK;²x2׎ð²*׫r•¤DaŽbêøbÙã'Ë‹R,³œúãàØcDH|´jŠ³E¹š;!”Æㄨx]MÊ¥BY|l	…)–ºÑD)Šâ,I9úËó¯Çìöà	W}Lq®¸mCE*ÚAE:¨¦ˆy½¡Ôc*ò¿‰­ˆÙ-ØÒÛ?SL›`„Euî`þ`.Šªü+Á±ÿÆââ)À9°ø/ÆoŒmæÐz_˜O	‘±öóßGºröº„@ÀîÓËØq	˜®>¹É«¢ŠÑÞáO´±5X5ìiá£vãâ÷ø¼Ö•6E£ÖǝڀRͬ6‹²î©
-äÍdmš¹6T]p¥X=W{Ê·¨ƒ”“v¹¡ŸxˆK<“$`×U‹äšqÑ nÀ-b˜f’C‡9Þ‘tRš«LË­ë!!íhëÃráIÏ%ï˜Á»øÇ AB›$páNiw§)•üÙfôÇp$U ä»xõ%ܼ0¶p#±¾Å“HKL=Õñâîs¼Þêj¥«ïW¾ü[\ÎË™	㶎	e¤ßÇûÞ\L8ŧPOÓZá41ßÚïunÿ›
-âæÒž»êëR”c4ÜêEK·õ°¶B¯ªUyîõ?Ô”ó¹è'µ
- Þ@'€/¶ÞÖeˆ0 ²_kë'’€•œcùÍûN»_2Ííl‡àâ[;5ڝå݇÷åÇz	ÅÛµó‡zæ¼åØz“6­;VSïQïu±Z[°‚÷2‡)²¡%Ë»žÔz
-Þj1!
-´-&Œ®Å„—P†À‚óŽ!E™T²ßUZ–ƒ®ØŒmߺJ [¦j!‚“ò(ÚÌE´‹<†0Ìí¼7´«o’ï½úh2ú< Šp¤h† U2š.G–Î(¨Qã<ã ‹ÑÑlô˽Ou?rµ
-¦4…w%ÜÚ!qìÿxÖ³aÿÃp•)ªœ-|žam«©v¯`žëE³ßMÛ—þ3¬í?ÇÖ¹Äà—J¿ü^²ÏàÂ`÷ϼCg›6nÞêúã^"$•7e‰NKÞÓ’ËŒÓPD}ù˜c(àN¸m<÷’Ž¶SI[ksK´Šg„Ñ?Ÿ¾{÷˜Špb¤ÿ°ŸMG¡qkF¼Câƪ؃êç®ï§ÈcÇ p¤y÷+!‹ðL	±9ÞÌܨ?¯‹Å¯ÍÊÍJ?6fíÃÊ%”%³ºméíôJ—ónõU¹X¸·3¿¿¨ÖË3m>ÌNôtmʦÔÿJDòÕUPî‰F¤{èd|zô°6Š¼­øBÉ@ïð?|Yr„ªu«õ"Â3RPORp`Õµ»÷?;ZÝŠG
+xÚÕËnÛHòî¯ Dö‹`÷Lfg²^sÈä@K-‹%*$•Ä?U]Ý›¢-Ûƒ À0»‹Å®G×[It%ѯW‰{þtsõæJ"ÎY¡µˆn6O&Ue’³Tñèf}ˆã‹%çBÇ?™¾\|¼ùï›wyT°")~”DKž3YöÛ…Èã~±T‰Šûí‚ÇUG›Ãb	ošjo^P$qå0	IÆw
+aÙÿk‚õ
+=­é}MLp>â‚ë‚i©€ËÆŸ	Wç¬ò„ñ,÷8åÞQØ6xêWÇJO@ÏÒªÙŽ½Y³9¢\±¬(ž@tÀñÇ–DmgÊîØ‚5zv÷]ove_­ð´h)
+ÅÒÔloŠÎi«îÓb)u7-=¿ M
+ŸÕ ¬ï	þg¢“²s¸w
+Yµ‹Ï}³‡Ë4ß¹…gbD&×ÊbÓvÊ[ÞÖ†^ G@‹;ô
+=Kz8²m¿iêÊ‘l
+2kÙ6!3Öʬa$¾µG˜ý
[TRUNCATED]

To get the complete diff run:
    svnlook diff /svnroot/uwgarp -r 151


More information about the Uwgarp-commits mailing list