#ifndef INVERSE_LINK_FUNC_H_
#define INVERSE_LINK_FUNC_H_
#include <string>
#include <functions/ScalarFunc.h>
/**
* @short Base class for inverse link function
*
* Link functions may be expressed in the BUGS language using an
* S-style replacement function notation. For example the log link may
* be expressed as log(y) <- a + b*x or as y <- exp(a + b*x).
* In this case, the name of the inverse link function is "exp"
* and its link name is "log".
*/
class InverseLinkFunc : public ScalarFunc
{
const std::string _link;
public:
InverseLinkFunc (std::string const &name, std::string const &link);
/**
* Returns the name of the link function
*/
std::string const &linkName () const;
/** Link function */
virtual double link(double mu) const = 0;
/** Gradient of link function */
virtual double gradLink(double mu) const = 0;
};
#endif
syntax highlighted by Code2HTML, v. 0.9.1