Specifying Individual Priors for model coefficients
===================================================
based on spec by Dave Lewis, with current limitations


1. Capabilities, current limitations

1.1 For an individual variable, the following characteristics of the prior distribution of the model parameter can be set specified:
a) mode
b) variance relative to the general prior variance for ordinary variables (i.e. those for which we do not provide individual priors), see 1.3
c) "skew": when the general prior is Laplace, individual priors can be truncated at the mode to hte left or to the right. This effectively defines prior distribution as exponential or "negative exponential", may be shifted in case of non-zero prior mode. Skew parameter takes one of three values:
     0 - regular Laplace distribution (default),
     1 - exponential distribution, only values at mode or above are allowed
    -1 - "negative exponential" distribution, only values at mode or below are allowed 


1.2 Form of prior is the same for all variables. (That's why there is no "dist" field on the individual priors file format.)
However, it's possible to specify exponential or "negative exponential" distribution for variables individually.

1.3 Only relative variance mode is supported right now.
That means, variance value supplied on the individual priors file line is interpreted as a multiple of the variance for the "common" variables that do not have individual prior. If the variance value v is supplied for a variable on the individual priors file line, and the common prior variance is v0, then the prior variance for this variable will be v*v0.
The common prior variance is determined by the hyperparameter (it is the same as the hyperparameter value in the Gaussian case, and v0=0.5*gamma^2 in the Laplace case). There are three usual options to determine the hyperparameter value: explicit specification, cross-validation, or norm-based default.

1.4 Prior for the intercept can be specified as well as for features. Just provide 0 as feature id - see section 3 below.

1.5 A feature or intercept can be taken out of penalization by specifying "inf" value as variance. Infinite prior variance means zero penalty.


2. Note on Feature pre-selection

In case feature selection is requested:
a) individual priors are not taken into account when feature selection is performed
b) after feature selection is done, the program checks if the variables that have individual priors supplied for them are in the selected set. If not, those variables are added to the set.


3. Format of the Individual Priors File

The user specifies individual priors in a file which looks like this:

topic <topic-name>
<featId> <mode> <variance> [<skew>]
<featId> <mode> <variance> [<skew>]
...
endoftopic
topic <topic-name>
<featId> <mode> <variance> [<skew>]
...
endoftopic
...

Lines with 'topic' and 'endoftopic' keywords sre not needed for command-line version.
The order of topics or features within a topic don't matter. There is no need to supply sections for all topics.
Feature id equal to 0 means intercept.
Variance is floating point number or string "inf". The latter means infinity, effectively taking model parameter out of penalization.

<skew> parameter is optional, allowed for Laplace prior only, and can take one of three values: 0 (default), 1, -1.
The rest of each line is ignored by the program, so can be used for comments.


4. Program Parameters - BBRLemur

The following two parameters need to be specified in the parameter file:

indPriors.file = <file-path>;
indPriors.mode = rel;  /*the only option now available*/

5. Program Parameter - Command-line version

Command line argument -I followed by the individual priors file name