# Specific checks ignored:
# misc-no-recursion: Rewriting things like the NeighborList to avoid recursion is out of scope for now.
# misc-non-private-member-variables-in-classes: We make extensive use of protected members, for instance in PMFT* classes from BondHistogramCompute, and the argument that this is _never_ OK is not terribly convincing.
# modernize-return-braced-init-list: This format for returning is less readable for inexperienced C++ programmers.
# modernize-use-nodiscard: This warning is raised for every method that has a return value, which is an excessive overuse of this syntax.
# modernize-use-trailing-return-type: This syntax is still generally unfamiliar to many developers and will make the code harder to maintain.
# readability-avoid-const-params-in-decls: While it may be semantically confusing, it's easier to read when declaration and definition consts match.
# readability-function-cognitive-complexity: Some heavily nested functions trigger this, it could be possible to rewrite these but that's out of scope at the moment.
# readability-magic-numbers: Wigner3j contains (necessary) magic numbers.
# readability-redundant-member-init: If the constructor changes or if there are multiple constructor signatures, prefer to be explicit.
# readability-identifier-length: We use short identifiers sparingly and in places where they are more readable than long ones.
# bugprone-easily-swappable-parameters: Many methods unavoidably take multiple float parameters.
# performance-enum-size: There is little to be gained switching from 4-byt ints to 1 byte enums.
# portability-simd-intrinsics: Allow intrinsics to improve performance.

Checks: 'bugprone-*,
         cert-*,
         clang-analyzer-*,
         cppcoreguidlines-*,
         misc-*,
         modernize-*,
         performance-*,
         portability-*,
         readability-*,
         -misc-no-recursion,
         -misc-non-private-member-variables-in-classes,
         -modernize-return-braced-init-list,
         -modernize-use-nodiscard,
         -modernize-use-trailing-return-type,
         -readability-avoid-const-params-in-decls,
         -readability-function-cognitive-complexity,
         -readability-magic-numbers,
         -readability-redundant-member-init,
         -readability-identifier-length,
         -bugprone-easily-swappable-parameters,
         -performance-enum-size,
         -portability-simd-intrinsics,
         '
