19 return p1[0] * p2[0] + p1[1] * p2[1] + p1[2] * p2[2];
27 return {0.5 * (p1[0] + p2[0]), 0.5 * (p1[1] + p2[1]), 0.5 * (p1[2] + p2[2])};
31 return {p1[0] +
alpha * p2[0], p1[1] +
alpha * p2[1], p1[2] +
alpha * p2[2]};
48 return f / std::max(
norm(es), radius);
71 template <LFPCalculatorType Ty,
typename SegmentIdTy =
int>
85 const std::vector<double>& radius,
86 const std::vector<SegmentIdTy>& segment_ids,
88 double extra_cellular_conductivity);
90 template <
typename Vector>
91 void lfp(
const Vector& membrane_current);
102 const double f)
const;
104 std::vector<std::vector<double>>
m;
113 const double f)
const {
122 const double f)
const {
128 const std::vector<double>& radius,
129 const std::vector<int>& segment_ids,
131 double extra_cellular_conductivity);
134 const std::vector<double>& radius,
135 const std::vector<int>& segment_ids,
137 double extra_cellular_conductivity);
double point_source_lfp_factor(const Point3D &e_pos, const Point3D &seg_pos, const double radius, const double f)
std::array< double, 3 > Point3D
Point3D barycenter(const Point3D &p1, const Point3D &p2)
Point3D paxpy(const Point3D &p1, const double alpha, const Point3D &p2)
std::vector< Point3D > Point3Ds
double norm(const Point3D &p1)
double line_source_lfp_factor(const Point3D &e_pos, const Point3D &seg_0, const Point3D &seg_1, const double radius, const double f)
double dot(const Point3D &p1, const Point3D &p2)
THIS FILE IS AUTO GENERATED DONT MODIFY IT.
#define nrn_assert(x)
assert()-like macro, independent of NDEBUG status
LFPCalculator allows calculation of LFP given membrane currents.
double getFactor(const lfputils::Point3D &e_pos, const lfputils::Point3D &seg_0, const lfputils::Point3D &seg_1, const double radius, const double f) const
const std::vector< SegmentIdTy > & segment_ids_
LFPCalculator(const lfputils::Point3Ds &seg_start, const lfputils::Point3Ds &seg_end, const std::vector< double > &radius, const std::vector< SegmentIdTy > &segment_ids, const lfputils::Point3Ds &electrodes, double extra_cellular_conductivity)
LFP Calculator constructor.
std::vector< double > lfp_values_
std::vector< std::vector< double > > m
const std::vector< double > & lfp_values() const noexcept
void lfp(const Vector &membrane_current)
static double alpha(double x)