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: Francois B. <ig...@gm...> - 2014-06-05 14:18:49
|
I was asking more out of curiosity than anything else. My bootstrap initially failed, but understandably so. We have negative forward rates at the short end of our real yield curve. The flat is still disabled by default for QLNet, which is what I'm using. I'll put in a PR to change it to enabled by default. Francois Botha On 5 June 2014 16:13, Luigi Ballabio <lui...@gm...> wrote: > Hi Francois, > I don't remember a particular reason. It was just simpler, I guess. > This said, the default in the last few releases is to allow negative > rates. Is there some place where this is not enforced? Where is your > bootstrap failing? > > Luigi > > > On Wed, Jun 4, 2014 at 3:53 PM, Francois Botha <ig...@gm...> wrote: > > Hi, > > > > May I ask why QL_NEGATIVE_RATES was implemented as a preprocessor > directive > > and not as a run-time option? > > > > I hit this issue while trying to bootstrap my real bond yield curve. On a > > real curve, negative forward rates are very likely at the short end of > the > > curve. > > > > regards, > > Francois Botha > > > > > ------------------------------------------------------------------------------ > > Learn Graph Databases - Download FREE O'Reilly Book > > "Graph Databases" is the definitive new guide to graph databases and > their > > applications. Written by three acclaimed leaders in the field, > > this first edition is now available. Download your free book today! > > http://p.sf.net/sfu/NeoTech > > _______________________________________________ > > QuantLib-dev mailing list > > Qua...@li... > > https://lists.sourceforge.net/lists/listinfo/quantlib-dev > > > > > > -- > <https://implementingquantlib.blogspot.com> > <https://twitter.com/lballabio> > |
|
From: Luigi B. <lui...@gm...> - 2014-06-05 14:13:25
|
Hi Francois,
I don't remember a particular reason. It was just simpler, I guess.
This said, the default in the last few releases is to allow negative
rates. Is there some place where this is not enforced? Where is your
bootstrap failing?
Luigi
On Wed, Jun 4, 2014 at 3:53 PM, Francois Botha <ig...@gm...> wrote:
> Hi,
>
> May I ask why QL_NEGATIVE_RATES was implemented as a preprocessor directive
> and not as a run-time option?
>
> I hit this issue while trying to bootstrap my real bond yield curve. On a
> real curve, negative forward rates are very likely at the short end of the
> curve.
>
> regards,
> Francois Botha
>
> ------------------------------------------------------------------------------
> Learn Graph Databases - Download FREE O'Reilly Book
> "Graph Databases" is the definitive new guide to graph databases and their
> applications. Written by three acclaimed leaders in the field,
> this first edition is now available. Download your free book today!
> http://p.sf.net/sfu/NeoTech
> _______________________________________________
> QuantLib-dev mailing list
> Qua...@li...
> https://lists.sourceforge.net/lists/listinfo/quantlib-dev
>
--
<https://implementingquantlib.blogspot.com>
<https://twitter.com/lballabio>
|
|
From: Luigi B. <lui...@gm...> - 2014-06-05 14:11:30
|
Ioan,
may you post the relevant section of the .i file?
Thanks,
Luigi
On Fri, May 30, 2014 at 10:52 PM, Ioan F. <if...@ny...> wrote:
> Hello,
>
> I want to duplicate the derived Eonia OvernightIndex class as a derived
> FedFunds OvernightIndex class directly by adding one header and one source
> file (see below) to the <ql/indexes/ibor> QuantLib sub-folder.
> Additionally, I modified the Makefile.in file to include the two files when
> building the QuantLib solution (in Visual Studio 11).
> I can (re)build the solution without any problems, but when I try to use the
> FedFunds class in Python (after adding to the indexes.i SWIG interface file
> in a manner similar to the one which allowed me to successfully expose the
> Sonia class for GBP), I get the error:
>
> NameError: name 'FedFunds' is not defined
>
> Please note that when the same code with Eonia (instead of FedFunds) works
> fine (although I need to join the US and European calendars).
>
> Any help / suggestions appreciated.
> Also, if the files below are any good, feel free to use them.
>
> Thank you,
> Ioan
>
>
>
> fedfunds.hpp:
>
>
>
> /*! \file fedfunds.hpp
> \brief %FedFunds index
> */
>
> #ifndef quantlib_fedfunds_hpp
> #define quantlib_fedfunds_hpp
>
> #include <ql/indexes/iborindex.hpp>
>
> namespace QuantLib {
>
> //! %Fed Funds (for balances held at the Federal Reserve) rate fixed by
> the FED.
> class FedFunds : public OvernightIndex {
> public:
> FedFunds(const Handle<YieldTermStructure>& h =
> Handle<YieldTermStructure>());
> };
>
> }
>
> #endif
>
>
>
>
> fedfunds.cpp:
>
>
>
> #include <ql/indexes/ibor/fedfunds.hpp>
> #include <ql/time/calendars/unitedstates.hpp>
> #include <ql/time/daycounters/actual365fixed.hpp>
> #include <ql/currencies/america.hpp>
>
> namespace QuantLib {
>
> FedFunds::FedFunds(const Handle<YieldTermStructure>& h)
> : OvernightIndex("FedFunds", 0,
> USDCurrency(),
> UnitedStates(UnitedStates::Settlement),
> Actual365Fixed(), h) {}
>
> }
>
>
>
>
> --
> View this message in context: http://quantlib.10058.n7.nabble.com/QuantLib-extension-creating-a-FedFunds-derived-class-equivalent-of-Eonia-for-USD-tp15344.html
> Sent from the quantlib-dev mailing list archive at Nabble.com.
>
> ------------------------------------------------------------------------------
> Time is money. Stop wasting it! Get your web API in 5 minutes.
> www.restlet.com/download
> http://p.sf.net/sfu/restlet
> _______________________________________________
> QuantLib-dev mailing list
> Qua...@li...
> https://lists.sourceforge.net/lists/listinfo/quantlib-dev
--
<https://implementingquantlib.blogspot.com>
<https://twitter.com/lballabio>
|
|
From: Luigi B. <lui...@gm...> - 2014-06-05 13:51:27
|
Hi Ioan,
please post your attempts anyway. They'll give a useful starting
point, and it will take significantly less to tell you where to modify
them than to start from scratch.
Luigi
On Wed, May 28, 2014 at 9:33 PM, Ioan F. <if...@ny...> wrote:
> Hello,
>
> I would like to expose the ConvexMonotoneInterpolation QuantLib class to
> Python via SWIG, without much success, due primarily to the template
> reference issue. Of all the derived classes of the 1-D interpolation base
> class, I need the one with the template
> Unfortunately, I cannot post any of my attempts to add to the
> interpolation.i interface file, as none of them seem to work.
> Any help / suggestions would be highly appreciated.
>
> Thank you,
> Ioan
>
>
>
> --
> View this message in context: http://quantlib.10058.n7.nabble.com/Convex-Monotone-Interpolation-SWIG-exposed-to-Python-tp15327.html
> Sent from the quantlib-dev mailing list archive at Nabble.com.
>
> ------------------------------------------------------------------------------
> Time is money. Stop wasting it! Get your web API in 5 minutes.
> www.restlet.com/download
> http://p.sf.net/sfu/restlet
> _______________________________________________
> QuantLib-dev mailing list
> Qua...@li...
> https://lists.sourceforge.net/lists/listinfo/quantlib-dev
--
<https://implementingquantlib.blogspot.com>
<https://twitter.com/lballabio>
|
|
From: Luigi B. <lui...@gm...> - 2014-06-05 13:46:59
|
Hi Peter,
good question. I don't think there's a way to make other
calculations wait for the first, because the whole point of setting
calculated_ to true to begin with was exactly to make the calculation
look like it was completed even though it isn't... I don't think we
can avoid workarounds like yours.
Luigi
On Sun, May 25, 2014 at 8:34 PM, Peter Caspers <pca...@gm...> wrote:
> Hi,
>
> I am currently trying to parallelize some computations in some pricing
> engines (using the OpenMP API). There is a complication due to calls
> to a lazy object model_ within a loop like this
>
> #pragma omp parallel for default(shared) firstprivate(p) if(expiry0>settlement)
> for (Size k = 0; k < (expiry0 > settlement ? npv0.size() : 1);
> k++) {
> [...]
> model_->zerobond(arguments_.fixedPayDates[l],
> expiry0, z[k], discountCurve_);
>
> The problem is that the first call triggers performCalculations() in
> model_ and before it has finished a call from another thread might
> occur, in which model_ is considered to be computed already, because
> in LazyObject the calculated_ flag is set to true right before the
> actual computation has started
>
> inline void LazyObject::calculate() const {
> if (!calculated_ && !frozen_) {
> calculated_ = true; // prevent infinite recursion in
> // case of bootstrapping
> try {
> performCalculations();
> } catch (...) {
> calculated_ = false;
> throw;
> }
> }
> }
>
> Of course it would not be desirable to trigger performCalculations()
> from two threads either. We'd rather need a mechanism which makes all
> threads wait until the first thread which triggered
> performCalculations() has finished (I guess). Also the check of the
> calculated_ flag and assignments to this variable would have to be
> made thread safe.
>
> I worked around this problem just by ensuring that model_ is
> calculated before the parallelized loop by a dummy call (at low
> additional cost)
>
> #ifdef _OPENMP
> if(expiry0>settlement)
> model_->numeraire(QL_EPSILON);
> #endif
>
> I wonder however if someone has a more general and neater solution for this ?
>
> I am not interested in general multithreading ability at the moment,
> but more in this kind of "local" parallelizations, which seem quite
> attractive (the bermudan swaption engine above is already faster by a
> factor of 5 (on 8 cores), which is ok imo given the small effort to
> adapt the code).
>
> Thanks
> Peter
>
> ------------------------------------------------------------------------------
> "Accelerate Dev Cycles with Automated Cross-Browser Testing - For FREE
> Instantly run your Selenium tests across 300+ browser/OS combos.
> Get unparalleled scalability from the best Selenium testing platform available
> Simple to use. Nothing to install. Get started now for free."
> http://p.sf.net/sfu/SauceLabs
> _______________________________________________
> QuantLib-dev mailing list
> Qua...@li...
> https://lists.sourceforge.net/lists/listinfo/quantlib-dev
--
<https://implementingquantlib.blogspot.com>
<https://twitter.com/lballabio>
|
|
From: Francois B. <ig...@gm...> - 2014-06-04 13:54:25
|
Hi, May I ask why QL_NEGATIVE_RATES was implemented as a preprocessor directive and not as a run-time option? I hit this issue while trying to bootstrap my real bond yield curve. On a real curve, negative forward rates are very likely at the short end of the curve. regards, Francois Botha |
|
From: Ioan F. <if...@ny...> - 2014-05-30 20:52:37
|
Hello,
I want to duplicate the derived Eonia OvernightIndex class as a derived
FedFunds OvernightIndex class directly by adding one header and one source
file (see below) to the <ql/indexes/ibor> QuantLib sub-folder.
Additionally, I modified the Makefile.in file to include the two files when
building the QuantLib solution (in Visual Studio 11).
I can (re)build the solution without any problems, but when I try to use the
FedFunds class in Python (after adding to the indexes.i SWIG interface file
in a manner similar to the one which allowed me to successfully expose the
Sonia class for GBP), I get the error:
NameError: name 'FedFunds' is not defined
Please note that when the same code with Eonia (instead of FedFunds) works
fine (although I need to join the US and European calendars).
Any help / suggestions appreciated.
Also, if the files below are any good, feel free to use them.
Thank you,
Ioan
fedfunds.hpp:
/*! \file fedfunds.hpp
\brief %FedFunds index
*/
#ifndef quantlib_fedfunds_hpp
#define quantlib_fedfunds_hpp
#include <ql/indexes/iborindex.hpp>
namespace QuantLib {
//! %Fed Funds (for balances held at the Federal Reserve) rate fixed by
the FED.
class FedFunds : public OvernightIndex {
public:
FedFunds(const Handle<YieldTermStructure>& h =
Handle<YieldTermStructure>());
};
}
#endif
fedfunds.cpp:
#include <ql/indexes/ibor/fedfunds.hpp>
#include <ql/time/calendars/unitedstates.hpp>
#include <ql/time/daycounters/actual365fixed.hpp>
#include <ql/currencies/america.hpp>
namespace QuantLib {
FedFunds::FedFunds(const Handle<YieldTermStructure>& h)
: OvernightIndex("FedFunds", 0,
USDCurrency(),
UnitedStates(UnitedStates::Settlement),
Actual365Fixed(), h) {}
}
--
View this message in context: http://quantlib.10058.n7.nabble.com/QuantLib-extension-creating-a-FedFunds-derived-class-equivalent-of-Eonia-for-USD-tp15344.html
Sent from the quantlib-dev mailing list archive at Nabble.com.
|
|
From: Ioan F. <if...@ny...> - 2014-05-28 19:33:18
|
Hello, I would like to expose the ConvexMonotoneInterpolation QuantLib class to Python via SWIG, without much success, due primarily to the template reference issue. Of all the derived classes of the 1-D interpolation base class, I need the one with the template Unfortunately, I cannot post any of my attempts to add to the interpolation.i interface file, as none of them seem to work. Any help / suggestions would be highly appreciated. Thank you, Ioan -- View this message in context: http://quantlib.10058.n7.nabble.com/Convex-Monotone-Interpolation-SWIG-exposed-to-Python-tp15327.html Sent from the quantlib-dev mailing list archive at Nabble.com. |
|
From: Luigi B. <lui...@gm...> - 2014-05-27 21:13:30
|
On Tue, May 27, 2014 at 9:26 PM, Ioan F. <if...@ny...> wrote:
> Using the latest ratehelpers.i interface file worked.
Glad to hear it. Strange, though: your change looked the same to me. Oh well.
> If I may ask, how come your version of the SWIG interface files are not part
> of the latest "official" version?
The additional constructor was exported after the 1.4 version was released.
Cheers,
Luigi
--
<https://implementingquantlib.blogspot.com>
<https://twitter.com/lballabio>
|
|
From: Ioan F. <if...@ny...> - 2014-05-27 19:26:58
|
Thank you Luigi. Using the latest ratehelpers.i interface file worked. If I may ask, how come your version of the SWIG interface files are not part of the latest "official" version? I got the latest QuantLib SWIG version available not too long ago from http://sourceforge.net/projects/quantlib/files/QuantLib/1.4/other%20languages/ <http://sourceforge.net/projects/quantlib/files/QuantLib/1.4/other%20languages/> -- View this message in context: http://quantlib.10058.n7.nabble.com/SwapRateHelper-Question-SWIG-Python-tp15297p15316.html Sent from the quantlib-dev mailing list archive at Nabble.com. |
|
From: Luigi B. <lui...@gm...> - 2014-05-27 15:48:14
|
The constructor is exported in the latest version of the code (see <https://github.com/lballabio/quantlib/blob/master/QuantLib-SWIG/SWIG/ratehelpers.i>) and it seems to work. Are you sure you're not picking up an old installed version of the module? In the "Possible C/C++ prototypes are:....* error message, is the one with the additional parameter listed? If so, can you provide a small script that initializes the parameters you're passing and reproduces the problem? Luigi On Wed, May 21, 2014 at 6:27 PM, Ioan F. <if...@ny...> wrote: > Hello, > > I am trying to expose a new type of the SwapRateHelper constructor (already > existent in QuantLib) to Python. > In the ratehelpers.i interface file, I added the following code: > > //ADDED > > *SwapRateHelperPtr( > const Handle& rate, > const Period &tenor, > const Calendar &calendar, > Frequency fixedFrequency, > BusinessDayConvention fixedConvention, > const DayCounter &fixedDayCount, > const boost::shared_ptr<IborIndex> &index, > const Handle &spread=Handle(), > const Period &fwdStart=0 *Days, > const Handle<YieldTermStructure> > &discountingCurve=Handle<YieldTermStructure>()) { > boost::shared_ptr<IborIndex> libor = > boost::dynamic_pointer_cast<IborIndex>(index); > return new SwapRateHelperPtr( > new SwapRateHelper(rate, tenor, calendar, > fixedFrequency, fixedConvention, > fixedDayCount, libor, > spread, fwdStart, > discountingCurve));* > > //END ADDED > > I was able to wrap, build and install the QuantLib library (via SWIG) into > Python, but when I try to use the SwapRateHelper in Python, I get the > following error: > > *NotImplementedError: Wrong number or type of arguments for overloaded > function 'new_SwapRateHelper'. > Possible C/C++ prototypes are:....* > > The following code works: > > *qqq=SwapRateHelper(QuoteHandle(eurLiborSwaps[(2, Years)]), > Period(2, Years), > euroCalendar, > fixedLegFrequency, > fixedLegAdjustment, > fixedLegDayCounter, > EURLibor3M(), > QuoteHandle(), > Period(0,0))* > > while this one causes the problem: > > *qqq=SwapRateHelper(QuoteHandle(eurLiborSwaps[(2, Years)]), > Period(2, Years), > euroCalendar, > fixedLegFrequency, > fixedLegAdjustment, > fixedLegDayCounter, > EURLibor3M(), > QuoteHandle(), > Period(0,0), > eoniaHandle)* > > Furthermore, please note that Python reports the type of the eoniaHandle > variable as: > > *QuantLib.QuantLib.YieldTermStructureHandle* > > Any help or suggestions are highly appreciated. > Since this is my first time posting, please excuse any breaking of the > "mailing list etiquette." > > Thank you, > Ioan > > > > -- > View this message in context: http://quantlib.10058.n7.nabble.com/SwapRateHelper-Question-SWIG-Python-tp15297.html > Sent from the quantlib-dev mailing list archive at Nabble.com. > > ------------------------------------------------------------------------------ > "Accelerate Dev Cycles with Automated Cross-Browser Testing - For FREE > Instantly run your Selenium tests across 300+ browser/OS combos. > Get unparalleled scalability from the best Selenium testing platform available > Simple to use. Nothing to install. Get started now for free." > http://p.sf.net/sfu/SauceLabs > _______________________________________________ > QuantLib-dev mailing list > Qua...@li... > https://lists.sourceforge.net/lists/listinfo/quantlib-dev -- <https://implementingquantlib.blogspot.com> <https://twitter.com/lballabio> |
|
From: Peter C. <pca...@gm...> - 2014-05-25 18:34:57
|
Hi,
I am currently trying to parallelize some computations in some pricing
engines (using the OpenMP API). There is a complication due to calls
to a lazy object model_ within a loop like this
#pragma omp parallel for default(shared) firstprivate(p) if(expiry0>settlement)
for (Size k = 0; k < (expiry0 > settlement ? npv0.size() : 1);
k++) {
[...]
model_->zerobond(arguments_.fixedPayDates[l],
expiry0, z[k], discountCurve_);
The problem is that the first call triggers performCalculations() in
model_ and before it has finished a call from another thread might
occur, in which model_ is considered to be computed already, because
in LazyObject the calculated_ flag is set to true right before the
actual computation has started
inline void LazyObject::calculate() const {
if (!calculated_ && !frozen_) {
calculated_ = true; // prevent infinite recursion in
// case of bootstrapping
try {
performCalculations();
} catch (...) {
calculated_ = false;
throw;
}
}
}
Of course it would not be desirable to trigger performCalculations()
from two threads either. We'd rather need a mechanism which makes all
threads wait until the first thread which triggered
performCalculations() has finished (I guess). Also the check of the
calculated_ flag and assignments to this variable would have to be
made thread safe.
I worked around this problem just by ensuring that model_ is
calculated before the parallelized loop by a dummy call (at low
additional cost)
#ifdef _OPENMP
if(expiry0>settlement)
model_->numeraire(QL_EPSILON);
#endif
I wonder however if someone has a more general and neater solution for this ?
I am not interested in general multithreading ability at the moment,
but more in this kind of "local" parallelizations, which seem quite
attractive (the bermudan swaption engine above is already faster by a
factor of 5 (on 8 cores), which is ok imo given the small effort to
adapt the code).
Thanks
Peter
|
|
From: Francois B. <ig...@gm...> - 2014-05-22 08:51:05
|
Thanks for the advice, everyone. Luigi/Piter, I didn't know about http://quantlib.org/install/vc10.shtml - but what I did was similar. Instead of modifying the Microsoft.cpp.<Platform>.users.props file, I created a separate boost.props file and add that via property manager (a tip that I got off StackOverflow). At the time it seems like a cleaner approach that modifying Microsoft.cpp.<Platform>.users.props , but it still requires a .vcxproj file change. Dave, luckily I foresaw this, so I did ask it before starting to code. And my code change was small, so I could experiment a bit. In the end, git rebase --interactive master did what I wanted it to do. I could remove the project file change commit. But I see that actually reverts the change, which kind of makes sense. I would've like to keep the commit, but just not push it, but I think the only clean way to do that is with multiple branches, as Michael suggested. I want to shy away from having multiple branches. Thanks again. Francois Francois Botha On 22 May 2014 09:37, Luigi Ballabio <lui...@gm...> wrote: > Hi Francois, > all suggestions were good. > > The one I would pick up in this particular case is a combination of > Piter's and Michael's: run "git rebase -i master", remove the commit > you made on the projects (so that now you have a clean branch) and > then use the Microsoft.Cpp.Win32.user property page to set the Boost > directories (this doesn't modify the projects; instructions are at > <http://quantlib.org/install/vc10.shtml>). > > Another, simpler way (which also works in more complex cases) would be > to make the pull request and to tell me in a comment that I should > skip one or more commits :) I can cherry-pick the other ones myself > (I don't merge the requests directly on GitHub anyway; I pull them on > my machine and try to compile them first). It has the disadvantage > that the pull request on GitHub will look as if I didn't accept it, > but I can live with this if you can. > > In this case, though, I'd use the property page and revert the project > changes. Otherwise, you'll have the same problem over and over again. > > Luigi > > > > On Wed, May 21, 2014 at 2:24 PM, Francois Botha <ig...@gm...> wrote: > > Hi, > > > > Excuse me for going a bit off-topic. I'd like to contribute some changes, > > but being new to git, I'm unsure how to progress. > > > > I've forked the quantlib repo, and cloned it. I've created a new branch > to > > work on. Everything is still clean. Now, I first have to modify my > .vcxproj > > files to point to my own boost installation. Obviously these are changes > > that I don't want to include in the pull request later. After adding > boost > > and checking that it compiles correctly, I do a commit. > > > > Now I'm ready to start with the actual work. Let's assume I've finished > that > > and do another commit. > > > > How do I proceed now? I want to create a pull request, but I don't know > how > > to exclude the original, irrelevant commits. Is this easily possible? > Should > > I use git rebase or have used multiple branches? I also posed this > question > > on > http://stackoverflow.com/questions/23781928/git-ignore-first-few-changes > > > > Once I figure this out, I want to apply a similar technique to pull in > the > > outstanding commits from Peter's changes (to let the QuantlibAddin build > > successfully) and then do some work to expose more functions for the > AddIn. > > Yet again, I'll have to create a pull request, but I want to exclude > Peter's > > changes, because those are already in a pull request. > > > > Sorry for the newbie questions, but I hope you'll appreciate the > > contributions that I can make. > > > > regards > > Francois Botha > > > > > ------------------------------------------------------------------------------ > > "Accelerate Dev Cycles with Automated Cross-Browser Testing - For FREE > > Instantly run your Selenium tests across 300+ browser/OS combos. > > Get unparalleled scalability from the best Selenium testing platform > > available > > Simple to use. Nothing to install. Get started now for free." > > http://p.sf.net/sfu/SauceLabs > > _______________________________________________ > > QuantLib-dev mailing list > > Qua...@li... > > https://lists.sourceforge.net/lists/listinfo/quantlib-dev > > > > > > -- > <https://implementingquantlib.blogspot.com> > <https://twitter.com/lballabio> > |
|
From: Luigi B. <lui...@gm...> - 2014-05-22 07:37:58
|
Hi Francois,
all suggestions were good.
The one I would pick up in this particular case is a combination of
Piter's and Michael's: run "git rebase -i master", remove the commit
you made on the projects (so that now you have a clean branch) and
then use the Microsoft.Cpp.Win32.user property page to set the Boost
directories (this doesn't modify the projects; instructions are at
<http://quantlib.org/install/vc10.shtml>).
Another, simpler way (which also works in more complex cases) would be
to make the pull request and to tell me in a comment that I should
skip one or more commits :) I can cherry-pick the other ones myself
(I don't merge the requests directly on GitHub anyway; I pull them on
my machine and try to compile them first). It has the disadvantage
that the pull request on GitHub will look as if I didn't accept it,
but I can live with this if you can.
In this case, though, I'd use the property page and revert the project
changes. Otherwise, you'll have the same problem over and over again.
Luigi
On Wed, May 21, 2014 at 2:24 PM, Francois Botha <ig...@gm...> wrote:
> Hi,
>
> Excuse me for going a bit off-topic. I'd like to contribute some changes,
> but being new to git, I'm unsure how to progress.
>
> I've forked the quantlib repo, and cloned it. I've created a new branch to
> work on. Everything is still clean. Now, I first have to modify my .vcxproj
> files to point to my own boost installation. Obviously these are changes
> that I don't want to include in the pull request later. After adding boost
> and checking that it compiles correctly, I do a commit.
>
> Now I'm ready to start with the actual work. Let's assume I've finished that
> and do another commit.
>
> How do I proceed now? I want to create a pull request, but I don't know how
> to exclude the original, irrelevant commits. Is this easily possible? Should
> I use git rebase or have used multiple branches? I also posed this question
> on http://stackoverflow.com/questions/23781928/git-ignore-first-few-changes
>
> Once I figure this out, I want to apply a similar technique to pull in the
> outstanding commits from Peter's changes (to let the QuantlibAddin build
> successfully) and then do some work to expose more functions for the AddIn.
> Yet again, I'll have to create a pull request, but I want to exclude Peter's
> changes, because those are already in a pull request.
>
> Sorry for the newbie questions, but I hope you'll appreciate the
> contributions that I can make.
>
> regards
> Francois Botha
>
> ------------------------------------------------------------------------------
> "Accelerate Dev Cycles with Automated Cross-Browser Testing - For FREE
> Instantly run your Selenium tests across 300+ browser/OS combos.
> Get unparalleled scalability from the best Selenium testing platform
> available
> Simple to use. Nothing to install. Get started now for free."
> http://p.sf.net/sfu/SauceLabs
> _______________________________________________
> QuantLib-dev mailing list
> Qua...@li...
> https://lists.sourceforge.net/lists/listinfo/quantlib-dev
>
--
<https://implementingquantlib.blogspot.com>
<https://twitter.com/lballabio>
|
|
From: Michael S. <ma...@gm...> - 2014-05-22 04:14:18
|
git cherry-pick is another good suggestion: you could use cherry-pick to fix things up to create a clean branch, but it won't fix up the old branch you've created to remove the commits that contain the projects. See http://git-scm.com/docs/git-cherry-pick. It could be used to fix up this situation if you: 1) Create a new branch for the pull request at the commit before the projects were committed - I'm going to call this branch ToShare. 2) Cherry-pick the commits from the branch where the projects were committed to the ToShare branch. This will apply the diffs for each individual commit to the ToShare branch, one at a time. 3) Create a pull request using the ToShare branch. Once the pull request is merged in, you can work on fixing up your branches and fork of the official quantlib remote to better your work flow. On Wed, May 21, 2014 at 7:02 PM, Dave Wiltshire <dun...@gm...> wrote: > Your best bet is to ask this question before starting to code! > > > I think you want to leave the master branch as just the master branch. So > you branch and put your local changes in. Check this in. Now branch again > and perform your work. > > After being happy with your work you can merge the branch with actual work > back to main. Since the only difference is the local changes this should > be a breeze. > > You can probably get to that from where you are by doing git --rebase. > > Another alternative is git cherry-pick which should let you choose which > check ins to move to the master branch. > > > On 22 May 2014 01:37, Michael Sharpe <ma...@gm...> wrote: > >> git rebase --interactive is probably what you want once you've committed >> the project file changes, as mentioned in the Stack Overflow post. I'd >> imagine most of the time you could get away with just not committing the >> project files at all, unless you're adding files to the project, in which >> case you can just commit those specific lines. >> >> If anybody is interested in learning more about git's commit and >> branching model, and the commands git provides, I recommend the following >> interactive tutorial: http://pcottle.github.io/learnGitBranching/?demo >> >> >> On Wed, May 21, 2014 at 6:01 AM, Piter Dias <pit...@pi...>wrote: >> >>> It is a very interesting question. >>> >>> I don't have a general answer but at least for boost, Python and >>> doxygen, you can use the Microsoft.Cpp.Win32.user property page to avoid >>> touching the QuantLib files. >>> >>> It may not be pratical, however, if you use different versions of boost, >>> for example, for different projects (I had this at work). >>> >>> I have the same problem in other project and some of my contributions >>> were not accepted although the final code was exactly what it was supposed >>> to be. >>> >>> >>> _____________________ >>> Piter Dias >>> pit...@pi... >>> www.piterdias.com >>> >>> >>> >>> ------------------------------ >>> From: ig...@gm... >>> Date: Wed, 21 May 2014 14:24:58 +0200 >>> To: qua...@li... >>> Subject: [Quantlib-dev] Some off-topic help on git >>> >>> >>> Hi, >>> >>> Excuse me for going a bit off-topic. I'd like to contribute some >>> changes, but being new to git, I'm unsure how to progress. >>> >>> I've forked the quantlib repo, and cloned it. I've created a new branch >>> to work on. Everything is still clean. Now, I first have to modify my >>> .vcxproj files to point to my own boost installation. Obviously these are >>> changes that I don't want to include in the pull request later. After >>> adding boost and checking that it compiles correctly, I do a commit. >>> >>> Now I'm ready to start with the actual work. Let's assume I've finished >>> that and do another commit. >>> >>> How do I proceed now? I want to create a pull request, but I don't know >>> how to exclude the original, irrelevant commits. Is this easily possible? >>> Should I use git rebase or have used multiple branches? I also posed this >>> question on >>> http://stackoverflow.com/questions/23781928/git-ignore-first-few-changes >>> >>> Once I figure this out, I want to apply a similar technique to pull in >>> the outstanding commits from Peter's changes (to let the QuantlibAddin >>> build successfully) and then do some work to expose more functions for the >>> AddIn. Yet again, I'll have to create a pull request, but I want to exclude >>> Peter's changes, because those are already in a pull request. >>> >>> Sorry for the newbie questions, but I hope you'll appreciate the >>> contributions that I can make. >>> >>> regards >>> Francois Botha >>> >>> ------------------------------------------------------------------------------ >>> "Accelerate Dev Cycles with Automated Cross-Browser Testing - For FREE >>> Instantly run your Selenium tests across 300+ browser/OS combos. Get >>> unparalleled scalability from the best Selenium testing platform available >>> Simple to use. Nothing to install. Get started now for free." >>> http://p.sf.net/sfu/SauceLabs >>> _______________________________________________ QuantLib-dev mailing >>> list Qua...@li... >>> https://lists.sourceforge.net/lists/listinfo/quantlib-dev >>> >>> >>> ------------------------------------------------------------------------------ >>> "Accelerate Dev Cycles with Automated Cross-Browser Testing - For FREE >>> Instantly run your Selenium tests across 300+ browser/OS combos. >>> Get unparalleled scalability from the best Selenium testing platform >>> available >>> Simple to use. Nothing to install. Get started now for free." >>> http://p.sf.net/sfu/SauceLabs >>> _______________________________________________ >>> QuantLib-dev mailing list >>> Qua...@li... >>> https://lists.sourceforge.net/lists/listinfo/quantlib-dev >>> >>> >> >> >> ------------------------------------------------------------------------------ >> "Accelerate Dev Cycles with Automated Cross-Browser Testing - For FREE >> Instantly run your Selenium tests across 300+ browser/OS combos. >> Get unparalleled scalability from the best Selenium testing platform >> available >> Simple to use. Nothing to install. Get started now for free." >> http://p.sf.net/sfu/SauceLabs >> _______________________________________________ >> QuantLib-dev mailing list >> Qua...@li... >> https://lists.sourceforge.net/lists/listinfo/quantlib-dev >> >> > |
|
From: Dave W. <dun...@gm...> - 2014-05-22 02:02:28
|
Your best bet is to ask this question before starting to code! I think you want to leave the master branch as just the master branch. So you branch and put your local changes in. Check this in. Now branch again and perform your work. After being happy with your work you can merge the branch with actual work back to main. Since the only difference is the local changes this should be a breeze. You can probably get to that from where you are by doing git --rebase. Another alternative is git cherry-pick which should let you choose which check ins to move to the master branch. On 22 May 2014 01:37, Michael Sharpe <ma...@gm...> wrote: > git rebase --interactive is probably what you want once you've committed > the project file changes, as mentioned in the Stack Overflow post. I'd > imagine most of the time you could get away with just not committing the > project files at all, unless you're adding files to the project, in which > case you can just commit those specific lines. > > If anybody is interested in learning more about git's commit and branching > model, and the commands git provides, I recommend the following interactive > tutorial: http://pcottle.github.io/learnGitBranching/?demo > > > On Wed, May 21, 2014 at 6:01 AM, Piter Dias <pit...@pi...>wrote: > >> It is a very interesting question. >> >> I don't have a general answer but at least for boost, Python and doxygen, >> you can use the Microsoft.Cpp.Win32.user property page to avoid touching >> the QuantLib files. >> >> It may not be pratical, however, if you use different versions of boost, >> for example, for different projects (I had this at work). >> >> I have the same problem in other project and some of my contributions >> were not accepted although the final code was exactly what it was supposed >> to be. >> >> >> _____________________ >> Piter Dias >> pit...@pi... >> www.piterdias.com >> >> >> >> ------------------------------ >> From: ig...@gm... >> Date: Wed, 21 May 2014 14:24:58 +0200 >> To: qua...@li... >> Subject: [Quantlib-dev] Some off-topic help on git >> >> >> Hi, >> >> Excuse me for going a bit off-topic. I'd like to contribute some changes, >> but being new to git, I'm unsure how to progress. >> >> I've forked the quantlib repo, and cloned it. I've created a new branch >> to work on. Everything is still clean. Now, I first have to modify my >> .vcxproj files to point to my own boost installation. Obviously these are >> changes that I don't want to include in the pull request later. After >> adding boost and checking that it compiles correctly, I do a commit. >> >> Now I'm ready to start with the actual work. Let's assume I've finished >> that and do another commit. >> >> How do I proceed now? I want to create a pull request, but I don't know >> how to exclude the original, irrelevant commits. Is this easily possible? >> Should I use git rebase or have used multiple branches? I also posed this >> question on >> http://stackoverflow.com/questions/23781928/git-ignore-first-few-changes >> >> Once I figure this out, I want to apply a similar technique to pull in >> the outstanding commits from Peter's changes (to let the QuantlibAddin >> build successfully) and then do some work to expose more functions for the >> AddIn. Yet again, I'll have to create a pull request, but I want to exclude >> Peter's changes, because those are already in a pull request. >> >> Sorry for the newbie questions, but I hope you'll appreciate the >> contributions that I can make. >> >> regards >> Francois Botha >> >> ------------------------------------------------------------------------------ >> "Accelerate Dev Cycles with Automated Cross-Browser Testing - For FREE >> Instantly run your Selenium tests across 300+ browser/OS combos. Get >> unparalleled scalability from the best Selenium testing platform available >> Simple to use. Nothing to install. Get started now for free." >> http://p.sf.net/sfu/SauceLabs >> _______________________________________________ QuantLib-dev mailing list >> Qua...@li... >> https://lists.sourceforge.net/lists/listinfo/quantlib-dev >> >> >> ------------------------------------------------------------------------------ >> "Accelerate Dev Cycles with Automated Cross-Browser Testing - For FREE >> Instantly run your Selenium tests across 300+ browser/OS combos. >> Get unparalleled scalability from the best Selenium testing platform >> available >> Simple to use. Nothing to install. Get started now for free." >> http://p.sf.net/sfu/SauceLabs >> _______________________________________________ >> QuantLib-dev mailing list >> Qua...@li... >> https://lists.sourceforge.net/lists/listinfo/quantlib-dev >> >> > > > ------------------------------------------------------------------------------ > "Accelerate Dev Cycles with Automated Cross-Browser Testing - For FREE > Instantly run your Selenium tests across 300+ browser/OS combos. > Get unparalleled scalability from the best Selenium testing platform > available > Simple to use. Nothing to install. Get started now for free." > http://p.sf.net/sfu/SauceLabs > _______________________________________________ > QuantLib-dev mailing list > Qua...@li... > https://lists.sourceforge.net/lists/listinfo/quantlib-dev > > |
|
From: Ioan F. <if...@ny...> - 2014-05-21 16:28:05
|
Hello,
I am trying to expose a new type of the SwapRateHelper constructor (already
existent in QuantLib) to Python.
In the ratehelpers.i interface file, I added the following code:
//ADDED
*SwapRateHelperPtr(
const Handle& rate,
const Period &tenor,
const Calendar &calendar,
Frequency fixedFrequency,
BusinessDayConvention fixedConvention,
const DayCounter &fixedDayCount,
const boost::shared_ptr<IborIndex> &index,
const Handle &spread=Handle(),
const Period &fwdStart=0 *Days,
const Handle<YieldTermStructure>
&discountingCurve=Handle<YieldTermStructure>()) {
boost::shared_ptr<IborIndex> libor =
boost::dynamic_pointer_cast<IborIndex>(index);
return new SwapRateHelperPtr(
new SwapRateHelper(rate, tenor, calendar,
fixedFrequency, fixedConvention,
fixedDayCount, libor,
spread, fwdStart,
discountingCurve));*
//END ADDED
I was able to wrap, build and install the QuantLib library (via SWIG) into
Python, but when I try to use the SwapRateHelper in Python, I get the
following error:
*NotImplementedError: Wrong number or type of arguments for overloaded
function 'new_SwapRateHelper'.
Possible C/C++ prototypes are:....*
The following code works:
*qqq=SwapRateHelper(QuoteHandle(eurLiborSwaps[(2, Years)]),
Period(2, Years),
euroCalendar,
fixedLegFrequency,
fixedLegAdjustment,
fixedLegDayCounter,
EURLibor3M(),
QuoteHandle(),
Period(0,0))*
while this one causes the problem:
*qqq=SwapRateHelper(QuoteHandle(eurLiborSwaps[(2, Years)]),
Period(2, Years),
euroCalendar,
fixedLegFrequency,
fixedLegAdjustment,
fixedLegDayCounter,
EURLibor3M(),
QuoteHandle(),
Period(0,0),
eoniaHandle)*
Furthermore, please note that Python reports the type of the eoniaHandle
variable as:
*QuantLib.QuantLib.YieldTermStructureHandle*
Any help or suggestions are highly appreciated.
Since this is my first time posting, please excuse any breaking of the
"mailing list etiquette."
Thank you,
Ioan
--
View this message in context: http://quantlib.10058.n7.nabble.com/SwapRateHelper-Question-SWIG-Python-tp15297.html
Sent from the quantlib-dev mailing list archive at Nabble.com.
|
|
From: Michael S. <ma...@gm...> - 2014-05-21 15:38:05
|
git rebase --interactive is probably what you want once you've committed the project file changes, as mentioned in the Stack Overflow post. I'd imagine most of the time you could get away with just not committing the project files at all, unless you're adding files to the project, in which case you can just commit those specific lines. If anybody is interested in learning more about git's commit and branching model, and the commands git provides, I recommend the following interactive tutorial: http://pcottle.github.io/learnGitBranching/?demo On Wed, May 21, 2014 at 6:01 AM, Piter Dias <pit...@pi...>wrote: > It is a very interesting question. > > I don't have a general answer but at least for boost, Python and doxygen, > you can use the Microsoft.Cpp.Win32.user property page to avoid touching > the QuantLib files. > > It may not be pratical, however, if you use different versions of boost, > for example, for different projects (I had this at work). > > I have the same problem in other project and some of my contributions were > not accepted although the final code was exactly what it was supposed to be. > > > _____________________ > Piter Dias > pit...@pi... > www.piterdias.com > > > > ------------------------------ > From: ig...@gm... > Date: Wed, 21 May 2014 14:24:58 +0200 > To: qua...@li... > Subject: [Quantlib-dev] Some off-topic help on git > > > Hi, > > Excuse me for going a bit off-topic. I'd like to contribute some changes, > but being new to git, I'm unsure how to progress. > > I've forked the quantlib repo, and cloned it. I've created a new branch to > work on. Everything is still clean. Now, I first have to modify my .vcxproj > files to point to my own boost installation. Obviously these are changes > that I don't want to include in the pull request later. After adding boost > and checking that it compiles correctly, I do a commit. > > Now I'm ready to start with the actual work. Let's assume I've finished > that and do another commit. > > How do I proceed now? I want to create a pull request, but I don't know > how to exclude the original, irrelevant commits. Is this easily possible? > Should I use git rebase or have used multiple branches? I also posed this > question on > http://stackoverflow.com/questions/23781928/git-ignore-first-few-changes > > Once I figure this out, I want to apply a similar technique to pull in the > outstanding commits from Peter's changes (to let the QuantlibAddin build > successfully) and then do some work to expose more functions for the AddIn. > Yet again, I'll have to create a pull request, but I want to exclude > Peter's changes, because those are already in a pull request. > > Sorry for the newbie questions, but I hope you'll appreciate the > contributions that I can make. > > regards > Francois Botha > > ------------------------------------------------------------------------------ > "Accelerate Dev Cycles with Automated Cross-Browser Testing - For FREE > Instantly run your Selenium tests across 300+ browser/OS combos. Get > unparalleled scalability from the best Selenium testing platform available > Simple to use. Nothing to install. Get started now for free." > http://p.sf.net/sfu/SauceLabs > _______________________________________________ QuantLib-dev mailing list > Qua...@li... > https://lists.sourceforge.net/lists/listinfo/quantlib-dev > > > ------------------------------------------------------------------------------ > "Accelerate Dev Cycles with Automated Cross-Browser Testing - For FREE > Instantly run your Selenium tests across 300+ browser/OS combos. > Get unparalleled scalability from the best Selenium testing platform > available > Simple to use. Nothing to install. Get started now for free." > http://p.sf.net/sfu/SauceLabs > _______________________________________________ > QuantLib-dev mailing list > Qua...@li... > https://lists.sourceforge.net/lists/listinfo/quantlib-dev > > |
|
From: Piter D. <pit...@pi...> - 2014-05-21 13:13:59
|
It is a very interesting question. I don't have a general answer but at least for boost, Python and doxygen, you can use the Microsoft.Cpp.Win32.user property page to avoid touching the QuantLib files. It may not be pratical, however, if you use different versions of boost, for example, for different projects (I had this at work). I have the same problem in other project and some of my contributions were not accepted although the final code was exactly what it was supposed to be. _____________________Piter Dia...@pi... From: ig...@gm... Date: Wed, 21 May 2014 14:24:58 +0200 To: qua...@li... Subject: [Quantlib-dev] Some off-topic help on git Hi, Excuse me for going a bit off-topic. I'd like to contribute some changes, but being new to git, I'm unsure how to progress. I've forked the quantlib repo, and cloned it. I've created a new branch to work on. Everything is still clean. Now, I first have to modify my .vcxproj files to point to my own boost installation. Obviously these are changes that I don't want to include in the pull request later. After adding boost and checking that it compiles correctly, I do a commit. Now I'm ready to start with the actual work. Let's assume I've finished that and do another commit. How do I proceed now? I want to create a pull request, but I don't know how to exclude the original, irrelevant commits. Is this easily possible? Should I use git rebase or have used multiple branches? I also posed this question on http://stackoverflow.com/questions/23781928/git-ignore-first-few-changes Once I figure this out, I want to apply a similar technique to pull in the outstanding commits from Peter's changes (to let the QuantlibAddin build successfully) and then do some work to expose more functions for the AddIn. Yet again, I'll have to create a pull request, but I want to exclude Peter's changes, because those are already in a pull request. Sorry for the newbie questions, but I hope you'll appreciate the contributions that I can make. regardsFrancois Botha ------------------------------------------------------------------------------ "Accelerate Dev Cycles with Automated Cross-Browser Testing - For FREE Instantly run your Selenium tests across 300+ browser/OS combos. Get unparalleled scalability from the best Selenium testing platform available Simple to use. Nothing to install. Get started now for free." http://p.sf.net/sfu/SauceLabs _______________________________________________ QuantLib-dev mailing list Qua...@li... https://lists.sourceforge.net/lists/listinfo/quantlib-dev |
|
From: Francois B. <ig...@gm...> - 2014-05-21 12:25:26
|
Hi, Excuse me for going a bit off-topic. I'd like to contribute some changes, but being new to git, I'm unsure how to progress. I've forked the quantlib repo, and cloned it. I've created a new branch to work on. Everything is still clean. Now, I first have to modify my .vcxproj files to point to my own boost installation. Obviously these are changes that I don't want to include in the pull request later. After adding boost and checking that it compiles correctly, I do a commit. Now I'm ready to start with the actual work. Let's assume I've finished that and do another commit. How do I proceed now? I want to create a pull request, but I don't know how to exclude the original, irrelevant commits. Is this easily possible? Should I use git rebase or have used multiple branches? I also posed this question on http://stackoverflow.com/questions/23781928/git-ignore-first-few-changes Once I figure this out, I want to apply a similar technique to pull in the outstanding commits from Peter's changes (to let the QuantlibAddin build successfully) and then do some work to expose more functions for the AddIn. Yet again, I'll have to create a pull request, but I want to exclude Peter's changes, because those are already in a pull request. Sorry for the newbie questions, but I hope you'll appreciate the contributions that I can make. regards Francois Botha |
|
From: Luigi B. <lui...@gm...> - 2014-05-20 13:20:31
|
Hello,
apologies for the delay. If you have an instance i of an
interpolation (linear or otherwise), you can extrapolate in two ways:
- in a single call, by passing a second parameter to operator() that
allows extrapolation. Something like:
y1 = i(0.2); // this will raise an exception
y2 = i(0.2, true); // this will return an extrapolated value.
- if you want to do several calls, you can tell the interpolation to
always allow extrapolation. This will work:
i.enableExtrapolation();
y = i(0.2); // now this will return a value
Hope this helps,
Luigi
On Wed, May 7, 2014 at 10:20 AM, v17 <var...@ya...> wrote:
> Hello,
>
> I am doing LinearInterpolation with x-vector being YearFrac and y vector as
> YTMs -
>
> X-vector is {0.5,1,2,3,4,5,6,7,8,9,10,15)
>
> Interpolation works fine for yearFrac range 0.5 to 15
>
> However for yearfrac < 0.5 and > 15 it gives exception.
>
> Is there any way to interpolate beyond range?
>
>
>
>
>
> --
> View this message in context: http://quantlib.10058.n7.nabble.com/Can-I-extrapolate-beyond-interpolation-range-in-LinearInterpolation-tp15240.html
> Sent from the quantlib-dev mailing list archive at Nabble.com.
>
> ------------------------------------------------------------------------------
> Is your legacy SCM system holding you back? Join Perforce May 7 to find out:
> 3 signs your SCM is hindering your productivity
> Requirements for releasing software faster
> Expert tips and advice for migrating your SCM now
> http://p.sf.net/sfu/perforce
> _______________________________________________
> QuantLib-dev mailing list
> Qua...@li...
> https://lists.sourceforge.net/lists/listinfo/quantlib-dev
--
<https://implementingquantlib.blogspot.com>
<https://twitter.com/lballabio>
|
|
From: Luigi B. <lui...@gm...> - 2014-05-19 17:28:05
|
Is it? My bad, I've missed it. Luigi On May 19, 2014 7:14 PM, "Peter Caspers" <pca...@gm...> wrote: > yes, it is part of https://github.com/lballabio/quantlib/pull/81 > best > Peter > > > > > On 19 May 2014 17:15, Luigi Ballabio <lui...@gm...> wrote: > > Sure, but I don't have a PR yet. Peter, did you make a pull request to > > Eric instead? If so, I'll pull from him one he's accepted it. > > > > Luigi > > > > On Thu, May 15, 2014 at 8:40 PM, Francois Botha <ig...@gm...> > wrote: > >> Thanks. I fetched those commits and it fixed my compilation problem. > Luigi, > >> can you perhaps accept the PR? > >> > >> Francois > >> > >> On 14 May 2014 7:10 PM, "Peter Caspers" <pca...@gm...> wrote: > >>> > >>> Hi, > >>> > >>> I think I introduced this problem. The fixes should be here > >>> > >>> > >>> > https://github.com/pcaspers/quantlib/commit/2c4cd34bdbf3a514ffff121f085938be29197b83 > >>> > >>> > https://github.com/pcaspers/quantlib/commit/384595ec875734c69a8747add6a42125d74e4928 > >>> > >>> However these are not yet merged in Luigi's master. > >>> > >>> Thank you > >>> Peter > >>> > >>> > >>> On 14 May 2014 17:25, Francois Botha <ig...@gm...> wrote: > >>> > Hi all, > >>> > > >>> > I'm trying to compile QuantLibXL from the git source. I'm doing a > full > >>> > build, which includes the gensrc parts. > >>> > > >>> > The compilation fails with the following error: > >>> > > >>> > error C2664: 'QuantLib::CmsMarket::CmsMarket(const std::vector<_Ty> > >>> > &,const > >>> > std::vector<boost::shared_ptr<T>> &,const > >>> > boost::shared_ptr<QuantLib::IborIndex> &,const > >>> > std::vector<std::vector<QuantLib::Handle<QuantLib::Quote>>> &,const > >>> > std::vector<boost::shared_ptr<QuantLib::CmsCouponPricer>> &,const > >>> > QuantLib::Handle<QuantLib::YieldTermStructure> &)' : cannot convert > >>> > parameter 5 from 'std::vector<_Ty>' to 'const std::vector<_Ty> &' > >>> > C:\dev\quantlib\QuantLibAddin\qlo\cmsmarket.cpp > >>> > > >>> > Is this a known issue or how do I resolve this? > >>> > > >>> > thanks > >>> > Francois Botha > >>> > > >>> > > >>> > > ------------------------------------------------------------------------------ > >>> > "Accelerate Dev Cycles with Automated Cross-Browser Testing - For > FREE > >>> > Instantly run your Selenium tests across 300+ browser/OS combos. > >>> > Get unparalleled scalability from the best Selenium testing platform > >>> > available > >>> > Simple to use. Nothing to install. Get started now for free." > >>> > http://p.sf.net/sfu/SauceLabs > >>> > _______________________________________________ > >>> > QuantLib-dev mailing list > >>> > Qua...@li... > >>> > https://lists.sourceforge.net/lists/listinfo/quantlib-dev > >>> > > >> > >> > >> > ------------------------------------------------------------------------------ > >> "Accelerate Dev Cycles with Automated Cross-Browser Testing - For FREE > >> Instantly run your Selenium tests across 300+ browser/OS combos. > >> Get unparalleled scalability from the best Selenium testing platform > >> available > >> Simple to use. Nothing to install. Get started now for free." > >> http://p.sf.net/sfu/SauceLabs > >> _______________________________________________ > >> QuantLib-dev mailing list > >> Qua...@li... > >> https://lists.sourceforge.net/lists/listinfo/quantlib-dev > >> > > > > > > > > -- > > <https://implementingquantlib.blogspot.com> > > <https://twitter.com/lballabio> > |
|
From: Peter C. <pca...@gm...> - 2014-05-19 17:15:05
|
yes, it is part of https://github.com/lballabio/quantlib/pull/81 best Peter On 19 May 2014 17:15, Luigi Ballabio <lui...@gm...> wrote: > Sure, but I don't have a PR yet. Peter, did you make a pull request to > Eric instead? If so, I'll pull from him one he's accepted it. > > Luigi > > On Thu, May 15, 2014 at 8:40 PM, Francois Botha <ig...@gm...> wrote: >> Thanks. I fetched those commits and it fixed my compilation problem. Luigi, >> can you perhaps accept the PR? >> >> Francois >> >> On 14 May 2014 7:10 PM, "Peter Caspers" <pca...@gm...> wrote: >>> >>> Hi, >>> >>> I think I introduced this problem. The fixes should be here >>> >>> >>> https://github.com/pcaspers/quantlib/commit/2c4cd34bdbf3a514ffff121f085938be29197b83 >>> >>> https://github.com/pcaspers/quantlib/commit/384595ec875734c69a8747add6a42125d74e4928 >>> >>> However these are not yet merged in Luigi's master. >>> >>> Thank you >>> Peter >>> >>> >>> On 14 May 2014 17:25, Francois Botha <ig...@gm...> wrote: >>> > Hi all, >>> > >>> > I'm trying to compile QuantLibXL from the git source. I'm doing a full >>> > build, which includes the gensrc parts. >>> > >>> > The compilation fails with the following error: >>> > >>> > error C2664: 'QuantLib::CmsMarket::CmsMarket(const std::vector<_Ty> >>> > &,const >>> > std::vector<boost::shared_ptr<T>> &,const >>> > boost::shared_ptr<QuantLib::IborIndex> &,const >>> > std::vector<std::vector<QuantLib::Handle<QuantLib::Quote>>> &,const >>> > std::vector<boost::shared_ptr<QuantLib::CmsCouponPricer>> &,const >>> > QuantLib::Handle<QuantLib::YieldTermStructure> &)' : cannot convert >>> > parameter 5 from 'std::vector<_Ty>' to 'const std::vector<_Ty> &' >>> > C:\dev\quantlib\QuantLibAddin\qlo\cmsmarket.cpp >>> > >>> > Is this a known issue or how do I resolve this? >>> > >>> > thanks >>> > Francois Botha >>> > >>> > >>> > ------------------------------------------------------------------------------ >>> > "Accelerate Dev Cycles with Automated Cross-Browser Testing - For FREE >>> > Instantly run your Selenium tests across 300+ browser/OS combos. >>> > Get unparalleled scalability from the best Selenium testing platform >>> > available >>> > Simple to use. Nothing to install. Get started now for free." >>> > http://p.sf.net/sfu/SauceLabs >>> > _______________________________________________ >>> > QuantLib-dev mailing list >>> > Qua...@li... >>> > https://lists.sourceforge.net/lists/listinfo/quantlib-dev >>> > >> >> >> ------------------------------------------------------------------------------ >> "Accelerate Dev Cycles with Automated Cross-Browser Testing - For FREE >> Instantly run your Selenium tests across 300+ browser/OS combos. >> Get unparalleled scalability from the best Selenium testing platform >> available >> Simple to use. Nothing to install. Get started now for free." >> http://p.sf.net/sfu/SauceLabs >> _______________________________________________ >> QuantLib-dev mailing list >> Qua...@li... >> https://lists.sourceforge.net/lists/listinfo/quantlib-dev >> > > > > -- > <https://implementingquantlib.blogspot.com> > <https://twitter.com/lballabio> |
|
From: Luigi B. <lui...@gm...> - 2014-05-19 15:15:49
|
Sure, but I don't have a PR yet. Peter, did you make a pull request to Eric instead? If so, I'll pull from him one he's accepted it. Luigi On Thu, May 15, 2014 at 8:40 PM, Francois Botha <ig...@gm...> wrote: > Thanks. I fetched those commits and it fixed my compilation problem. Luigi, > can you perhaps accept the PR? > > Francois > > On 14 May 2014 7:10 PM, "Peter Caspers" <pca...@gm...> wrote: >> >> Hi, >> >> I think I introduced this problem. The fixes should be here >> >> >> https://github.com/pcaspers/quantlib/commit/2c4cd34bdbf3a514ffff121f085938be29197b83 >> >> https://github.com/pcaspers/quantlib/commit/384595ec875734c69a8747add6a42125d74e4928 >> >> However these are not yet merged in Luigi's master. >> >> Thank you >> Peter >> >> >> On 14 May 2014 17:25, Francois Botha <ig...@gm...> wrote: >> > Hi all, >> > >> > I'm trying to compile QuantLibXL from the git source. I'm doing a full >> > build, which includes the gensrc parts. >> > >> > The compilation fails with the following error: >> > >> > error C2664: 'QuantLib::CmsMarket::CmsMarket(const std::vector<_Ty> >> > &,const >> > std::vector<boost::shared_ptr<T>> &,const >> > boost::shared_ptr<QuantLib::IborIndex> &,const >> > std::vector<std::vector<QuantLib::Handle<QuantLib::Quote>>> &,const >> > std::vector<boost::shared_ptr<QuantLib::CmsCouponPricer>> &,const >> > QuantLib::Handle<QuantLib::YieldTermStructure> &)' : cannot convert >> > parameter 5 from 'std::vector<_Ty>' to 'const std::vector<_Ty> &' >> > C:\dev\quantlib\QuantLibAddin\qlo\cmsmarket.cpp >> > >> > Is this a known issue or how do I resolve this? >> > >> > thanks >> > Francois Botha >> > >> > >> > ------------------------------------------------------------------------------ >> > "Accelerate Dev Cycles with Automated Cross-Browser Testing - For FREE >> > Instantly run your Selenium tests across 300+ browser/OS combos. >> > Get unparalleled scalability from the best Selenium testing platform >> > available >> > Simple to use. Nothing to install. Get started now for free." >> > http://p.sf.net/sfu/SauceLabs >> > _______________________________________________ >> > QuantLib-dev mailing list >> > Qua...@li... >> > https://lists.sourceforge.net/lists/listinfo/quantlib-dev >> > > > > ------------------------------------------------------------------------------ > "Accelerate Dev Cycles with Automated Cross-Browser Testing - For FREE > Instantly run your Selenium tests across 300+ browser/OS combos. > Get unparalleled scalability from the best Selenium testing platform > available > Simple to use. Nothing to install. Get started now for free." > http://p.sf.net/sfu/SauceLabs > _______________________________________________ > QuantLib-dev mailing list > Qua...@li... > https://lists.sourceforge.net/lists/listinfo/quantlib-dev > -- <https://implementingquantlib.blogspot.com> <https://twitter.com/lballabio> |
|
From: tulassay <zso...@gm...> - 2014-05-17 08:28:56
|
Never mind, I figured it out thanks Zsolt -- View this message in context: http://quantlib.10058.n7.nabble.com/QuantLib-boost-1-55-tp14715p15287.html Sent from the quantlib-dev mailing list archive at Nabble.com. |