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: Luigi B. <lui...@gm...> - 2017-04-19 16:11:57
|
For instance, Boost 1.54 seems to work (apart from linking, but that might be an issue with the installation of gcc 3.4.6 I'm using). Luigi On Wed, Apr 19, 2017 at 5:07 PM Luigi Ballabio <lui...@gm...> wrote: > Please try to see if the gcc-3.4 branch on GitHub works for you. If so, > clone it in your repo so that you can maintain it in the future: I probably > won't include the changes in version 1.10. My suggestion of testing > earlier versions of Boost stands: most if not all the errors came from > Boost code. > > Luigi > > > On Wed, Apr 19, 2017 at 6:03 AM shailesh kumar <sha...@gm...> > wrote: > >> Hi Luigi/Dirk, >> >> Thanks for your quick response. >> >> I am forced to perform role of archaeologist :) >> >> My Modified Duration component was earlier based on Quantlib 0.9.7 (last >> built in 2007) but in order to support "negative jumps in interest-rate >> curves" and to incorporate other bug fixes, i upgraded the Quantlib >> version to latest keeping the compiler version same as component also had >> few external libraries dependencies built with gcc34/g++34 >> >> Luigi, >> >> As suggested, I ran ./configure CXXFLAGS='-DQL_PATCH_SOLARIS' but it >> failed at squarerootprocessrndcalculator.cpp:64: instantiated from here >> Request to please guide so as to disable it at my end to proceed further. >> >> Regards >> Shailesh Kumar >> >> >> >> >> >> On Wed, Apr 19, 2017 at 1:05 AM, Luigi Ballabio <lui...@gm... >> > wrote: >> >>> Oh, right, it was you for Solaris as well. It's good to have an >>> archaeologist around :) >>> >>> On Tue, Apr 18, 2017, 21:28 Luigi Ballabio <lui...@gm...> >>> wrote: >>> >>>> I second Dirk that we probably shouldn't put much effort in making that >>>> code compile. However, we can disable it so that the build succeeds, even >>>> if the resulting library will miss a few features. In fact, I did the same >>>> thing recently for an older Solaris compiler. May you try running configure >>>> as >>>> >>>> ./configure CXXFLAGS='-DQL_PATCH_SOLARIS' >>>> >>>> and see if you get to the end of the build? >>>> >>>> Luigi >>>> >>>> On Tue, Apr 18, 2017, 21:16 Dirk Eddelbuettel <ed...@de...> wrote: >>>> >>>>> >>>>> On 19 April 2017 at 00:23, shailesh kumar wrote: >>>>> | Hi Luigi, >>>>> | >>>>> | I tried compiling preliminary tarballs for QuantLib 1.10 >>>>> as available at < >>>>> | https://sourceforge.net/projects/quantlib/files/test> on OEL 6.7 >>>>> (Oracle Linux >>>>> | Server release 6.7) >>>>> | using gcc34/g++34 version gcc34 (GCC) 3.4.6 20060404 (Red Hat >>>>> 3.4.6-19.el6)/ >>>>> | g++34 (GCC) 3.4.6 20060404 (Red Hat 3.4.6-19.el6) along with Boost >>>>> version >>>>> | 1.62.0 >>>>> | >>>>> | I am getting below compilation error. >>>>> | >>>>> | ../../../ql/experimental/math/tcopulapolicy.hpp:134: instantiated >>>>> from here >>>>> | >>>>> /scratch/ofsaadb/build/CAP802_JAVA7_O12C/BOOSTNEW/include/boost/math/tools/ >>>>> | roots.hpp:68: error: no matching function for call to `get(const >>>>> | boost::fusion::tuple<long double, long double, boost::fusion::void_, >>>>> | boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, >>>>> | boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, >>>>> | boost::fusion::void_>&)' >>>>> | make[3]: *** [gaussianlhplossmodel.lo] Error 1 >>>>> | make[3]: Leaving directory >>>>> `/scratch/ofsaaweb/QuantLib-suncc/ql/experimental/ >>>>> | credit' >>>>> | make[2]: *** [all-recursive] Error 1 >>>>> | make[2]: Leaving directory >>>>> `/scratch/ofsaaweb/QuantLib-suncc/ql/experimental' >>>>> | make[1]: *** [all-recursive] Error 1 >>>>> | make[1]: Leaving directory `/scratch/ofsaaweb/QuantLib-suncc/ql' >>>>> | make: *** [all] Error 2 >>>>> | >>>>> | Request to please help me resolving this issue. >>>>> | This works if i use gcc/g++ version 4.4.7 compiler but fails for >>>>> gcc34/g++34 >>>>> >>>>> I hope you do realize that gcc 3.4 was released _eleven_ years ago. >>>>> >>>>> Even 4.4.* is pretty ancient at an age of five years. >>>>> >>>>> Dirk >>>>> >>>>> | >>>>> | >>>>> | Regards >>>>> | Shailesh Kumar >>>>> | >>>>> | >>>>> | >>>>> | >>>>> | On Wed, Apr 12, 2017 at 9:16 PM, Luigi Ballabio < >>>>> lui...@gm...> >>>>> | wrote: >>>>> | >>>>> | Hi all, >>>>> | preliminary tarballs for QuantLib 1.10 are available at >>>>> <https:// >>>>> | sourceforge.net/projects/quantlib/files/test> (no docs yet, but >>>>> most >>>>> | changes are listed at >>>>> https://github.com/lballabio/QuantLib/milestone/5? >>>>> | closed=1). Please download them and try them out if you have a >>>>> few cycles >>>>> | available. >>>>> | >>>>> | Thanks, >>>>> | Luigi >>>>> | >>>>> | >>>>> | >>>>> | ------------------------------------------------------------ >>>>> | ------------------ >>>>> | Check out the vibrant tech community on one of the world's most >>>>> | engaging tech sites, Slashdot.org! http://sdm.link/slashdot >>>>> | _______________________________________________ >>>>> | QuantLib-users mailing list >>>>> | Qua...@li... >>>>> | https://lists.sourceforge.net/lists/listinfo/quantlib-users >>>>> | >>>>> | >>>>> | >>>>> | >>>>> ------------------------------------------------------------------------------ >>>>> | Check out the vibrant tech community on one of the world's most >>>>> | engaging tech sites, Slashdot.org! http://sdm.link/slashdot >>>>> | _______________________________________________ >>>>> | QuantLib-users mailing list >>>>> | Qua...@li... >>>>> | https://lists.sourceforge.net/lists/listinfo/quantlib-users >>>>> >>>>> -- >>>>> http://dirk.eddelbuettel.com | @eddelbuettel | ed...@de... >>>>> >>>> >> |
|
From: Luigi B. <lui...@gm...> - 2017-04-19 15:08:06
|
Please try to see if the gcc-3.4 branch on GitHub works for you. If so, clone it in your repo so that you can maintain it in the future: I probably won't include the changes in version 1.10. My suggestion of testing earlier versions of Boost stands: most if not all the errors came from Boost code. Luigi On Wed, Apr 19, 2017 at 6:03 AM shailesh kumar <sha...@gm...> wrote: > Hi Luigi/Dirk, > > Thanks for your quick response. > > I am forced to perform role of archaeologist :) > > My Modified Duration component was earlier based on Quantlib 0.9.7 (last > built in 2007) but in order to support "negative jumps in interest-rate > curves" and to incorporate other bug fixes, i upgraded the Quantlib > version to latest keeping the compiler version same as component also had > few external libraries dependencies built with gcc34/g++34 > > Luigi, > > As suggested, I ran ./configure CXXFLAGS='-DQL_PATCH_SOLARIS' but it > failed at squarerootprocessrndcalculator.cpp:64: instantiated from here > Request to please guide so as to disable it at my end to proceed further. > > Regards > Shailesh Kumar > > > > > > On Wed, Apr 19, 2017 at 1:05 AM, Luigi Ballabio <lui...@gm...> > wrote: > >> Oh, right, it was you for Solaris as well. It's good to have an >> archaeologist around :) >> >> On Tue, Apr 18, 2017, 21:28 Luigi Ballabio <lui...@gm...> >> wrote: >> >>> I second Dirk that we probably shouldn't put much effort in making that >>> code compile. However, we can disable it so that the build succeeds, even >>> if the resulting library will miss a few features. In fact, I did the same >>> thing recently for an older Solaris compiler. May you try running configure >>> as >>> >>> ./configure CXXFLAGS='-DQL_PATCH_SOLARIS' >>> >>> and see if you get to the end of the build? >>> >>> Luigi >>> >>> On Tue, Apr 18, 2017, 21:16 Dirk Eddelbuettel <ed...@de...> wrote: >>> >>>> >>>> On 19 April 2017 at 00:23, shailesh kumar wrote: >>>> | Hi Luigi, >>>> | >>>> | I tried compiling preliminary tarballs for QuantLib 1.10 as available >>>> at < >>>> | https://sourceforge.net/projects/quantlib/files/test> on OEL 6.7 >>>> (Oracle Linux >>>> | Server release 6.7) >>>> | using gcc34/g++34 version gcc34 (GCC) 3.4.6 20060404 (Red Hat >>>> 3.4.6-19.el6)/ >>>> | g++34 (GCC) 3.4.6 20060404 (Red Hat 3.4.6-19.el6) along with Boost >>>> version >>>> | 1.62.0 >>>> | >>>> | I am getting below compilation error. >>>> | >>>> | ../../../ql/experimental/math/tcopulapolicy.hpp:134: instantiated >>>> from here >>>> | >>>> /scratch/ofsaadb/build/CAP802_JAVA7_O12C/BOOSTNEW/include/boost/math/tools/ >>>> | roots.hpp:68: error: no matching function for call to `get(const >>>> | boost::fusion::tuple<long double, long double, boost::fusion::void_, >>>> | boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, >>>> | boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, >>>> | boost::fusion::void_>&)' >>>> | make[3]: *** [gaussianlhplossmodel.lo] Error 1 >>>> | make[3]: Leaving directory >>>> `/scratch/ofsaaweb/QuantLib-suncc/ql/experimental/ >>>> | credit' >>>> | make[2]: *** [all-recursive] Error 1 >>>> | make[2]: Leaving directory >>>> `/scratch/ofsaaweb/QuantLib-suncc/ql/experimental' >>>> | make[1]: *** [all-recursive] Error 1 >>>> | make[1]: Leaving directory `/scratch/ofsaaweb/QuantLib-suncc/ql' >>>> | make: *** [all] Error 2 >>>> | >>>> | Request to please help me resolving this issue. >>>> | This works if i use gcc/g++ version 4.4.7 compiler but fails for >>>> gcc34/g++34 >>>> >>>> I hope you do realize that gcc 3.4 was released _eleven_ years ago. >>>> >>>> Even 4.4.* is pretty ancient at an age of five years. >>>> >>>> Dirk >>>> >>>> | >>>> | >>>> | Regards >>>> | Shailesh Kumar >>>> | >>>> | >>>> | >>>> | >>>> | On Wed, Apr 12, 2017 at 9:16 PM, Luigi Ballabio < >>>> lui...@gm...> >>>> | wrote: >>>> | >>>> | Hi all, >>>> | preliminary tarballs for QuantLib 1.10 are available at >>>> <https:// >>>> | sourceforge.net/projects/quantlib/files/test> (no docs yet, but >>>> most >>>> | changes are listed at >>>> https://github.com/lballabio/QuantLib/milestone/5? >>>> | closed=1). Please download them and try them out if you have a >>>> few cycles >>>> | available. >>>> | >>>> | Thanks, >>>> | Luigi >>>> | >>>> | >>>> | >>>> | ------------------------------------------------------------ >>>> | ------------------ >>>> | Check out the vibrant tech community on one of the world's most >>>> | engaging tech sites, Slashdot.org! http://sdm.link/slashdot >>>> | _______________________________________________ >>>> | QuantLib-users mailing list >>>> | Qua...@li... >>>> | https://lists.sourceforge.net/lists/listinfo/quantlib-users >>>> | >>>> | >>>> | >>>> | >>>> ------------------------------------------------------------------------------ >>>> | Check out the vibrant tech community on one of the world's most >>>> | engaging tech sites, Slashdot.org! http://sdm.link/slashdot >>>> | _______________________________________________ >>>> | QuantLib-users mailing list >>>> | Qua...@li... >>>> | https://lists.sourceforge.net/lists/listinfo/quantlib-users >>>> >>>> -- >>>> http://dirk.eddelbuettel.com | @eddelbuettel | ed...@de... >>>> >>> > |
|
From: Luigi B. <lui...@gm...> - 2017-04-19 08:06:52
|
I'll look into it. In the meantime, you might try downgrading to an earlier Boost version. Luigi On Wed, Apr 19, 2017 at 6:03 AM shailesh kumar <sha...@gm...> wrote: > Hi Luigi/Dirk, > > Thanks for your quick response. > > I am forced to perform role of archaeologist :) > > My Modified Duration component was earlier based on Quantlib 0.9.7 (last > built in 2007) but in order to support "negative jumps in interest-rate > curves" and to incorporate other bug fixes, i upgraded the Quantlib > version to latest keeping the compiler version same as component also had > few external libraries dependencies built with gcc34/g++34 > > Luigi, > > As suggested, I ran ./configure CXXFLAGS='-DQL_PATCH_SOLARIS' but it > failed at squarerootprocessrndcalculator.cpp:64: instantiated from here > Request to please guide so as to disable it at my end to proceed further. > > Regards > Shailesh Kumar > > > > > > On Wed, Apr 19, 2017 at 1:05 AM, Luigi Ballabio <lui...@gm...> > wrote: > >> Oh, right, it was you for Solaris as well. It's good to have an >> archaeologist around :) >> >> On Tue, Apr 18, 2017, 21:28 Luigi Ballabio <lui...@gm...> >> wrote: >> >>> I second Dirk that we probably shouldn't put much effort in making that >>> code compile. However, we can disable it so that the build succeeds, even >>> if the resulting library will miss a few features. In fact, I did the same >>> thing recently for an older Solaris compiler. May you try running configure >>> as >>> >>> ./configure CXXFLAGS='-DQL_PATCH_SOLARIS' >>> >>> and see if you get to the end of the build? >>> >>> Luigi >>> >>> On Tue, Apr 18, 2017, 21:16 Dirk Eddelbuettel <ed...@de...> wrote: >>> >>>> >>>> On 19 April 2017 at 00:23, shailesh kumar wrote: >>>> | Hi Luigi, >>>> | >>>> | I tried compiling preliminary tarballs for QuantLib 1.10 as available >>>> at < >>>> | https://sourceforge.net/projects/quantlib/files/test> on OEL 6.7 >>>> (Oracle Linux >>>> | Server release 6.7) >>>> | using gcc34/g++34 version gcc34 (GCC) 3.4.6 20060404 (Red Hat >>>> 3.4.6-19.el6)/ >>>> | g++34 (GCC) 3.4.6 20060404 (Red Hat 3.4.6-19.el6) along with Boost >>>> version >>>> | 1.62.0 >>>> | >>>> | I am getting below compilation error. >>>> | >>>> | ../../../ql/experimental/math/tcopulapolicy.hpp:134: instantiated >>>> from here >>>> | >>>> /scratch/ofsaadb/build/CAP802_JAVA7_O12C/BOOSTNEW/include/boost/math/tools/ >>>> | roots.hpp:68: error: no matching function for call to `get(const >>>> | boost::fusion::tuple<long double, long double, boost::fusion::void_, >>>> | boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, >>>> | boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, >>>> | boost::fusion::void_>&)' >>>> | make[3]: *** [gaussianlhplossmodel.lo] Error 1 >>>> | make[3]: Leaving directory >>>> `/scratch/ofsaaweb/QuantLib-suncc/ql/experimental/ >>>> | credit' >>>> | make[2]: *** [all-recursive] Error 1 >>>> | make[2]: Leaving directory >>>> `/scratch/ofsaaweb/QuantLib-suncc/ql/experimental' >>>> | make[1]: *** [all-recursive] Error 1 >>>> | make[1]: Leaving directory `/scratch/ofsaaweb/QuantLib-suncc/ql' >>>> | make: *** [all] Error 2 >>>> | >>>> | Request to please help me resolving this issue. >>>> | This works if i use gcc/g++ version 4.4.7 compiler but fails for >>>> gcc34/g++34 >>>> >>>> I hope you do realize that gcc 3.4 was released _eleven_ years ago. >>>> >>>> Even 4.4.* is pretty ancient at an age of five years. >>>> >>>> Dirk >>>> >>>> | >>>> | >>>> | Regards >>>> | Shailesh Kumar >>>> | >>>> | >>>> | >>>> | >>>> | On Wed, Apr 12, 2017 at 9:16 PM, Luigi Ballabio < >>>> lui...@gm...> >>>> | wrote: >>>> | >>>> | Hi all, >>>> | preliminary tarballs for QuantLib 1.10 are available at >>>> <https:// >>>> | sourceforge.net/projects/quantlib/files/test> (no docs yet, but >>>> most >>>> | changes are listed at >>>> https://github.com/lballabio/QuantLib/milestone/5? >>>> | closed=1). Please download them and try them out if you have a >>>> few cycles >>>> | available. >>>> | >>>> | Thanks, >>>> | Luigi >>>> | >>>> | >>>> | >>>> | ------------------------------------------------------------ >>>> | ------------------ >>>> | Check out the vibrant tech community on one of the world's most >>>> | engaging tech sites, Slashdot.org! http://sdm.link/slashdot >>>> | _______________________________________________ >>>> | QuantLib-users mailing list >>>> | Qua...@li... >>>> | https://lists.sourceforge.net/lists/listinfo/quantlib-users >>>> | >>>> | >>>> | >>>> | >>>> ------------------------------------------------------------------------------ >>>> | Check out the vibrant tech community on one of the world's most >>>> | engaging tech sites, Slashdot.org! http://sdm.link/slashdot >>>> | _______________________________________________ >>>> | QuantLib-users mailing list >>>> | Qua...@li... >>>> | https://lists.sourceforge.net/lists/listinfo/quantlib-users >>>> >>>> -- >>>> http://dirk.eddelbuettel.com | @eddelbuettel | ed...@de... >>>> >>> > |
|
From: shailesh k. <sha...@gm...> - 2017-04-19 04:03:47
|
Hi Luigi/Dirk, Thanks for your quick response. I am forced to perform role of archaeologist :) My Modified Duration component was earlier based on Quantlib 0.9.7 (last built in 2007) but in order to support "negative jumps in interest-rate curves" and to incorporate other bug fixes, i upgraded the Quantlib version to latest keeping the compiler version same as component also had few external libraries dependencies built with gcc34/g++34 Luigi, As suggested, I ran ./configure CXXFLAGS='-DQL_PATCH_SOLARIS' but it failed at squarerootprocessrndcalculator.cpp:64: instantiated from here Request to please guide so as to disable it at my end to proceed further. Regards Shailesh Kumar On Wed, Apr 19, 2017 at 1:05 AM, Luigi Ballabio <lui...@gm...> wrote: > Oh, right, it was you for Solaris as well. It's good to have an > archaeologist around :) > > On Tue, Apr 18, 2017, 21:28 Luigi Ballabio <lui...@gm...> > wrote: > >> I second Dirk that we probably shouldn't put much effort in making that >> code compile. However, we can disable it so that the build succeeds, even >> if the resulting library will miss a few features. In fact, I did the same >> thing recently for an older Solaris compiler. May you try running configure >> as >> >> ./configure CXXFLAGS='-DQL_PATCH_SOLARIS' >> >> and see if you get to the end of the build? >> >> Luigi >> >> On Tue, Apr 18, 2017, 21:16 Dirk Eddelbuettel <ed...@de...> wrote: >> >>> >>> On 19 April 2017 at 00:23, shailesh kumar wrote: >>> | Hi Luigi, >>> | >>> | I tried compiling preliminary tarballs for QuantLib 1.10 as available >>> at < >>> | https://sourceforge.net/projects/quantlib/files/test> on OEL 6.7 >>> (Oracle Linux >>> | Server release 6.7) >>> | using gcc34/g++34 version gcc34 (GCC) 3.4.6 20060404 (Red Hat >>> 3.4.6-19.el6)/ >>> | g++34 (GCC) 3.4.6 20060404 (Red Hat 3.4.6-19.el6) along with Boost >>> version >>> | 1.62.0 >>> | >>> | I am getting below compilation error. >>> | >>> | ../../../ql/experimental/math/tcopulapolicy.hpp:134: instantiated >>> from here >>> | /scratch/ofsaadb/build/CAP802_JAVA7_O12C/BOOSTNEW/include/ >>> boost/math/tools/ >>> | roots.hpp:68: error: no matching function for call to `get(const >>> | boost::fusion::tuple<long double, long double, boost::fusion::void_, >>> | boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, >>> | boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, >>> | boost::fusion::void_>&)' >>> | make[3]: *** [gaussianlhplossmodel.lo] Error 1 >>> | make[3]: Leaving directory `/scratch/ofsaaweb/QuantLib- >>> suncc/ql/experimental/ >>> | credit' >>> | make[2]: *** [all-recursive] Error 1 >>> | make[2]: Leaving directory `/scratch/ofsaaweb/QuantLib- >>> suncc/ql/experimental' >>> | make[1]: *** [all-recursive] Error 1 >>> | make[1]: Leaving directory `/scratch/ofsaaweb/QuantLib-suncc/ql' >>> | make: *** [all] Error 2 >>> | >>> | Request to please help me resolving this issue. >>> | This works if i use gcc/g++ version 4.4.7 compiler but fails for >>> gcc34/g++34 >>> >>> I hope you do realize that gcc 3.4 was released _eleven_ years ago. >>> >>> Even 4.4.* is pretty ancient at an age of five years. >>> >>> Dirk >>> >>> | >>> | >>> | Regards >>> | Shailesh Kumar >>> | >>> | >>> | >>> | >>> | On Wed, Apr 12, 2017 at 9:16 PM, Luigi Ballabio < >>> lui...@gm...> >>> | wrote: >>> | >>> | Hi all, >>> | preliminary tarballs for QuantLib 1.10 are available at >>> <https:// >>> | sourceforge.net/projects/quantlib/files/test> (no docs yet, but >>> most >>> | changes are listed at https://github.com/ >>> lballabio/QuantLib/milestone/5? >>> | closed=1). Please download them and try them out if you have a >>> few cycles >>> | available. >>> | >>> | Thanks, >>> | Luigi >>> | >>> | >>> | >>> | ------------------------------------------------------------ >>> | ------------------ >>> | Check out the vibrant tech community on one of the world's most >>> | engaging tech sites, Slashdot.org! http://sdm.link/slashdot >>> | _______________________________________________ >>> | QuantLib-users mailing list >>> | Qua...@li... >>> | https://lists.sourceforge.net/lists/listinfo/quantlib-users >>> | >>> | >>> | >>> | ------------------------------------------------------------ >>> ------------------ >>> | Check out the vibrant tech community on one of the world's most >>> | engaging tech sites, Slashdot.org! http://sdm.link/slashdot >>> | _______________________________________________ >>> | QuantLib-users mailing list >>> | Qua...@li... >>> | https://lists.sourceforge.net/lists/listinfo/quantlib-users >>> >>> -- >>> http://dirk.eddelbuettel.com | @eddelbuettel | ed...@de... >>> >> |
|
From: Luigi B. <lui...@gm...> - 2017-04-18 19:36:11
|
Oh, right, it was you for Solaris as well. It's good to have an archaeologist around :) On Tue, Apr 18, 2017, 21:28 Luigi Ballabio <lui...@gm...> wrote: > I second Dirk that we probably shouldn't put much effort in making that > code compile. However, we can disable it so that the build succeeds, even > if the resulting library will miss a few features. In fact, I did the same > thing recently for an older Solaris compiler. May you try running configure > as > > ./configure CXXFLAGS='-DQL_PATCH_SOLARIS' > > and see if you get to the end of the build? > > Luigi > > On Tue, Apr 18, 2017, 21:16 Dirk Eddelbuettel <ed...@de...> wrote: > >> >> On 19 April 2017 at 00:23, shailesh kumar wrote: >> | Hi Luigi, >> | >> | I tried compiling preliminary tarballs for QuantLib 1.10 as available >> at < >> | https://sourceforge.net/projects/quantlib/files/test> on OEL 6.7 >> (Oracle Linux >> | Server release 6.7) >> | using gcc34/g++34 version gcc34 (GCC) 3.4.6 20060404 (Red Hat >> 3.4.6-19.el6)/ >> | g++34 (GCC) 3.4.6 20060404 (Red Hat 3.4.6-19.el6) along with Boost >> version >> | 1.62.0 >> | >> | I am getting below compilation error. >> | >> | ../../../ql/experimental/math/tcopulapolicy.hpp:134: instantiated >> from here >> | >> /scratch/ofsaadb/build/CAP802_JAVA7_O12C/BOOSTNEW/include/boost/math/tools/ >> | roots.hpp:68: error: no matching function for call to `get(const >> | boost::fusion::tuple<long double, long double, boost::fusion::void_, >> | boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, >> | boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, >> | boost::fusion::void_>&)' >> | make[3]: *** [gaussianlhplossmodel.lo] Error 1 >> | make[3]: Leaving directory >> `/scratch/ofsaaweb/QuantLib-suncc/ql/experimental/ >> | credit' >> | make[2]: *** [all-recursive] Error 1 >> | make[2]: Leaving directory >> `/scratch/ofsaaweb/QuantLib-suncc/ql/experimental' >> | make[1]: *** [all-recursive] Error 1 >> | make[1]: Leaving directory `/scratch/ofsaaweb/QuantLib-suncc/ql' >> | make: *** [all] Error 2 >> | >> | Request to please help me resolving this issue. >> | This works if i use gcc/g++ version 4.4.7 compiler but fails for >> gcc34/g++34 >> >> I hope you do realize that gcc 3.4 was released _eleven_ years ago. >> >> Even 4.4.* is pretty ancient at an age of five years. >> >> Dirk >> >> | >> | >> | Regards >> | Shailesh Kumar >> | >> | >> | >> | >> | On Wed, Apr 12, 2017 at 9:16 PM, Luigi Ballabio < >> lui...@gm...> >> | wrote: >> | >> | Hi all, >> | preliminary tarballs for QuantLib 1.10 are available at >> <https:// >> | sourceforge.net/projects/quantlib/files/test> (no docs yet, but >> most >> | changes are listed at >> https://github.com/lballabio/QuantLib/milestone/5? >> | closed=1). Please download them and try them out if you have a few >> cycles >> | available. >> | >> | Thanks, >> | Luigi >> | >> | >> | >> | ------------------------------------------------------------ >> | ------------------ >> | Check out the vibrant tech community on one of the world's most >> | engaging tech sites, Slashdot.org! http://sdm.link/slashdot >> | _______________________________________________ >> | QuantLib-users mailing list >> | Qua...@li... >> | https://lists.sourceforge.net/lists/listinfo/quantlib-users >> | >> | >> | >> | >> ------------------------------------------------------------------------------ >> | Check out the vibrant tech community on one of the world's most >> | engaging tech sites, Slashdot.org! http://sdm.link/slashdot >> | _______________________________________________ >> | QuantLib-users mailing list >> | Qua...@li... >> | https://lists.sourceforge.net/lists/listinfo/quantlib-users >> >> -- >> http://dirk.eddelbuettel.com | @eddelbuettel | ed...@de... >> > |
|
From: Luigi B. <lui...@gm...> - 2017-04-18 19:28:54
|
I second Dirk that we probably shouldn't put much effort in making that code compile. However, we can disable it so that the build succeeds, even if the resulting library will miss a few features. In fact, I did the same thing recently for an older Solaris compiler. May you try running configure as ./configure CXXFLAGS='-DQL_PATCH_SOLARIS' and see if you get to the end of the build? Luigi On Tue, Apr 18, 2017, 21:16 Dirk Eddelbuettel <ed...@de...> wrote: > > On 19 April 2017 at 00:23, shailesh kumar wrote: > | Hi Luigi, > | > | I tried compiling preliminary tarballs for QuantLib 1.10 as available at > < > | https://sourceforge.net/projects/quantlib/files/test> on OEL 6.7 > (Oracle Linux > | Server release 6.7) > | using gcc34/g++34 version gcc34 (GCC) 3.4.6 20060404 (Red Hat > 3.4.6-19.el6)/ > | g++34 (GCC) 3.4.6 20060404 (Red Hat 3.4.6-19.el6) along with Boost > version > | 1.62.0 > | > | I am getting below compilation error. > | > | ../../../ql/experimental/math/tcopulapolicy.hpp:134: instantiated from > here > | > /scratch/ofsaadb/build/CAP802_JAVA7_O12C/BOOSTNEW/include/boost/math/tools/ > | roots.hpp:68: error: no matching function for call to `get(const > | boost::fusion::tuple<long double, long double, boost::fusion::void_, > | boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, > | boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, > | boost::fusion::void_>&)' > | make[3]: *** [gaussianlhplossmodel.lo] Error 1 > | make[3]: Leaving directory > `/scratch/ofsaaweb/QuantLib-suncc/ql/experimental/ > | credit' > | make[2]: *** [all-recursive] Error 1 > | make[2]: Leaving directory > `/scratch/ofsaaweb/QuantLib-suncc/ql/experimental' > | make[1]: *** [all-recursive] Error 1 > | make[1]: Leaving directory `/scratch/ofsaaweb/QuantLib-suncc/ql' > | make: *** [all] Error 2 > | > | Request to please help me resolving this issue. > | This works if i use gcc/g++ version 4.4.7 compiler but fails for > gcc34/g++34 > > I hope you do realize that gcc 3.4 was released _eleven_ years ago. > > Even 4.4.* is pretty ancient at an age of five years. > > Dirk > > | > | > | Regards > | Shailesh Kumar > | > | > | > | > | On Wed, Apr 12, 2017 at 9:16 PM, Luigi Ballabio < > lui...@gm...> > | wrote: > | > | Hi all, > | preliminary tarballs for QuantLib 1.10 are available at <https:// > | sourceforge.net/projects/quantlib/files/test> (no docs yet, but most > | changes are listed at > https://github.com/lballabio/QuantLib/milestone/5? > | closed=1). Please download them and try them out if you have a few > cycles > | available. > | > | Thanks, > | Luigi > | > | > | > | ------------------------------------------------------------ > | ------------------ > | Check out the vibrant tech community on one of the world's most > | engaging tech sites, Slashdot.org! http://sdm.link/slashdot > | _______________________________________________ > | QuantLib-users mailing list > | Qua...@li... > | https://lists.sourceforge.net/lists/listinfo/quantlib-users > | > | > | > | > ------------------------------------------------------------------------------ > | Check out the vibrant tech community on one of the world's most > | engaging tech sites, Slashdot.org! http://sdm.link/slashdot > | _______________________________________________ > | QuantLib-users mailing list > | Qua...@li... > | https://lists.sourceforge.net/lists/listinfo/quantlib-users > > -- > http://dirk.eddelbuettel.com | @eddelbuettel | ed...@de... > |
|
From: Dirk E. <ed...@de...> - 2017-04-18 19:16:10
|
On 19 April 2017 at 00:23, shailesh kumar wrote: | Hi Luigi, | | I tried compiling preliminary tarballs for QuantLib 1.10 as available at < | https://sourceforge.net/projects/quantlib/files/test> on OEL 6.7 (Oracle Linux | Server release 6.7) | using gcc34/g++34 version gcc34 (GCC) 3.4.6 20060404 (Red Hat 3.4.6-19.el6)/ | g++34 (GCC) 3.4.6 20060404 (Red Hat 3.4.6-19.el6) along with Boost version | 1.62.0 | | I am getting below compilation error. | | ../../../ql/experimental/math/tcopulapolicy.hpp:134: instantiated from here | /scratch/ofsaadb/build/CAP802_JAVA7_O12C/BOOSTNEW/include/boost/math/tools/ | roots.hpp:68: error: no matching function for call to `get(const | boost::fusion::tuple<long double, long double, boost::fusion::void_, | boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, | boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, | boost::fusion::void_>&)' | make[3]: *** [gaussianlhplossmodel.lo] Error 1 | make[3]: Leaving directory `/scratch/ofsaaweb/QuantLib-suncc/ql/experimental/ | credit' | make[2]: *** [all-recursive] Error 1 | make[2]: Leaving directory `/scratch/ofsaaweb/QuantLib-suncc/ql/experimental' | make[1]: *** [all-recursive] Error 1 | make[1]: Leaving directory `/scratch/ofsaaweb/QuantLib-suncc/ql' | make: *** [all] Error 2 | | Request to please help me resolving this issue. | This works if i use gcc/g++ version 4.4.7 compiler but fails for gcc34/g++34 I hope you do realize that gcc 3.4 was released _eleven_ years ago. Even 4.4.* is pretty ancient at an age of five years. Dirk | | | Regards | Shailesh Kumar | | | | | On Wed, Apr 12, 2017 at 9:16 PM, Luigi Ballabio <lui...@gm...> | wrote: | | Hi all, | preliminary tarballs for QuantLib 1.10 are available at <https:// | sourceforge.net/projects/quantlib/files/test> (no docs yet, but most | changes are listed at https://github.com/lballabio/QuantLib/milestone/5? | closed=1). Please download them and try them out if you have a few cycles | available. | | Thanks, | Luigi | | | | ------------------------------------------------------------ | ------------------ | Check out the vibrant tech community on one of the world's most | engaging tech sites, Slashdot.org! http://sdm.link/slashdot | _______________________________________________ | QuantLib-users mailing list | Qua...@li... | https://lists.sourceforge.net/lists/listinfo/quantlib-users | | | | ------------------------------------------------------------------------------ | Check out the vibrant tech community on one of the world's most | engaging tech sites, Slashdot.org! http://sdm.link/slashdot | _______________________________________________ | QuantLib-users mailing list | Qua...@li... | https://lists.sourceforge.net/lists/listinfo/quantlib-users -- http://dirk.eddelbuettel.com | @eddelbuettel | ed...@de... |
|
From: shailesh k. <sha...@gm...> - 2017-04-18 18:53:23
|
Hi Luigi, I tried compiling preliminary tarballs for QuantLib 1.10 as available at < https://sourceforge.net/projects/quantlib/files/test> on OEL 6.7 (Oracle Linux Server release 6.7) using gcc34/g++34 version gcc34 (GCC) 3.4.6 20060404 (Red Hat 3.4.6-19.el6)/g++34 (GCC) 3.4.6 20060404 (Red Hat 3.4.6-19.el6) along with Boost version 1.62.0 I am getting below compilation error. ../../../ql/experimental/math/tcopulapolicy.hpp:134: instantiated from here /scratch/ofsaadb/build/CAP802_JAVA7_O12C/BOOSTNEW/include/boost/math/tools/roots.hpp:68: error: no matching function for call to `get(const boost::fusion::tuple<long double, long double, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_>&)' make[3]: *** [gaussianlhplossmodel.lo] Error 1 make[3]: Leaving directory `/scratch/ofsaaweb/QuantLib-suncc/ql/experimental/credit' make[2]: *** [all-recursive] Error 1 make[2]: Leaving directory `/scratch/ofsaaweb/QuantLib-suncc/ql/experimental' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/scratch/ofsaaweb/QuantLib-suncc/ql' make: *** [all] Error 2 Request to please help me resolving this issue. This works if i use gcc/g++ version 4.4.7 compiler but fails for gcc34/g++34 Regards Shailesh Kumar On Wed, Apr 12, 2017 at 9:16 PM, Luigi Ballabio <lui...@gm...> wrote: > Hi all, > preliminary tarballs for QuantLib 1.10 are available at < > https://sourceforge.net/projects/quantlib/files/test> (no docs yet, but > most changes are listed at https://github.com/ > lballabio/QuantLib/milestone/5?closed=1). Please download them and try > them out if you have a few cycles available. > > Thanks, > Luigi > > > > ------------------------------------------------------------ > ------------------ > Check out the vibrant tech community on one of the world's most > engaging tech sites, Slashdot.org! http://sdm.link/slashdot > _______________________________________________ > QuantLib-users mailing list > Qua...@li... > https://lists.sourceforge.net/lists/listinfo/quantlib-users > > |
|
From: Klaus S. <kl...@sp...> - 2017-04-12 21:19:58
|
Hi Peter,
Yes, we should improve the error message. The ublas exception message is
really misleading.
regards
Klaus
On Mittwoch, 12. April 2017 10:26:16 CEST Peter Caspers wrote:
> Hi Klaus, Dirk,
>
> thanks a lot, that makes sense. I somehow expected to get a ql error if the
> input matrix is (numerically) singular: The return value of lu_factorize
> seems to be zero for an invertible matrix and non-zero for a singluar
> matrix and this value is already checked in the ql code,
>
> QL_REQUIRE(singular == 0, "singular matrix given");
>
> But in the case below singular is zero (so the lu_factorize step still seems
> to works ok) and the exception is thrown later in the lu_substitute step. I
> wonder if we should add some error handling to the ql code to have a
> consistent “answer” from the inverse function, e.g. something like that
>
> // lu decomposition
> try {
> const Size singular = lu_factorize(a, pert);
> } catch (const boost::numeric::ublas::internal_logic& e) {
> QL_FAIL("lu_factorize error: " << e.what());
> } catch (const boost::numeric::ublas::external_logic& e) {
> QL_FAIL("lu_factorize error: " << e.what());
> }
> QL_REQUIRE(singular == 0, "singular matrix given");
>
> Matrix retVal(m.rows(), m.columns());
> boost::numeric::ublas::matrix<Real>
> inverse =
> boost::numeric::ublas::identity_matrix<Real>(m.rows());
>
> // backsubstitution
> try {
> boost::numeric::ublas::lu_substitute(a, pert, inverse);
> } catch (const boost::numeric::ublas::internal_logic& e) {
> QL_FAIL("lu_substitute error: " << e.what());
> }
>
> Is it worth adding this?
>
> Best Regards
> Peter
>
> > On 12 Apr 2017, at 03:33, Dirk Eddelbuettel <ed...@de...> wrote:
> >
> >
> > Peter,
> >
> > Klaus already nailed it, but here is a little illustration:
> >
> > --snip--------------------------------------------------------------------
> > ------- #include <Rcpp.h>
> > typedef double Real;
> >
> > // [[plugins(cpp11)]]
> >
> > // [[Rcpp::export]]
> > Rcpp::NumericMatrix getMatrix() {
> >
> > Real data[8][8] = {{0.0006474874439615692, 0.002486659100900001,
> > 0.0006628267415236041, 0.04673067750857564,>
> > 0.1685162462417822, 0.1516341778778243,
> > 0.1219910757564679, 0.507330849328965},>
> > {5.165711089877979e-06, 0.001690175534926361,
> > 2.136045858343317e-05, 0.04475379133340539,>
> > 0.1394666326109254, 0.1636645892860261,
> > 0.12811590642367, 0.5222823786413735},>
> > {4.3468717221017e-07, 3.324472127119397e-05,
> > 1.632530899871639e-05, 0.0473437145861729,>
> > 0.09087902924968709, 0.1932661669150169,
> > 0.1257053481714577, 0.5427557363602231},>
> > {3.883601299340593e-07, 5.96026473031791e-06,
> > 1.108224823791975e-05, 0.05269312648895734,>
> > 0.1170973364539729, 0.2225313741567021,
> > 0.08459583680146567, 0.5230648952258039},>
> > {1.311427219168951e-07, 1.451479950650993e-06,
> > 9.870251521216817e-06, 0.002430611065235592,>
> > 0.1217894913776252, 0.2748389234300169,
> > 0.07704266870962403, 0.5238868525433042},>
> > {3.858458712871179e-08, 6.299157109034205e-07,
> > 9.478963012990911e-06, 0.0006947826112014794,>
> > 0.007430976289762706, 0.2725490552732179,
> > 0.07467942912312821, 0.6446356092393787},>
> > {8.037084743179829e-09, 1.06623621797325e-07,
> > 7.740443849605495e-06, 0.0005175216683466955,>
> > 0.004174347052491365, 0.02170492331427787,
> > 0.06116825771382062, 0.9124270951465073},>
> > {0, 0, 0, 0, 0, 0, 0, 1}};
> >
> > Rcpp::NumericMatrix m(8, 8);
> > for (auto i = 0; i < 8; ++i)
> >
> > for (auto j = 0; j < 8; ++j)
> >
> > m(i, j) = data[i][j];
> >
> > return m;
> >
> > }
> >
> > /*** R
> > m <- getMatrix()
> > kappa(m)
> > rcond(m)
> > m
> > */
> > --snip--------------------------------------------------------------------
> > -------
> >
> > If you have R and Rcpp, you can just drop the file somewhere --
> > /tmp/peter.cpp for me -- and soureCpp() does the rest:
> >
> >
> >
> > R> sourceCpp("/tmp/peter.cpp")
> >
> > R> m <- getMatrix()
> >
> > R> kappa(m)
> > [1] 2.41674e+23
> >
> > R> rcond(m)
> > [1] 2.96131e-22
> >
> > R> m
> >
> > [,1] [,2] [,3] [,4] [,5] [,6]
> > [,7] [,8]>
> > [1,] 6.47487e-04 2.48666e-03 6.62827e-04 0.046730678 0.16851625 0.1516342
> > 0.1219911 0.507331 [2,] 5.16571e-06 1.69018e-03 2.13605e-05 0.044753791
> > 0.13946663 0.1636646 0.1281159 0.522282 [3,] 4.34687e-07 3.32447e-05
> > 1.63253e-05 0.047343715 0.09087903 0.1932662 0.1257053 0.542756 [4,]
> > 3.88360e-07 5.96026e-06 1.10822e-05 0.052693126 0.11709734 0.2225314
> > 0.0845958 0.523065 [5,] 1.31143e-07 1.45148e-06 9.87025e-06 0.002430611
> > 0.12178949 0.2748389 0.0770427 0.523887 [6,] 3.85846e-08 6.29916e-07
> > 9.47896e-06 0.000694783 0.00743098 0.2725491 0.0746794 0.644636 [7,]
> > 8.03708e-09 1.06624e-07 7.74044e-06 0.000517522 0.00417435 0.0217049
> > 0.0611683 0.912427 [8,] 0.00000e+00 0.00000e+00 0.00000e+00 0.000000000
> > 0.00000000 0.0000000 0.0000000 1.000000 R> eigen(m)
> > $values
> > [1] 1.00000e+00 2.95561e-01 1.08353e-01 5.67581e-02 4.75499e-02
> > 1.69628e-03 6.35697e-04 -1.94874e-18
> >
> > $vectors
> >
> > [,1] [,2] [,3] [,4] [,5] [,6]
> > [,7] [,8]>
> > [1,] 0.353553 -0.4648349 0.5813418 -0.5457531 -0.47984632 -9.21607e-01
> > 9.99990e-01 -7.07062e-01 [2,] 0.353553 -0.4280282 0.4971925 -0.5063981
> > -0.44627394 -3.88072e-01 -4.58103e-03 -4.68906e-15 [3,] 0.353553
> > -0.3849208 0.3854263 -0.4808008 -0.48972225 -6.41879e-03 -5.34806e-05
> > 7.07151e-01 [4,] 0.353553 -0.4517516 0.4544627 -0.4545852 -0.57391253
> > 4.20525e-05 -4.92962e-06 -2.29916e-18 [5,] 0.353553 -0.4262395 0.2429683
> > -0.0141278 0.02041553 2.91491e-06 -7.02968e-07 -1.96387e-19 [6,]
> > 0.353553 -0.2564187 -0.0206878 0.0304491 -0.00878029 8.57713e-07
> > -9.99792e-08 -1.79023e-19 [7,] 0.353553 -0.0323459 0.0170277 -0.0822840
> > 0.02982799 7.72153e-07 8.60803e-09 -8.93925e-05 [8,] 0.353553
> > 0.0000000 0.0000000 0.0000000 0.00000000 0.00000e+00 0.00000e+00
> > 0.00000e+00
> >
> > R>
> >
> > The last eigenvalue is below 'epsilon' indicating that something somewhat
> > shady is going on. Explicitly asking for rank gets me 7:
> >
> > R> Matrix::rankMatrix(m)
> > [1] 7
> > attr(,"method")
> > [1] "tolNorm2"
> > attr(,"useGrad")
> > [1] FALSE
> > attr(,"tol")
> > [1] 1.77636e-15
> > R>
> >
> > Hth, Dirk
>
> ----------------------------------------------------------------------------
> -- Check out the vibrant tech community on one of the world's most
> engaging tech sites, Slashdot.org! http://sdm.link/slashdot
> _______________________________________________
> QuantLib-dev mailing list
> Qua...@li...
> https://lists.sourceforge.net/lists/listinfo/quantlib-dev
|
|
From: Luigi B. <lui...@gm...> - 2017-04-12 15:46:38
|
Hi all,
preliminary tarballs for QuantLib 1.10 are available at <
https://sourceforge.net/projects/quantlib/files/test> (no docs yet, but
most changes are listed at
https://github.com/lballabio/QuantLib/milestone/5?closed=1). Please
download them and try them out if you have a few cycles available.
Thanks,
Luigi
|
|
From: Peter C. <pca...@gm...> - 2017-04-12 08:26:28
|
Hi Klaus, Dirk,
thanks a lot, that makes sense. I somehow expected to get a ql error if the input matrix is (numerically) singular: The return value of lu_factorize seems to be zero for an invertible matrix and non-zero for a singluar matrix and this value is already checked in the ql code,
QL_REQUIRE(singular == 0, "singular matrix given");
But in the case below singular is zero (so the lu_factorize step still seems to works ok) and the exception is thrown later in the lu_substitute step. I wonder if we should add some error handling to the ql code to have a consistent “answer” from the inverse function, e.g. something like that
// lu decomposition
try {
const Size singular = lu_factorize(a, pert);
} catch (const boost::numeric::ublas::internal_logic& e) {
QL_FAIL("lu_factorize error: " << e.what());
} catch (const boost::numeric::ublas::external_logic& e) {
QL_FAIL("lu_factorize error: " << e.what());
}
QL_REQUIRE(singular == 0, "singular matrix given");
Matrix retVal(m.rows(), m.columns());
boost::numeric::ublas::matrix<Real>
inverse = boost::numeric::ublas::identity_matrix<Real>(m.rows());
// backsubstitution
try {
boost::numeric::ublas::lu_substitute(a, pert, inverse);
} catch (const boost::numeric::ublas::internal_logic& e) {
QL_FAIL("lu_substitute error: " << e.what());
}
Is it worth adding this?
Best Regards
Peter
> On 12 Apr 2017, at 03:33, Dirk Eddelbuettel <ed...@de...> wrote:
>
>
> Peter,
>
> Klaus already nailed it, but here is a little illustration:
>
> --snip---------------------------------------------------------------------------
> #include <Rcpp.h>
> typedef double Real;
>
> // [[plugins(cpp11)]]
>
> // [[Rcpp::export]]
> Rcpp::NumericMatrix getMatrix() {
> Real data[8][8] = {{0.0006474874439615692, 0.002486659100900001, 0.0006628267415236041, 0.04673067750857564,
> 0.1685162462417822, 0.1516341778778243, 0.1219910757564679, 0.507330849328965},
> {5.165711089877979e-06, 0.001690175534926361, 2.136045858343317e-05, 0.04475379133340539,
> 0.1394666326109254, 0.1636645892860261, 0.12811590642367, 0.5222823786413735},
> {4.3468717221017e-07, 3.324472127119397e-05, 1.632530899871639e-05, 0.0473437145861729,
> 0.09087902924968709, 0.1932661669150169, 0.1257053481714577, 0.5427557363602231},
> {3.883601299340593e-07, 5.96026473031791e-06, 1.108224823791975e-05, 0.05269312648895734,
> 0.1170973364539729, 0.2225313741567021, 0.08459583680146567, 0.5230648952258039},
> {1.311427219168951e-07, 1.451479950650993e-06, 9.870251521216817e-06, 0.002430611065235592,
> 0.1217894913776252, 0.2748389234300169, 0.07704266870962403, 0.5238868525433042},
> {3.858458712871179e-08, 6.299157109034205e-07, 9.478963012990911e-06, 0.0006947826112014794,
> 0.007430976289762706, 0.2725490552732179, 0.07467942912312821, 0.6446356092393787},
> {8.037084743179829e-09, 1.06623621797325e-07, 7.740443849605495e-06, 0.0005175216683466955,
> 0.004174347052491365, 0.02170492331427787, 0.06116825771382062, 0.9124270951465073},
> {0, 0, 0, 0, 0, 0, 0, 1}};
> Rcpp::NumericMatrix m(8, 8);
> for (auto i = 0; i < 8; ++i)
> for (auto j = 0; j < 8; ++j)
> m(i, j) = data[i][j];
> return m;
> }
>
> /*** R
> m <- getMatrix()
> kappa(m)
> rcond(m)
> m
> */
> --snip---------------------------------------------------------------------------
>
> If you have R and Rcpp, you can just drop the file somewhere --
> /tmp/peter.cpp for me -- and soureCpp() does the rest:
>
>
>
> R> sourceCpp("/tmp/peter.cpp")
>
> R> m <- getMatrix()
>
> R> kappa(m)
> [1] 2.41674e+23
>
> R> rcond(m)
> [1] 2.96131e-22
>
> R> m
> [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8]
> [1,] 6.47487e-04 2.48666e-03 6.62827e-04 0.046730678 0.16851625 0.1516342 0.1219911 0.507331
> [2,] 5.16571e-06 1.69018e-03 2.13605e-05 0.044753791 0.13946663 0.1636646 0.1281159 0.522282
> [3,] 4.34687e-07 3.32447e-05 1.63253e-05 0.047343715 0.09087903 0.1932662 0.1257053 0.542756
> [4,] 3.88360e-07 5.96026e-06 1.10822e-05 0.052693126 0.11709734 0.2225314 0.0845958 0.523065
> [5,] 1.31143e-07 1.45148e-06 9.87025e-06 0.002430611 0.12178949 0.2748389 0.0770427 0.523887
> [6,] 3.85846e-08 6.29916e-07 9.47896e-06 0.000694783 0.00743098 0.2725491 0.0746794 0.644636
> [7,] 8.03708e-09 1.06624e-07 7.74044e-06 0.000517522 0.00417435 0.0217049 0.0611683 0.912427
> [8,] 0.00000e+00 0.00000e+00 0.00000e+00 0.000000000 0.00000000 0.0000000 0.0000000 1.000000
> R> eigen(m)
> $values
> [1] 1.00000e+00 2.95561e-01 1.08353e-01 5.67581e-02 4.75499e-02 1.69628e-03 6.35697e-04 -1.94874e-18
>
> $vectors
> [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8]
> [1,] 0.353553 -0.4648349 0.5813418 -0.5457531 -0.47984632 -9.21607e-01 9.99990e-01 -7.07062e-01
> [2,] 0.353553 -0.4280282 0.4971925 -0.5063981 -0.44627394 -3.88072e-01 -4.58103e-03 -4.68906e-15
> [3,] 0.353553 -0.3849208 0.3854263 -0.4808008 -0.48972225 -6.41879e-03 -5.34806e-05 7.07151e-01
> [4,] 0.353553 -0.4517516 0.4544627 -0.4545852 -0.57391253 4.20525e-05 -4.92962e-06 -2.29916e-18
> [5,] 0.353553 -0.4262395 0.2429683 -0.0141278 0.02041553 2.91491e-06 -7.02968e-07 -1.96387e-19
> [6,] 0.353553 -0.2564187 -0.0206878 0.0304491 -0.00878029 8.57713e-07 -9.99792e-08 -1.79023e-19
> [7,] 0.353553 -0.0323459 0.0170277 -0.0822840 0.02982799 7.72153e-07 8.60803e-09 -8.93925e-05
> [8,] 0.353553 0.0000000 0.0000000 0.0000000 0.00000000 0.00000e+00 0.00000e+00 0.00000e+00
>
> R>
>
> The last eigenvalue is below 'epsilon' indicating that something somewhat
> shady is going on. Explicitly asking for rank gets me 7:
>
> R> Matrix::rankMatrix(m)
> [1] 7
> attr(,"method")
> [1] "tolNorm2"
> attr(,"useGrad")
> [1] FALSE
> attr(,"tol")
> [1] 1.77636e-15
> R>
>
> Hth, Dirk
>
> --
> http://dirk.eddelbuettel.com | @eddelbuettel | ed...@de...
|
|
From: Dirk E. <ed...@de...> - 2017-04-12 01:33:11
|
Peter,
Klaus already nailed it, but here is a little illustration:
--snip---------------------------------------------------------------------------
#include <Rcpp.h>
typedef double Real;
// [[plugins(cpp11)]]
// [[Rcpp::export]]
Rcpp::NumericMatrix getMatrix() {
Real data[8][8] = {{0.0006474874439615692, 0.002486659100900001, 0.0006628267415236041, 0.04673067750857564,
0.1685162462417822, 0.1516341778778243, 0.1219910757564679, 0.507330849328965},
{5.165711089877979e-06, 0.001690175534926361, 2.136045858343317e-05, 0.04475379133340539,
0.1394666326109254, 0.1636645892860261, 0.12811590642367, 0.5222823786413735},
{4.3468717221017e-07, 3.324472127119397e-05, 1.632530899871639e-05, 0.0473437145861729,
0.09087902924968709, 0.1932661669150169, 0.1257053481714577, 0.5427557363602231},
{3.883601299340593e-07, 5.96026473031791e-06, 1.108224823791975e-05, 0.05269312648895734,
0.1170973364539729, 0.2225313741567021, 0.08459583680146567, 0.5230648952258039},
{1.311427219168951e-07, 1.451479950650993e-06, 9.870251521216817e-06, 0.002430611065235592,
0.1217894913776252, 0.2748389234300169, 0.07704266870962403, 0.5238868525433042},
{3.858458712871179e-08, 6.299157109034205e-07, 9.478963012990911e-06, 0.0006947826112014794,
0.007430976289762706, 0.2725490552732179, 0.07467942912312821, 0.6446356092393787},
{8.037084743179829e-09, 1.06623621797325e-07, 7.740443849605495e-06, 0.0005175216683466955,
0.004174347052491365, 0.02170492331427787, 0.06116825771382062, 0.9124270951465073},
{0, 0, 0, 0, 0, 0, 0, 1}};
Rcpp::NumericMatrix m(8, 8);
for (auto i = 0; i < 8; ++i)
for (auto j = 0; j < 8; ++j)
m(i, j) = data[i][j];
return m;
}
/*** R
m <- getMatrix()
kappa(m)
rcond(m)
m
*/
--snip---------------------------------------------------------------------------
If you have R and Rcpp, you can just drop the file somewhere --
/tmp/peter.cpp for me -- and soureCpp() does the rest:
R> sourceCpp("/tmp/peter.cpp")
R> m <- getMatrix()
R> kappa(m)
[1] 2.41674e+23
R> rcond(m)
[1] 2.96131e-22
R> m
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8]
[1,] 6.47487e-04 2.48666e-03 6.62827e-04 0.046730678 0.16851625 0.1516342 0.1219911 0.507331
[2,] 5.16571e-06 1.69018e-03 2.13605e-05 0.044753791 0.13946663 0.1636646 0.1281159 0.522282
[3,] 4.34687e-07 3.32447e-05 1.63253e-05 0.047343715 0.09087903 0.1932662 0.1257053 0.542756
[4,] 3.88360e-07 5.96026e-06 1.10822e-05 0.052693126 0.11709734 0.2225314 0.0845958 0.523065
[5,] 1.31143e-07 1.45148e-06 9.87025e-06 0.002430611 0.12178949 0.2748389 0.0770427 0.523887
[6,] 3.85846e-08 6.29916e-07 9.47896e-06 0.000694783 0.00743098 0.2725491 0.0746794 0.644636
[7,] 8.03708e-09 1.06624e-07 7.74044e-06 0.000517522 0.00417435 0.0217049 0.0611683 0.912427
[8,] 0.00000e+00 0.00000e+00 0.00000e+00 0.000000000 0.00000000 0.0000000 0.0000000 1.000000
R> eigen(m)
$values
[1] 1.00000e+00 2.95561e-01 1.08353e-01 5.67581e-02 4.75499e-02 1.69628e-03 6.35697e-04 -1.94874e-18
$vectors
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8]
[1,] 0.353553 -0.4648349 0.5813418 -0.5457531 -0.47984632 -9.21607e-01 9.99990e-01 -7.07062e-01
[2,] 0.353553 -0.4280282 0.4971925 -0.5063981 -0.44627394 -3.88072e-01 -4.58103e-03 -4.68906e-15
[3,] 0.353553 -0.3849208 0.3854263 -0.4808008 -0.48972225 -6.41879e-03 -5.34806e-05 7.07151e-01
[4,] 0.353553 -0.4517516 0.4544627 -0.4545852 -0.57391253 4.20525e-05 -4.92962e-06 -2.29916e-18
[5,] 0.353553 -0.4262395 0.2429683 -0.0141278 0.02041553 2.91491e-06 -7.02968e-07 -1.96387e-19
[6,] 0.353553 -0.2564187 -0.0206878 0.0304491 -0.00878029 8.57713e-07 -9.99792e-08 -1.79023e-19
[7,] 0.353553 -0.0323459 0.0170277 -0.0822840 0.02982799 7.72153e-07 8.60803e-09 -8.93925e-05
[8,] 0.353553 0.0000000 0.0000000 0.0000000 0.00000000 0.00000e+00 0.00000e+00 0.00000e+00
R>
The last eigenvalue is below 'epsilon' indicating that something somewhat
shady is going on. Explicitly asking for rank gets me 7:
R> Matrix::rankMatrix(m)
[1] 7
attr(,"method")
[1] "tolNorm2"
attr(,"useGrad")
[1] FALSE
attr(,"tol")
[1] 1.77636e-15
R>
Hth, Dirk
--
http://dirk.eddelbuettel.com | @eddelbuettel | ed...@de...
|
|
From: Klaus S. <kl...@sp...> - 2017-04-11 23:54:45
|
Hi Peter, IMO the condition number of your matrix is very large (matrix is singular or computationally singular) and the ublas check for numerical stability is raising an alert here. http://stackoverflow.com/questions/17240624/matrix-inversion-in-boost BOOST_UBLAS_TYPE_CHECK_EPSILON /default: sqrt(epsilon), controls how large the difference between the expected result and the computed result may become. Increase this value if you are going to use near singular or badly scaled matrices. / Tuning this epsilon doesn't help. If I'm making epsilon big enough so that the exception disappears then the outcome is flat wrong due to the very large condition number. regards Klaus On Dienstag, 11. April 2017 20:59:11 CEST Peter Caspers wrote: > Hi, > > the following Code > > #include <ql/math/matrix.hpp> > #include <iostream> > using namespace QuantLib; > int main() { > Real data[8][8] = {{0.0006474874439615692, 0.002486659100900001, > 0.0006628267415236041, 0.04673067750857564, 0.1685162462417822, > 0.1516341778778243, 0.1219910757564679, 0.507330849328965}, > {5.165711089877979e-06, 0.001690175534926361, 2.136045858343317e-05, > 0.04475379133340539, 0.1394666326109254, 0.1636645892860261, > 0.12811590642367, 0.5222823786413735}, {4.3468717221017e-07, > 3.324472127119397e-05, 1.632530899871639e-05, 0.0473437145861729, > 0.09087902924968709, 0.1932661669150169, 0.1257053481714577, > 0.5427557363602231}, {3.883601299340593e-07, 5.96026473031791e-06, > 1.108224823791975e-05, 0.05269312648895734, 0.1170973364539729, > 0.2225313741567021, 0.08459583680146567, 0.5230648952258039}, > {1.311427219168951e-07, 1.451479950650993e-06, 9.870251521216817e-06, > 0.002430611065235592, 0.1217894913776252, 0.2748389234300169, > 0.07704266870962403, 0.5238868525433042}, {3.858458712871179e-08, > 6.299157109034205e-07, 9.478963012990911e-06, 0.0006947826112014794, > 0.007430976289762706, 0.2725490552732179, 0.07467942912312821, > 0.6446356092393787}, {8.037084743179829e-09, 1.06623621797325e-07, > 7.740443849605495e-06, 0.0005175216683466955, 0.004174347052491365, > 0.02170492331427787, 0.06116825771382062, 0.9124270951465073}, {0, 0, 0, 0, > 0, 0, 0, 1}}; > Matrix m(8, 8); > for (Size i = 0; i < 8; ++i) > for (Size j = 0; j < 8; ++j) > m(i, j) = data[i][j]; > std::clog << inverse(m) << std::endl; > return 0; > } > > results in > > Check failed in file /usr/local/include/boost/numeric/ublas/lu.hpp at line > 298: detail::expression_type_check (prod > (triangular_adaptor<const_matrix_type, upper> (m), e), cm2) > libc++abi.dylib: terminating with uncaught exception of type > boost::numeric::ublas::internal_logic: internal logic > > for me. Does anyone have an idea what might go wrong here? > > I am using Boost 1.59 + a recent QL version on OSX with clang 4.0.0. I > believe QuantLib only wraps ublas functions here, so probably I should > create a ticket in the boost project? > > Thanks a lot > Peter > ---------------------------------------------------------------------------- > -- Check out the vibrant tech community on one of the world's most > engaging tech sites, Slashdot.org! http://sdm.link/slashdot > _______________________________________________ > QuantLib-dev mailing list > Qua...@li... > https://lists.sourceforge.net/lists/listinfo/quantlib-dev |
|
From: Peter C. <pca...@gm...> - 2017-04-11 18:59:20
|
Hi,
the following Code
#include <ql/math/matrix.hpp>
#include <iostream>
using namespace QuantLib;
int main() {
Real data[8][8] = {{0.0006474874439615692, 0.002486659100900001, 0.0006628267415236041, 0.04673067750857564,
0.1685162462417822, 0.1516341778778243, 0.1219910757564679, 0.507330849328965},
{5.165711089877979e-06, 0.001690175534926361, 2.136045858343317e-05, 0.04475379133340539,
0.1394666326109254, 0.1636645892860261, 0.12811590642367, 0.5222823786413735},
{4.3468717221017e-07, 3.324472127119397e-05, 1.632530899871639e-05, 0.0473437145861729,
0.09087902924968709, 0.1932661669150169, 0.1257053481714577, 0.5427557363602231},
{3.883601299340593e-07, 5.96026473031791e-06, 1.108224823791975e-05, 0.05269312648895734,
0.1170973364539729, 0.2225313741567021, 0.08459583680146567, 0.5230648952258039},
{1.311427219168951e-07, 1.451479950650993e-06, 9.870251521216817e-06, 0.002430611065235592,
0.1217894913776252, 0.2748389234300169, 0.07704266870962403, 0.5238868525433042},
{3.858458712871179e-08, 6.299157109034205e-07, 9.478963012990911e-06, 0.0006947826112014794,
0.007430976289762706, 0.2725490552732179, 0.07467942912312821, 0.6446356092393787},
{8.037084743179829e-09, 1.06623621797325e-07, 7.740443849605495e-06, 0.0005175216683466955,
0.004174347052491365, 0.02170492331427787, 0.06116825771382062, 0.9124270951465073},
{0, 0, 0, 0, 0, 0, 0, 1}};
Matrix m(8, 8);
for (Size i = 0; i < 8; ++i)
for (Size j = 0; j < 8; ++j)
m(i, j) = data[i][j];
std::clog << inverse(m) << std::endl;
return 0;
}
results in
Check failed in file /usr/local/include/boost/numeric/ublas/lu.hpp at line 298:
detail::expression_type_check (prod (triangular_adaptor<const_matrix_type, upper> (m), e), cm2)
libc++abi.dylib: terminating with uncaught exception of type boost::numeric::ublas::internal_logic: internal logic
for me. Does anyone have an idea what might go wrong here?
I am using Boost 1.59 + a recent QL version on OSX with clang 4.0.0. I believe QuantLib only wraps ublas functions here, so probably I should create a ticket in the boost project?
Thanks a lot
Peter
|
|
From: ryantaylor <rya...@ov...> - 2017-03-06 05:19:55
|
Actually turns out it might be that you need libruby for whatever Ruby version you're building and running against. Still need to investigate further. -- View this message in context: http://quantlib.10058.n7.nabble.com/Ruby-SWIG-SegFault-tp18138p18141.html Sent from the quantlib-dev mailing list archive at Nabble.com. |
|
From: ryantaylor <rya...@ov...> - 2017-03-05 17:11:15
|
Try compiling QuantLib and the SWIG bindings with clang instead of g++. I was getting similar segfaults before I switched to using clang. -- View this message in context: http://quantlib.10058.n7.nabble.com/quantlib-SWIG-failing-tp17790p18140.html Sent from the quantlib-dev mailing list archive at Nabble.com. |
|
From: ryantaylor <rya...@ov...> - 2017-03-05 17:10:23
|
I think I got this working. For anyone having trouble with this, I had to compile both QuantLib and the SWIG bindings with clang instead of g++. For some reason g++ won't work. -- View this message in context: http://quantlib.10058.n7.nabble.com/Ruby-SWIG-SegFault-tp18138p18139.html Sent from the quantlib-dev mailing list archive at Nabble.com. |
|
From: ryantaylor <rya...@ov...> - 2017-03-05 02:42:17
|
Hey guys, The Ruby SWIG bindings work flawlessly on OSX, but when I try to use them in Ubuntu 14.04 I'm getting a segfault in three of the four provided examples, and in my own code when I try to call the Schedule constructor. Any idea why this might be happening? I was getting segfaults in OSX too at first, but I fixed those by building QuantLib with libc++ instead of libstdc++. I checked my Ubuntu-built libraries though and they're both linking libstdc++. This is the dump: -- View this message in context: http://quantlib.10058.n7.nabble.com/Ruby-SWIG-SegFault-tp18138.html Sent from the quantlib-dev mailing list archive at Nabble.com. |
|
From: Luigi B. <lui...@gm...> - 2017-02-27 10:57:27
|
QuantLib is a cross-platform, free/open-source quantitative finance C++ library for modeling, pricing, trading, and risk management in real-life. Version 1.9.2 has been released and is available for download at < http://quantlib.org/download.shtml>. It is a bug-fix release for version 1.9.1. Please post any problems you have with this release to the QuantLib mailing list (<qua...@li...>), or open a GitHub issue at < https://github.com/lballabio/quantlib/issues>. -- The QuantLib group |
|
From: Luigi B. <lui...@gm...> - 2017-02-23 09:26:20
|
I've written about our SWIG interfaces at < http://www.implementingquantlib.com/2016/09/quantlib-and-swig.html>. Please let me know if that's any use. Luigi On Thu, Feb 23, 2017 at 9:40 AM rmirza06 <rmi...@gm...> wrote: > Hi, > > I am new to Quantlib. I generally work with Python therefore I am using > SWIG. I understand the SWIG version is not the complete implementation. For > example for Basket payoffs I can get the Min, Max, Avg payoffs through but > not the Spread Payoff. So, I am wondering if I want to get the > SpreadBasketPayoff into SWIG what do I need to do. Is there any > tips/resources available that anyone can point me to? > > Thanks > > > > -- > View this message in context: > http://quantlib.10058.n7.nabble.com/Quantlib-SWIG-tp18102.html > Sent from the quantlib-dev mailing list archive at Nabble.com. > > > ------------------------------------------------------------------------------ > Check out the vibrant tech community on one of the world's most > engaging tech sites, SlashDot.org! http://sdm.link/slashdot > _______________________________________________ > QuantLib-dev mailing list > Qua...@li... > https://lists.sourceforge.net/lists/listinfo/quantlib-dev > |
|
From: rmirza06 <rmi...@gm...> - 2017-02-22 15:48:37
|
Hi, I am new to Quantlib. I generally work with Python therefore I am using SWIG. I understand the SWIG version is not the complete implementation. For example for Basket payoffs I can get the Min, Max, Avg payoffs through but not the Spread Payoff. So, I am wondering if I want to get the SpreadBasketPayoff into SWIG what do I need to do. Is there any tips/resources available that anyone can point me to? Thanks -- View this message in context: http://quantlib.10058.n7.nabble.com/Quantlib-SWIG-tp18102.html Sent from the quantlib-dev mailing list archive at Nabble.com. |
|
From: <ja...@fr...> - 2017-02-18 08:44:16
|
Hi Lars,
sorry I must have explained myself poorly;
The enum (QuantLib::Position) does works, it is just that it worked by moving the code to a separate python file rather than having it within my own creditdefaultswap.py file.
The date in the worksheet I was talking about is a user defined one, not the system date. I was not referring to your sample worksheet. But as I said, do not take my word on this before I had properly define a user case that can be reproduced easily.
Happy to be a tester; in fact I think I will ditch my own stuff since yours is more clear and far easier to use; I hope I am contributing somehow
Best
pp
----- Original Message -----
> Hi,
>
> Enums are not generated automatically. They have to be defined in
> conversions. For further discussions please provide the metadata code
> you generated. Without it I cannot assist you ...
>
> A remark concerning the spreadsheet: under "Settings" the
> evaluationdate is set to Today(). So calculations might change from
> day
> to day since schedules are generated based on this date (schedules
> are
> not defined statically, they are calculated based on evaluationdate
> and
> the calendar (holidays) is different from NullCalendar ...). If you
> would like to change this: just replace Today() with the date of your
> choice in "Settings". Then everything should work as you expect.
>
>
> Best regards,
> Lars
>
>
>
> Am Donnerstag, den 16.02.2017, 11:02 +0100 schrieb ja...@fr...:
> > Hello Lars, thank you for the reply.
> > Somehow the Position enum wasnt being generated in the sources and
> > I
> > realized it has to be declared in a separate file; is this
> > intended?
> >
> > Theres some chaotic behaviour, like default TS calibrating to
> > different values to the previous time I openend the worksheet but I
> > dont know if this is a serialization or a Calc problem. Looks like
> > resetting the eval date cleans up things. I'll try to get an
> > specific
> > user case.
> >
> > I just sent a pr
> > Best
> > pp
> >
> >
> > ----- Original Message -----
> > >
> > > Hi,
> > >
> > > some comments below.
> > >
> > >
> > > Best regards,
> > > Lars
> > >
> > >
> > >
> > > Am Dienstag, den 14.02.2017, 11:31 +0100 schrieb ja...@fr...:
> > > >
> > > > Hi,
> > > > I did realize I dont need abstract base classes. I had declared
> > > > RiskyFixedBond and therefore I needed to have currencies, that
> > > > went
> > > > all right. Also I am declaring CDS but I get problems with the
> > > > type
> > > > conversion of the protection side and the schedule type (also
> > > > in
> > > > the
> > > > defaultable bond). If I understood your doc I wrote:
> > > >
> > > > ImplicitConversionsCalc = [
> > > > ("QuantLib::Protection::Side", "std::string", "string",
> > > > "EnumeratedType", "<<"),
> > > > ]
> > > >
> > > > QuantLibTypes = [
> > > > ("EnumeratedType", "ql/default.hpp",
> > > > "QuantLib::Protection::Side", "std::string", "Buyer",
> > > > "QuantLib::Protection::Buyer"),
> > > > ("EnumeratedType", "ql/default.hpp",
> > > > "QuantLib::Protection::Side", "std::string", "Seller",
> > > > "QuantLib::Protection::Seller"),
> > > > ]
> > > >
> > > ###
> > > That declaration should work (analoguous to Option::Type). The
> > > parameter type in the addin interface should be
> > > QuantLib::Protection::Side.
> > > ###
> > > >
> > > > is that ok? For the scehdule I will pull your code and figure
> > > > it
> > > > out.
> > > >
> > > > Also I have moved the code under "./gensrc/code" to
> > > > "./gensrc/codesrc" the reason is that if I want to debug the
> > > > python
> > > > tools with eclipse or any other debugger it gets confused with
> > > > /code/
> > > > and the python libraries.
> > > ###
> > > I will change it ...
> > > ###
> > > >
> > > > Antoher minor point is that the parser is very picky on not
> > > > having
> > > > carriage returns on the parameter list of constructors, it
> > > > fails
> > > > if
> > > > theres one.
> > > ###
> > > The *.py files under the metadata directory are parsed in python
> > > syntax. It should be possible to use a backslash at the end of a
> > > line
> > > for a line break like
> > >
> > > ("Constructor", "ql/experimental/credit/riskybond.hpp",
> > > "QuantLib::RiskyFixedBond(std::string Name,
> > > QuantLib::Currency
> > > Ccy, \
> > > QuantLib::Real RecoveryRate,
> > > QuantLib::Handle<QuantLib::DefaultProbabilityTermStructure>
> > > DefaultTS,
> > > \
> > > QuantLib::Schedule Schedule, QuantLib::Real Rate,
> > > QuantLib::DayCounter DayCounter, \
> > > QuantLib::BusinessDayConvention PaymentConvention,
> > > std::vector<QuantLib::Real> Notionals, \
> > > QuantLib::Handle<QuantLib::YieldTermStructure> YieldTS)",
> > > "", "qlRiskyFixedBond"),
> > > ###
> > > >
> > > > Best regards
> > > > pp
> > > >
> > > >
> > > >
> > > >
> > > > ----- Original Message -----
> > > > >
> > > > >
> > > > > Hello,
> > > > >
> > > > > I have added an example under
> > > > > experimental/credit/riskybond.py
> > > > > and
> > > > > in
> > > > > the spreadsheet.
> > > > >
> > > > > You need not define the base class - except you would like to
> > > > > refer
> > > > > to
> > > > > member functions of it. I assume that it is not necessary to
> > > > > instantiate a base class (like RiskyBond which has virtual
> > > > > functions).
> > > > >
> > > > > I also added code to handle 1D return types of
> > > > > enumeratedobjects
> > > > > (ccy()
> > > > > function of RiskyBond) in calc.py and for the correct
> > > > > handling
> > > > > of
> > > > > std::string input parameters (like 'name' of riskybond - not
> > > > > handled
> > > > > like objects) in addinclasses.py.
> > > > >
> > > > > In some part of the code I have left statements of the type
> > > > > --- if __name__ == "__main__": ---. You can ignore them since
> > > > > you
> > > > > invoke 'python main.py -o'. The previous statement --- if
> > > > > __name__
> > > > > ...
> > > > > --- is for debugging since I can execute the file alone
> > > > > without
> > > > > executing main.py.
> > > > >
> > > > >
> > > > > Regards,
> > > > > Lars Callenbach
> > > > >
> > > > >
> > > > >
> > > > >
> > > > > Am Montag, den 13.02.2017, 14:20 +0100 schrieb
> > > > > ja...@fr...:
> > > > > >
> > > > > >
> > > > > > Hi again,
> > > > > > I am not sure what I was asking makes sense anymore;
> > > > > > something
> > > > > > is
> > > > > > failing when I add some extra functions but not sure where.
> > > > > > Some add ok some do not, so it might just be syntax staring
> > > > > > in
> > > > > > front
> > > > > > of my nose.
> > > > > >
> > > > > > I am looking at the code and some files contain non
> > > > > > portable
> > > > > > paths
> > > > > > like line 275 of enumeratedobjects.py :
> > > > > > pmd = ParseMetaData('/work/QuantLib-
> > > > > > Addin/gensrc/metadata',
> > > > > > 'Calc')
> > > > > > this does not prevent things from working on my side
> > > > > > however.
> > > > > > guess it is not being used?
> > > > > >
> > > > > > Best
> > > > > > PP
> > > > > >
> > > > > >
> > > > > > ----- Original Message -----
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > Hi Lars,
> > > > > > > How do you declare and use abstract types? Say I want to
> > > > > > > define
> > > > > > > a
> > > > > > > new
> > > > > > > constructor (e.g. riskybond.py) which needs an pointer in
> > > > > > > its
> > > > > > > constructor of a virtual base type (defaulttermstructure)
> > > > > > > How
> > > > > > > do
> > > > > > > I
> > > > > > > declare that type? I see there are methods for the type
> > > > > > > (defaulttermstructure.py) so they can be used from all
> > > > > > > derived
> > > > > > > classes but how does one declares the abstract type to be
> > > > > > > recognised?
> > > > > > > Best
> > > > > > > pp
> > > > > > >
> > > > > > >
> > > > > > > ----- Original Message -----
> > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > > Hi,
> > > > > > > > I like its simplicity. It works very well on my
> > > > > > > > mint/ubuntu
> > > > > > > > with
> > > > > > > > the
> > > > > > > > last version of libreoffice + sdk. I can drive the
> > > > > > > > debugger
> > > > > > > > directly
> > > > > > > > from Calc.
> > > > > > > > Too bad the worksheets need to be rewritten but that's
> > > > > > > > a
> > > > > > > > minor
> > > > > > > > inconvenience.
> > > > > > > > Something I am wondering, what happens now with the
> > > > > > > > dependencies?
> > > > > > > > Can
> > > > > > > > they be forced now?
> > > > > > > > Would it be possible to get the doxygen c++ doc for
> > > > > > > > free
> > > > > > > > into
> > > > > > > > the
> > > > > > > > parameters of the functions? Through an hypothetical
> > > > > > > > doxy-c++-py
> > > > > > > > module?
> > > > > > > > I might pr new functions as I use them.
> > > > > > > > Best and thank you
> > > > > > > > pp
> > > > > > > >
> > > > > > > > ----- Original Message -----
> > > > > > > > >
> > > > > > > > >
> > > > > > > > >
> > > > > > > > > Hi,
> > > > > > > > >
> > > > > > > > > it is independent of Reposit and has a modified
> > > > > > > > > version
> > > > > > > > > of
> > > > > > > > > the
> > > > > > > > > "old"
> > > > > > > > > repository/objecthandler code of the QuantLibAddin in
> > > > > > > > > the
> > > > > > > > > folder
> > > > > > > > > oh.
> > > > > > > > >
> > > > > > > > > The other code components are generated by python
> > > > > > > > > code
> > > > > > > > > based
> > > > > > > > > on
> > > > > > > > > metadata defined under gensrc/metadata (similar to
> > > > > > > > > SWIG
> > > > > > > > > but
> > > > > > > > > without
> > > > > > > > > the
> > > > > > > > > class hierarchy redefinitions).
> > > > > > > > >
> > > > > > > > > I assume that Mac-OS is a quick win - but I have had
> > > > > > > > > some
> > > > > > > > > problems
> > > > > > > > > compiling the examples of LibreOffice/SDK under
> > > > > > > > > Windows
> > > > > > > > > (unix
> > > > > > > > > convention of paths in the SDK files which do not
> > > > > > > > > work
> > > > > > > > > under
> > > > > > > > > Windows
> > > > > > > > > -
> > > > > > > > > help appreciated since my license of VS-C++ is
> > > > > > > > > expired).
> > > > > > > > >
> > > > > > > > >
> > > > > > > > > Kind regards,
> > > > > > > > > Lars
> > > > > > > > >
> > > > > > > > >
> > > > > > > > >
> > > > > > > > >
> > > > > > > > >
> > > > > > > > > Am Donnerstag, den 26.01.2017, 18:50 +0100 schrieb
> > > > > > > > > ja...@fr...:
> > > > > > > > > >
> > > > > > > > > >
> > > > > > > > > >
> > > > > > > > > > That's very good news,
> > > > > > > > > > I know I could look and I will but, is that working
> > > > > > > > > > ok
> > > > > > > > > > for
> > > > > > > > > > all
> > > > > > > > > > OS?
> > > > > > > > > > Is
> > > > > > > > > > it based on the previous OH or on the new Reposit
> > > > > > > > > > framework?
> > > > > > > > > > Thank you
> > > > > > > > > > pp
> > > > > > > > > >
> > > > > > > > > >
> > > > > > > > > >
> > > > > > > > > > ----- Original Message -----
> > > > > > > > > > >
> > > > > > > > > > >
> > > > > > > > > > >
> > > > > > > > > > >
> > > > > > > > > > > Good evening,
> > > > > > > > > > >
> > > > > > > > > > > I have a running version for the addin for
> > > > > > > > > > > LibreOffice/Calc.
> > > > > > > > > > > On
> > > > > > > > > > > GitHub
> > > > > > > > > > > I have a first prototype for automatic addin code
> > > > > > > > > > > generation
> > > > > > > > > > > of
> > > > > > > > > > > QuantLib functions and classes for Calc
> > > > > > > > > > > (github.com/lcallenbach/quantlibaddin).
> > > > > > > > > > >
> > > > > > > > > > > Feedback (and testing on other platforms)
> > > > > > > > > > > welcome.
> > > > > > > > > > >
> > > > > > > > > > >
> > > > > > > > > > > Kind regards,
> > > > > > > > > > > Lars
> > > > > > > > > > >
> > > > > > > > > > > -------------------------------------------------
> > > > > > > > > > > ----
> > > > > > > > > > > ----
> > > > > > > > > > > --------
> > > > > > > > > > > -------------
> > > > > > > > > > > Check out the vibrant tech community on one of
> > > > > > > > > > > the
> > > > > > > > > > > world's
> > > > > > > > > > > most
> > > > > > > > > > > engaging tech sites, SlashDot.org!
> > > > > > > > > > > http://sdm.link/slashdot
> > > > > > > > > > > _______________________________________________
> > > > > > > > > > > QuantLib-dev mailing list
> > > > > > > > > > > Qua...@li...
> > > > > > > > > > > https://lists.sourceforge.net/lists/listinfo/quantl
> > > > > > > > > > > ib-d
> > > > > > > > > > > ev
> > > > > > > > > > >
> > > > > > > > >
> > > > > > > >
> > > > > > > > -------------------------------------------------------
> > > > > > > > ----
> > > > > > > > ----
> > > > > > > > ---------------
> > > > > > > > Check out the vibrant tech community on one of the
> > > > > > > > world's
> > > > > > > > most
> > > > > > > > engaging tech sites, SlashDot.org!
> > > > > > > > http://sdm.link/slashd
> > > > > > > > ot
> > > > > > > > _______________________________________________
> > > > > > > > QuantLib-dev mailing list
> > > > > > > > Qua...@li...
> > > > > > > > https://lists.sourceforge.net/lists/listinfo/quantlib-dev
> > > > > > > >
> > > > > > >
> > > > > > > ---------------------------------------------------------
> > > > > > > ----
> > > > > > > ----
> > > > > > > -------------
> > > > > > > Check out the vibrant tech community on one of the
> > > > > > > world's
> > > > > > > most
> > > > > > > engaging tech sites, SlashDot.org!
> > > > > > > http://sdm.link/slashdot
> > > > > > > _______________________________________________
> > > > > > > QuantLib-dev mailing list
> > > > > > > Qua...@li...
> > > > > > > https://lists.sourceforge.net/lists/listinfo/quantlib-dev
> > > > > > >
> > > > >
> > >
>
|
|
From: Lars C. <lca...@we...> - 2017-02-17 07:43:13
|
Hi,
Enums are not generated automatically. They have to be defined in
conversions. For further discussions please provide the metadata code
you generated. Without it I cannot assist you ...
A remark concerning the spreadsheet: under "Settings" the
evaluationdate is set to Today(). So calculations might change from day
to day since schedules are generated based on this date (schedules are
not defined statically, they are calculated based on evaluationdate and
the calendar (holidays) is different from NullCalendar ...). If you
would like to change this: just replace Today() with the date of your
choice in "Settings". Then everything should work as you expect.
Best regards,
Lars
Am Donnerstag, den 16.02.2017, 11:02 +0100 schrieb ja...@fr...:
> Hello Lars, thank you for the reply.
> Somehow the Position enum wasnt being generated in the sources and I
> realized it has to be declared in a separate file; is this intended?
>
> Theres some chaotic behaviour, like default TS calibrating to
> different values to the previous time I openend the worksheet but I
> dont know if this is a serialization or a Calc problem. Looks like
> resetting the eval date cleans up things. I'll try to get an specific
> user case.
>
> I just sent a pr
> Best
> pp
>
>
> ----- Original Message -----
> >
> > Hi,
> >
> > some comments below.
> >
> >
> > Best regards,
> > Lars
> >
> >
> >
> > Am Dienstag, den 14.02.2017, 11:31 +0100 schrieb ja...@fr...:
> > >
> > > Hi,
> > > I did realize I dont need abstract base classes. I had declared
> > > RiskyFixedBond and therefore I needed to have currencies, that
> > > went
> > > all right. Also I am declaring CDS but I get problems with the
> > > type
> > > conversion of the protection side and the schedule type (also in
> > > the
> > > defaultable bond). If I understood your doc I wrote:
> > >
> > > ImplicitConversionsCalc = [
> > > ("QuantLib::Protection::Side", "std::string", "string",
> > > "EnumeratedType", "<<"),
> > > ]
> > >
> > > QuantLibTypes = [
> > > ("EnumeratedType", "ql/default.hpp",
> > > "QuantLib::Protection::Side", "std::string", "Buyer",
> > > "QuantLib::Protection::Buyer"),
> > > ("EnumeratedType", "ql/default.hpp",
> > > "QuantLib::Protection::Side", "std::string", "Seller",
> > > "QuantLib::Protection::Seller"),
> > > ]
> > >
> > ###
> > That declaration should work (analoguous to Option::Type). The
> > parameter type in the addin interface should be
> > QuantLib::Protection::Side.
> > ###
> > >
> > > is that ok? For the scehdule I will pull your code and figure it
> > > out.
> > >
> > > Also I have moved the code under "./gensrc/code" to
> > > "./gensrc/codesrc" the reason is that if I want to debug the
> > > python
> > > tools with eclipse or any other debugger it gets confused with
> > > /code/
> > > and the python libraries.
> > ###
> > I will change it ...
> > ###
> > >
> > > Antoher minor point is that the parser is very picky on not
> > > having
> > > carriage returns on the parameter list of constructors, it fails
> > > if
> > > theres one.
> > ###
> > The *.py files under the metadata directory are parsed in python
> > syntax. It should be possible to use a backslash at the end of a
> > line
> > for a line break like
> >
> > ("Constructor", "ql/experimental/credit/riskybond.hpp",
> > "QuantLib::RiskyFixedBond(std::string Name,
> > QuantLib::Currency
> > Ccy, \
> > QuantLib::Real RecoveryRate,
> > QuantLib::Handle<QuantLib::DefaultProbabilityTermStructure>
> > DefaultTS,
> > \
> > QuantLib::Schedule Schedule, QuantLib::Real Rate,
> > QuantLib::DayCounter DayCounter, \
> > QuantLib::BusinessDayConvention PaymentConvention,
> > std::vector<QuantLib::Real> Notionals, \
> > QuantLib::Handle<QuantLib::YieldTermStructure> YieldTS)",
> > "", "qlRiskyFixedBond"),
> > ###
> > >
> > > Best regards
> > > pp
> > >
> > >
> > >
> > >
> > > ----- Original Message -----
> > > >
> > > >
> > > > Hello,
> > > >
> > > > I have added an example under experimental/credit/riskybond.py
> > > > and
> > > > in
> > > > the spreadsheet.
> > > >
> > > > You need not define the base class - except you would like to
> > > > refer
> > > > to
> > > > member functions of it. I assume that it is not necessary to
> > > > instantiate a base class (like RiskyBond which has virtual
> > > > functions).
> > > >
> > > > I also added code to handle 1D return types of
> > > > enumeratedobjects
> > > > (ccy()
> > > > function of RiskyBond) in calc.py and for the correct handling
> > > > of
> > > > std::string input parameters (like 'name' of riskybond - not
> > > > handled
> > > > like objects) in addinclasses.py.
> > > >
> > > > In some part of the code I have left statements of the type
> > > > --- if __name__ == "__main__": ---. You can ignore them since
> > > > you
> > > > invoke 'python main.py -o'. The previous statement --- if
> > > > __name__
> > > > ...
> > > > --- is for debugging since I can execute the file alone without
> > > > executing main.py.
> > > >
> > > >
> > > > Regards,
> > > > Lars Callenbach
> > > >
> > > >
> > > >
> > > >
> > > > Am Montag, den 13.02.2017, 14:20 +0100 schrieb ja...@fr...:
> > > > >
> > > > >
> > > > > Hi again,
> > > > > I am not sure what I was asking makes sense anymore;
> > > > > something
> > > > > is
> > > > > failing when I add some extra functions but not sure where.
> > > > > Some add ok some do not, so it might just be syntax staring
> > > > > in
> > > > > front
> > > > > of my nose.
> > > > >
> > > > > I am looking at the code and some files contain non portable
> > > > > paths
> > > > > like line 275 of enumeratedobjects.py :
> > > > > pmd = ParseMetaData('/work/QuantLib-
> > > > > Addin/gensrc/metadata',
> > > > > 'Calc')
> > > > > this does not prevent things from working on my side however.
> > > > > guess it is not being used?
> > > > >
> > > > > Best
> > > > > PP
> > > > >
> > > > >
> > > > > ----- Original Message -----
> > > > > >
> > > > > >
> > > > > >
> > > > > > Hi Lars,
> > > > > > How do you declare and use abstract types? Say I want to
> > > > > > define
> > > > > > a
> > > > > > new
> > > > > > constructor (e.g. riskybond.py) which needs an pointer in
> > > > > > its
> > > > > > constructor of a virtual base type (defaulttermstructure)
> > > > > > How
> > > > > > do
> > > > > > I
> > > > > > declare that type? I see there are methods for the type
> > > > > > (defaulttermstructure.py) so they can be used from all
> > > > > > derived
> > > > > > classes but how does one declares the abstract type to be
> > > > > > recognised?
> > > > > > Best
> > > > > > pp
> > > > > >
> > > > > >
> > > > > > ----- Original Message -----
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > Hi,
> > > > > > > I like its simplicity. It works very well on my
> > > > > > > mint/ubuntu
> > > > > > > with
> > > > > > > the
> > > > > > > last version of libreoffice + sdk. I can drive the
> > > > > > > debugger
> > > > > > > directly
> > > > > > > from Calc.
> > > > > > > Too bad the worksheets need to be rewritten but that's a
> > > > > > > minor
> > > > > > > inconvenience.
> > > > > > > Something I am wondering, what happens now with the
> > > > > > > dependencies?
> > > > > > > Can
> > > > > > > they be forced now?
> > > > > > > Would it be possible to get the doxygen c++ doc for free
> > > > > > > into
> > > > > > > the
> > > > > > > parameters of the functions? Through an hypothetical
> > > > > > > doxy-c++-py
> > > > > > > module?
> > > > > > > I might pr new functions as I use them.
> > > > > > > Best and thank you
> > > > > > > pp
> > > > > > >
> > > > > > > ----- Original Message -----
> > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > > Hi,
> > > > > > > >
> > > > > > > > it is independent of Reposit and has a modified version
> > > > > > > > of
> > > > > > > > the
> > > > > > > > "old"
> > > > > > > > repository/objecthandler code of the QuantLibAddin in
> > > > > > > > the
> > > > > > > > folder
> > > > > > > > oh.
> > > > > > > >
> > > > > > > > The other code components are generated by python code
> > > > > > > > based
> > > > > > > > on
> > > > > > > > metadata defined under gensrc/metadata (similar to SWIG
> > > > > > > > but
> > > > > > > > without
> > > > > > > > the
> > > > > > > > class hierarchy redefinitions).
> > > > > > > >
> > > > > > > > I assume that Mac-OS is a quick win - but I have had
> > > > > > > > some
> > > > > > > > problems
> > > > > > > > compiling the examples of LibreOffice/SDK under Windows
> > > > > > > > (unix
> > > > > > > > convention of paths in the SDK files which do not work
> > > > > > > > under
> > > > > > > > Windows
> > > > > > > > -
> > > > > > > > help appreciated since my license of VS-C++ is
> > > > > > > > expired).
> > > > > > > >
> > > > > > > >
> > > > > > > > Kind regards,
> > > > > > > > Lars
> > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > > Am Donnerstag, den 26.01.2017, 18:50 +0100 schrieb
> > > > > > > > ja...@fr...:
> > > > > > > > >
> > > > > > > > >
> > > > > > > > >
> > > > > > > > > That's very good news,
> > > > > > > > > I know I could look and I will but, is that working
> > > > > > > > > ok
> > > > > > > > > for
> > > > > > > > > all
> > > > > > > > > OS?
> > > > > > > > > Is
> > > > > > > > > it based on the previous OH or on the new Reposit
> > > > > > > > > framework?
> > > > > > > > > Thank you
> > > > > > > > > pp
> > > > > > > > >
> > > > > > > > >
> > > > > > > > >
> > > > > > > > > ----- Original Message -----
> > > > > > > > > >
> > > > > > > > > >
> > > > > > > > > >
> > > > > > > > > >
> > > > > > > > > > Good evening,
> > > > > > > > > >
> > > > > > > > > > I have a running version for the addin for
> > > > > > > > > > LibreOffice/Calc.
> > > > > > > > > > On
> > > > > > > > > > GitHub
> > > > > > > > > > I have a first prototype for automatic addin code
> > > > > > > > > > generation
> > > > > > > > > > of
> > > > > > > > > > QuantLib functions and classes for Calc
> > > > > > > > > > (github.com/lcallenbach/quantlibaddin).
> > > > > > > > > >
> > > > > > > > > > Feedback (and testing on other platforms) welcome.
> > > > > > > > > >
> > > > > > > > > >
> > > > > > > > > > Kind regards,
> > > > > > > > > > Lars
> > > > > > > > > >
> > > > > > > > > > -------------------------------------------------
> > > > > > > > > > ----
> > > > > > > > > > ----
> > > > > > > > > > --------
> > > > > > > > > > -------------
> > > > > > > > > > Check out the vibrant tech community on one of the
> > > > > > > > > > world's
> > > > > > > > > > most
> > > > > > > > > > engaging tech sites, SlashDot.org!
> > > > > > > > > > http://sdm.link/slashdot
> > > > > > > > > > _______________________________________________
> > > > > > > > > > QuantLib-dev mailing list
> > > > > > > > > > Qua...@li...
> > > > > > > > > > https://lists.sourceforge.net/lists/listinfo/quantl
> > > > > > > > > > ib-d
> > > > > > > > > > ev
> > > > > > > > > >
> > > > > > > >
> > > > > > >
> > > > > > > -------------------------------------------------------
> > > > > > > ----
> > > > > > > ----
> > > > > > > ---------------
> > > > > > > Check out the vibrant tech community on one of the
> > > > > > > world's
> > > > > > > most
> > > > > > > engaging tech sites, SlashDot.org! http://sdm.link/slashd
> > > > > > > ot
> > > > > > > _______________________________________________
> > > > > > > QuantLib-dev mailing list
> > > > > > > Qua...@li...
> > > > > > > https://lists.sourceforge.net/lists/listinfo/quantlib-dev
> > > > > > >
> > > > > >
> > > > > > ---------------------------------------------------------
> > > > > > ----
> > > > > > ----
> > > > > > -------------
> > > > > > Check out the vibrant tech community on one of the world's
> > > > > > most
> > > > > > engaging tech sites, SlashDot.org! http://sdm.link/slashdot
> > > > > > _______________________________________________
> > > > > > QuantLib-dev mailing list
> > > > > > Qua...@li...
> > > > > > https://lists.sourceforge.net/lists/listinfo/quantlib-dev
> > > > > >
> > > >
> >
|
|
From: <ja...@fr...> - 2017-02-16 10:02:23
|
Hello Lars, thank you for the reply.
Somehow the Position enum wasnt being generated in the sources and I realized it has to be declared in a separate file; is this intended?
Theres some chaotic behaviour, like default TS calibrating to different values to the previous time I openend the worksheet but I dont know if this is a serialization or a Calc problem. Looks like resetting the eval date cleans up things. I'll try to get an specific user case.
I just sent a pr
Best
pp
----- Original Message -----
> Hi,
>
> some comments below.
>
>
> Best regards,
> Lars
>
>
>
> Am Dienstag, den 14.02.2017, 11:31 +0100 schrieb ja...@fr...:
> > Hi,
> > I did realize I dont need abstract base classes. I had declared
> > RiskyFixedBond and therefore I needed to have currencies, that went
> > all right. Also I am declaring CDS but I get problems with the type
> > conversion of the protection side and the schedule type (also in
> > the
> > defaultable bond). If I understood your doc I wrote:
> >
> > ImplicitConversionsCalc = [
> > ("QuantLib::Protection::Side", "std::string", "string",
> > "EnumeratedType", "<<"),
> > ]
> >
> > QuantLibTypes = [
> > ("EnumeratedType", "ql/default.hpp",
> > "QuantLib::Protection::Side", "std::string", "Buyer",
> > "QuantLib::Protection::Buyer"),
> > ("EnumeratedType", "ql/default.hpp",
> > "QuantLib::Protection::Side", "std::string", "Seller",
> > "QuantLib::Protection::Seller"),
> > ]
> >
> ###
> That declaration should work (analoguous to Option::Type). The
> parameter type in the addin interface should be
> QuantLib::Protection::Side.
> ###
> > is that ok? For the scehdule I will pull your code and figure it
> > out.
> >
> > Also I have moved the code under "./gensrc/code" to
> > "./gensrc/codesrc" the reason is that if I want to debug the
> > python
> > tools with eclipse or any other debugger it gets confused with
> > /code/
> > and the python libraries.
> ###
> I will change it ...
> ###
> > Antoher minor point is that the parser is very picky on not having
> > carriage returns on the parameter list of constructors, it fails if
> > theres one.
> ###
> The *.py files under the metadata directory are parsed in python
> syntax. It should be possible to use a backslash at the end of a line
> for a line break like
>
> ("Constructor", "ql/experimental/credit/riskybond.hpp",
> "QuantLib::RiskyFixedBond(std::string Name,
> QuantLib::Currency
> Ccy, \
> QuantLib::Real RecoveryRate,
> QuantLib::Handle<QuantLib::DefaultProbabilityTermStructure>
> DefaultTS,
> \
> QuantLib::Schedule Schedule, QuantLib::Real Rate,
> QuantLib::DayCounter DayCounter, \
> QuantLib::BusinessDayConvention PaymentConvention,
> std::vector<QuantLib::Real> Notionals, \
> QuantLib::Handle<QuantLib::YieldTermStructure> YieldTS)",
> "", "qlRiskyFixedBond"),
> ###
> > Best regards
> > pp
> >
> >
> >
> >
> > ----- Original Message -----
> > >
> > > Hello,
> > >
> > > I have added an example under experimental/credit/riskybond.py
> > > and
> > > in
> > > the spreadsheet.
> > >
> > > You need not define the base class - except you would like to
> > > refer
> > > to
> > > member functions of it. I assume that it is not necessary to
> > > instantiate a base class (like RiskyBond which has virtual
> > > functions).
> > >
> > > I also added code to handle 1D return types of enumeratedobjects
> > > (ccy()
> > > function of RiskyBond) in calc.py and for the correct handling of
> > > std::string input parameters (like 'name' of riskybond - not
> > > handled
> > > like objects) in addinclasses.py.
> > >
> > > In some part of the code I have left statements of the type
> > > --- if __name__ == "__main__": ---. You can ignore them since you
> > > invoke 'python main.py -o'. The previous statement --- if
> > > __name__
> > > ...
> > > --- is for debugging since I can execute the file alone without
> > > executing main.py.
> > >
> > >
> > > Regards,
> > > Lars Callenbach
> > >
> > >
> > >
> > >
> > > Am Montag, den 13.02.2017, 14:20 +0100 schrieb ja...@fr...:
> > > >
> > > > Hi again,
> > > > I am not sure what I was asking makes sense anymore; something
> > > > is
> > > > failing when I add some extra functions but not sure where.
> > > > Some add ok some do not, so it might just be syntax staring in
> > > > front
> > > > of my nose.
> > > >
> > > > I am looking at the code and some files contain non portable
> > > > paths
> > > > like line 275 of enumeratedobjects.py :
> > > > pmd = ParseMetaData('/work/QuantLib-Addin/gensrc/metadata',
> > > > 'Calc')
> > > > this does not prevent things from working on my side however.
> > > > guess it is not being used?
> > > >
> > > > Best
> > > > PP
> > > >
> > > >
> > > > ----- Original Message -----
> > > > >
> > > > >
> > > > > Hi Lars,
> > > > > How do you declare and use abstract types? Say I want to
> > > > > define
> > > > > a
> > > > > new
> > > > > constructor (e.g. riskybond.py) which needs an pointer in its
> > > > > constructor of a virtual base type (defaulttermstructure) How
> > > > > do
> > > > > I
> > > > > declare that type? I see there are methods for the type
> > > > > (defaulttermstructure.py) so they can be used from all
> > > > > derived
> > > > > classes but how does one declares the abstract type to be
> > > > > recognised?
> > > > > Best
> > > > > pp
> > > > >
> > > > >
> > > > > ----- Original Message -----
> > > > > >
> > > > > >
> > > > > > Hi,
> > > > > > I like its simplicity. It works very well on my mint/ubuntu
> > > > > > with
> > > > > > the
> > > > > > last version of libreoffice + sdk. I can drive the debugger
> > > > > > directly
> > > > > > from Calc.
> > > > > > Too bad the worksheets need to be rewritten but that's a
> > > > > > minor
> > > > > > inconvenience.
> > > > > > Something I am wondering, what happens now with the
> > > > > > dependencies?
> > > > > > Can
> > > > > > they be forced now?
> > > > > > Would it be possible to get the doxygen c++ doc for free
> > > > > > into
> > > > > > the
> > > > > > parameters of the functions? Through an hypothetical
> > > > > > doxy-c++-py
> > > > > > module?
> > > > > > I might pr new functions as I use them.
> > > > > > Best and thank you
> > > > > > pp
> > > > > >
> > > > > > ----- Original Message -----
> > > > > > >
> > > > > > >
> > > > > > > Hi,
> > > > > > >
> > > > > > > it is independent of Reposit and has a modified version
> > > > > > > of
> > > > > > > the
> > > > > > > "old"
> > > > > > > repository/objecthandler code of the QuantLibAddin in the
> > > > > > > folder
> > > > > > > oh.
> > > > > > >
> > > > > > > The other code components are generated by python code
> > > > > > > based
> > > > > > > on
> > > > > > > metadata defined under gensrc/metadata (similar to SWIG
> > > > > > > but
> > > > > > > without
> > > > > > > the
> > > > > > > class hierarchy redefinitions).
> > > > > > >
> > > > > > > I assume that Mac-OS is a quick win - but I have had some
> > > > > > > problems
> > > > > > > compiling the examples of LibreOffice/SDK under Windows
> > > > > > > (unix
> > > > > > > convention of paths in the SDK files which do not work
> > > > > > > under
> > > > > > > Windows
> > > > > > > -
> > > > > > > help appreciated since my license of VS-C++ is expired).
> > > > > > >
> > > > > > >
> > > > > > > Kind regards,
> > > > > > > Lars
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > Am Donnerstag, den 26.01.2017, 18:50 +0100 schrieb
> > > > > > > ja...@fr...:
> > > > > > > >
> > > > > > > >
> > > > > > > > That's very good news,
> > > > > > > > I know I could look and I will but, is that working ok
> > > > > > > > for
> > > > > > > > all
> > > > > > > > OS?
> > > > > > > > Is
> > > > > > > > it based on the previous OH or on the new Reposit
> > > > > > > > framework?
> > > > > > > > Thank you
> > > > > > > > pp
> > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > > ----- Original Message -----
> > > > > > > > >
> > > > > > > > >
> > > > > > > > >
> > > > > > > > > Good evening,
> > > > > > > > >
> > > > > > > > > I have a running version for the addin for
> > > > > > > > > LibreOffice/Calc.
> > > > > > > > > On
> > > > > > > > > GitHub
> > > > > > > > > I have a first prototype for automatic addin code
> > > > > > > > > generation
> > > > > > > > > of
> > > > > > > > > QuantLib functions and classes for Calc
> > > > > > > > > (github.com/lcallenbach/quantlibaddin).
> > > > > > > > >
> > > > > > > > > Feedback (and testing on other platforms) welcome.
> > > > > > > > >
> > > > > > > > >
> > > > > > > > > Kind regards,
> > > > > > > > > Lars
> > > > > > > > >
> > > > > > > > > -----------------------------------------------------
> > > > > > > > > ----
> > > > > > > > > --------
> > > > > > > > > -------------
> > > > > > > > > Check out the vibrant tech community on one of the
> > > > > > > > > world's
> > > > > > > > > most
> > > > > > > > > engaging tech sites, SlashDot.org!
> > > > > > > > > http://sdm.link/slashdot
> > > > > > > > > _______________________________________________
> > > > > > > > > QuantLib-dev mailing list
> > > > > > > > > Qua...@li...
> > > > > > > > > https://lists.sourceforge.net/lists/listinfo/quantlib-d
> > > > > > > > > ev
> > > > > > > > >
> > > > > > >
> > > > > >
> > > > > > -----------------------------------------------------------
> > > > > > ----
> > > > > > ---------------
> > > > > > Check out the vibrant tech community on one of the world's
> > > > > > most
> > > > > > engaging tech sites, SlashDot.org! http://sdm.link/slashdot
> > > > > > _______________________________________________
> > > > > > QuantLib-dev mailing list
> > > > > > Qua...@li...
> > > > > > https://lists.sourceforge.net/lists/listinfo/quantlib-dev
> > > > > >
> > > > >
> > > > > -------------------------------------------------------------
> > > > > ----
> > > > > -------------
> > > > > Check out the vibrant tech community on one of the world's
> > > > > most
> > > > > engaging tech sites, SlashDot.org! http://sdm.link/slashdot
> > > > > _______________________________________________
> > > > > QuantLib-dev mailing list
> > > > > Qua...@li...
> > > > > https://lists.sourceforge.net/lists/listinfo/quantlib-dev
> > > > >
> > >
>
|
|
From: Lars C. <lca...@we...> - 2017-02-14 11:40:55
|
Hi,
some comments below.
Best regards,
Lars
Am Dienstag, den 14.02.2017, 11:31 +0100 schrieb ja...@fr...:
> Hi,
> I did realize I dont need abstract base classes. I had declared
> RiskyFixedBond and therefore I needed to have currencies, that went
> all right. Also I am declaring CDS but I get problems with the type
> conversion of the protection side and the schedule type (also in the
> defaultable bond). If I understood your doc I wrote:
>
> ImplicitConversionsCalc = [
> ("QuantLib::Protection::Side", "std::string", "string",
> "EnumeratedType", "<<"),
> ]
>
> QuantLibTypes = [
> ("EnumeratedType", "ql/default.hpp",
> "QuantLib::Protection::Side", "std::string", "Buyer",
> "QuantLib::Protection::Buyer"),
> ("EnumeratedType", "ql/default.hpp",
> "QuantLib::Protection::Side", "std::string", "Seller",
> "QuantLib::Protection::Seller"),
> ]
>
###
That declaration should work (analoguous to Option::Type). The
parameter type in the addin interface should be
QuantLib::Protection::Side.
###
> is that ok? For the scehdule I will pull your code and figure it out.
>
> Also I have moved the code under "./gensrc/code" to
> "./gensrc/codesrc" the reason is that if I want to debug the python
> tools with eclipse or any other debugger it gets confused with /code/
> and the python libraries.
###
I will change it ...
###
> Antoher minor point is that the parser is very picky on not having
> carriage returns on the parameter list of constructors, it fails if
> theres one.
###
The *.py files under the metadata directory are parsed in python
syntax. It should be possible to use a backslash at the end of a line
for a line break like
("Constructor", "ql/experimental/credit/riskybond.hpp",
"QuantLib::RiskyFixedBond(std::string Name, QuantLib::Currency
Ccy, \
QuantLib::Real RecoveryRate,
QuantLib::Handle<QuantLib::DefaultProbabilityTermStructure> DefaultTS,
\
QuantLib::Schedule Schedule, QuantLib::Real Rate,
QuantLib::DayCounter DayCounter, \
QuantLib::BusinessDayConvention PaymentConvention,
std::vector<QuantLib::Real> Notionals, \
QuantLib::Handle<QuantLib::YieldTermStructure> YieldTS)",
"", "qlRiskyFixedBond"),
###
> Best regards
> pp
>
>
>
>
> ----- Original Message -----
> >
> > Hello,
> >
> > I have added an example under experimental/credit/riskybond.py and
> > in
> > the spreadsheet.
> >
> > You need not define the base class - except you would like to refer
> > to
> > member functions of it. I assume that it is not necessary to
> > instantiate a base class (like RiskyBond which has virtual
> > functions).
> >
> > I also added code to handle 1D return types of enumeratedobjects
> > (ccy()
> > function of RiskyBond) in calc.py and for the correct handling of
> > std::string input parameters (like 'name' of riskybond - not
> > handled
> > like objects) in addinclasses.py.
> >
> > In some part of the code I have left statements of the type
> > --- if __name__ == "__main__": ---. You can ignore them since you
> > invoke 'python main.py -o'. The previous statement --- if __name__
> > ...
> > --- is for debugging since I can execute the file alone without
> > executing main.py.
> >
> >
> > Regards,
> > Lars Callenbach
> >
> >
> >
> >
> > Am Montag, den 13.02.2017, 14:20 +0100 schrieb ja...@fr...:
> > >
> > > Hi again,
> > > I am not sure what I was asking makes sense anymore; something is
> > > failing when I add some extra functions but not sure where.
> > > Some add ok some do not, so it might just be syntax staring in
> > > front
> > > of my nose.
> > >
> > > I am looking at the code and some files contain non portable
> > > paths
> > > like line 275 of enumeratedobjects.py :
> > > pmd = ParseMetaData('/work/QuantLib-Addin/gensrc/metadata',
> > > 'Calc')
> > > this does not prevent things from working on my side however.
> > > guess it is not being used?
> > >
> > > Best
> > > PP
> > >
> > >
> > > ----- Original Message -----
> > > >
> > > >
> > > > Hi Lars,
> > > > How do you declare and use abstract types? Say I want to define
> > > > a
> > > > new
> > > > constructor (e.g. riskybond.py) which needs an pointer in its
> > > > constructor of a virtual base type (defaulttermstructure) How
> > > > do
> > > > I
> > > > declare that type? I see there are methods for the type
> > > > (defaulttermstructure.py) so they can be used from all derived
> > > > classes but how does one declares the abstract type to be
> > > > recognised?
> > > > Best
> > > > pp
> > > >
> > > >
> > > > ----- Original Message -----
> > > > >
> > > > >
> > > > > Hi,
> > > > > I like its simplicity. It works very well on my mint/ubuntu
> > > > > with
> > > > > the
> > > > > last version of libreoffice + sdk. I can drive the debugger
> > > > > directly
> > > > > from Calc.
> > > > > Too bad the worksheets need to be rewritten but that's a
> > > > > minor
> > > > > inconvenience.
> > > > > Something I am wondering, what happens now with the
> > > > > dependencies?
> > > > > Can
> > > > > they be forced now?
> > > > > Would it be possible to get the doxygen c++ doc for free into
> > > > > the
> > > > > parameters of the functions? Through an hypothetical
> > > > > doxy-c++-py
> > > > > module?
> > > > > I might pr new functions as I use them.
> > > > > Best and thank you
> > > > > pp
> > > > >
> > > > > ----- Original Message -----
> > > > > >
> > > > > >
> > > > > > Hi,
> > > > > >
> > > > > > it is independent of Reposit and has a modified version of
> > > > > > the
> > > > > > "old"
> > > > > > repository/objecthandler code of the QuantLibAddin in the
> > > > > > folder
> > > > > > oh.
> > > > > >
> > > > > > The other code components are generated by python code
> > > > > > based
> > > > > > on
> > > > > > metadata defined under gensrc/metadata (similar to SWIG but
> > > > > > without
> > > > > > the
> > > > > > class hierarchy redefinitions).
> > > > > >
> > > > > > I assume that Mac-OS is a quick win - but I have had some
> > > > > > problems
> > > > > > compiling the examples of LibreOffice/SDK under Windows
> > > > > > (unix
> > > > > > convention of paths in the SDK files which do not work
> > > > > > under
> > > > > > Windows
> > > > > > -
> > > > > > help appreciated since my license of VS-C++ is expired).
> > > > > >
> > > > > >
> > > > > > Kind regards,
> > > > > > Lars
> > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > > Am Donnerstag, den 26.01.2017, 18:50 +0100 schrieb
> > > > > > ja...@fr...:
> > > > > > >
> > > > > > >
> > > > > > > That's very good news,
> > > > > > > I know I could look and I will but, is that working ok
> > > > > > > for
> > > > > > > all
> > > > > > > OS?
> > > > > > > Is
> > > > > > > it based on the previous OH or on the new Reposit
> > > > > > > framework?
> > > > > > > Thank you
> > > > > > > pp
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > ----- Original Message -----
> > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > > Good evening,
> > > > > > > >
> > > > > > > > I have a running version for the addin for
> > > > > > > > LibreOffice/Calc.
> > > > > > > > On
> > > > > > > > GitHub
> > > > > > > > I have a first prototype for automatic addin code
> > > > > > > > generation
> > > > > > > > of
> > > > > > > > QuantLib functions and classes for Calc
> > > > > > > > (github.com/lcallenbach/quantlibaddin).
> > > > > > > >
> > > > > > > > Feedback (and testing on other platforms) welcome.
> > > > > > > >
> > > > > > > >
> > > > > > > > Kind regards,
> > > > > > > > Lars
> > > > > > > >
> > > > > > > > -----------------------------------------------------
> > > > > > > > ----
> > > > > > > > --------
> > > > > > > > -------------
> > > > > > > > Check out the vibrant tech community on one of the
> > > > > > > > world's
> > > > > > > > most
> > > > > > > > engaging tech sites, SlashDot.org!
> > > > > > > > http://sdm.link/slashdot
> > > > > > > > _______________________________________________
> > > > > > > > QuantLib-dev mailing list
> > > > > > > > Qua...@li...
> > > > > > > > https://lists.sourceforge.net/lists/listinfo/quantlib-d
> > > > > > > > ev
> > > > > > > >
> > > > > >
> > > > >
> > > > > -----------------------------------------------------------
> > > > > ----
> > > > > ---------------
> > > > > Check out the vibrant tech community on one of the world's
> > > > > most
> > > > > engaging tech sites, SlashDot.org! http://sdm.link/slashdot
> > > > > _______________________________________________
> > > > > QuantLib-dev mailing list
> > > > > Qua...@li...
> > > > > https://lists.sourceforge.net/lists/listinfo/quantlib-dev
> > > > >
> > > >
> > > > -------------------------------------------------------------
> > > > ----
> > > > -------------
> > > > Check out the vibrant tech community on one of the world's most
> > > > engaging tech sites, SlashDot.org! http://sdm.link/slashdot
> > > > _______________________________________________
> > > > QuantLib-dev mailing list
> > > > Qua...@li...
> > > > https://lists.sourceforge.net/lists/listinfo/quantlib-dev
> > > >
> >
|