Implementing PDE Models in C++ and Boost: OverviewWe now discuss the motivation for and the design of a customisable software system in C++ to price two-factor equity options (as discussed in Haug 2007 and Zhang 1998). The main goal is to set up and eventually extend a software framework to allow fast prototyping of new finance PDE models, finite difference schemes and C++ libraries to improve efficiency and speedup. In particular, the short terms goals are:. The ability to define new schemes, introduce them to the framework and test their accuracy by comparing them with the exact solutions, if available (see Haug 2007). For example, we can test the different variants of the Alternating Direction Explicit (ADE) method in combination the Janenko method and it is also possible to investigate the effects on accuracy by comparing different kinds of boundary conditions.. Analyse and design software systems by decomposing them into loosely-coupled components with each component having well-defined interfaces. Having found these components we then implement them using a combination of higher-order function libraries such as Boost Function, Signals and Bind. The data that is transported between components is usually modeled as uBLAS vectors and matrices.We use Domain Architectures, System and Design Patterns as drivers of the design process (Duffy 2004A, POSA 1996, GOF 1995). This approach is needed in our experience if we wish to produce flexible and customizable software systems.. In general, we try not to create home-grown software if it is available in STL and Boost, for example. This approach improves standardization and reduces the learning curve (Demming 2010, Demming 2012).. When creating this software system we will hopefully need to develop utilities (for example, post-processing error analysis) that can be used in other applications. C++ source code in a few days I use VS2010 and Boost 1.47. typical output
Last edited by Cuchulainn
on February 13th, 2012, 11:00 pm, edited 1 time in total.