BCP has a large number of parameters that can be modified by the user by using a parameter file. The file bb.par contains a certain number of them, hopefully the ones that a user might want to modify. To get the full list of parameters and their default values, look at the definitions struct BCP_tm_par and struct BCP_lp_par in files COIN/Bcp/include/BCP_tm_param.hpp and COIN/Bcp/include/BCP_lp_param.hpp.
The file bb.par contains succinct explanations for some of the parameters and some default values. For 0/1 parameters, the meaning of only one of the two values is given, this value being the one set by default.
Some of the parameters conflicts with each other and nothing prevents the user from setting conflicting values. The result is unpredictable without looking at the code in detail. For example, setting the parameters
BCP_VerbosityShutUp 1 (to suppress all BCP printed output) and
BCP_TmVerb_BestFeasibleSolution 1 (to print the best solution found)
results in BCP printing the final solution. Another example is that, assuming that BCP uses the default branching strategy, setting the parameters
BCP_MaxPresolveIter -1 (strong branching should not be used)
BCP_StrongBranch_CloseToHalfNum 3 (default)
BCP_StrongBranch_CloseToOneNum 3 (default)
implies that more than one candidate variable is chosen (up to 6 can be selected) and since BCP can not use strong branching to decide on which variable to branch, it selects the first one and raises an error message. (To avoid the error message, the sum of the values of the last two parameters should be 1.)
It is possible for the user to define new parameters (for example to pass the name of an input file). Facilities already exist for doing that and the interested reader can look at the example BranchAndCut for an illustration.
Acknowledgements
I wish to thank Laszlo Ladányi for patiently answering my questions while developing this example.