adding methods to VanillaSwap in SWIG bindings

Posted by Matthew Gline on
URL: http://quantlib.414.s1.nabble.com/adding-methods-to-VanillaSwap-in-SWIG-bindings-tp6001.html

Hello all,

My name is Matt and I am a new quantlib developer working with the SWIG bindings in Python.

I'm trying to expose some additional methods and I admit I'm working a bit blindly as I don't know what I'm doing and I'm relatively unfamiliar with SWIG. In particular, I'd like to expose the fixedSchedule method so that I can get the payment dates out of a VanillaSwap.

Here is what I have done to swap.i, first in the header:

class VanillaSwapPtr : public SwapPtr {
    #if defined(SWIGMZSCHEME) || defined(SWIGGUILE)
    %rename("fair-rate")        fairRate;
    %rename("fair-spread")      fairSpread;
    %rename("fixed-leg-BPS")    fixedLegBPS;
    %rename("floating-leg-BPS") floatingLegBPS;
    %rename("fixed-schedule")   fixedSchedule;
    #endif
 

and then further down as a method:

        Schedule fixedSchedule() {
            return boost::dynamic_pointer_cast<VanillaSwap>(*self)
                 ->fixedSchedule();
        }


When I do this, it does not compile and something gets all mucked up. I get a bunch of errors that look like these

python -c++ -modern -outdir QuantLib \
            -o QuantLib/quantlib_wrap.cpp ../SWIG/quantlib.i
  File "<string>", line 1
    ++
     ^
SyntaxError: invalid syntax
make: [QuantLib/quantlib_wrap.cpp] Error 1 (ignored)
python -c++ -modern -outdir QuantLib \
            -o QuantLib/quantlib_wrap.cpp ../SWIG/quantlib.i
  File "<string>", line 1
    ++
     ^


I'm sure I'm making some incredibly basic mistake - I tried my hardest just to copy what was already there but I must be missing something essential.

Is there a good tutorial or example on how to do this? I know there are macros for exposing some other things like curve interpolation quite easily. Is there a similar solution for this?

Thanks much and pleased to meet all of you,

--Matt



------------------------------------------------------------------------------
Everyone hates slow websites. So do we.
Make your web apps faster with AppDynamics
Download AppDynamics Lite for free today:
http://p.sf.net/sfu/appdyn_sfd2d_oct
_______________________________________________
QuantLib-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-users