xc
Gumbel.h
1 // -*-c++-*-
2 //----------------------------------------------------------------------------
3 // xc utils library; general purpose classes and functions.
4 //
5 // Copyright (C) Luis C. PĂ©rez Tato
6 //
7 // XC utils is free software: you can redistribute it and/or modify
8 // it under the terms of the GNU General Public License as published by
9 // the Free Software Foundation, either version 3 of the License, or
10 // (at your option) any later version.
11 //
12 // This software is distributed in the hope that it will be useful, but
13 // WITHOUT ANY WARRANTY; without even the implied warranty of
14 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 // GNU General Public License for more details.
16 //
17 // You should have received a copy of the GNU General Public License
18 // along with this program.
19 // If not, see <http://www.gnu.org/licenses/>.
20 //----------------------------------------------------------------------------
21 //Gumbel.h
22 
23 #ifndef GUMBEL_HXX
24 #define GUMBEL_HXX
25 
26 #include <cmath>
27 
28 class Gumbel
29  {
30  double a;
31  double u;
32  public:
33  Gumbel(const double &alpha, const double &u_)
34  : a(alpha), u(u_) {}
35  double operator()(const double &x) const
36  { return exp(-exp(-a*(x-u))); }
37  double Inv(const double &F) const
38  { return u-(log(-log(F)))/a; }
39  };
40 
41 #endif
Definition: Gumbel.h:28