gravatar
alpar (Alpar Juttner)
alpar@cs.elte.hu
Some usefull math constants lemon/math.h also includes the standard cmath, so one should prefer using just lemon/math.h instead of cmath.
0 2 1
default
3 files changed with 67 insertions and 2 deletions:
↑ Collapse diff ↑
Ignore white space 6 line context
1
/* -*- C++ -*-
2
 *
3
 * This file is a part of LEMON, a generic C++ optimization library
4
 *
5
 * Copyright (C) 2003-2008
6
 * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
7
 * (Egervary Research Group on Combinatorial Optimization, EGRES).
8
 *
9
 * Permission to use, modify and distribute this software is granted
10
 * provided that this copyright notice appears in all copies. For
11
 * precise terms see the accompanying LICENSE file.
12
 *
13
 * This software is provided "AS IS" with no warranty of any kind,
14
 * express or implied, and with no claim as to its suitability for any
15
 * purpose.
16
 *
17
 */
18

	
19
#ifndef LEMON_MATH_H
20
#define LEMON_MATH_H
21

	
22
///\ingroup misc
23
///\file
24
///\brief Some extensions to the standard \c cmath library.
25
///
26
///Some extensions to the standard \c cmath library.
27
///
28
///This file includes the standard math library (cmath).
29

	
30
#include<cmath>
31

	
32
namespace lemon {
33

	
34
  /// \addtogroup misc
35
  /// @{
36
  
37
  /// The Euler constant
38
  const long double E       = 2.7182818284590452353602874713526625L;
39
  /// log_2(e)
40
  const long double LOG2E   = 1.4426950408889634073599246810018921L;
41
  /// log_10(e)
42
  const long double LOG10E  = 0.4342944819032518276511289189166051L;
43
  /// ln(2)
44
  const long double LN2     = 0.6931471805599453094172321214581766L;
45
  /// ln(10)
46
  const long double LN10    = 2.3025850929940456840179914546843642L;
47
  /// pi
48
  const long double PI      = 3.1415926535897932384626433832795029L;
49
  /// pi/2
50
  const long double PI_2    = 1.5707963267948966192313216916397514L;
51
  /// pi/4
52
  const long double PI_4    = 0.7853981633974483096156608458198757L;
53
  /// sqrt(2)
54
  const long double SQRT2   = 1.4142135623730950488016887242096981L;
55
  /// 1/sqrt(2)
56
  const long double SQRT1_2 = 0.7071067811865475244008443621048490L;
57
  
58

	
59
  /// @}
60

	
61
} //namespace lemon
62

	
63
#endif //LEMON_TOLERANCE_H
Ignore white space 12 line context
... ...
@@ -14,12 +14,13 @@
14 14
lemon_libemon_la_CXXFLAGS = $(GLPK_CFLAGS) $(CPLEX_CFLAGS) $(SOPLEX_CXXFLAGS)
15 15
lemon_libemon_la_LDFLAGS = $(GLPK_LIBS) $(CPLEX_LIBS) $(SOPLEX_LIBS)
16 16

	
17 17
lemon_HEADERS += \
18 18
        lemon/dim2.h \
19 19
	lemon/maps.h \
20
	lemon/math.h \
20 21
        lemon/random.h \
21 22
	lemon/list_graph.h \
22 23
        lemon/tolerance.h
23 24

	
24 25
bits_HEADERS += \
25 26
	lemon/bits/alteration_notifier.h \
Ignore white space 6 line context
... ...
@@ -64,15 +64,16 @@
64 64

	
65 65
#include <algorithm>
66 66
#include <iterator>
67 67
#include <vector>
68 68

	
69 69
#include <ctime>
70
#include <cmath>
71 70

	
71
#include <lemon/math.h>
72 72
#include <lemon/dim2.h>
73

	
73 74
///\ingroup misc
74 75
///\file
75 76
///\brief Mersenne Twister random number generator
76 77

	
77 78
namespace lemon {
78 79

	
... ...
@@ -756,13 +757,13 @@
756 757
    ///\param theta scale parameter
757 758
    ///
758 759
    double gamma(double k,double theta=1.0)
759 760
    {
760 761
      double xi,nu;
761 762
      const double delta = k-std::floor(k);
762
      const double v0=M_E/(M_E-delta);
763
      const double v0=E/(E-delta);
763 764
      do {
764 765
	double V0=1.0-real<double>();
765 766
	double V1=1.0-real<double>();
766 767
	double V2=1.0-real<double>();
767 768
	if(V2<=v0) 
768 769
	  {
0 comments (0 inline)