Skip to content

Conversation

@francisduffy
Copy link

There are a large amount of Doxygen warnings when ORE_BUILD_DOC is set to true and the doc generation is run. This pull request fixes those warnings.

- add missing groups
- correct some filenames
- document some missing parameters
- leave the warning about max graph nodes for now
QuantLib has DOT_GRAPH_MAX_NODES set to 150.

Don't need that many. The warnings were as follows:
- IborIndex: 30
- Calendar: 22
- GenericEngine: 50
so 100 gives plenty of room for now.
This is the value used in QuantLib.

It is needed since without it we get the warning:
Inheritance graph for 'XMLSerializable' not generated, too many nodes
(112), threshold is 80. Consider increasing DOT_GRAPH_MAX_NODES.
The main reason to add this is so that fully scoped names are used in
the quantext.tag file that is then consumed by Doxygen when generating
the docs for OREData.

Without this, there are a number of warnings of the form:
  Detected potential recursive class relation between class
  QuantExt::BondRepo::arguments and base class arguments!

The reason is that when HIDE_SCOPE_NAMES = YES, we have:
<compound kind="class">
  <name>QuantExt::BondOption::results</name>
  <filename>class_quant_ext_1_1_bond_option_1_1results.html</filename>
  <base>results</base>
</compound>
in the tag file and we get the recursive warning because Doxygen thinks
that QuantExt::BondOption::results is inheriting from itself.

When HIDE_SCOPE_NAMES = NO, we have:
<compound kind="class">
  <name>QuantExt::BondOption::results</name>
  <filename>class_quant_ext_1_1_bond_option_1_1results.html</filename>
  <base>QuantLib::Bond::results</base>
</compound>
and there is no ambiguity i.e. Doxygen knows that
QuantExt::BondOption::results is deriving from a different type namely
QuantLib::BondOption::results.
Similar to the change in quantext Doxygen, need to add this so that
fully scoped names are used in the ored.tag file that is then consumed
by Doxygen when generating the docs for OREAnalytics.

Without this, there are a number of warnings of the form:
    Detected potential recursive class relation between class
    ore::data::CommodityPositionInstrumentWrapper::arguments and base
    class arguments!
When Doxygen is processing ored.tag during OREAnalytics doc generation,
it gives warnings:
  Incomplete input: scope for class
  ore::data::BaseCorrelationCurve::QuoteData::LessDataKey not found!
  Incomplete input: scope for class
  ore::data::BaseCorrelationCurve::QuoteData::LessReal not found!

This change excludes the section from Doxygen processing so the nested
structs do not show up in the tag file and hence do not give a warning
during OREAnalytics doc generation.

Nothing is lost in the OREData documentation because these private
structs are not documented in any case e.g. AdjustForLossResults is not
documented.
Use same value as QuantLib i.e. 150. The warnings with the value set to
20 were for the following classes with the associated node size value:
  - Trade: 55
  - ore::analytics::Analytic: 27
  - ore::analytics::Analytic::Impl: 27
  - ore::analytics::SaccrTradeData::Impl: 26
  - ore::analytics::Trade: 55
  - ore::analytics::XMLSerializable: 131
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant