annealing.hh 937 Bytes
Newer Older
1
2
3
4
5
6
7
8
/*
 * File:   annealing.hh
 * Author: Jordan P. Lefebvre, lefebvrejp@ornl.gov
 *
 * Created on August 12, 2016, 10:50 AM
 */

#ifndef RADIX_RADIXMATH_ANNEALING_HH_
9
#define RADIX_RADIXMATH_ANNEALING_HH_
10
11

#include "radixbug/bug.hh"
12
#include "radixcore/visibility.hh"
13
#include "radixmath/constants.hh"
14
15
16

#include <vector>

17
18
namespace radix
{
19
// To find a status with lower energy according to the given condition
20
21
22
23
24
25
26
template <typename status, typename energy_function,
          typename temperature_function, typename next_function>
status RADIX_PUBLIC simulated_annealing(status iOld, int c,
                                        const energy_function &ef,
                                        const temperature_function &tf,
                                        const next_function &nf);
}  // namespace radix
27
28
29
30

//
// Include templated implementation file
#include "radixmath/annealing.i.hh"
31
#endif /* RADIX_RADIXMATH_ANNEALING_HH_ */