1 /* -*- mode: c++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 
3 /*
4  Copyright (C) 2004, 2005, 2006 Ferdinando Ametrano
5  Copyright (C) 2006 Katiuscia Manzoni
6  Copyright (C) 2000, 2001, 2002, 2003 RiskMap srl
7  Copyright (C) 2003, 2004, 2005, 2006, 2008 StatPro Italia srl
8 
9  This file is part of QuantLib, a free-software/open-source library
10  for financial quantitative analysts and developers - http://quantlib.org/
11 
12  QuantLib is free software: you can redistribute it and/or modify it
13  under the terms of the QuantLib license.  You should have received a
14  copy of the license along with this program; if not, please email
15  <quantlib-dev@lists.sf.net>. The license is also available online at
16  <http://quantlib.org/license.shtml>.
17 
18  This program is distributed in the hope that it will be useful, but WITHOUT
19  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
20  FOR A PARTICULAR PURPOSE.  See the license for more details.
21 */
22 
23 /*! \file frequency.hpp
24     \brief Frequency enumeration
25 */
26 
27 #ifndef quantlib_frequency_hpp
28 #define quantlib_frequency_hpp
29 
30 #include <ql/qldefines.hpp>
31 #include <iosfwd>
32 
33 namespace QuantLib {
34 
35     //! Frequency of events
36     /*! \ingroup datetime */
37     enum Frequency { NoFrequency = -1,     //!< null frequency
38                      Once = 0,             //!< only once, e.g., a zero-coupon
39                      Annual = 1,           //!< once a year
40                      Semiannual = 2,       //!< twice a year
41                      EveryFourthMonth = 3, //!< every fourth month
42                      Quarterly = 4,        //!< every third month
43                      Bimonthly = 6,        //!< every second month
44                      Monthly = 12,         //!< once a month
45                      EveryFourthWeek = 13, //!< every fourth week
46                      Biweekly = 26,        //!< every second week
47                      Weekly = 52,          //!< once a week
48                      Daily = 365,          //!< once a day
49                      OtherFrequency = 999  //!< some other unknown frequency
50     };
51 
52     /*! \relates Frequency */
53     std::ostream& operator<<(std::ostream& out,
54                              Frequency f);
55 
56 }
57 
58 #endif
59