9 #include "../Core/SharedLibraryExportMacros.h" 11 #include "../Core/InterpolatingFunctionALGLIB.h" 13 #ifndef TOOLCHAIN_MSVC 27 std::list<const double *>
__x;
30 std::list<const double *>
__y;
48 std::vector<Core::InterpolatingFunctionALGLIB*>
__result;
50 #ifndef TOOLCHAIN_MSVC 51 pthread_mutex_t __sync_mutex;
57 std::list<int>::const_iterator __quantity_id_iter;
62 void interpolate_thread();
68 #ifndef TOOLCHAIN_MSVC 69 pthread_mutex_init(&__sync_mutex, NULL);
74 void push_back(
const double *x,
84 void calculate(
unsigned num_threads);
94 {
return __result[__result.size() - __quantity_id.size()];}
104 operator bool()
const {
return __quantity_id.size();}
106 friend void *do_interpolation(
void *);
std::list< const double * > __y
The array of y values to use in the interpolation.
std::list< const double * > __x
The array of x values to use in the interpolation.
Defines constant to serve as identifier of the various quantities handled by the stellar evolution in...
InterpolationQueue()
Create an empty queue.
std::list< int > __grid_index
The index of the grid point being interpolated.
int grid_index() const
The grid index of the currently selected result.
Core::InterpolatingFunctionALGLIB * result() const
The currently selected interupolation result.
std::list< int > __quantity_id
The quantity ID of the quantity being interpolated.
A class that handles a queue of interpolation tasks. Also functions as an iterator over the results...
std::list< size_t > __npoints
The number of points to use in the interpolation.
std::list< int > __nodes
The number of nodes to use in the interpolation.
int quantity_id() const
The quantity ID of the currently selected result.
Function which interpolates, with possible smoothing, between points.
std::list< double > __smoothing
The smoothing to use in the interpolation.
std::vector< Core::InterpolatingFunctionALGLIB * > __result
The interpolation results.