Version 1.0-2 Had the structure for DOI in inst/CITATION incorrect. Fixed. Version 1.0-2 Changed URLs to DOIs in inst/CITATION and in various help files, as per instructions from Achim Zeileis. Version 1.0-1 * Fixed glitch in help file for vsolve; referred to plot.flap() rather than to plot.AssetPricing(). * Registered S3 methods plot.AssetPricing(), plot.flap(), and plot.stepfun() in NAMESPACE. Version 1.0-0 * Submitted to CRAN 13/June/2014. * Added the CITATION file provided by the Journal of Statistical Software. (13/06/2014) * Added reference to the Turner, Banerjee and Shahlori paper in the help files. (13/06/2014) Version 0.1-4 * Never submitted to CRAN. * Fixed errors in the documentation of plot.AssetPricing. (07/03/2014) Version 0.1-3 * Submitted to CRAN 05/March/2014. * Fixed some glitches with respect to the assignment of "gpr" (group size probabilities) in the environments of scrF(), scrG() and cev(). (28/02/2014) * Added the capacity to produce "progress reports" to reassure the user that "something is happening". These are invoked by means of a new "verbInt" argument to xsolve() and vsolve(). If verbInt > 0 a progress report (rough percentage of [0,tmax] left to cover; estimate of total elapsed time) is printed out every verbInt seconds (approximately). The progress reports are produced by a new function progRep(). (27/02/2014) Version 0.1-2 * Submitted to CRAN 28/January/2014 * Tweaked the DESCRIPTION file to *import* polynom and deSolve rather than *depend* on them; tweaked the NAMESPACE file to import these packages Version 0.1-1 * Submitted to CRAN 27/January/2014. (Package was never installed on CRAN due to a problem in respect of importing from the polynom and deSolve packages.) * Tidied up RCS and made sure everything is up to data with respect to version of the functions. (27/January/2014) * Changed the procedure for smoothing --- minimizing the size and frequency of the jumps in --- the price function in the discrete pricing and piecewise linear price sensitivity function settings. This involves a new argument "epsilon" which replaces the old argument "maxFac". (27/January/2014) * Changed the procedure for determining candidate prices in the case of piecewise linear price sensitivity functions, so that it can handle the "dip" (doubly indexed price) scenario. (27/January/2014) * Revised vsolve() slightly so that if the specified value of "x" (prices) has a comment, then the default comment, i.e. "Prices not necessarily optimal." is catenated to that comment, rather than overwriting it as was previously the case. (26/August/2013). Version 0.1-0 * Submitted to CRAN 13/August/2013. * Changed the function turnPts to use deriv(ply) rather than deriv(as.polylist(ply))[[1]]. God knows why I originally put in this shaganappi ring-around-the-rosy. I recollect that I couldn't get deriv() to work on an object of class "polynomial" but I could get it to work on an object of class "polylist". Clearly it ***does*** work on objects of class "polynomial" so it is mysterious WTF was going on. (6 June 2013). * Made adaptations to make use of the package deSolve to effect the solution of the differential equations. (Started 21 July 2013.) The transition went surprisingly smoothly. One slight worry arose in respect of the solution with piecewise linear price sensitivity functions. When choosing the optimal price it is possible for there to be multiple maxima. The maximum should be chosen to be as close as possible to the previous value so as to avoid jump discontinuities in the price function. This requires knowing what the previous value was. When using my roll-your-own Runge-Kutta procedure I was able to save the value of "x" as "xback" in the environment of "scrF" at each Runge-Kutta step. Now that I am using deSolve I can't get at such a value of "x". I have resorted to the expedient of saving the value of "xopt" obtained at the end of scrF() as the value of "xback". However this would be roughly equivalent to saving the value of "x" at each of the 4 component steps of a Runge-Kutta steps, and this doesn't seem quite right to me. However it would appear to be the best that I can do. * Made a (substantial?) change in the plotting regimen. Rather than calling plot.flap() on object$x, object$v, or object$vdot respectively. I have now structured things so that the object returned by xsolve() (or vsolve) has class AssetPricing. I have written a plot method plot.Assetpricing() with an argument "witch" to indicate which of three components of the object should be plotted. This method then calls plot.flap() on the chosen component to do the real work. * A few other minor corrections and adjustments were made. Version 0.0-11 * Submitted to CRAN 02/11/13 * Removed a directory "man.save" from the top level of the package. This directory was an unnecessary remnant of the development process. Version 0.0-10 * Submitted to CRAN 01/01/13. * Changed call to .onLoad() to be a call to .onAttach() in the First.R file. * Added a file declareGlobals.R which contains a call to globalVariables() which keeps R CMD check from issuing notes to the effect of "no visible binding for ...". Version 0.0-9 * Submitted to CRAN 30/12/12. Got complaint from the CRAN maintainers with respect to a couple of issues (see above) whence version 0.0-9 was never installed on CRAN. * Reorganized the argument structure of plot.flap(); removed the "aao" argument --- its use is obviated by the newer "groups" argument. * Made the default behaviour of plot.flap() be such that a *single* group of traces is produced. This behaviour pertains when "groups" is unspecified or if the "group" column of "groups" is unspecified. This behaviour is consistent with the former behaviour which arose when "aao" was set equal to TRUE. * Did some corresponding (and other) revision of the help for plot.flap(). * Cosmetic change to code of turnPts() --- to make the code consistent with the (more perspicuous) notation in the paper about to be submitted. * Re-ordered the entries of this file under "Version 0.0-7" so that the most recent change is listed first. (9 November 2012) * Changed buildS() to assign the parent environment of S as globalenv() rather than new.env(). This keeps R from popping up a message "AssetPricing 0.0-9" when a workspace, in which a function returned by buildS() has been saved, is loaded. (9 November 2012). * Corrected a bunch of spelling errors in the help files. (8 November 2012). Version 0.0-8 * Changed the examples for xsolve() and vsolve() to make them run more quickly so as to reduce the time for package checking on CRAN. Version 0.0-7 (Initial submission to CRAN, 7 November 2012). * Adjusted vsolve() to throw an error if "jmax", as determined from "gprob" is greater than the "jmax" attribute of "x", and double indexing is in effect (i.e. "x" inherits from "di.flap"). * Adjusted buildS() so that "tmax" is an attribute of the returned value, rather than being assigned in the environment of the returned value. Made the corresponding adjustment to the way that xsolve.pwl() accesses "tmax". * Adjusted xsolve() and vsolve() to allow lambda to be a scalar constant as well as a function. * Re-wrote the comments in scrF. * Changed cev() to make use of "maxFac" and "xback" when doing discrete maximization over price. * Added argument "maxFac" to xsolve; used by xsolve.disc() and xsolve.pwl() in choosing a maximum out of a finite discrete set (when there is some ambiguity about which maximum to use). This gets rid of some anomalous looking discontinuities in the optimal price functions. Also added an object "xback" (the value of "x" at the previous Runge-Kutta time step) to be assigned in the environment of cev() by xsolve.pwl()) for use in selecting the appropriate "maximum" in a way which enhances continuity. * Added new argument "main.panel" and changed the handling of "main". * Adjusted putAway() in respect of the way the "jmax" attribute is handled. * Changed the way "gloss" and "glind" are handled. * Replaced the argument "index" by groups to provide for plotting of *groups* of traces (when "aao" is FALSE). * Re-wrote plot.flap() to handling "doubly indexed" price arrays properly. * Renamed the class "funlist" to "flap" (Function List for Asset Pricing). * Created a new function findSolType() to determine the solution type --- cont, disc, or pwl. * Re-wrote many comments in the code. * Changed the name of an attribute of "funlist" objects from "xlim" to "tlim" (since the relevant variable is always referred to as "t"). * Made argument "type" default to "sip". * Made argument "alpha" default to 1 when jmax=1 (so that it needn't be specified when jmax=1). * Made argument tmax of vsolve() default to the upper limit of the "t"-axis associated with the argument "x". * Re-ordered the arguments of vsolve(), xsolve(), xsolve.cont(), xsolve.disc() and xsolve.pwl(). * Made vsolve() able to cope with discrete prices (and with pwl price sensitivity functions.) * Changed the name "parlist" to "parvec" to avoid confusion (since this object is a *vector* and NOT a list). Version 0.0-6 * Added an argument "extend" to plot.funlist() --- controls how much the x-axis is extended to the right to accommodate the marginal gloss. (It used to be fixed at 0.3, which is now the default value.) * Corrected the references in the plot.funlist() help file; ``to appear'' is no longer applicable. * Fixed a glitch in the examples for plot.funlist(). * Installed 2012-02-18 Version 0.0-5 * major debugging; corrected some very silly structure in xsolve.pwl(). Fixed a few other minor bugs in some other functions. * changed the value out of range criterion in buildS.R to use eps = sqrt(.Machine$double.eps) * changed vsolve() and xsolve.disc() to use "tvec" r.t. incrementing tt by delta on each step. * changed vsolve() to make use of putAway() * changed putAway() to accommodate input from vsolve() (whereby "x" is already an object of class "funlist" which gets passed through as is). * Installed 2012-02-01 Version 0.0-4 * added xsolve.pwl() * added utility functions getPossPrices() and turnPts() upon which xsolve.pwl() ultimately depends. * amended scrF() to call upon getPossPrices() appropriately. * amended the way things are assigned into the environment of scrF() to accommodate the piecewise linear computations in a convenient manner. * Installed 2012-01-25 Version 0.0-3 * Added xsolve.disc() Still need to add xsolve.pwl(). * Installed 2012-01-23 Version 0.0-2 * Added xsolve() to call upon xsolve.cont(), xsolve.disc(), or xsolve.pwl() as appropriate. (The latter two functions are not yet written.) * Changed over the documentation for xsolve.cont() to be documentation for xsolve (and made xsolve.cont() "internal"). * Added buildS and documentation for it. * Installed 11 January 2012. Version 0.0-1 * Adaptation of previously written "Apma", made to be better structured. * Installed 20 November 2011.