DoubleHavriliakNegami Struct Reference

LibRPA: DoubleHavriliakNegami Struct Reference
LibRPA
DoubleHavriliakNegami Struct Reference

double-dispersion Havriliak-Negami model More...

#include <dielecmodel.h>

Static Public Attributes

static const int d_npar = 8
 
static const std::function< double(double, const std::vector< double > &)> func_imfreq
 
static const std::function< void(std::vector< double > &, double, const std::vector< double > &)> grad_imfreq
 

Detailed Description

double-dispersion Havriliak-Negami model

Member Data Documentation

◆ func_imfreq

const std::function< double(double, const std::vector< double > &)> DoubleHavriliakNegami::func_imfreq
static
Initial value:
= [](double u, const std::vector<double> &pars)
{
return 1.0 + (pars[0] - 1.0) / std::pow(1.0 + std::pow(u * pars[3], pars[1]), pars[2]) +
(pars[4] - 1.0) / std::pow(1.0 + pow(u * pars[7], pars[5]), pars[6]);
}

◆ grad_imfreq

const std::function< void(std::vector< double > &, double, const std::vector< double > &)> DoubleHavriliakNegami::grad_imfreq
static
Initial value:
=
[](std::vector<double> &grads, double u, const std::vector<double> &pars)
{
using std::pow;
using std::log;
grads[0] = 1.0 / pow(1.0 + pow(u * pars[3], pars[1]), pars[2]);
grads[1] = (pars[0] - 1.0) * (-pars[2]) / pow(1.0 + pow(u * pars[3], pars[1]), pars[2] + 1) *
log(u * pars[3]) * pow(u * pars[3], pars[1]);
grads[2] = (1.0 - pars[0]) * log(1.0 + pow(u * pars[3], pars[1])) /
pow(1.0 + pow(u * pars[3], pars[1]), pars[2]);
grads[3] = (pars[0] - 1.0) * (-pars[2]) / pow(1.0 + pow(u * pars[3], pars[1]), pars[2] + 1) *
pars[1] / pars[3] * pow(u * pars[3], pars[1]);
grads[4] = 1.0 / pow(1.0 + pow(u * pars[7], pars[5]), pars[6]);
grads[5] = (pars[4] - 1.0) * (-pars[6]) / pow(1.0 + pow(u * pars[7], pars[5]), pars[6] + 1) *
log(u * pars[7]) * pow(u * pars[7], pars[5]);
grads[6] = (1.0 - pars[4]) * log(1.0 + pow(u * pars[7], pars[5])) /
pow(1.0 + pow(u * pars[7], pars[5]), pars[6]);
grads[7] = (pars[4] - 1.0) * (-pars[6]) / pow(1.0 + pow(u * pars[7], pars[5]), pars[6] + 1) *
pars[5] / pars[7] * pow(u * pars[7], pars[5]);
}

The documentation for this struct was generated from the following files: