1history(3)                         QuantLib                         history(3)
2
3
4

NAME

6       history - Version history Release 0.8.1 - June 2007
7
8       PORTABILITY
9
10       · Version 0.8.1 adds support for Boost 1.34 on Linux systems. If you
11         are using version 0.8.0 on Windows systems, you do not need this
12         upgrade.
13
14       Release 0.8.0 - May 30th, 2007
15
16       PORTABILITY
17
18       · Version 0.8.0 is the last QuantLib release to support the Metrowerks
19         CodeWarrior compiler (which was discountinued by Metrowerks.) If you
20         use such compiler and want support to continue, you can volunteer for
21         maintaining the necessary patches: contact the QuantLib developers
22         for information.
23
24       SOURCE TREE
25
26       · Files and folders in the source tree have been reorganized (hopefully
27         for th ebetter.) If you only included <ql/quantlib.hpp>, all changes
28         were taken care of for you. if you included specific headers, you
29         might want to check its current location; in particular, all folder
30         names are now lowercase.
31
32       CALENDARS
33
34       · Added 2007 holidays for Indonesia, Saudi Arabia, and South Korea
35         calendars.
36
37       CASH FLOWS
38
39       · Added floater range-accrual coupons.
40
41       INDEXES
42
43       · Added EuriborSwapFixB family.
44
45       INSTRUMENTS
46
47       · Added capped/floored floating-rate bond. It can also be used for
48         reverse floaters.
49
50       · Added delta, gamma and theta to binomial option engines (thanks to
51         Steve Cook.)
52
53       · Refactored basket engines to allow for more payoffs.
54
55       LIBOR MARKET MODEL
56
57       · This release includes an experimental implementation of a Libor
58         market model developed with Mark Joshi. Improvements since release
59         0.4.0 include normal forward-rate market model, lognormal CMS market
60         model, lognormal coterminal-swap market model, and calibration to
61         caplets and coterminal swaptions. The interface of the model and its
62         integration with the bulk of the library are still in development.
63
64       MATH
65
66       · Adaptive Gauss-Kronrod integration added.
67
68       · Added Higham's nearest correlation matrix method (thanks to Neil
69         Firth)
70
71       · Refactored optimization framework.
72
73       PROCESSES
74
75       · Added new discretization schema to Heston process.
76
77       UTILITIES
78
79       · The Handle class was split into RelinkableHandle (behaving like the
80         old Handle class) and Handle (which is notified when its copies are
81         relinked, but cannot itself be relinked.) The former can safely be
82         returned from inspectors.
83
84       Release 0.4.0 - February 20th, 2007
85
86       PORTABILITY
87
88       · Starting with release 0.4.0, the Borland free compiler 5.5 and
89         Microsoft Visual C++ 6.0 are no longer supported. If you use one of
90         these compilers and want support to continue, you can volunteer for
91         maintaining the necessary patches: contact the QuantLib developers
92         for information.
93
94       CALENDARS
95
96       · Added 2007 holidays for Hong Kong, India, Singapore, and Taiwan
97         exchanges.
98
99       LIBOR MARKET MODEL
100
101       · This release includes an experimental implementation of a Libor
102         market model developed with Mark Joshi. Improvements since release
103         0.3.14 include the use of quasi-random number generators and the
104         calculation of Greeks and of upper bounds for instruments with early-
105         exercise features. The interface of the model and its integration
106         with the bulk of the library are still in development.
107
108       INSTRUMENTS
109
110       · Added helper classes to make it easier to instantiate swaps,
111         caps/floors, and CMS instruments.
112
113       INTEREST RATES
114
115       · Added capped/floored floating-rate coupons (including convexity
116         adjustment.)
117
118       MATH
119
120       · Curve, domain and surface interfaces added.
121
122       PROCESSES
123
124       · Added reversion level to Ornstein-Uhlenbeck process (thanks to Roland
125         Lichters.)
126
127       VOLATILITY TERM STRUCTURES
128
129       · Added stripping of caplet-volatility term structure from cap quotes.
130
131       · Improved SABR interpolation and calibration.
132
133       Release 0.3.14 - November 6th, 2006
134
135       PORTABILITY
136
137       · Version 0.3.14 is the last QuantLib release to support the Borland
138         free compiler 5.5 and Microsoft Visual C++ 6.0. If you use one of
139         these compilers and want support to continue, you can volunteer for
140         maintaining the necessary patches: contact the QuantLib developers
141         for information.
142
143       LIBOR MARKET MODEL
144
145       · This release includes an experimental implementation of a Libor
146         market model developed with Mark Joshi. The interface and its
147         integration with the bulk of the library are still in development.
148
149       CURRENCIES
150
151       · Added Romanian new lev.
152
153       DATES, CALENDARS, AND DAY COUNTERS
154
155       · Added all serial 3M IMM futures (thanks to Toyin Akin.)
156
157       · Reworked the Schedule class so that it follows market conventions
158         more closely.
159
160       · Added business/252 day-count convention (thanks to Piter Dias.)
161
162       INTEREST RATES
163
164       · Added base swap-rate class and a number of actual swap rates.
165
166       · Added constant-maturity swap coupons (including convexity
167         adjustment.)
168
169       INSTRUMENTS
170
171       · Added asset swaps.
172
173       · Added face amount to bonds (defaulting to 100.)
174
175       MATH
176
177       · Added hypersphere and lower-diagonal salvaging algorithms (thanks to
178         Yiping Chen.)
179
180       PRICING ENGINES
181
182       · Added Longstaff-Schwartz Monte-Carlo algorithm for American/Bermudan
183         equity options with deterministic interest rates.
184
185       TERM STRUCTURE
186
187       · Added piecewise-spreaded yield curve (thanks to Roland Lichters.)
188
189       Release 0.3.13 - July 31st, 2006
190
191       CALENDARS
192
193       · Added NERC calendar (thanks to Joe Byers.)
194
195       INSTRUMENTS AND PRICING ENGINES
196
197       · Added continuous fixed and floating lookback options (thanks to
198         Warren Chou.)
199
200       · Added FRA and forward fixed-coupon bonds; examples provided (thanks
201         to Allen Kuo.)
202
203       · Added variance swaps (thanks to Warren Chou.)
204
205       · Added composite instrument; example provided.
206
207       · Added cash-settled swaption pricing in Black swaption engine; test
208         provided.
209
210       · Added discrete dividends and soft callability to convertible bonds.
211
212       INTEREST RATES
213
214       · Fixed business-day conventions for Euribor and LIBOR indices
215         (following below one month, month-end from one month onwards.)
216
217       MODELS
218
219       · Added more complex market parameterizations and performance
220         improvements for Libor market model (thanks to Klaus Spanderen.)
221
222       PROCESSES
223
224       · Renamed BlackScholedProcess to GeneralizedBlackScholedProcess;
225         specialized classes added for Black-Scholes, Merton, Black and
226         Garman-Kohlhagen processes.
227
228       · Added Hull-White and G2 processes for Monte Carlo simulation (thanks
229         to Banca Profilo.)
230
231       RANDOM NUMBERS
232
233       · Added possibility to skip directly to the n-th item in a Sobol
234         sequence (thanks to Richard Gould.)
235
236       MATH
237
238       · Added SABR interpolation for volatilities.
239
240       · Added general linear least-squares regression (thanks to Klaus
241         Spanderen.)
242
243       Release 0.3.12 - March 27th, 2006
244
245       CALENDARS
246
247       · Added Brazilian calendar (thanks to Piter Dias.)
248
249       · Added Argentinian, Icelandic, Indonesian, Mexican, and Ukrainian
250         calendars.
251
252       INSTRUMENTS AND PRICING ENGINES
253
254       · Added convertible bonds (thanks to Theo Boafo.)
255
256       · The cash flows returned by the Bond::cashflows method now include the
257         redemption.
258
259       · SimpleSwap can now be set an engine. If none is set, the old cash-
260         flow-based calculation is used.
261
262       · Generalized McVanillaEngine so that it can manage n-dimensional
263         processes; it now subsumes McHestonEngine.
264
265       · Added pricing of Bermudan options on binomial trees (thanks to Enrico
266         Michelotti.)
267
268       · Separated accrual and payment conventions for bonds.
269
270       · Modified basis-point sensitivity calculation so that it returns the
271         cash variation for a basis-point change in rate (it used to return
272         the figure to be multiplied by the variation in order to obtain the
273         same result.)
274
275       MODELS
276
277       · Added weights to short-rate model calibration (thanks to Enrico
278         Michelotti.)
279
280       · Added Libor market model (thanks to Klaus Spanderen.)
281
282       OPTIMIZATION
283
284       · Added Levenberg-Marquardt optimization method (thanks to Klaus
285         Spanderen.)
286
287       EXAMPLES
288
289       · Merged American and European option examples; added Bermudan option.
290
291       · Added convertible-bond example (thanks to Theo Boafo.)
292
293       Release 0.3.11 - October 20th, 2005
294
295       GLOBAL FEATURES
296
297       · Added configuration option for adding current function information to
298         error messages.
299
300       · Added hook for multiple sessions to Singleton.
301
302       CALENDARS
303
304       · Added Bombay and Taipei calendars.
305
306       CURRENCIES
307
308       · Added new Turkish lira.
309
310       INDEXES
311
312       · More accurate LIBOR calendars (thanks to Daniele de Francesco.)
313
314       · Added DKKLibor, EURLibor, and NZDLibor indexes.
315
316       · Added TRLibor index (thanks to Sercan Atalik.)
317
318       PRICING ENGINES
319
320       · Added Bates stochastic-volatility model; tests provided (thanks to
321         Klaus Spanderen.)
322
323       · Added vega to analytic discrete-averaging Asian engine; test provided
324         (thanks to Gary Kennedy.)
325
326       · Added stochastic process for caplet Libor market model; tests
327         provided (thanks to Klaus Spanderen.)
328
329       TERM STRUCTURES
330
331       · Added fixed-coupon bond helper for curve bootstrapping (thanks to
332         Toyin Akin.)
333
334       MATH
335
336       · Added tabulated Gauss-Legendre quadratures (thanks to Gary Kennedy.)
337
338       · Added more precise implementation of bivariate cumulative normal
339         distribution (thanks to Gary Kennedy.)
340
341       Release 0.3.10 - July 14th, 2005
342
343       GLOBAL FEATURES
344
345       · The suggested syntax for setting and registering with the global
346         evaluation date is now:
347
348             Settings::instance().evaluationDate() = date;
349             registerWith(Settings::instance().evaluationDate());
350
351
352       CALENDARS
353
354       · Istanbul calendar added (thanks to Serkan Atalik.)
355
356       LATTICE FRAMEWORK
357
358       · Faster implementation of binomial and trinomial trees.
359
360       MONTE CARLO FRAMEWORK
361
362       · Added generic multi-dimensional stochastic process.
363
364       · Added stochastic process array (thanks to Klaus Spanderen.)
365
366       · Multi-path generator now takes a generic stochastic process; tests
367         provided.
368
369       · New Path class implemented which stores asset values rather than
370         variations; this makes pricers independent on whether or not log-
371         variations were calculated. The new class is enabled when
372         QL_DISABLE_DEPRECATED is defined; the old class is used otherwise.
373
374       INSTRUMENTS
375
376       · Multi-asset option now takes a generic stochastic process.
377
378       MODELS
379
380       · Added Heston stochastic-volatility model; tests provided (thanks to
381         Klaus Spanderen.) Provided code include:
382
383         · a corresponding stochastic process;
384
385         · analytic and Monte Carlo option-pricing engines;
386
387         · parameter calibration.
388
389       CASH FLOWS
390
391       · Cash-flow analyses such as NPV, IRR, convexity and duration added
392         (thanks to Charles Whitmore.)
393
394       MATH
395
396       · Added Gaussian orthogonal polynomials and Gaussian quadratures; tests
397         provided (thanks to Klaus Spanderen.)
398
399       · Convergence statistics added; tests provided (thanks to Gary
400         Kennedy.)
401
402       Release 0.3.9 - May 2nd, 2005
403
404       GLOBAL FEATURES
405
406       · QL_SQRT, QL_MIN etc. deprecated in favor of std::sqrt, std::min...
407
408       · Added a tentative tracing facility to ease debugging.
409
410       · Formatters deprecated in favor of output manipulators. A number of
411         data types can now be sent directly to output streams.
412
413       · Stream-based implementation of QL_REQUIRE, QL_TRACE and similar
414         macros. Together with manipulators, this allows one to write simpler
415         error messages, as in:
416
417             QL_FAIL('forward at date ' << d << ' is ' << io::rate(f));
418
419
420       INSTRUMENTS
421
422       · Improved Bond class
423
424         · yield-related calculation can be performed with either compounded
425           or continuous compounding;
426
427         · added theoretical price based on discount curve;
428
429         · fixed-rate coupon bonds can define different rates for each coupon;
430
431         · added zero-coupon and floating-rate bonds (thanks to StatPro.)
432
433       · Option instruments now take a generic StochasticProcess; however,
434         most pricing engines still require a BlackScholesProcess. They should
435         be checked to see whether the requirement can be relaxed. Following
436         this change, Merton76Process no longer inherits from
437         BlackScholesProcess. This avoids erroneous upcasts.
438
439       · Partial fix for Bermudan swaptions with exercise lag (thanks to Luca
440         Berardi for the report and discussion.)
441
442       · Fix for analytic cap/floor engine; caplets/floorlets whose fixing is
443         in the past are now calculated correctly (thanks to Aurelien
444         Chanudet.)
445
446       CALENDARS
447
448       · Added Bratislava and Prague calendars.
449
450       INDICES
451
452       · Fixed calendars for LIBOR fixings (thanks to Daniele De Francesco.)
453
454       FINITE_DIFFERENCES FRAMEWORK
455
456       · Migrated finite-difference pricers to pricing-engine framework
457         (thanks to Joseph Wang.)
458
459       YIELD TERM STRUCTURES
460
461       · Added generic piecewise yield term structure. Client code can choose
462         what to interpolate (discounts, zero yields, forwards) and how
463         (linear, log-linear, flat) by instantiating types such as:
464
465             PiecewiseYieldCurve<Discount,LogLinear>
466             PiecewiseYieldCurve<ZeroYield,Linear>
467             PiecewiseYieldCurve<ForwardRate,Linear>
468
469
470       · Interpolated discount, zero-yield and forward-rate curves can now be
471         set any interpolation.
472
473       · FlatForward can now take rates with compounding other than
474         continuous.
475
476       · Fix for extrapolation in zero-spreaded and forward-spreaded yield
477         term structure (thanks to Adjriou Belak for the report.)
478
479       MATH
480
481       · Added backward- and forward-flat interpolations.
482
483       Release 0.3.8 - December 22nd, 2004
484
485       REQUIRED PACKAGES
486
487       · Boost version 1.31.0 or later is now required.
488
489       DOCUMENTATION
490
491       · Documentation now includes a FAQ page.
492
493       GLOBAL FEATURES
494
495       · Global evaluation date added through Settings class. Used for index-
496         fixing and exchange-rate lookup.
497
498       · added InterestRate class, which encapsulate the interest rate
499         compounding algebra. It manages day-counting convention, compounding
500         convention, conversion between different conventions, and
501         discount/compounding factor calculations. It also has its own
502         formatter.
503
504       INSTRUMENTS
505
506       · Bond and FixedCouponBond classes added (thanks to Jeff Yu) providing
507         price/yield conversions; tests provided.
508
509       DATE, CALENDARS, AND DAY COUNT CONVENTIONS
510
511       · Reworked Date interface. Added nextWeekday() and nthWeekday() static
512         methods to the class Date. Added nextIMM() for the calculation of the
513         next IMM date.
514
515       · Added WeekdayFormatter and FrequencyFormatter
516
517       · Added '1/1' day counter. The Actual365 is deprecated: as per ISDA
518         documentation 'Actual/365' is the same as 'Actual/Actual'. Use the
519         ActualActual class instead, or the Actual365Fixed class.
520
521       · Added dayCounterFromString(std::string) to QuantLibFunctions.
522
523       · Improved Beijing calendar (thanks to Zhou Wu.)
524
525       CURRENCIES AND FX RATES
526
527       · Added currency classes; CurrencyTag replaced in library code.
528
529       · Added money class providing arithmetic with or without conversions;
530         tests provided.
531
532       · Added exchange-rate class; tests provided.
533
534       · Added exchange-rate manager with smart rate lookup, i.e., able to
535         derive a missing exchange rate as a chain of provided rates; tests
536         provided.
537
538       MONTE CARLO FRAMEWORK
539
540       · Added Faure low-discrepancy sequence (thanks to Gianni Piolanti;)
541         tests provided.
542
543       · Added randomized (shifted) low discrepancy sequences that will be
544         used for randomized quasi Monte Carlo.
545
546       · Added SeedGenerator class, for random generation of seeds when they
547         are not given by the user.
548
549       · Added the implementation of Sobol sequences using the coefficients of
550         the free direction integers as provided by Bratley and Fox, who
551         credited unpublished work of Sobol's and Levitan's.
552
553       · Added an implementation of Sobol sequences using the coefficients of
554         the free direction integers of Lemieux, Cieslak, and Luttmer.
555         Coefficients for d<=40 are the same as in Bradley-Fox. For dimension
556         40<d<=360 the coefficients have been calculated as optimal values
557         based on the 'resolution' criterion. The values has been provided by
558         Christiane Lemieux, private communication, September 2004.
559
560       · PathGenerator now works correctly with processes describing S instead
561         of log S. Geometric Brownian process added (thanks to Walter
562         Penschke.)
563
564       LATTICE FRAMEWORK
565
566       · Reworked the DiscretizedAsset interface.
567
568       PRICING ENGINES FRAMEWORK
569
570       · Added pricing engine for American options with Ju quadratic
571         approximation.
572
573       · Average-price Asian pricers have been deprecated. New equivalent
574         pricing engines added.
575
576       FIXED INCOME
577
578       · Added current coupon to discretized swap and cap/floor.
579
580       · Added IndexManager as a singleton (will replace XiborManager--already
581         obsoleted in library code.)
582
583       · Added DayCounter parameter to ParCoupon (to be used for accruing
584         spreads and past fixings.) When missing, it defaults to that of the
585         term structure.
586
587       · Added compilation flag to select default floating-coupon type.
588
589       · IndexedCoupon can now take a generic index rather than a Libor
590         (thanks to Daniele De Francesco.)
591
592       · Added hooks for convexity adjustment in floating-rate coupons;
593         implemented adjustment for InArrearIndexedCoupon.
594
595       YIELD TERM STRUCTURE
596
597       · TermStructure renamed to YieldTermStructure (the former name was
598         deprecated.)
599
600       · New base class BaseTermStructure which can calculate its reference
601         date based on the global evaluation date. YieldTermStructure,
602         BlackVolTermStructure, LocalVolTermStructure,
603         CapFlatVolatilityStructure, CapletForwardVolatilityStructure, and
604         SwaptionVolatilityStructure are now derived from BaseTermStructure so
605         that they inherit its functionality.
606
607       PATTERNS
608
609       · Added Singleton pattern.
610
611       MATH
612
613       · Added N-dimensional cubic spline (thanks to Roman Gitlin.)
614
615       · Added CovarianceDecomposition class (decomposes a covariance matrix
616         into standard deviations and correlations)
617
618       MISCELLANEA
619
620       · Renamed RelinkableHandle to Handle.
621
622       PORTABILITY
623
624       · Support for Dev-C++ IDE added.
625
626       · Fixes for gcc 2.95 added (thanks to Michael Dirkmann.)
627
628       Release 0.3.7 - July 23rd, 2004
629
630       IMPORTANT
631
632       QuantLib now depends on the Boost library (www.boost.org).
633
634       You will need a working Boost installation in order to compile and use
635       QuantLib. Instructions for installing Boost from sources are available
636       at <http://www.boost.org/more/getting_started.html>. Pre-packaged
637       binaries might be available from other sources. Google is your friend
638       (or Debian, or Fink...)
639
640       DATE, CALENDARS, AND DAY COUNT CONVENTIONS
641
642       · Working on differentiating calendars depending on country or
643         exchange, instead of city.
644
645       · Added Italy (Settlement, Exchange), United Kingdom (Settlement,
646         Exchange, Metals), United States (Settlement, Exchange,
647         GovermentBond), Xetra.
648
649       · Milan, London, and NewYork calendars have been deprecated.
650
651       · Added (old-style) calendars: Beijing, Hong Kong, Riyadh, Seoul,
652         Singapore, Taiwan.
653
654       · RollingConvention has been renamed BusinessDayConvention, as for ISDA
655         definitions.
656
657       MATH
658
659       · Added rounding algorythms as per OMG enumeration/definition.
660
661       TEST SUITE
662
663       · Moved to Boost unit test framework. CppUnit is no longer needed.
664
665       · Added test for quanto and forward compound engines.
666
667       · Added test for roundings.
668
669       · Added test for discrete dividend European options.
670
671       · Added test for cliquet options.
672
673       MISCELLANEA
674
675       · enable/disableExtrapolation() methods were added to a few classes
676         such as TermStructure. They make it possible to persistently allow
677         extrapolation without the need of specifying it at every method call.
678
679       · Added user-configurable flag to disable usage of deprecated classes.
680
681       PORTABILITY
682
683       · Fink package available
684
685       · Visual C++ 7.x project files added
686
687       Release 0.3.6 - April 15th, 2004
688
689       Bug-fix release for QuantLib 0.3.5. A bug was removed where calls to
690       impliedVolatility() would break the state of the option and of all
691       options sharing the same stochastic process.
692
693       Release 0.3.5 - March 31th, 2004
694
695       BOOST SUPPORT
696
697       · When available, QuantLib 0.3.5 now uses parts of the Boost library.
698         The presence of Boost is detected automatically under Unix/Linux
699         systems; on Windows systems, it must be enabled by uncommenting the
700         relevant line in ql/userconfig.hpp.
701
702       · In the next QuantLib release, the presence of the Boost library will
703         be mandatory.
704
705       MONTE CARLO FRAMEWORK
706
707       · Modified MultiPath interface to remove drifts. They are now in the
708         stochastic processes.
709
710       · Preliminary implementation of Longstaff-Schwartz least-squares
711
712       · Monte Carlo pricer for European basket options
713
714       · Brownian-bridge bugs fixed
715
716       · StochasticProcess base class and derived classes (diffusion, jump-
717         diffusion, etc.) have been created.
718
719       PRICING ENGINES FRAMEWORK
720
721       · Pricing engines now use Payoff and Exercise classes.
722
723       · American basket options.
724
725       · Binary barrier option replaced by vanilla option with digital payoff.
726
727       · Stulz engine for max and min basket calls and puts on two assets.
728
729       · American binary option added (a.k.a. one-touch, american digital,
730         americal barrier, etc.) with different payoffs (cash/asset at
731         hit/expiry, etc.)
732
733       · Added engine for Merton 1976 jump-diffusion process.
734
735       · Added Bjerksund and Stensland approximation for American option
736         (still unstable.)
737
738       · Added Barone-Adesi and Whaley approximation for American option.
739
740       · Improved Black formula engine with more greeks added.
741
742       · Discrete geometric asian option.
743
744       · Added Leisen-Reimer binomial tree.
745
746       SHORT RATE MODELS
747
748       · Model renamed to ShortRateModel. A typedef is provided for backward
749         compatibility--it will be removed in subsequent releases.
750
751       VOLATILITY FRAMEWORK
752
753       · bug fix for short time (0<=t<=Tmin) interpolation
754
755       OPTIMIZATION FRAMEWORK
756
757       · Method renamed to OptimizationMethod. A typedef is provided for
758         backward compatibility--it will be removed in subsequent releases.
759
760       PATTERNS
761
762       · Composite pattern
763
764       MATH
765
766       · Improved cubic spline interpolation. It now handles end conditions
767         such as first derivative value, second derivative value, not-a-knot.
768         Hyman filter for monotonically constrained interpolation has been
769         implemented. Primitive calculation has been enabled in addition to
770         derivative and second derivative.
771
772       · Primitive, first derivative, and second derivative functions are
773         available for linear interpolator.
774
775       · Singular value decomposition improved.
776
777       · Added bivariate cumulative normal distribution.
778
779       · Added binomial coefficient calculation, binomial distribution,
780         cumulative binomial distribution, and Peizer-Pratt inversion (method
781         2.)
782
783       · Added beta functions.
784
785       · Added Poisson distribution and cumulative distribution.
786
787       · Added incomplete gamma functions.
788
789       · Added factorial calculation.
790
791       · Added rank-reduced square root and improved pseudo-square root of
792         square symmetric matrices.
793
794       · Added Cholesky decomposition.
795
796       TEST SUITE
797
798       · Added test for cubic spline interpolation.
799
800       · Added test for singular value decomposition.
801
802       · Added test for two-asset baskets using the Stulz pricing engine.
803
804       · Added test for Monte Carlo American cash-at-hit options.
805
806       · Added test for jump-diffusion engine.
807
808       · Added test for American and European digital options.
809
810       MISCELLANEA
811
812       · Inner namespaces have been deprecated.
813
814       · Added frequency enumeration, including 'once'.
815
816       · MarketElement renamed to Quote.
817
818       · Handling strike=0.0 where possible.
819
820       · More Payoff classes have been introduced: gap, asset-or-nothing,
821         cash-or-nothing. Payoff is now extensively used.
822
823       · Exercise class is now polymorphic. More derived classes have been
824         introduced, and they are now extensively used.
825
826       · Introduced QL_FAIL macro.
827
828       · Added calendar for Copenhagen
829
830       · 14 April 2004 (election day) added to Johannesburg calendar as a one-
831         off holiday.
832
833       · Documentation generated with Doxygen 1.3.6.
834
835       · Win32 installer generated with NSIS 2.0.
836
837       Release 0.3.4 - November 21th, 2003
838
839       MONTE CARLO FRAMEWORK
840
841       · MC European in one step with strike-independent vol curve (hopefully)
842
843       · Path pricer for Binary options. It should cover both European and
844         American style options. Also known as: Digital, Binary, Cash-At-Hit,
845         Cash-At-Expiry.
846
847       · Path pricers for barrier options
848
849       PRICING ENGINES FRAMEWORK
850
851       · More options moved to the new pricing engine framework: binary,
852         barrier
853
854       · Changed setupEngine() into setupArguments(args)
855
856       · Moved pricing-engine machinery up to Instrument class
857
858       FIXED INCOME
859
860       · New basis-point sensitivity functions
861
862       · Added Swap::startDate() and maturity()
863
864       · Cap/floor fixing days taken into account
865
866       SHORT RATE MODELS
867
868       · An additional constraint can now be passed to the calibration
869
870       VOLATILITY FRAMEWORK
871
872       · Visitable volatility term structures
873
874       OPTIMIZATION FRAMEWORK
875
876       · Added composite constraint
877
878       PATTERNS
879
880       · Visitor, Alexandrescu-style (saves some code duplication)
881
882       MATH
883
884       · Added more integration algorithms contributed by Roman Gitlin
885
886       · Relaxed constaints on interval boundaries for integration algorithms
887
888       · Interpolation traits
889
890       TEST SUITE
891
892       · Added implied cap/floor term volatility test
893
894       · Added test for binary options in PricingEngine Framework.
895
896       · Added tests for Barrier options in PricingEngine Framework. Some
897         Monte Carlo tests, but not comprehensive.
898
899       MISCELLANEA
900
901       · Conditionally allowed negative yields (disabled by default)
902
903       · Null calendar and simple day counter for reproducing theoretical
904         calculations
905
906       · Fixed for VC++.Net compilation
907
908       · Added spec file for RPMs
909
910       · Added global flag for early/late payments
911
912       · Enabled test suite for Borland
913
914       · Removed OnTheEdge VC++ configurations
915
916       · Added VC++ configurations for static and dynamic Multithread
917         libraries
918
919       · Upgraded to use Doxygen 1.3.4
920
921       Release 0.3.3 - September 3rd, 2003
922
923       MONTE CARLO FRAMEWORK
924
925       · Re-templatized Monte Carlo model based on traits.
926
927       · New path generator based on DiffusionProcess, TimeGrid, and
928         externally initialized random number generator.
929
930       · Added Halton low discrepancy sequence.
931
932       · Added sequence generators: random sequence generator creates a
933         sequence generator out of a random number generator.
934         InvCumGaussianRsg creates a gaussian sequence generator out of a
935         uniform (random or low discrepancy) sequence generator.
936
937       · RNG as constructor input constructor( long seed) deprecated.
938
939       · Mersenne Twister random number generator added
940
941       · Old PathPricers, PathGenerators, etc are available with a trailing
942         _old
943
944       · Added Jäckel's Brownian Bridge (not used yet.)
945
946       · Sobol Random Sequence Generator. Unit and Jäckel.
947
948       · Added randomized Halton sequences.
949
950       FINITE DIFFERENCE FRAMEWORK
951
952       · Old class Grid no longer exists, use CenteredGrid to obtain the same
953         result.
954
955       LATTICE FRAMEWORK
956
957       · Abstracted discretized option.
958
959       · Additive binomial trees. All binomial trees now use DiffusionProcess.
960
961       · Added Tian binomial tree.
962
963       PRICING ENGINES FRAMEWORK
964
965       · Partially implemented.
966
967       · Quanto forward compounded engines.
968
969       · Integral (european) pricing engine.
970
971       YIELD TERM STRUCTURE
972
973       · ZeroCurve: a term structure based on linear interpolation of zero
974         yields.
975
976       FIXED INCOME
977
978       · Up-front and in-arrear indexed coupon.
979
980       · Specific implementation of compound forward rate from zero yield.
981
982       · Added compound forward and zero coupon implementations.
983
984       · Added Futures rate helper with specified maturity date.
985
986       · Added bucketed bps calculation.
987
988       · Added swap constructor using specified maturity date as well as added
989         functionality in Scheduler.
990
991       · Added date-bucketed basis point sensitivity based on 1st derivative
992         of zero coupon rate.
993
994       OPTIMIZATION FRAMEWORK
995
996       · Solvers now take any function. ObjectiveFunction disappeared.
997
998       PATTERNS
999
1000       · Abstracted lazy object.
1001
1002       · Abstracted the curiously recurring template pattern.
1003
1004       DATE AND CALENDARS
1005
1006       · Added joint calendars.
1007
1008       · Tokyo, Stockholm, Johannesburg calendar improved.
1009
1010       ·
1011
1012       · Added basic date generation starting from the end.
1013
1014       MATH
1015
1016       · Added Gauss-Kronrod integration algorithm.
1017
1018       · Added primitive polynomial modulo 2 up to dimension 18 (available up
1019         to dimension 27.)
1020
1021       · Added BicubicSplineInterpolation.
1022
1023       · Numerical Recipes algorithm is back since there is a problem with
1024         Nicolas' code: it is unable to fit a straight line, it waves around
1025         the line.
1026
1027       · Prime number generation.
1028
1029       · Acklam's approximation for inverse cumulative normal distribution
1030         function (replaced Moro's algorithm as default.)
1031
1032       · Added error function.
1033
1034       · Improved Cumulative Normal Distribution function using the error
1035         function.
1036
1037       · Matrix pseudo square algorithm using salvaging algorithm(s).
1038
1039       · Added SequenceStatistics.
1040
1041       · Major Statistic reworking.
1042
1043       · Added DiscrepancyStatistic that inherits from SequenceStatistic and
1044         extends it with the calculation of L2-discrepancy.
1045
1046       · HStatistics.
1047
1048       · Added first and second derivative ot cubic splines.
1049
1050       RISK MEASURES
1051
1052       · Introduced semiVariance and regret.
1053
1054       · Redefinition of average shorfall (normalization factor now is
1055         cumulative(target) instead of 1.0)
1056
1057       MISCELLANEA
1058
1059       · QuEP 9 'generic disposable objects' implemented.
1060
1061       · Added test suite.
1062
1063       · Dataformatters extended to format long integers, Ordinal numerals,
1064         power of two formatting.
1065
1066       · Exercise class adopted.
1067
1068       · Added user configuration section.
1069
1070       · Inhibited automatic conversion of Handle<T> to RelinkableHandle<T>.
1071
1072       · Diffusion process extended.
1073
1074       · Added strikeSensitivity to the Greeks.
1075
1076       · BS does handle t==0.0 and sigma==0.0.
1077
1078       · TimeGrid has been reworked.
1079
1080       · Added payoff file for Payoff classes. Added Cash-Or-Nothing and
1081         Asset-Or-Nothing payoff classes.
1082
1083       · Upgraded to use Doxygen 1.3.
1084
1085       Release 0.3.1 - February 4th, 2003
1086
1087       FINITE DIFFERENCE FRAMEWORK
1088
1089       · partially implemented QuEP 2 (http://quantlib.org/quep.shtml)
1090
1091       VOLATILITY FRAMEWORK
1092
1093       · added Black and local volatility interface
1094
1095       PRICING ENGINES FRAMEWORK
1096
1097       · partially implemented QuEP 5 (http://quantlib.org/quep.shtml)
1098
1099       YIELD TERM STRUCTURE
1100
1101       · interface revisited
1102
1103       · added discrete time forward methods
1104
1105       · added DiscountCurve (loglinear interpolated) and CompoundForward term
1106         structures
1107
1108       · ForwardSpreadedTermStructure moved under QuantLib::TermStructures
1109         namespace
1110
1111       FIXED INCOME
1112
1113       · Modified coupons so that the payment date can be after the end of the
1114         accrual period
1115
1116       MISCELLANEA
1117
1118       · added/verified holidays of many calendars
1119
1120       · added new calendars
1121
1122       · added new currencies
1123
1124       · more date formatters
1125
1126       · added Period(std::string&)
1127
1128       · it is now possible to advance a calandar using a Period
1129
1130       · added LogLinear Interpolation
1131
1132       · the allowExtrapolation boolean in interpolation classes has been
1133         removed from constructors and added to the operator()
1134
1135       · Renamed Solver1D::lowBound and hiBound
1136
1137       · bug fixes
1138
1139       BUILD PROCESS
1140
1141       · More autoconfiscated time functions and types
1142
1143       · Migrated to latest autotools
1144
1145       · added patches for Darwin and Solaris
1146
1147       Release 0.3.0 - May 6th, 2002
1148
1149       MONTE CARLO FRAMEWORK
1150
1151       · Path and MultiPath are time-aware
1152
1153       · McPricer: extended interface, improved convergency algorithm
1154
1155       FINITE DIFFERENCE FRAMEWORK
1156
1157       · added mixed (implicit/explicit) scheme, from which Crank-Nicolson,
1158         ImplicitEuler, and ExplicitEuler are now derived
1159
1160       · Finite Difference exercise conditions are now in the
1161         FiniteDifferences folder/namespace
1162
1163       · Finite Difference pricers now start with 'Fd' letters
1164
1165       · BSMNumericalOption became BsmFdOption
1166
1167       LATTICE FRAMEWORK
1168
1169       · introduced first version of the framework
1170
1171       · CRR and JR binomial trees
1172
1173       VOLATILITY FRAMEWORK
1174
1175       · early works on reorganization of vol structures
1176
1177       YIELD TERM STRUCTURE
1178
1179       · new TermStructure class based on affine model
1180
1181       · yield curves can be spreaded in term of zeros
1182         (ZeroSpreadedTermStructure) and forwards
1183         (ForwardSpreadedTermStructure)
1184
1185       · Added dates() and times() to PiecewiseFlatForward
1186
1187       · discount factor accuracy in the yield curve bootstrapping is an input
1188
1189       · added single factor short-rate models (Hull-White, Black-Karasinski)
1190
1191       · added two factor short-rate models framework
1192
1193       · cap/floor and swaption calibration helpers
1194
1195       · added bermudan swaption pricing example (including BK and HW
1196         calibrations)
1197
1198       FIXED INCOME
1199
1200       · cap/floor and swaption tree pricer
1201
1202       · cap/floor analytical pricer
1203
1204       · vanilla swaption Jamshidian pricer
1205
1206       · Added accruedAmount() to coupons
1207
1208       · Made cash flow vector builders into functions
1209
1210       OPTIMIZATION FRAMEWORK
1211
1212       · added conjugate gradient, simplex
1213
1214       PATTERNS
1215
1216       · implemented QuEP 8 and 10
1217
1218       MISCELLANEA
1219
1220       · added allowExtrapolation parameter to interpolaton classes
1221
1222       · added 2D bilinear interpolation
1223
1224       · better spline interpolation algorithm
1225
1226       · Added non-central chi-square distribution function.
1227
1228       · Improved Inverse Cumulative Normal Distribution using Moro's
1229         algorithm
1230
1231       · Introduced class representing stochastic processes
1232
1233       · added isExpired() to Instrument interface
1234
1235       · added functions folder and namespace for QuantLibXL and any other
1236         function-like interface to QuantLib
1237
1238       · Handle is now castable to an Handle of a compatible type
1239
1240       · added downsideVariance to the Statistics class
1241
1242       · kustosis() and skewness() now handles the case of stddev == 0 and/or
1243         variance == 0
1244
1245       · added Correlation Matrix to MultiVariateAccumulator
1246
1247       · enforced MS VC compilation settings
1248
1249       · added '-debug' to the QL_VERSION version string ifdef QL_DEBUG
1250
1251       ·
1252
1253       · fixed compilation with 'g++ -pedantic'
1254
1255       · Spread as market element
1256
1257       · new calendars introduced
1258
1259       · new Xibor Indexes introduced
1260
1261       · Added optional day count to libor indexes
1262
1263       · Shortened file names within 31 char limit to support HFS
1264
1265       Release 0.2.1 - December 3rd, 2001
1266
1267       MONTE CARLO FRAMEWORK
1268
1269       · Path and MultiPath are now classes on their own
1270
1271       · PathPricer now handles both Path and MultiPath
1272
1273       · MonteCarloModel now handles both single factor and multi factors
1274         simulations.
1275
1276       · McPricer now handles both single factor and multi factors pricing.
1277         New pricing interface
1278
1279       · antithetic variance-reduction technique made possible in Monte Carlo
1280         for both single factor and multi factors
1281
1282       · Control Variate specific class removed: control variation technique
1283         is now handled by the general MC model
1284
1285       · average price and average strike asian option refactored
1286
1287       · Sample as a (value,weight) struct
1288
1289       · random number generators moved under RandomNumbers folder and
1290         namespace
1291
1292       FINITE DIFFERENCE FRAMEWORK
1293
1294       · BackwardEuler and ForwardEuler renamed ImplicitEuler and
1295         ExplicitEuler, respectively
1296
1297       · refactoring of TridiagonalOperator and derived classes
1298
1299       YIELD TERM STRUCTURE AND FIXED INCOME
1300
1301       · Added some useful methods to term structure classes
1302
1303       · Allowed passing a quote to RateHelpers as double
1304
1305       · added FuturesRateHelpers (no convexity adjustment yet)
1306
1307       · PiecewiseFlatForward now observer of rates passed as MarketElements
1308
1309       · Unified Date and Time interface in TermStructure
1310
1311       · Added BPS to generic swap legs
1312
1313       · added term_structure+swap example
1314
1315       · Fixing days introduced for floating-coupon bond
1316
1317       PATTERNS
1318
1319       · Added factory pattern
1320
1321       · Calendar and DayCounter now use the Strategy pattern
1322
1323       VARIOUS
1324
1325       · used do-while-false idiom in QL_REQUIRE-like macros
1326
1327       · now using size_t where appropriate
1328
1329       · dividendYield is now a Spread instead of a Rate (that is: cost of
1330         carry is allowed)
1331
1332       · RelinkableHandle initialized with an optional Handle
1333
1334       · Worked around VC++ problems in History constructor
1335
1336       · added QL_VERSION and QL_HEX_VERSION
1337
1338       · generic bug fixes
1339
1340       · removed classes deprecated in 0.2.0
1341
1342       INSTALLATION FACILITIES
1343
1344       · improved and smoother Win32 binary installer
1345
1346       DOCUMENTATION
1347
1348       · general re-hauling
1349
1350       · improved and extended Monte Carlo documentation
1351
1352       · improved and extended examples
1353
1354       · Upgraded to Doxygen 1.2.11.1
1355
1356       · Added man pages for installed executables
1357
1358       · added docs in Windows Help format
1359
1360       · added info on 'Win32 OnTheEdgeRelease' and 'Win32 OnTheEdgeDebug' MS
1361         VC++ configurations
1362
1363       · additional information on how to create a MS VC++ project based on
1364         QuantLib
1365
1366       Release 0.2.0 - September 18th, 2001
1367
1368       · Library:
1369
1370         · source code moved under ql, better GNU standards
1371
1372         · gcc build dir can now be separated from source tree
1373
1374         · gcc 3.0.1 port
1375
1376         · clean compilation (no warnings)
1377
1378         · bootstrap script on cygwin
1379
1380         · Fixed automatic choice of seed for random number generators
1381
1382         · Actual/actual classes
1383
1384         · extended platform support (see table in documentation)
1385
1386         · antithetic variance-reduction technique made possible in Monte
1387           Carlo
1388
1389         · added dividend-Rho greek
1390
1391         · First implementation of segment integral (to be redesigned)
1392
1393         · Knuth random generator
1394
1395         · Cash flows, scheduler, and swap (both generic and simple) added
1396
1397         · added ICGaussian random generator
1398
1399         · generic bug fixes
1400
1401       · Installation facilities:
1402
1403         · improved and smoother Win32 binary installer
1404
1405         · better distribution
1406
1407         · debian packages available
1408
1409       · Documentation:
1410
1411         · general re-hauling
1412
1413         · added examples of using QuantLib and of projects based on QL
1414
1415       Release 0.1.9 - May 31st, 2001
1416
1417       · Library:
1418
1419         · Style guidelines introduced (see http://quantlib.org/style.shtml)
1420           and partially enforced
1421
1422         · full support for Microsoft Visual Studio
1423
1424         · full support for Linux/gcc
1425
1426         · momentarily broken support for Metrowerks CodeWarrior
1427
1428         · autoconfiscation (with specialized config.*.hpp files for platforms
1429           without automake/autoconf support)
1430
1431         · Include files moved under Include/ql folder and referenced as
1432           'ql/header.hpp'
1433
1434         · Implemented expression templates techniques for array algebra
1435           optimization
1436
1437         · Added custom iterators
1438
1439         · Improved term structure
1440
1441         · Added Asian, Bermudan, Shout, Cliquet, Himalaya, and Barrier
1442           options (all with greeks calculation, control variated where
1443           possible)
1444
1445         · Added Helsinki and Wellington calendars
1446
1447         · Improved Normal distribution related functions: cumulative, inverse
1448           cumulative, etc.
1449
1450         · Added uniform and Gaussian random number generators
1451
1452         · Added Statistics class (mean, variance, skewness, downside
1453           variance, etc.)
1454
1455         · Added RiskMeasures class: VAR, average shortfall, expected
1456           shortfall, etc.
1457
1458         · Added RiskStatistics class combining Statistics and RiskMeasures
1459
1460         · Added sample accumulator for multivariate analysis
1461
1462         · Added Monte Carlo tools
1463
1464         · Added matrix-related functions (square root, symmetric Schur
1465           decomposition)
1466
1467         · Added interpolation framework (linear and cubic spline
1468           interpolation implemented).
1469
1470       · Installation facilities:
1471
1472         · Added Win32 GUI installer for binaries
1473
1474       · Documentation:
1475
1476         · support for Doxygen 1.2.7
1477
1478         · Added man documentation
1479
1480       Release 0.1.1 - November 21st, 2000
1481
1482       Initial release.
1483
1484
1485
1486Version 0.8.1                     29 Oct 2007                       history(3)
Impressum