Checks: >
  -clang-analyzer-core.NonNullParamChecker,
  -clang-analyzer-optin.cplusplus.UninitializedObject,
  bugprone-assert-side-effect,
  -bugprone-implicit-widening-of-multiplication-result,
  -bugprone-narrowing-conversions,
  bugprone-unused-raii,
  bugprone-use-after-move,
  clang-analyzer-core.DivideZero,
  misc-unused-using-decls,
  modernize-deprecated-headers,
  modernize-loop-convert,
  modernize-make-shared,
  modernize-make-unique,
  # modernize-return-braced-init-list,
  modernize-use-default-member-init,
  modernize-use-emplace,
  modernize-use-equals-default,
  modernize-use-nodiscard,
  modernize-use-nullptr,
  modernize-use-override,
  modernize-use-using,
  -performance-avoid-endl,
  performance-faster-string-find,
  performance-for-range-copy,
  performance-inefficient-algorithm,
  performance-inefficient-vector-operation,
  performance-noexcept-move-constructor,
  performance-move-constructor-init,
  performance-type-promotion-in-math-fn,
  performance-unnecessary-copy-initialization,
  readability-const-return-type,
  readability-container-size-empty,
  readability-convert-member-functions-to-static,
  readability-else-after-return,
  readability-identifier-naming,
  readability-make-member-function-const,
  readability-qualified-auto,
  readability-redundant-control-flow,
  readability-redundant-member-init,
  readability-redundant-smartptr-get,
  readability-redundant-string-cstr,
  readability-simplify-boolean-expr

CheckOptions:
- key: bugprone-assert-side-effect.AssertMacros
  value: 'ASSERT'
- key: readability-identifier-naming.ClassCase
  value: 'CamelCase'
- key: readability-identifier-naming.EnumCase
  value: 'CamelCase'
- key: readability-identifier-naming.FunctionCase
  value: 'lower_case'
- key: readability-identifier-naming.FunctionIgnoredRegexp
  value: >-
    (^.*nVars.*$|
    |^.*limitK$|
    |^.*limitM$)
- key: readability-identifier-naming.ParameterCase
  value: 'lower_case'
- key: readability-identifier-naming.ParameterIgnoredRegexp
  value: >-
   (^_.*$|
   |^.*limitK$|
   |^.*limitM$)
- key: readability-identifier-naming.PrivateMemberCase
  value: 'lower_case'
# - key: readability-identifier-naming.PrivateMemberSuffix
#   value: '_'
- key: readability-identifier-naming.StructCase
  value: 'CamelCase'

- key: readability-identifier-naming.UnionCase
  value: 'CamelCase'
- key: readability-identifier-naming.VariableCase
  value: 'lower_case'

HeaderFilterRegex: '^./src/.*'

UseColor: true

WarningsAsErrors: ''

## The version here is arbitrary since any change to this file will
## trigger a full run of clang-tidy against all files.
## It can be useful as it seems some header changes may not trigger the
## expected rerun.
# v0
