SERVING THE QUANTITATIVE FINANCE COMMUNITY

 
User avatar
Cuchulainn
Topic Author
Posts: 59679
Joined: July 16th, 2004, 7:38 am
Location: Amsterdam
Contact:

General Remarks and so on

November 10th, 2011, 10:12 am

Sometimes you might like to say something that does not fit into any specific thread.//Many of the discussions to date are related to object cagegorisation, which is well known in cognitive scienceThey levels are context-sensitive, e.g. are OOP. GP concepts at basic or subordinate level ?(for me, SL), whereas components and logical interfaces are at basic level. Quote"Making comparisons is a very human occupation. We spend our lives comparing one thing to another, and behaving according to the categorizations we make. Patterns govern our lives, be they patterns of material culture, or patterns of language. Growing up in any society involves, in large measure, discovering what categories are relevant in the particular culture in which we find ourselves. Within a few years after birth, we have established mental 'control' over many, if not most, of the 'objects' within our experience. 'Things' are classified as the same, similar or different, and we construct mental 'boxes' in which to put objects which 'match' in some way. However, the number of new boxes we create diminishes rapidly as we grow older. We become 'fixed' in our perceptions, and the world, once fresh and new, loses its ability to surprise as we become increasingly familiar with the objects it contains, and increasingly adept at placing the objects encountered today into boxes created yesterday" ? (Dienhart 1999: 98)
Last edited by Cuchulainn on November 9th, 2011, 11:00 pm, edited 1 time in total.
 
User avatar
Cuchulainn
Topic Author
Posts: 59679
Joined: July 16th, 2004, 7:38 am
Location: Amsterdam
Contact:

General Remarks and so on

November 12th, 2011, 9:21 am

Something that would be nice to have is a library to model mathematical functions based on arbitary underlying type (including rings and non-rings). In particular,1. Vector, vector-valued, matrix-valued (I use boost::array<V,N> which is cool and bullet-proof because errors are at compile-time)2. Mappings between functions (inverses, composition)3. Continuous and discrete spaces (e.g. random variables); Boost ICL has something in this area.4. Can be specialised to date,rational, interval, polynomials etc. 5. Can then use in n-factor problems.In other words, we get a uniform/interoperable syntax/signature.What do you think?
Last edited by Cuchulainn on November 11th, 2011, 11:00 pm, edited 1 time in total.
 
User avatar
Cuchulainn
Topic Author
Posts: 59679
Joined: July 16th, 2004, 7:38 am
Location: Amsterdam
Contact:

General Remarks and so on

November 12th, 2011, 11:46 am

Thijs,BTW what is 'FDE'?? Can we just use FDM because it is standard.
 
User avatar
Cuchulainn
Topic Author
Posts: 59679
Joined: July 16th, 2004, 7:38 am
Location: Amsterdam
Contact:

General Remarks and so on

November 12th, 2011, 3:00 pm

In order to collate topics and features, could adopt something on the lines of Request for Comments? e.g. RFC 1035e.g. RFC 101 Matrix, RFC 501 FDM etc. how internet got its rules QuoteThe early R.F.C.?s ranged from grand visions to mundane details, although the latter quickly became the most common. Less important than the content of those first documents was that they were available free of charge and anyone could write one. Instead of authority-based decision-making, we relied on a process we called ?rough consensus and running code.? Everyone was welcome to propose ideas, and if enough people liked it and used it, the design became a standard. QuoteI was reminded of the power and vitality of the R.F.C.?s when I made my first trip to Bangalore, India, 15 years ago. I was invited to give a talk at the Indian Institute of Science, and as part of the visit I was introduced to a student who had built a fairly complex software system. Impressed, I asked where he had learned to do so much. He simply said, ?I downloaded the R.F.C.?s and read them.?
Last edited by Cuchulainn on November 11th, 2011, 11:00 pm, edited 1 time in total.
 
User avatar
Polter
Posts: 2526
Joined: April 29th, 2008, 4:55 pm

General Remarks and so on

November 12th, 2011, 9:16 pm

Ohhh ... http://www.acronymfinder.com/Finite-Dif ... DE%29.html ;-) So, when you use FDMs, you use FDEs! :-)
Last edited by Polter on November 11th, 2011, 11:00 pm, edited 1 time in total.
 
User avatar
Cuchulainn
Topic Author
Posts: 59679
Joined: July 16th, 2004, 7:38 am
Location: Amsterdam
Contact:

General Remarks and so on

November 13th, 2011, 6:24 pm

QuoteOriginally posted by: PolterOhhh ... http://www.acronymfinder.com/Finite-Dif ... DE%29.html ;-) So, when you use FDMs, you use FDEs! :-)And there I was thinking that I was doing FDM all the while I hardly ever heard of FDE in the literature... Anyways, it's not a showstopper. It is by no means a common term in numerical analysis.
Last edited by Cuchulainn on November 12th, 2011, 11:00 pm, edited 1 time in total.
 
User avatar
Cuchulainn
Topic Author
Posts: 59679
Joined: July 16th, 2004, 7:38 am
Location: Amsterdam
Contact:

General Remarks and so on

November 13th, 2011, 6:48 pm

Looking at MM code for FDM, is that a kind of scripting language? I am sure someone could do it in Boost Spirit. I know Xpressive, would it do the job or do we need more?
Last edited by Cuchulainn on November 12th, 2011, 11:00 pm, edited 1 time in total.
 
User avatar
Polter
Posts: 2526
Joined: April 29th, 2008, 4:55 pm

General Remarks and so on

November 13th, 2011, 7:59 pm

