You can subscribe to this list here.
| 2000 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(17) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2001 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(23) |
| 2002 |
Jan
(18) |
Feb
(20) |
Mar
(22) |
Apr
(41) |
May
(28) |
Jun
(25) |
Jul
(10) |
Aug
(7) |
Sep
(5) |
Oct
(20) |
Nov
(13) |
Dec
(11) |
| 2003 |
Jan
(28) |
Feb
(5) |
Mar
(6) |
Apr
(5) |
May
(17) |
Jun
(6) |
Jul
(45) |
Aug
(35) |
Sep
(24) |
Oct
(50) |
Nov
(53) |
Dec
(6) |
| 2004 |
Jan
(4) |
Feb
(10) |
Mar
(52) |
Apr
(46) |
May
(8) |
Jun
(25) |
Jul
(12) |
Aug
(6) |
Sep
(8) |
Oct
(8) |
Nov
(9) |
Dec
(7) |
| 2005 |
Jan
(18) |
Feb
(60) |
Mar
(19) |
Apr
(26) |
May
(14) |
Jun
(27) |
Jul
(8) |
Aug
(15) |
Sep
(19) |
Oct
(53) |
Nov
(20) |
Dec
(23) |
| 2006 |
Jan
(16) |
Feb
(27) |
Mar
(33) |
Apr
(51) |
May
(36) |
Jun
(25) |
Jul
(54) |
Aug
(30) |
Sep
(25) |
Oct
(67) |
Nov
(43) |
Dec
(13) |
| 2007 |
Jan
(23) |
Feb
(27) |
Mar
(55) |
Apr
(79) |
May
(60) |
Jun
(66) |
Jul
(46) |
Aug
(30) |
Sep
(90) |
Oct
(49) |
Nov
(85) |
Dec
(74) |
| 2008 |
Jan
(68) |
Feb
(59) |
Mar
(64) |
Apr
(28) |
May
(66) |
Jun
(35) |
Jul
(73) |
Aug
(76) |
Sep
(65) |
Oct
(46) |
Nov
(41) |
Dec
(19) |
| 2009 |
Jan
(46) |
Feb
(90) |
Mar
(51) |
Apr
(104) |
May
(13) |
Jun
(24) |
Jul
(20) |
Aug
(39) |
Sep
(109) |
Oct
(101) |
Nov
(117) |
Dec
(57) |
| 2010 |
Jan
(55) |
Feb
(42) |
Mar
(39) |
Apr
(22) |
May
(33) |
Jun
(41) |
Jul
(25) |
Aug
(52) |
Sep
(75) |
Oct
(60) |
Nov
(62) |
Dec
(52) |
| 2011 |
Jan
(70) |
Feb
(31) |
Mar
(26) |
Apr
(28) |
May
(17) |
Jun
(38) |
Jul
(51) |
Aug
(35) |
Sep
(27) |
Oct
(35) |
Nov
(10) |
Dec
(20) |
| 2012 |
Jan
(21) |
Feb
(29) |
Mar
(13) |
Apr
(37) |
May
(33) |
Jun
(12) |
Jul
(34) |
Aug
(27) |
Sep
(29) |
Oct
(35) |
Nov
(58) |
Dec
(27) |
| 2013 |
Jan
(27) |
Feb
(16) |
Mar
(40) |
Apr
(16) |
May
(34) |
Jun
(37) |
Jul
(6) |
Aug
(3) |
Sep
(4) |
Oct
(49) |
Nov
(13) |
Dec
(12) |
| 2014 |
Jan
(15) |
Feb
(21) |
Mar
(11) |
Apr
(13) |
May
(27) |
Jun
(60) |
Jul
(19) |
Aug
(29) |
Sep
(20) |
Oct
(28) |
Nov
(41) |
Dec
(15) |
| 2015 |
Jan
(33) |
Feb
(29) |
Mar
(26) |
Apr
(17) |
May
(2) |
Jun
(13) |
Jul
(21) |
Aug
(30) |
Sep
(22) |
Oct
(15) |
Nov
(46) |
Dec
(20) |
| 2016 |
Jan
(6) |
Feb
(5) |
Mar
(9) |
Apr
(15) |
May
(9) |
Jun
(4) |
Jul
(3) |
Aug
(4) |
Sep
(39) |
Oct
(8) |
Nov
(5) |
Dec
(8) |
| 2017 |
Jan
(4) |
Feb
(14) |
Mar
(4) |
Apr
(16) |
May
(5) |
Jun
(10) |
Jul
(25) |
Aug
(2) |
Sep
(5) |
Oct
(11) |
Nov
(8) |
Dec
(11) |
| 2018 |
Jan
(7) |
Feb
(4) |
Mar
|
Apr
(1) |
May
(4) |
Jun
(21) |
Jul
(8) |
Aug
(3) |
Sep
(2) |
Oct
(2) |
Nov
(1) |
Dec
|
| 2019 |
Jan
(1) |
Feb
(5) |
Mar
(18) |
Apr
(9) |
May
(5) |
Jun
(21) |
Jul
(25) |
Aug
(25) |
Sep
(4) |
Oct
(2) |
Nov
(2) |
Dec
(5) |
| 2020 |
Jan
|
Feb
|
Mar
(3) |
Apr
|
May
(2) |
Jun
(2) |
Jul
(1) |
Aug
|
Sep
(1) |
Oct
(2) |
Nov
(6) |
Dec
|
| 2021 |
Jan
(1) |
Feb
|
Mar
(2) |
Apr
(1) |
May
(4) |
Jun
|
Jul
(1) |
Aug
|
Sep
(2) |
Oct
(9) |
Nov
(1) |
Dec
(5) |
| 2022 |
Jan
(7) |
Feb
(3) |
Mar
|
Apr
(2) |
May
(5) |
Jun
(3) |
Jul
(3) |
Aug
(3) |
Sep
(3) |
Oct
(14) |
Nov
|
Dec
(1) |
| 2023 |
Jan
(10) |
Feb
|
Mar
|
Apr
(2) |
May
|
Jun
(2) |
Jul
(2) |
Aug
(1) |
Sep
|
Oct
(5) |
Nov
|
Dec
|
| 2024 |
Jan
(8) |
Feb
|
Mar
(2) |
Apr
(1) |
May
|
Jun
|
Jul
(4) |
Aug
(5) |
Sep
|
Oct
(4) |
Nov
(1) |
Dec
(1) |
| 2025 |
Jan
(3) |
Feb
(2) |
Mar
(2) |
Apr
(1) |
May
(2) |
Jun
|
Jul
(1) |
Aug
|
Sep
|
Oct
(1) |
Nov
|
Dec
|
| 2026 |
Jan
(1) |
Feb
(12) |
Mar
|
Apr
(2) |
May
(8) |
Jun
|
Jul
(1) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
|
From: John N. <joh...@po...> - 2005-09-28 10:54:06
|
Hi, have successfully built Quantlib 0.3.10 using configure --with-boost-lib=/cygdrive/p/boost_1_33_0/libs --with-boost-include=/cygdrive/p/boost_1_33_0/ and then make I am trying to build the current CVS Quantlib Head as I am keen to get a build of quantlib with the extensions Johan Witters made (and I have contributed further additions) to the swig files. I am running autoconf configure --with-boost-lib=/cygdrive/p/boost_1_33_0/libs --with-boost-include=/cygdrive/p/boost_1_33_0/ I get the following errors ... checking for dvips... /usr/bin/dvips configure: creating ./config.status config.status: creating .infig.status: error: cannot find input file: Is the head of Quantlib expected to be buildable on WindowsXp? Is there a link to specific instructions on how to build/configure the head. Any help greatly received. Regards, John |
|
From: SourceForge.net <no...@so...> - 2005-09-26 13:20:33
|
Bugs item #1304830, was opened at 2005-09-26 15:20 Message generated for change (Tracker Item Submitted) made by Item Submitter You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=112740&aid=1304830&group_id=12740 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: None Group: None Status: Open Resolution: None Priority: 5 Submitted By: akesson (akesson) Assigned to: Nobody/Anonymous (nobody) Summary: Compiling on Mac OS X 10.4.2 fails Initial Comment: Hi there, I am trying to compile QuantLib 3.10 on my Mac. I get the following compiler error ld: warning multiple definitions of symbol ___eprintf and the compiler is complaining about some other multiple definitions. Anyone any idea what I am doing wrong ? Logfile of the make is attached ... Cheers Fredrik ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=112740&aid=1304830&group_id=12740 |
|
From: Joseph W. <jo...@co...> - 2005-09-23 04:50:01
|
There is appears to be an analytical formula for lookback options that seems pretty straightforward to implement. If no one else volunteers, I can put it in but it might be a while before I can get the time to do it. ------- Looking for China-related quant work |
|
From: Joseph W. <jo...@co...> - 2005-09-23 04:43:42
|
If there are any quantlib users or developers going to the Chinese Financial Association annual conference at Fordham University in NYC this Saturday, let me know. I'd be very interested in meeting quantlib users and developers face to face. |
|
From: SourceForge.net <no...@so...> - 2005-09-21 08:46:06
|
Bugs item #1297396, was opened at 2005-09-21 01:28 Message generated for change (Comment added) made by nobody You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=112740&aid=1297396&group_id=12740 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: None Group: None Status: Open Resolution: None Priority: 5 Submitted By: Nobody/Anonymous (nobody) Assigned to: Nobody/Anonymous (nobody) Summary: DSW file does not work ! Initial Comment: When opening QuantLib-0.3.10 in MSVisual studio 6 with the QuantLib.dsw file, it does not work : the dsw file seems to be a simple txt file for msvstudio ! You can use prjconverter http://www.arstdesign.com/articles/prjconverter_demo.zip to convert the sln (.NET equivalent of the dsw file). fca...@ya... ---------------------------------------------------------------------- Comment By: Nobody/Anonymous (nobody) Date: 2005-09-21 01:46 Message: Logged In: NO In the patch section you can find a zip file containg all correct dsp/dsw fca...@ya... ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=112740&aid=1297396&group_id=12740 |
|
From: SourceForge.net <no...@so...> - 2005-09-21 08:44:46
|
Patches item #1297412, was opened at 2005-09-21 01:44 Message generated for change (Tracker Item Submitted) made by Item Submitter You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=312740&aid=1297412&group_id=12740 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: None Group: None Status: Open Resolution: None Priority: 5 Submitted By: Nobody/Anonymous (nobody) Assigned to: Nobody/Anonymous (nobody) Summary: 0.3.10 : right dsw/dsp Initial Comment: Directory structure with the correct dsp et dsw; This is a temporary/immediate solution for bug n° 1297396 fca...@ya... ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=312740&aid=1297412&group_id=12740 |
|
From: SourceForge.net <no...@so...> - 2005-09-21 08:29:01
|
Bugs item #1297396, was opened at 2005-09-21 01:28 Message generated for change (Tracker Item Submitted) made by Item Submitter You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=112740&aid=1297396&group_id=12740 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: None Group: None Status: Open Resolution: None Priority: 5 Submitted By: Nobody/Anonymous (nobody) Assigned to: Nobody/Anonymous (nobody) Summary: DSW file does not work ! Initial Comment: When opening QuantLib-0.3.10 in MSVisual studio 6 with the QuantLib.dsw file, it does not work : the dsw file seems to be a simple txt file for msvstudio ! You can use prjconverter http://www.arstdesign.com/articles/prjconverter_demo.zip to convert the sln (.NET equivalent of the dsw file). fca...@ya... ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=112740&aid=1297396&group_id=12740 |
|
From: Chuck H. <cah...@ea...> - 2005-09-19 20:01:32
|
Luigi said: In the meantime, a workaround you can use is to clone the term structure yourself. If you have a PiecewiseYieldCurve or PiecewiseFlatForward instance (depending on how you store them, you might have to downcast a YieldTermStructure) you can do it as follows: ... Chuck says: Thank you Luigi for your cloning explanation. We want a curve clone that is disconnected from changing quotes. I will try your algorithm. I had not previously read the discountcurve.hpp file. It looks quite useful. |
|
From: SourceForge.net <no...@so...> - 2005-09-16 10:15:29
|
Bugs item #1292749, was opened at 2005-09-16 22:15 Message generated for change (Tracker Item Submitted) made by Item Submitter You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=112740&aid=1292749&group_id=12740 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: None Group: None Status: Open Resolution: None Priority: 5 Submitted By: Tommy (mesilliac) Assigned to: Nobody/Anonymous (nobody) Summary: error building quantlib-python Initial Comment: I'm trying to install quantlib-python on a Gentoo Linux system. Quantlib itself seems to have built and installed fine, but when I try to build quantlib-python (with "python setup.py build" for example) it fails after outputting the following: """ running build running build_py creating build creating build/lib.linux-i686-2.4 creating build/lib.linux-i686-2.4/QuantLib copying QuantLib/__init__.py -> build/lib.linux-i686-2.4/QuantLib copying QuantLib/QuantLib.py -> build/lib.linux-i686-2.4/QuantLib running build_ext building 'QuantLib._QuantLib' extension creating build/temp.linux-i686-2.4 creating build/temp.linux-i686-2.4/QuantLib g++ -fno-strict-aliasing -DNDEBUG -O2 -march=i686 -fomit-frame-pointer -fPIC -I/usr/include -I/usr/include/python2.4 -c QuantLib/quantlib_wrap.cpp -o build/temp.linux-i686-2.4/QuantLib/quantlib_wrap.o -Wno-unused -O2 -march=i686 -fomit-frame-pointer In file included from /usr/include/ql/PricingEngines/Barrier/all.hpp:24, from /usr/include/ql/PricingEngines/all.hpp:31, from /usr/include/ql/quantlib.hpp:41, from QuantLib/quantlib_wrap.cpp:1878: /usr/include/ql/PricingEngines/Barrier/analyticbarrierengine.hpp:56: error: declaration does not declare anything /usr/include/ql/PricingEngines/Barrier/analyticbarrierengine.hpp:56: error: syntax error before `__asm__' error: command 'g++' failed with exit status 1 """ line 56 of analyticbarrierengine.hpp is: Real barrier() const; and I can't see anything obviously wrong with it (although I'm no good with C or C++). I'm using python 2.4 and gcc 3.3.6. it does this with both quantlib-0.3.9 and quantlib-0.3.10 (haven't tried any other versions). ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=112740&aid=1292749&group_id=12740 |
|
From: Luigi B. <lui...@gm...> - 2005-09-07 15:35:57
|
Hi all, I just realized that shortly QuantLib will be 5-years old =20 (release 0.1.1 was announced Dec. 11th, 2005.) Any neat idea for celebrating? Later, Luigi ---------------------------------------- If I do not want others to quote me, I do not speak. -- Phil Wayne |
|
From: Ch. S. <cha...@gm...> - 2005-09-02 13:29:03
|
Does anyone know of any progress on shimming quantlib into Matlab? Via SWIG= ? |
|
From: Jeff S. <jef...@ma...> - 2005-09-02 12:15:05
|
Hi Aurelien, ah I see -- OS X is shipping with: sargent% automake --version automake (GNU automake) 1.6.3 which is a ways behind. I will give that a try tonight. R.e. Boost - I picked up Boost 1.33 from the boost site. Had to make a couple very minor modifications to some .jam files to get it to build, but seemed fine after that. Thank you! - Jeff On Sep 2, 2005, at 12:08 AM, Aurelien Chanudet wrote: > Hi Jeff, > > I did experiment this kind of error in the past. Mac OS X is shipping > with default versions of autoconf/automake which are not the latest > ones. I upgraded to autoconf 2.59 and automake 1.9.5 using Fink. This > solved the problem : > > -bash2.05b /tmp/QuantLib $ fink list | grep auto > autobook 1.3-2 GNU Autobook for autotools > autoconf 2.13-4 System for generating configure > scripts, v2.13 > i autoconf2.5 2.59-6 System for generating configure > scripts > autoconf2.54 2.54-3 System for generating configure > scripts > autocutsel 0.6.2-11 Merges two X11 cut buffers > autogen 5.4.2-2 Tool for automated text generation from > templates > autogen-dev 5.4.2-2 Development files for AutoOpts and > snprintfv > autogen-shlibs 5.4.2-2 Autogen shared libaries > automake1.4 1.4-4 Tool for generating GNU > Standards-compliant Makefiles > automake1.5 1.5-5 Tool for generating GNU > Standards-compliant Makefiles > automake1.6 1.6.3-5 Tool for generating GNU > Standards-compliant Makefiles > automake1.7 1.7.6-5 Tool for generating GNU > Standards-compliant Makefiles > automake1.8 1.8.5-2 Tool for generating GNU > Standards-compliant Makefiles > i automake1.9 1.9.5-1 Tool for generating GNU > Standards-compliant Makefiles > p automaken [virtual package] > autoproject 0.17-1 Create a skeleton source package for a > new program > autossh 1.2f-1 Restarts SSH sessions and tunnels > autotrace 0.31.1-14 Converts bitmap to vector > graphics > autotrace-bin 0.31.1-14 autotrace binary > autotrace-shlibs 0.31.1-14 Shared libraries > for autotrace > cgi-compress-gzip-pm581 0.20-1 CGI with automatically > compressed output > cgi-compress-gzip-pm581-man 0.20-1 CGI with automatically > compressed output > cgi-compress-gzip-pm584 0.20-1 CGI with automatically > compressed output > cgi-compress-gzip-pm584-man 0.20-1 CGI with automatically > compressed output > cgi-compress-gzip-pm586 0.20-1 CGI with automatically > compressed output > cgi-compress-gzip-pm586-man 0.20-1 CGI with automatically > compressed output > class-accessor-pm 0.19-1 Perl module, automated > accessor generation > class-autouse-pm581 1.17-2 Perl run-time for class > loading > class-autouse-pm584 1.17-2 Perl run-time for class > loading > class-autouse-pm586 1.17-2 Perl run-time for class > loading > devel-autoprofiler-pm581 1.200-3 Profile subroutine > calls in a perl program > devel-autoprofiler-pm586 1.200-3 Profile subroutine > calls in a perl program > expect 5.41.0-1 Tool for automatic interactive > applications > expect-dev 5.41.0-1 Tool for automatic interactive > applications > expect-simple-pm581 0.02-12 Simple module for > automating interaction > expect-simple-pm584 0.02-12 Simple module for > automating interaction > expect-simple-pm586 0.02-12 Simple module for > automating interaction > frontline 0.5.4-13 GUI frontend for autotrace > frontline-gimp-plugin 0.5.4-13 autotrace plugin > for the gimp > kmousetool 3.4.0-21 KDE - automatically click when > mouse idles > text-autoformat-pm 1.12-1 Perl module for text wrapping > and reformating > unsermake 0.3-0.20040815.1 automake replacement > xml-autowriter-pm581 0.38-2 Perl module, DOCTYPE based > XML output > xml-autowriter-pm584 0.38-2 Perl module, DOCTYPE based > XML output > xml-autowriter-pm586 0.38-2 Perl module, DOCTYPE based > XML output > xml2ag 5.4.2-2 Convert XML files to autogen templates > -bash2.05b /tmp/QuantLib $ fink list | grep libtool > libtool 1.3.5-23 Shared library build helper, v1.3.5 > libtool-shlibs 1.3.5-23 Shared libraries for > libtool, v1.3.5 > (i) libtool14 1.5.18-1 Shared library build > helper, v1.5 > (i) libtool14-shlibs 1.5.18-1 Shared libraries for > libtool, v1.5 > -bash2.05b /tmp/QuantLib $ automake --version > automake (GNU automake) 1.9.5 > Written by Tom Tromey <tr...@re...>. > > Copyright 2005 Free Software Foundation, Inc. > This is free software; see the source for copying conditions. > There is NO > warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR > PURPOSE. > -bash2.05b /tmp/QuantLib $ autoconf --version > autoconf (GNU Autoconf) 2.59 > Written by David J. MacKenzie and Akim Demaille. > > Copyright (C) 2003 Free Software Foundation, Inc. > This is free software; see the source for copying conditions. > There is NO > warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR > PURPOSE. > > For my information, where did you get your boost package from : Fink, > boost homepage ? Thanks. > > Aurelien > > >> Message: 1 >> To: qua...@li... >> From: Jeff Sargent <jef...@ma...> >> Date: Thu, 1 Sep 2005 22:04:40 -0500 >> Subject: [Quantlib-dev] problems with autoreconf on OS X >> >> Greetings all, >> >> I've been building Boost and Quantlib 0.3.10 successfully under Mac >> OS X 10.4.2 with gcc 4.0.0 that comes with the XCode 2.1 development >> kit. Builds fine, and the test suite runs without error. >> Excellent! >> >> When I bring down the latest from the CVS repository and start the >> configuration bootstrap process, I start having some issues: >> >> >>>> sh ./autogen.sh >>>> Can't exec "libtoolize": No such file or directory at /usr/share/ >>>> >> autoconf/Autom4te/FileUtils.pm line 288, <GEN3> line 4. >> >>>> autoreconf: failed to run libtoolize: No such file or directory >>>> >> >> on OS X there is "glibtoolize", so I set the environment variable >> LIBTOOLIZE=glibtoolize and that gets me further until: >> >> >>>> configure.ac:8: `automake requires `AM_CONFIG_HEADER', not >>>> >> `AC_CONFIG_HEADER' >> >>>> functions/ql/Functions/Makefile.am:19: variable `PACKAGE_VERSION' >>>> >> not defined >> >>>> ql/Makefile.am:94: variable `PACKAGE_VERSION' not defined >>>> autoreconf: automake failed with exit status: 1 >>>> >> >> I'm definitely a rookie with respect to autoreconf, so thought I'd >> ask here to make sure I'm not missing something obvious. >> If anyone else is building under OS X and has overcome some of these >> issues please drop me a note! >> >> Thanks! >> - Jeff >> > > > ------------------------------------------------------- > SF.Net email is Sponsored by the Better Software Conference & EXPO > September 19-22, 2005 * San Francisco, CA * Development Lifecycle > Practices > Agile & Plan-Driven Development * Managing Projects & Teams * > Testing & QA > Security * Process Improvement & Measurement * http://www.sqe.com/ > bsce5sf > _______________________________________________ > Quantlib-dev mailing list > Qua...@li... > https://lists.sourceforge.net/lists/listinfo/quantlib-dev > |
|
From: Aurelien C. <aur...@gm...> - 2005-09-02 05:09:02
|
Hi Jeff,
I did experiment this kind of error in the past. Mac OS X is shipping
with default versions of autoconf/automake which are not the latest
ones. I upgraded to autoconf 2.59 and automake 1.9.5 using Fink. This
solved the problem :
-bash2.05b /tmp/QuantLib $ fink list | grep auto
autobook 1.3-2 GNU Autobook for autotools
autoconf 2.13-4 System for generating configure scripts, v2=
.13
i autoconf2.5 2.59-6 System for generating configure scripts
autoconf2.54 2.54-3 System for generating configure scripts
autocutsel 0.6.2-11 Merges two X11 cut buffers
autogen 5.4.2-2 Tool for automated text generation from templates
autogen-dev 5.4.2-2 Development files for AutoOpts and snprintf=
v
autogen-shlibs 5.4.2-2 Autogen shared libaries
automake1.4 1.4-4 Tool for generating GNU
Standards-compliant Makefiles
automake1.5 1.5-5 Tool for generating GNU
Standards-compliant Makefiles
automake1.6 1.6.3-5 Tool for generating GNU
Standards-compliant Makefiles
automake1.7 1.7.6-5 Tool for generating GNU
Standards-compliant Makefiles
automake1.8 1.8.5-2 Tool for generating GNU
Standards-compliant Makefiles
i automake1.9 1.9.5-1 Tool for generating GNU
Standards-compliant Makefiles
p automaken [virtual package]
autoproject 0.17-1 Create a skeleton source package for a
new program
autossh 1.2f-1 Restarts SSH sessions and tunnels
autotrace 0.31.1-14 Converts bitmap to vector graphics
autotrace-bin 0.31.1-14 autotrace binary
autotrace-shlibs 0.31.1-14 Shared libraries for autotr=
ace
cgi-compress-gzip-pm581 0.20-1 CGI with automatically compressed o=
utput
cgi-compress-gzip-pm581-man 0.20-1 CGI with automatically
compressed output
cgi-compress-gzip-pm584 0.20-1 CGI with automatically compressed o=
utput
cgi-compress-gzip-pm584-man 0.20-1 CGI with automatically
compressed output
cgi-compress-gzip-pm586 0.20-1 CGI with automatically compressed o=
utput
cgi-compress-gzip-pm586-man 0.20-1 CGI with automatically
compressed output
class-accessor-pm 0.19-1 Perl module, automated
accessor generation
class-autouse-pm581 1.17-2 Perl run-time for class loading
class-autouse-pm584 1.17-2 Perl run-time for class loading
class-autouse-pm586 1.17-2 Perl run-time for class loading
devel-autoprofiler-pm581 1.200-3 Profile subroutine
calls in a perl program
devel-autoprofiler-pm586 1.200-3 Profile subroutine
calls in a perl program
expect 5.41.0-1 Tool for automatic interactive applications
expect-dev 5.41.0-1 Tool for automatic interactive
applications
expect-simple-pm581 0.02-12 Simple module for automating intera=
ction
expect-simple-pm584 0.02-12 Simple module for automating intera=
ction
expect-simple-pm586 0.02-12 Simple module for automating intera=
ction
frontline 0.5.4-13 GUI frontend for autotrace
frontline-gimp-plugin 0.5.4-13 autotrace plugin for the gi=
mp
kmousetool 3.4.0-21 KDE - automatically click when
mouse idles
text-autoformat-pm 1.12-1 Perl module for text wrapping
and reformating
unsermake 0.3-0.20040815.1 automake replacement
xml-autowriter-pm581 0.38-2 Perl module, DOCTYPE based XML outp=
ut
xml-autowriter-pm584 0.38-2 Perl module, DOCTYPE based XML outp=
ut
xml-autowriter-pm586 0.38-2 Perl module, DOCTYPE based XML outp=
ut
xml2ag 5.4.2-2 Convert XML files to autogen templates
-bash2.05b /tmp/QuantLib $ fink list | grep libtool
libtool 1.3.5-23 Shared library build helper, v1.3.5
libtool-shlibs 1.3.5-23 Shared libraries for libtool, v1.3.=
5
(i) libtool14 1.5.18-1 Shared library build helper, v1.5
(i) libtool14-shlibs 1.5.18-1 Shared libraries for
libtool, v1.5
-bash2.05b /tmp/QuantLib $ automake --version
automake (GNU automake) 1.9.5
Written by Tom Tromey <tr...@re...>.
Copyright 2005 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-bash2.05b /tmp/QuantLib $ autoconf --version
autoconf (GNU Autoconf) 2.59
Written by David J. MacKenzie and Akim Demaille.
Copyright (C) 2003 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
For my information, where did you get your boost package from : Fink,
boost homepage ? Thanks.
Aurelien
> Message: 1
> To: qua...@li...
> From: Jeff Sargent <jef...@ma...>
> Date: Thu, 1 Sep 2005 22:04:40 -0500
> Subject: [Quantlib-dev] problems with autoreconf on OS X
>=20
> Greetings all,
>=20
> I've been building Boost and Quantlib 0.3.10 successfully under Mac
> OS X 10.4.2 with gcc 4.0.0 that comes with the XCode 2.1 development
> kit. Builds fine, and the test suite runs without error. Excellent!
>=20
> When I bring down the latest from the CVS repository and start the
> configuration bootstrap process, I start having some issues:
>=20
> >> sh ./autogen.sh
> >> Can't exec "libtoolize": No such file or directory at /usr/share/
> autoconf/Autom4te/FileUtils.pm line 288, <GEN3> line 4.
> >> autoreconf: failed to run libtoolize: No such file or directory
>=20
> on OS X there is "glibtoolize", so I set the environment variable
> LIBTOOLIZE=3Dglibtoolize and that gets me further until:
>=20
> >> configure.ac:8: `automake requires `AM_CONFIG_HEADER', not
> `AC_CONFIG_HEADER'
> >> functions/ql/Functions/Makefile.am:19: variable `PACKAGE_VERSION'
> not defined
> >> ql/Makefile.am:94: variable `PACKAGE_VERSION' not defined
> >> autoreconf: automake failed with exit status: 1
>=20
> I'm definitely a rookie with respect to autoreconf, so thought I'd
> ask here to make sure I'm not missing something obvious.
> If anyone else is building under OS X and has overcome some of these
> issues please drop me a note!
>=20
> Thanks!
> - Jeff
|
|
From: Jeff S. <jef...@ma...> - 2005-09-02 03:04:46
|
Greetings all, I've been building Boost and Quantlib 0.3.10 successfully under Mac OS X 10.4.2 with gcc 4.0.0 that comes with the XCode 2.1 development kit. Builds fine, and the test suite runs without error. Excellent! When I bring down the latest from the CVS repository and start the configuration bootstrap process, I start having some issues: >> sh ./autogen.sh >> Can't exec "libtoolize": No such file or directory at /usr/share/ autoconf/Autom4te/FileUtils.pm line 288, <GEN3> line 4. >> autoreconf: failed to run libtoolize: No such file or directory on OS X there is "glibtoolize", so I set the environment variable LIBTOOLIZE=glibtoolize and that gets me further until: >> configure.ac:8: `automake requires `AM_CONFIG_HEADER', not `AC_CONFIG_HEADER' >> functions/ql/Functions/Makefile.am:19: variable `PACKAGE_VERSION' not defined >> ql/Makefile.am:94: variable `PACKAGE_VERSION' not defined >> autoreconf: automake failed with exit status: 1 I'm definitely a rookie with respect to autoreconf, so thought I'd ask here to make sure I'm not missing something obvious. If anyone else is building under OS X and has overcome some of these issues please drop me a note! Thanks! - Jeff |
|
From: Joseph W. <jo...@co...> - 2005-08-28 04:11:05
|
What about these as design principles? 1) The pricing engine algorithm should know nothing about the instrument it is pricing. 2) The interaction between the pricing engines and the instrument should be mediated via the adapter pattern. 3) Control variate should be a separate class. 4) The short rate bond processes and the equities processes should come off the same hierarchy. --------------------- Dr. Joseph Wang Currently looking for Greater China related quant work..... Lou, Wujiang (FID) wrote: >Good point. >My solution to the same problem (narrowly 'for each option type there is >a corresponding option engine') is to separate the pricing process into >a modeling process and a solution process. The modeling process >identities a set of SDEs and payoff functions, while the solution >process solves the SDE with the payoffs. In typical equity option world, >you'd have a diffusion SDE with option payoffs, typical solution methods >are binomial tree, finite difference, MC, etc. The solution process does >not see instruments; it only sees SDE and payoffs (as inputs); therefore >you could reuse the same solution method eg finite difference scheme for >different instruments. >There could be a Quant object taking instrument and yielding SDE and >payoffs; See pseudo-code below: > >Instrument myInstrument(...); >(SDE, Payoffs) = Quant<Instruments>(myInstrument); >PDESolver solver(SDE, Payoffs); //Finite difference scheme >OptionResults myresults = solver(); >// Try MC solver. Upto this point we don't care about instrument anymore >MCSolver mc(SDE, Payoffs); >myresults = mc(); > >//another instrument type, like a warrant vs option >InstrumentDerived myInstrument2(...); >(SDE2, Payoffs2) = Quant<InstrumentDerived>(myInstrument2); >solver.bind(SDE2, Payoffs2); //same Finite difference scheme as above >myresults2 = solver(); >mc.bind(SDE2, Payoffs2); //same MC solver as above >myresults2 = mc(); > >-----Original Message----- >From: qua...@li... >[mailto:qua...@li...] On Behalf Of Joseph >Wang >Sent: Thursday, August 25, 2005 8:29 PM >To: qua...@li... >Cc: qua...@li... >Subject: [Quantlib-users] Finite differencing refactoring > >One thing that's always bothered me about the way that the finite >difference classes are structured is that for each option type there is >a corresponding option engine, and there should be an automatic way of >associating an instrument with an engine. > >I was wondering if using a policy template class would do this. The >pseudo-code would like something like > >PricingEngine *pe = FiniteDifferenceEngineFactor<OptionType>; > >which would and the association between option type and which difference >engine to use would be in the code rather than requiring the user to >include it by hand. The other refactoring would be to add in features >such as step function conditions and multi-period conditions as >templated add-ins rather than using subclassing as is currently done. > >One final thing is that I've noticed that the general scheme people use >to finite difference is > >stochastic process -> PDE -> difference equation > >There isn't any reason that I can see that for Markovian processes you >can't go directly from the stochastic process to the difference >equation. What this would mean for quantlib is to create new processes >that for example represent one factor short rate models, and then >extending the finite difference engines so that they can handle >processes other than Black-Scholes. This wouldn't work for the general >HJM model, but it would for one-factor short rate models, right? > >Thoughts? > >--------------------- >Dr. Joseph Wang >Currently looking for Greater China related quant work..... > > > |
|
From: Luigi B. <lui...@gm...> - 2005-08-26 13:05:22
|
On 08/26/2005 08:46:56 AM, Aurelien Chanudet wrote:
> It looks like the max date of a PiecewiseYieldCurve term structure
> whose reference date depends on the global evaluation date isn't
> properly updated when modifying the global evaluation date.
You're right. I applied your patch to the repository.
Thanks,
Luigi
----------------------------------------
Flon's Law:
There is not now, and never will be, a language in
which it is the least bit difficult to write bad programs.
|
|
From: Aurelien C. <aur...@gm...> - 2005-08-26 06:47:06
|
Hi,
It looks like the max date of a PiecewiseYieldCurve term structure
whose reference date depends on the global evaluation date isn't
properly updated when modifying the global evaluation date.
The reason for this is that the max date (dates_.back()) of such a
curve is set *before* the rate helpers get a chance to know about the
change of evaluation date. The following patch apparently fixes the
issue. This patch doesn't cause any error in the testsuite.
Is there something I'm overlooking ?
Cheers,
Aurelien
template <class C, class I>
void PiecewiseYieldCurve<C,I>::performCalculations() const {
// setup vectors
Size n =3D instruments_.size();
for (Size i=3D0 ; i < n ; i++) {
// don't try this at home!
instruments_[i]->setTermStructure(
const_cast<PiecewiseYieldCurve<C,I>*>(this=
));
}
this->dates_ =3D std::vector<Date>(n+1);
this->times_ =3D std::vector<Time>(n+1);
this->data_ =3D std::vector<Real>(n+1);
this->dates_[0] =3D this->referenceDate();
this->times_[0] =3D 0.0;
this->data_[0] =3D C::initialValue();
for (Size i=3D0; i<n; i++) {
this->dates_[i+1] =3D instruments_[i]->latestDate();
this->times_[i+1] =3D this->timeFromReference(this->dates_[i+1]=
);
this->data_[i+1] =3D this->data_[i];
}
Brent solver;
Size maxIterations =3D 25;
// bootstrapping loop
for (Size iteration =3D 0; ; iteration++) {
std::vector<Real> previousData =3D this->data_;
Size i;
for (i=3D1; i<n+1; i++) {
if (iteration =3D=3D 0) {
// extend interpolation a point at a time
if (I::global && i < 2) {
// not enough points for splines
this->interpolation_ =3D Linear().interpolate(
this->times_.begin(),
this->times_.begin()+i+=
1,
this->data_.begin());
} else {
this->interpolation_ =3D this->interpolator_.interp=
olate(
this->times_.begin(),
this->times_.begin()+i+=
1,
this->data_.begin());
}
}
boost::shared_ptr<RateHelper> instrument =3D instruments_[i=
-1];
// don't try this at home!
// instrument->setTermStructure(
// =20
const_cast<PiecewiseYieldCurve<C,I>*>(this));
Real guess;
if (iteration > 0) {
// use perturbed value from previous loop
guess =3D 0.99*this->data_[i];
} else if (i > 1) {
// extrapolate
guess =3D C::guess(this,this->dates_[i]);
} else {
guess =3D C::initialGuess();
}
// bracket
Real min =3D C::minValueAfter(i, this->data_);
Real max =3D C::maxValueAfter(i, this->data_);
if (guess <=3D min || guess >=3D max)
guess =3D (min+max)/2.0;
this->data_[i] =3D
solver.solve(ObjectiveFunction(this,instrument,i),
accuracy_,guess,min,max)=
;
}
// check exit conditions
if (!I::global)
break; // no need for convergence loop
Real improvement =3D 0.0;
for (i=3D1; i<n+1; i++)
improvement +=3D std::abs(this->data_[i]-previousData[i]);
if (improvement <=3D n*accuracy_) // convergence reached
break;
if (iteration > maxIterations)
QL_FAIL("convergence not reached after "
<< maxIterations << " iterations");
}
}
|
|
From: Joseph W. <jo...@co...> - 2005-08-26 00:29:28
|
One thing that's always bothered me about the way that the finite difference classes are structured is that for each option type there is a corresponding option engine, and there should be an automatic way of associating an instrument with an engine. I was wondering if using a policy template class would do this. The pseudo-code would like something like PricingEngine *pe = FiniteDifferenceEngineFactor<OptionType>; which would and the association between option type and which difference engine to use would be in the code rather than requiring the user to include it by hand. The other refactoring would be to add in features such as step function conditions and multi-period conditions as templated add-ins rather than using subclassing as is currently done. One final thing is that I've noticed that the general scheme people use to finite difference is stochastic process -> PDE -> difference equation There isn't any reason that I can see that for Markovian processes you can't go directly from the stochastic process to the difference equation. What this would mean for quantlib is to create new processes that for example represent one factor short rate models, and then extending the finite difference engines so that they can handle processes other than Black-Scholes. This wouldn't work for the general HJM model, but it would for one-factor short rate models, right? Thoughts? --------------------- Dr. Joseph Wang Currently looking for Greater China related quant work..... |
|
From: Luigi B. <lui...@gm...> - 2005-08-25 07:14:38
|
On 08/25/2005 01:00:13 AM, Vladimir Goldenberg wrote: > I created a fixed coupon bond as follows: >=20 > . . . >=20 > it brings back following cashflows: >=20 > Show cashflow: > 12 15th, 2005: 2.696918 > 6 15th, 2006: 3.926712 > 12 15th, 2006: 3.948288 > 6 15th, 2007: 3.926712 > 12 17th, 2007: 3.991438 > 6 16th, 2008: 3.926712 > 12 15th, 2008: 3.926712 > 6 15th, 2009: 3.926712 > 12 15th, 2009: 3.948288 > 6 15th, 2010: 3.926712 >=20 > Horever, it was my understanding that for fixed coupon bond I should > have nine cashflows of 3.9375 (based on coupon 7.875 / 2) plus one > last cashflow of 103.9375 (face 100 + last half of coupon). Instead I > got cashflows as above. Vlad, the missing 100 are returned by the redemption() method. Given that---for a number of reasons---the last coupon and the =20 redemption will continue to be stored internally as separate objects, =20 do you (and the others reading this) think that they should be returned =20 together by the cashflows() method? It can be done, but it might take a =20 bit of work. Later, Luigi ---------------------------------------- Westheimer's Discovery: A couple of months in the laboratory can frequently save a couple of hours in the library. |
|
From: Vladimir G. <vgo...@ya...> - 2005-08-24 23:00:21
|
I created a fixed coupon bond as follows:
. . .
Integer settlementDays_=1;
Calendar calendar_ = TARGET();
BusinessDayConvention businessDayConvention_=Following;
DayCounter dayCount_=Actual365Fixed();;
Date stub_;
bool fromEnd_=true;
std::vector<Rate> coupons_(1);
coupons_[0]=0.07875;
Date issueDate_(15, June, 2000),
datedDate_(12, August, 2005),
today_(10, August,2005);
Date maturityDate_ = calendar.advance(issueDate_, 10, Years);
Frequency frequency_=Semiannual;
Real redemption_=100.0;
Date settlement_= calendar.adjust(settlementDate),
latestDate_ = calendar.adjust(settlementDate);
Rate riskFreeRate = 0.06;
Handle<YieldTermStructure> termStructureHandle_(
boost::shared_ptr<YieldTermStructure>(
new FlatForward(settlement_, riskFreeRate, dayCount_)));
// fixed coupon bond
FixedCouponBond bond(
issueDate_,
datedDate_,
maturityDate_,
settlementDays_,
coupons_,
frequency_,
dayCount_,
calendar_,
businessDayConvention_,
redemption_,
termStructureHandle_,
stub_,
fromEnd_
);
. . .
and later print out cashflows like:
std::vector<boost::shared_ptr<CashFlow> > cashflows = bond.cashflows();
for ( i=0; i<cashflows.size(); ++i)
{
std::cout << cashflows[i]->date() << ": " <<
cashflows[i]->amount() <<"\n";
}
it brings back following cashflows:
Show cashflow:
12 15th, 2005: 2.696918
6 15th, 2006: 3.926712
12 15th, 2006: 3.948288
6 15th, 2007: 3.926712
12 17th, 2007: 3.991438
6 16th, 2008: 3.926712
12 15th, 2008: 3.926712
6 15th, 2009: 3.926712
12 15th, 2009: 3.948288
6 15th, 2010: 3.926712
Horever, it was my understanding that for fixed coupon bond I should have nine cashflows of 3.9375 (based on coupon 7.875 / 2) plus one last cashflow of 103.9375 (face 100 + last half of coupon). Instead I got cashflows as above.
Any help is greatly appreciated
Vlad
---------------------------------
Start your day with Yahoo! - make it your home page |
|
From: Luigi B. <lui...@gm...> - 2005-08-15 13:04:44
|
Hi all, for those of you more comfortable with a newsreader, the quantlib-dev mailing list is now available through Gmane (<http://gmane.org>) as gmane.comp.finance.quantlib.devel Luigi |
|
From: CELLERIER A D. <Ant...@so...> - 2005-08-12 08:13:38
|
(Sorry if this message was already received by some of you but i don't thin=
k that it ever made it to the mailing list)
Here is a small patch to configure.ac so that relative paths with the
--with-boost-include and --with-boost-lib work.
Regards,
--=20
Antoine Cellerier
--- tmp/QuantLib-0.3.10/configure.ac 2005-03-18 10:13:20.000000000 +0100
+++ QuantLib-0.3.10/configure.ac 2005-08-11 15:03:07.673856400 +0200
@@ -36,7 +36,7 @@
AC_ARG_WITH([boost-include],
AC_HELP_STRING([--with-boost-include=3DINCLUDE_PATH],
[Supply the location of Boost header files]),
- [ql_boost_include_path=3D$withval],
+ [ql_boost_include_path=3D"`cd ${withval} 2>/dev/null && pwd`"],
[ql_boost_include_path=3D""])
if test [ -n "$ql_boost_include_path" ] ; then
AC_SUBST([CPPFLAGS],["${CPPFLAGS} -I${ql_boost_include_path}"])
@@ -44,7 +44,7 @@
AC_ARG_WITH([boost-lib],
AC_HELP_STRING([--with-boost-lib=3DLIB_PATH],
[Supply the location of Boost libraries]),
- [ql_boost_lib_path=3D$withval],
+ [ql_boost_lib_path=3D"`cd ${withval} 2>/dev/null && pwd`"],
[ql_boost_lib_path=3D""])
if test [ -n "$ql_boost_lib_path" ] ; then
AC_SUBST([LDFLAGS],["${LDFLAGS} -L${ql_boost_lib_path}"])
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D
Ce message et toutes les pieces jointes (ci-apres le "message")=20
sont confidentiels et etablis a l'intention exclusive de ses destinataires.
Toute utilisation ou diffusion non autorisee est interdite.=20
Tout message electronique est susceptible d'alteration.=20
La SOCIETE GENERALE et ses filiales declinent toute responsabilite
au titre de ce message s'il a ete altere, deforme ou falsifie.
=20
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D
This message and any attachments (the "message") are confidential
and intended solely for the addressees.
Any unauthorized use or dissemination is prohibited.=20
E-mails are susceptible to alteration. =20
Neither SOCIETE GENERALE nor any of its subsidiaries or affiliates
shall be liable for the message if altered, changed or falsified.=20
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D
|
|
From: CELLERIER A D. <Ant...@so...> - 2005-08-11 13:07:33
|
Hello,
Attached is a small patch to configure.ac so that relative paths with the -=
-with-boost-include and --with-boost-lib work.
Regards,
--=20
Antoine Cellerier
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D
Ce message et toutes les pieces jointes (ci-apres le "message")=20
sont confidentiels et etablis a l'intention exclusive de ses destinataires.
Toute utilisation ou diffusion non autorisee est interdite.=20
Tout message electronique est susceptible d'alteration.=20
La SOCIETE GENERALE et ses filiales declinent toute responsabilite
au titre de ce message s'il a ete altere, deforme ou falsifie.
=20
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D
This message and any attachments (the "message") are confidential
and intended solely for the addressees.
Any unauthorized use or dissemination is prohibited.=20
E-mails are susceptible to alteration. =20
Neither SOCIETE GENERALE nor any of its subsidiaries or affiliates
shall be liable for the message if altered, changed or falsified.=20
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D
|
|
From: Toyin A. <toy...@ho...> - 2005-08-10 01:15:43
|
Hi, That's one approach, however I think the evaluation date concept is actually a financial one rather than an IT/computing one and such be implemented as such. For example you could have an object that not only encapsulates the evaluation date but also whether you want to accept any cashflows being paid today to be part of your PV or whether this should be moved into a cash position (discarded). Currently this is also a global switch for the library. These 2 parameters can be different on a deal by deal basis. You can imagine other, what are today, global variables that can also be placed into the same object if the variable affects the pricing on a deal by deal level. This object can be passed into either Pricing or YieldCurve functions to set the tone for the deal. These parameters have a financial quantity that are specified by the user, rather than a C++ architectural one. I did initially think about the map object route when I discovered the problem, but if you are going to change all occurances of the evalutaionDate() function to take in the threadID, you might as well implement the object described above and use that in it's place. That way, you don't have to worry about threads on different platforms as well as the user being able to specify these currently global variables on a deal by deal level. Toy out. >From: "Gianni Piolanti" <gpi...@ho...> >To: "Toyin Akin" ><toy...@ho...>,<na...@qu...>,<qua...@li...>,<qua...@li...>,<qua...@li...> >Subject: Re: [Quantlib-users] Quantlib within a multithreaded architecture. >Date: Sun, 7 Aug 2005 00:16:25 +0200 > >IMHO If you haven't already done it I think you should customize the >singleton class >to support multithreading. Usually a Double-Checked Locking pattern is the >right choice but you have to pay attention to the hardware architecture >also. >As far as Settings::instance.evalutionDate() is concerned a simple idea is >to use the >thread id as the key of an associative map and than overloading the >evaluationDate appropriately >(using the key as a function argument and returning/set the right date). >I hope it helps. > >ciao Gianni. > >----- Original Message ----- From: "Toyin Akin" <toy...@ho...> >To: <na...@qu...>; <qua...@li...>; ><qua...@li...>; ><qua...@li...> >Sent: Tuesday, August 02, 2005 6:02 AM >Subject: [Quantlib-users] Quantlib within a multithreaded architecture. > > >> >>Hi All, >> >>As some of you may have noticed, I have pulled my CapeTools QuantLib Web >>Site. I am in the process of producing a new version which uses the >>current QuantLib C++ library, complete with user documentation. >> >>I've been working with QuantLib the last serveral months looking at the >>possibility of producing >>a commercial multithreaded .NET engine. Basically another layer on top on >>QuantLib C++ >>itself, rather than a total rewrite like I did before. >> >>The previous approach was fine and educational in terms of how QuantLib is >>structured, but it was a pain in the neck to keep it up to date with the >>pace of development that the QuantLib guys were generating. >> >>With a C# wrapper on top of the C++ framework in which the wrapper itself >>is enabled for multi-threaded use as well as other wrappers I am >>developing for .NET web services, .NET remoting >>and a full Excel implementation (1000+ Excel functions thus far...), I can >>concentrate on these sexy features without the full re-write of QuantLib >>in .NET. >> >>The main problem I have found which would prevent this from working within >>a multi-threaded environment (Wrapper on top of the C++ layer), are those >>of the 3 Singleton classes. >> >>ExchangeRateManager, IndexManager and Settings. >> >>Now that first 2 are not that difficult to overcome as they are used in a >>relatively small portion of the QuantLib codebase. The latter class, >>Settings, is the problem. >> >>This is used by almost every pricing, YieldCurve class. >> >>Thus if you have the scenario, even within a multithreaded C++ >>application, where User A creates a YieldCurve (ie - the >>PiecewiseFlatForward class, using the constructor that takes a reference >>date) with reference date 2/MAR/2005 and User B creates a similar curve >>with reference date 2/JUN/2006 and both submit the request to a server, >>the server may strip the curves correctly, but when the 2 users want to >>calculate a swap price/rate, you now have a problem. >> >>The Settings::instance.evaluationDate() function is called to retrieve the >>calculation date. But User A wants his at 2/MAR/2005 and UserB at >>2/JUN/2006. >> >>You could override the evaluationDate() within the global Settings class >>in each case, but then you open up a can of worms because while UserA has >>set the Settings::instance.evalutionDate() (either externally, which is >>not a good idea, because he is manipulating a global variable) or the >>programmer in code within the wrapper swap() function, UserB may come in a >>split second later into the same function and change the value again, thus >>invalidating the results that UserA will generate. >> >>You could add some sort of mutex within the Wrapper Swap() function to >>block the call until UserA has finished (The Swap function will manipulate >>the evaluationDate() function), but the locations within the QuantLib >>library where Settings::instance.evalutionDate() >>are called are too numerous. Thus you would have to write some sort of >>critical section, mutex for the whole library or make the quantlib library >>single-threaded in use. >> >>This problem is actually not only tied to YieldCurves, almost every >>pricing function is affected by this too. Thus anyone who wants to >>manipulate the evaluationDate() function within a multithreaded >>application is asking for trouble. >> >>However, maybe you guys have a solution for this, or someone has encounted >>this and has a solution. >> >>I had the chance on working on a similar library within a commercial bank >>for 6 years implementing everything from YieldCurves to the pricing and >>risk management of portfolios of CapFloors, Swaps and Swaptions. Also the >>pricing of exotic structured deals and I can tell you, the quantLib >>infrastructure, apart from CMS Swaps and portfolio and risk management >>features, contains nearly everything else that this library had. In >>addition, you have all the exotic option calculation as well. >> >>By the way, apart from this singleton issue, I believe that this is the >>best library that all financial engineers should look at, if they want to >>get their C++ financial skills to up speed in a relatively short space of >>time. >> >> >>Best Regards, >>Toyin Akin. >>CapeTools. >> >> >> >> >>------------------------------------------------------- >>SF.Net email is Sponsored by the Better Software Conference & EXPO >>September 19-22, 2005 * San Francisco, CA * Development Lifecycle >>Practices >>Agile & Plan-Driven Development * Managing Projects & Teams * Testing & QA >>Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf >>_______________________________________________ >>Quantlib-users mailing list >>Qua...@li... >>https://lists.sourceforge.net/lists/listinfo/quantlib-users >> |
|
From: Gianni P. <gpi...@ho...> - 2005-08-06 22:16:32
|
IMHO If you haven't already done it I think you should customize the singleton class to support multithreading. Usually a Double-Checked Locking pattern is the right choice but you have to pay attention to the hardware architecture also. As far as Settings::instance.evalutionDate() is concerned a simple idea is to use the thread id as the key of an associative map and than overloading the evaluationDate appropriately (using the key as a function argument and returning/set the right date). I hope it helps. ciao Gianni. ----- Original Message ----- From: "Toyin Akin" <toy...@ho...> To: <na...@qu...>; <qua...@li...>; <qua...@li...>; <qua...@li...> Sent: Tuesday, August 02, 2005 6:02 AM Subject: [Quantlib-users] Quantlib within a multithreaded architecture. > > Hi All, > > As some of you may have noticed, I have pulled my CapeTools QuantLib Web > Site. I am in the process of producing a new version which uses the > current QuantLib C++ library, complete with user documentation. > > I've been working with QuantLib the last serveral months looking at the > possibility of producing > a commercial multithreaded .NET engine. Basically another layer on top on > QuantLib C++ > itself, rather than a total rewrite like I did before. > > The previous approach was fine and educational in terms of how QuantLib is > structured, but it was a pain in the neck to keep it up to date with the > pace of development that the QuantLib guys were generating. > > With a C# wrapper on top of the C++ framework in which the wrapper itself > is enabled for multi-threaded use as well as other wrappers I am > developing for .NET web services, .NET remoting > and a full Excel implementation (1000+ Excel functions thus far...), I can > concentrate on these sexy features without the full re-write of QuantLib > in .NET. > > The main problem I have found which would prevent this from working within > a multi-threaded environment (Wrapper on top of the C++ layer), are those > of the 3 Singleton classes. > > ExchangeRateManager, IndexManager and Settings. > > Now that first 2 are not that difficult to overcome as they are used in a > relatively small portion of the QuantLib codebase. The latter class, > Settings, is the problem. > > This is used by almost every pricing, YieldCurve class. > > Thus if you have the scenario, even within a multithreaded C++ > application, where User A creates a YieldCurve (ie - the > PiecewiseFlatForward class, using the constructor that takes a reference > date) with reference date 2/MAR/2005 and User B creates a similar curve > with reference date 2/JUN/2006 and both submit the request to a server, > the server may strip the curves correctly, but when the 2 users want to > calculate a swap price/rate, you now have a problem. > > The Settings::instance.evaluationDate() function is called to retrieve the > calculation date. But User A wants his at 2/MAR/2005 and UserB at > 2/JUN/2006. > > You could override the evaluationDate() within the global Settings class > in each case, but then you open up a can of worms because while UserA has > set the Settings::instance.evalutionDate() (either externally, which is > not a good idea, because he is manipulating a global variable) or the > programmer in code within the wrapper swap() function, UserB may come in a > split second later into the same function and change the value again, thus > invalidating the results that UserA will generate. > > You could add some sort of mutex within the Wrapper Swap() function to > block the call until UserA has finished (The Swap function will manipulate > the evaluationDate() function), but the locations within the QuantLib > library where Settings::instance.evalutionDate() > are called are too numerous. Thus you would have to write some sort of > critical section, mutex for the whole library or make the quantlib library > single-threaded in use. > > This problem is actually not only tied to YieldCurves, almost every > pricing function is affected by this too. Thus anyone who wants to > manipulate the evaluationDate() function within a multithreaded > application is asking for trouble. > > However, maybe you guys have a solution for this, or someone has encounted > this and has a solution. > > I had the chance on working on a similar library within a commercial bank > for 6 years implementing everything from YieldCurves to the pricing and > risk management of portfolios of CapFloors, Swaps and Swaptions. Also the > pricing of exotic structured deals and I can tell you, the quantLib > infrastructure, apart from CMS Swaps and portfolio and risk management > features, contains nearly everything else that this library had. In > addition, you have all the exotic option calculation as well. > > By the way, apart from this singleton issue, I believe that this is the > best library that all financial engineers should look at, if they want to > get their C++ financial skills to up speed in a relatively short space of > time. > > > Best Regards, > Toyin Akin. > CapeTools. > > > > > ------------------------------------------------------- > SF.Net email is Sponsored by the Better Software Conference & EXPO > September 19-22, 2005 * San Francisco, CA * Development Lifecycle > Practices > Agile & Plan-Driven Development * Managing Projects & Teams * Testing & QA > Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf > _______________________________________________ > Quantlib-users mailing list > Qua...@li... > https://lists.sourceforge.net/lists/listinfo/quantlib-users > |