Gadget
mathfunc.h
Go to the documentation of this file.
1 #ifndef mathfunc_h
2 #define mathfunc_h
3 
4 #include "gadget.h"
5 
9 const double pivalue = atan(1.0) * 4.0;
10 
17 inline int max(int a, int b) {
18  return ((a > b) ? a : b);
19 }
20 
27 inline double max(double a, double b) {
28  return ((a > b) ? a : b);
29 }
30 
37 inline int min(int a, int b) {
38  return ((a < b) ? a : b);
39 }
40 
47 inline double min(double a, double b) {
48  return ((a < b) ? a : b);
49 }
50 
57 inline int isZero(double a) {
58  return ((fabs(a) < verysmall) ? 1 : 0);
59 }
60 
68 inline int isEqual(double a, double b) {
69  return ((fabs(a - b) < verysmall) ? 1 : 0);
70 }
71 
77 inline int isSmall(double a) {
78  return ((fabs(a) < rathersmall) ? 1 : 0);
79 }
80 
87 inline double logFactorial(double n) {
88  return lgamma(n + 1.0);
89 }
90 
97 inline double expRep(double n) {
98  if (n > verysmall)
99  return 1.0;
100  else if (n < -25.0)
101  return rathersmall;
102  return exp(n);
103 }
104 
110 inline double randomNumber() {
111  int r = rand();
112  double k = r % 32767;
113  return (k / 32767.0);
114 }
115 
123 inline double calcMortality(double pred, double pop, double t) {
124  if (pred < verysmall)
125  return 0.0;
126  else if (pred > pop)
127  return verybig;
128  return (-log(1.0 - (pred / pop)) * t);
129 }
130 
131 #endif
const double verybig
Definition: gadget.h:57
const double verysmall
Definition: gadget.h:61
const double rathersmall
Definition: gadget.h:58
double calcMortality(double pred, double pop, double t)
This function will calculate the calculate the effective annual mortality caused by a given predation...
Definition: mathfunc.h:123
double logFactorial(double n)
This function will calculate the value of the logarithm of n factorial.
Definition: mathfunc.h:87
int isSmall(double a)
This function will check to see if a number is rather small (or zero)
Definition: mathfunc.h:77
const double pivalue
This is the value of pi used in the simulation.
Definition: mathfunc.h:9
int isZero(double a)
This function will check to see if a number is very close to zero.
Definition: mathfunc.h:57
double randomNumber()
This function will generate a random number in the range 0.0 to 1.0.
Definition: mathfunc.h:110
int min(int a, int b)
This function will calculate the minimum of 2 numbers (integers)
Definition: mathfunc.h:37
double expRep(double n)
This function will calculate the value of the exponential of n.
Definition: mathfunc.h:97
int isEqual(double a, double b)
This function will check to see if two numbers are equal.
Definition: mathfunc.h:68
int max(int a, int b)
This function will calculate the maximum of 2 numbers (integers)
Definition: mathfunc.h:17