/usr/include/JAGS/function/ScalarFunction.h is in jags 4.2.0-2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | #ifndef SCALAR_FUNCTION_H_
#define SCALAR_FUNCTION_H_
#include <function/Function.h>
namespace jags {
/**
* @short Scalar-valued Function with scalar arguments
*
* ScalarFunction represents scalar-valued functions whose parameters are
* also scalars.
*/
class ScalarFunction : public Function
{
public:
ScalarFunction(std::string const &name, unsigned int npar);
/**
* Evaluates the function and returns the result
*
* @param args Vector of arguments
*/
virtual double evaluate(std::vector <double const *> const &args) const = 0;
/**
* Checks that the argument values are in the domain of the function.
*/
virtual bool
checkParameterValue(std::vector<double const *> const &args) const;
/**
* Tests whether the function preserves power transformations,
* i.e. can be expressed as f(x) = a*b^x for some value of a,b,
* where a,b, and x are all scalar.
*
* The default method returns true if the ScalarFunction preserves
* scale transformations AND only one element of mask is true.
* Such functions also preserve fixed power transformations.
*
* Note that if a > 0 then a power function is a linear function on
* the log scale: log(f(x)) = log(a) + log(b) * x.
*
* @see Function#isPower
*/
bool isPower(std::vector<bool> const &mask,
std::vector<bool> const &isfixed) const;
};
} /* namespace jags */
#endif /* SCALAR_FUNCTION_H_ */
|