37#ifndef LAPLACE_SOLVER_HH_INCLUDED
38#define LAPLACE_SOLVER_HH_INCLUDED
42#include <boost/static_assert.hpp>
44#include <cartodata/volume/volume.h>
49template <
typename Real>
53 "LaplaceSolver can only be specialized for types"
54 " with std::numeric_limits support");
56 "LaplaceSolver can only be specialized for "
57 " floating-point (non-integer) types");
68 void SOR(Real absolute_precision,
69 float typical_cortical_thickness);
80 m_verbosity = verbosity;
84 static const int s_border_width = 1;
static Real best_precision()
carto::VolumeRef< Real > solution() const
void initialize_solution()
Initialize the output volume to a reasonable value.
void set_verbosity(const int verbosity)
void clamp_to_range(Real min, Real max)
LaplaceSolver(const carto::VolumeRef< int16_t > &classif)
void SOR(Real absolute_precision, float typical_cortical_thickness)
T min(const Volume< T > &vol)
T max(const Volume< T > &vol)
static const bool is_integer
static const bool is_specialized