QuoteOriginally posted by: CuchulainnLooking at MM code for FDM, is that a kind of scripting language? I am sure someone could do it in Boost Spirit. I know Xpressive, would it do the job or do we need more?It's native Mathematica, a very elegant, functional programming language (well, multi-paradigm really, but it really fits the FP paradigm well). Comparisons are made to APL and LISP:http://reference.wolfram.com/legacy/v1/ ... 2.7.pdfbut also to C:http://reference.wolfram.com/legacy/v1/ ... .2.4.pdfAs far as C++ libs go, I like the OpenFOAM's syntax:"solve ( fvm::ddt(rho, U) + fvm::div(phi, U) - fvm::laplacian(mu, U) == - fvc::grad(p) );" OpenFOAM"3.1.3 Equation representationA central theme of the OpenFOAM design is that the solver applications, written using the OpenFOAM classes, have a syntax that closely resembles the partial differential equations being solved." -- ideally something we should be striving for?http://www.openfoam.com/docs/user/progr ... econd-best is perhaps Overture (although it's visibly on a lower conceptual level -- note that below is a specific FDM scheme, not a general equational formulation as above):Overture http://computation.llnl.gov/casc/Overtu ... .pdf"u+=dt*( -a*u.x()-b*u.y()+nu*(u.xx()+u.yy()) ); // forward Eulert+=dt;u.interpolate();u.applyBoundaryCondition(0,dirichlet,allBoundaries,0.);u.finishBoundaryConditions();"BTW, another PDEs-solving library, OpenCurrent, that we might look at at some point (esp. its Static Communication Patterns):http://code.google.com/p/opencurrent/wi ... Doc"Design PrinciplesThe OpenCurrent library follows a small number of design principles throughout the codebase: Static Communication Patterns: In a complex system, managing communication is one of the most difficult and important aspects for correctness and performance. OpenCurrent follows the philosophy that all communication patterns must be declared up-front statically, and cannot be changed once the data structures are created. This greatly simplifies the run-time system, since it allows communication patterns to be hard-coded at start-up, which puts the burden for choosing how best to arrange communcation onto the programmer. This allows OpenCurrent to have a very lightweight run-time system, which improves performance and makes the overall code-base simpler. "Another might be FunctionParser mentioned as an optional dependency for deal.II:http://www.dealii.org/ http://warp.povusers.org/FunctionParser/"For example, a function like "sin(sqrt(x*x+y*y))" can be parsed from a string (either std::string or a C-style string) and then evaluated with different values of x and y. This library can be useful for evaluating user-inputted functions, or in some cases interpreting mathematical expressions in a scripting language.This library aims for maximum speed in both parsing and evaluation, while keeping maximum portability. The library should compile and work with any standard-conforming C++ compiler."
Last edited by Polter on November 12th, 2011, 11:00 pm, edited 1 time in total.
 
User avatar
Cuchulainn
Topic Author
Posts: 59679
Joined: July 16th, 2004, 7:38 am
Location: Amsterdam
Contact:

General Remarks and so on

November 16th, 2011, 1:14 pm

QuoteRemark 1:Regarding the naming: it's best to follow the STL, boost and google code guidelines:* Type names start with a capital letter and have a capital letter for each new word, with no underscores: MyExcitingClass, MyExcitingEnum* Variable names are all lowercase, with underscores between words.Is this standard? boost and STL do no adhere to above. Some use:BTW I had a quick look at Google guidelines, there are kind of superficial??
Last edited by Cuchulainn on November 15th, 2011, 11:00 pm, edited 1 time in total.
 
User avatar
rmax
Posts: 6080
Joined: December 8th, 2005, 9:31 am

General Remarks and so on

November 16th, 2011, 1:50 pm

I like Classes being propercaseVariables being propercase but with identifier as shortcode at the front (Hungarian Notation) - better if the identifier truly identifies the type of data.I.e. idInstrument is better than lInstrumentID To be truly multi codebased we should also define the coding standards for C#, Excel, R etc....
 
User avatar
OOglesby
Posts: 42
Joined: August 26th, 2011, 5:34 am

General Remarks and so on

November 16th, 2011, 11:39 pm

QuoteRemark 1:Regarding the naming: it's best to follow the STL, boost and google code guidelines:* Type names start with a capital letter and have a capital letter for each new word, with no underscores: MyExcitingClass, MyExcitingEnum* Variable names are all lowercase, with underscores between words.I am flexible. Mostly I code to my own style so using the above recommendations or more formal guidelines is no extra effort for me.
 
User avatar
Cuchulainn
Topic Author
Posts: 59679
Joined: July 16th, 2004, 7:38 am
Location: Amsterdam
Contact:

General Remarks and so on

November 20th, 2011, 9:14 am

It would be nice to document your software like this
 
User avatar
Cuchulainn
Topic Author
Posts: 59679
Joined: July 16th, 2004, 7:38 am
Location: Amsterdam
Contact:

General Remarks and so on

November 22nd, 2011, 9:20 am

For some of the libraries in which functions, transformations and composition are used some measure of functional programming is a fine and ideal solution.Example a pde in x is transformed to one in y, y = x/(x+1), and even composed with log(S) transformation.Hand-crafting a pde each time is a slog.
Last edited by Cuchulainn on November 21st, 2011, 11:00 pm, edited 1 time in total.
 
User avatar
Cuchulainn
Topic Author
Posts: 59679
Joined: July 16th, 2004, 7:38 am
Location: Amsterdam
Contact:

General Remarks and so on

November 30th, 2011, 5:26 am

How can I do function composition in C++ in an easy way?
ABOUT WILMOTT

PW by JB

Wilmott.com has been "Serving the Quantitative Finance Community" since 2001. Continued...


Twitter LinkedIn Instagram

JOBS BOARD

JOBS BOARD

Looking for a quant job, risk, algo trading,...? Browse jobs here...


GZIP: On