Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
7196 commits
Select commit Hold shift + click to select a range
0090b38
change logic for mull
Mar 4, 2026
ed79799
mull conditon
Mar 5, 2026
0fe1af0
simplify modulo +=
Mar 5, 2026
0428b22
more mull test
Mar 5, 2026
7b52196
change table
Mar 5, 2026
f703fae
print example
Mar 6, 2026
074c92d
print example
Mar 6, 2026
2a61699
format
Mar 6, 2026
2c37a6f
gpu device test
Mar 5, 2026
79e1994
Edit broadcast_softmax.cpp
Mar 5, 2026
2d084ef
test/broadcast_softmax.cpp
Mar 5, 2026
462627b
remove comment ifdef0
Mar 5, 2026
96b2297
use generate as an example
Mar 5, 2026
9075ec3
complete generate examples
Mar 5, 2026
b1440d8
remove nvfunctional
Mar 6, 2026
7967a3f
val wrapper
Mar 6, 2026
858351e
fix special members
Mar 6, 2026
55e2da9
add explicit
Mar 6, 2026
e73d7f5
fix print for icc
Mar 6, 2026
889ed16
fixes for const
Mar 6, 2026
0e3565e
return fixes
Mar 6, 2026
a6887ef
Update Boost section of CML to use C++17
Mar 6, 2026
ae893fc
Add non-template comparison only for MSVC platforms
Mar 6, 2026
e64bdfa
Merge branch 'print-example' into 'master'
Mar 6, 2026
a13208b
Update tests to check for compatibility with MSVC
Mar 6, 2026
25c73ab
Update example to check for MSVC compatibility
Mar 6, 2026
d7ee6b8
Fix detection of MSVC platforms
Mar 6, 2026
6eef1da
Merge pull request #136 from mborland/cpp
Mar 6, 2026
fdf1572
Merge pull request #134 from mborland/patch-1
Mar 6, 2026
99f4592
Merge pull request #135 from mborland/msvc
Mar 6, 2026
61b362e
Add testing of other ordering operators
Mar 6, 2026
b25dfef
Force add the permissive- flag or tests will fail with C++17
Mar 6, 2026
d7a9fe1
Merge pull request #137 from mborland/ordering
Mar 6, 2026
53f4cf2
Merge pull request #138 from mborland/flag
Mar 6, 2026
4fce4b1
minor fix
Mar 7, 2026
0767354
use value wrapper
Mar 7, 2026
a4762ec
comment device_array
Mar 7, 2026
981cfc0
Update README.md
Mar 7, 2026
b46b6f5
Update README.md
Mar 7, 2026
b7f4dcf
Update README.md
Mar 7, 2026
76683f6
show that device restriction with val also works
Mar 8, 2026
95367d8
improve const_cast
Mar 8, 2026
dbed17f
add compare include
Mar 8, 2026
8b92826
remove val test
Mar 8, 2026
18b0240
purge includes
Mar 8, 2026
c21efa5
includes
Mar 8, 2026
f4adcb9
fix includes
Mar 8, 2026
0f15b30
fix includes
Mar 8, 2026
e4a8708
try one more
Mar 8, 2026
7b5d6e5
Enhance array element retrieval examples
Mar 9, 2026
9a2ba39
Merge pull request #140 from correaa/correaa-patch-3
Mar 9, 2026
9ec70b8
fix msvc warnings
Mar 9, 2026
e82604d
Merge branch 'purge-includes' into 'master'
Mar 9, 2026
b78b939
iwyu keep
Mar 9, 2026
218f291
Edit reference.adoc
Mar 9, 2026
7bd77f4
Edit reference.adoc
Mar 9, 2026
f6be7f5
circle python
Mar 10, 2026
e267cc4
out of bouds assert
Mar 10, 2026
b3f3a54
use python version
Mar 10, 2026
9276f70
turcan suggestions
Mar 10, 2026
8e46193
Clean up installation instructions in install.adoc
Mar 10, 2026
bab5db8
Add requirements for Multi library usage
Mar 10, 2026
67810d3
Merge pull request #141 from correaa/correaa-patch-4
Mar 10, 2026
a5fd555
Merge branch 'assert-on-out-of-range-extension' into 'master'
Mar 10, 2026
0d56552
Revise explanation of array dimensionality and sizes
Mar 10, 2026
d19e656
Add link to Boost.Core in installation guide
Mar 10, 2026
37dd685
Merge pull request #142 from correaa/correaa-patch-5
Mar 10, 2026
b78963c
more links
Mar 10, 2026
ca4bd6a
Update links to Compiler Explorer in interop.adoc
Mar 10, 2026
6e6f0d2
Update links to open with Compiler Explorer
Mar 10, 2026
e6a9d65
Update link text for Compiler Explorer example
Mar 10, 2026
ad88de7
Update links to Compiler Explorer in tutorial.adoc
Mar 10, 2026
671f18a
remove weasel works
Mar 10, 2026
ad075d9
fixes titles
Mar 10, 2026
aeaead6
fixes
Mar 10, 2026
a55c0ef
better primer
Mar 10, 2026
f0a890e
reextent clarification
Mar 10, 2026
7b91611
typos
Mar 11, 2026
60aca23
add gaussian example
Mar 11, 2026
341dabf
gaussian blur
Mar 11, 2026
b86c000
fix link
Mar 11, 2026
7730dca
fix tabs
Mar 11, 2026
c4d6d80
do not allow failing mull
Mar 11, 2026
a013527
Add pagination
Mar 11, 2026
58238a2
Fix clang-10 CI failure by checking existence of <compare>
Mar 11, 2026
84b98f2
Merge pull request #144 from mborland/ci
Mar 11, 2026
ee456c3
Merge pull request #143 from mborland/pagination
Mar 11, 2026
b5748a5
Edit nav.adoc
Mar 13, 2026
2890abc
Edit pull_request_template.md
Mar 16, 2026
c2c4c78
format code
Mar 16, 2026
d691bfb
produce error on format
Mar 16, 2026
1043efa
better prepush
Mar 16, 2026
2ef3ba2
Merge branch 'gpu-device-test' into 'master'
Mar 16, 2026
1941271
io
Mar 17, 2026
eec1aaf
gcc 13.3 nvcc 12.0
Mar 17, 2026
82a371d
fix prepush
Mar 17, 2026
c53fde0
remove noexcept
Mar 17, 2026
7097325
ws
Mar 17, 2026
698b540
[CHORE] ADL and example tweaks/fixes.
Mar 14, 2026
7607a30
Merge branch 'correaa:master' into adl-examples-tweaks
Mar 17, 2026
18a9546
[PR] ADL and Examples fixes.
Mar 17, 2026
d6cd68e
[FIX] Remove redundant code `auto&` -> `auto`, `T&&` -> `T`.
Mar 17, 2026
e1cd39b
[CHORE] Review feedback fixes.
Mar 17, 2026
8d78c84
[CHORE] Use `double` for the lu_fact example.
Mar 17, 2026
0b4fa73
Merge branch 'workaround-nvcc12-gcc13p3' into 'master'
Mar 17, 2026
c762cdb
diagonal restore
Mar 17, 2026
718b62b
[CHORE] Review feedback fixes.
Mar 17, 2026
19bd3ee
Merge branch 'master' into adl-examples-tweaks
Mar 17, 2026
26f196d
[FIX] Fix lu_fact.cpp example.
Mar 17, 2026
8178c90
Merge branch 'adl-examples-tweaks' of github.com:amlel-el-mahrouss/bo…
Mar 17, 2026
c499ce3
[FIX] Patch variable `m` with correct value.
Mar 17, 2026
be1b832
Merge branch 'diagonal-restore' into 'master'
Mar 17, 2026
1213c25
[CHORE] Update lu_fact and lu_solve examples.
Mar 18, 2026
d378694
[CHORE] Fixed lu_fact example.
Mar 18, 2026
9b95fde
[CHORE] Update lu_solve.cpp example.
Mar 18, 2026
434d8a5
Merge branch 'master' into adl-examples-tweaks
Mar 18, 2026
b552e91
[CHORE] Fix ADL header file and ran clang-format and lu_fact.cpp and …
Mar 18, 2026
2df48ff
[MERGE] Merge branch 'adl-examples-tweaks' of github.com:amlel-el-mah…
Mar 18, 2026
ba5dd91
Merge branch 'master' into 'print-format'
Mar 18, 2026
5e178eb
liniting
Mar 18, 2026
529d74f
stress-dev-restriction
Mar 18, 2026
c4f7653
libc++ debug
Mar 18, 2026
c69fe8e
Merge branch 'print-format' into 'master'
Mar 19, 2026
a545a9d
Merge branch 'stress-dev-restriction' into 'master'
Mar 19, 2026
63c6735
Merge branch 'less-commas-in-constructors' into 'master'
Mar 19, 2026
712b9df
using directive
Mar 19, 2026
4567655
nolint
Mar 19, 2026
d0a664d
lint-paren
Mar 19, 2026
71964e8
[FIX] Fix indentation problem in lu_fact.cpp example.
Mar 19, 2026
9e9c8ce
Merge branch 'lint-paren' into 'master'
Mar 19, 2026
170f9d4
format off
Mar 19, 2026
f123837
rename ADL macros
Mar 19, 2026
7002ee4
fix dimensions
Feb 13, 2026
ad29693
workaround problems with cuda 11
Feb 13, 2026
ab88e94
fix for bulleye gcc 9
Feb 13, 2026
695e544
Edit broadcast_multiplication.cpp
Feb 13, 2026
9b97d85
Edit broadcast_multiplication.cpp
Feb 13, 2026
a0f4e7c
Edit broadcast_multiplication.cpp
Mar 5, 2026
7078827
constructors-and-noexcept
Mar 19, 2026
5b39dc6
Merge branch 'constructors-and-noexcept' into 'master'
Mar 19, 2026
815f7fe
parent
Mar 20, 2026
7fa61ab
Merge branch 'multiplication-table' into 'master'
Mar 20, 2026
75d3766
more lint
Mar 20, 2026
776a7b6
clang format 20
Mar 20, 2026
c2bbfeb
more clang format
Mar 20, 2026
df659c5
improve ci
Mar 20, 2026
a1c0574
better deps
Mar 20, 2026
0673b47
remove c++20 clang from fast ci
Mar 20, 2026
dbe9f2a
more paren
Mar 20, 2026
6b843d8
Merge branch 'doc-review' into 'master'
Mar 21, 2026
58a19e9
[FEAT] Use main try { and fix ADL.hpp alignement.
Mar 21, 2026
fed0f16
[CHORE] Fixing clang-format' mess.
Mar 21, 2026
b18cb5e
[CHORE] Remove unused using directives.
Mar 21, 2026
3400357
[CHORE] Update lu_solve example.
Mar 21, 2026
fd266af
[CHORE] Fix ident issues in lu_solve.
Mar 21, 2026
852f92d
Merge branch 'master' into adl-examples-tweaks
Mar 21, 2026
003fc1f
Merge pull request #145 from amlel-el-mahrouss/adl-examples-tweaks
Mar 21, 2026
5824d4d
fix examples
Mar 22, 2026
a700d2e
generated reference
Mar 22, 2026
ea5c61c
remove comments
Mar 22, 2026
e19d837
Merge branch 'try-mrdocs' into 'master'
Mar 22, 2026
ddd0d5e
add make
Mar 22, 2026
2f96cd7
change wget url
Mar 22, 2026
53c0c16
new line
Mar 22, 2026
a02f975
description for an array class
Mar 22, 2026
efe4e77
doc on first decl
Mar 22, 2026
8265988
remove privates
Mar 22, 2026
6ce4d1a
note for dynamic_array
Mar 22, 2026
ce178c7
description for constructor
Mar 22, 2026
6621aea
use always
Mar 22, 2026
dcf97eb
namespace description
Mar 22, 2026
33b6d9b
use all not always
Mar 22, 2026
8823871
add private special
Mar 22, 2026
3c9d889
use derived
Mar 22, 2026
f6ab771
base members
Mar 22, 2026
44d36fe
add hlink
Mar 22, 2026
11119f0
ns description
Mar 22, 2026
106bd1d
add array ref input to see if it works
Mar 22, 2026
697e725
base url
Mar 22, 2026
267b52a
namespace boost
Mar 22, 2026
fd4b224
add private
Mar 22, 2026
d4d12f6
array_ref description
Mar 22, 2026
a4c4b50
x86 for mrdocs
Mar 22, 2026
e10ba87
ws
Mar 22, 2026
3d44eed
inherited
Mar 22, 2026
a73a05e
new pattern
Mar 22, 2026
cf248ea
more internal
Mar 22, 2026
bf8eeae
Fix 404 edit this page by pointing to develop instead of HEAD
Mar 22, 2026
6ad5f33
Merge pull request #162 from mborland/404
Mar 22, 2026
3daf061
param doc
Mar 22, 2026
1c03e83
restore type
Mar 22, 2026
7c0fa3e
document assign
Mar 22, 2026
b7fa0ba
Revert "Fix 404 edit this page by pointing to develop instead of HEAD"
Mar 22, 2026
9ce7f11
param in brief
Mar 22, 2026
e810673
const subarray
Mar 22, 2026
29cd1dd
subarray description
Mar 22, 2026
6e337bf
remove iterator typedef
Mar 22, 2026
4d8a279
mdspan interop
Mar 22, 2026
1cf757f
mdspan interaction
Mar 22, 2026
df69a5b
Merge branch 'mdspan' into 'master'
Mar 23, 2026
469af5f
Edit pages.yml
Mar 23, 2026
25b1c99
more doc
Mar 23, 2026
ae0b877
mdspan feature
Mar 23, 2026
313d37a
doc
Mar 23, 2026
58a2ab1
more lint
Mar 24, 2026
d1a2121
Edit intro.adoc
Mar 24, 2026
7984f01
remove state functions
Mar 24, 2026
5b6ee50
Merge branch 'master' into 'mdspan'
Mar 24, 2026
9031d8e
Edit .gitlab-ci-correaa.yml
Mar 24, 2026
2b582b8
Edit README.md
Mar 24, 2026
15d5374
Merge branch 'clang-tidy-refresh-22' into 'master'
Mar 24, 2026
35965c2
Merge branch 'mdspan' into 'master'
Mar 24, 2026
a40793e
fix swap
Mar 24, 2026
aa9d1cf
fix move
Mar 24, 2026
f75fac3
remove ci test
Mar 24, 2026
52420d4
fix inq ci
Mar 24, 2026
fde3e47
cppcheck suppress
Mar 24, 2026
2d68c5e
remove paren
Mar 24, 2026
aa5245f
paren and nolint
Mar 24, 2026
5465873
boost multi as ovewrite
Mar 24, 2026
39556f4
Merge branch 'fix-swap' into 'master'
Mar 24, 2026
722a79f
move bm
Mar 25, 2026
3e714f8
try inq again
Mar 25, 2026
af51e42
to basic
Mar 25, 2026
7617e85
add ls
Mar 25, 2026
91a77d8
fix dir name
Mar 25, 2026
44774da
use symlink
Mar 25, 2026
fdf7d83
inq test finish
Mar 25, 2026
1baecb4
more inq fixes
Mar 25, 2026
555c261
theresa gemm fix
Mar 25, 2026
6965680
using std::norm
Mar 25, 2026
a4205c8
more lint
Mar 25, 2026
eaa4789
more lint
Mar 25, 2026
0efdef9
use talk
Mar 25, 2026
1800c4e
more nolint
Mar 25, 2026
1a6def8
Merge branch 'fix-inq-ci' into 'master'
Mar 25, 2026
23e83d5
Merge branch 'theresa-gemm-fix' into 'master'
Mar 25, 2026
5deebcc
cppcheck suppress
Mar 25, 2026
623f8ec
dot element
Mar 25, 2026
2528dde
more inq fix rocm
Mar 25, 2026
f0a0025
fix inq rocm ci
Mar 25, 2026
f72e03f
Merge branch 'fix-decimal-dot-in-test' into 'master'
Mar 25, 2026
fdc670e
better ci
Mar 26, 2026
9eb6c05
image for python 3.12
Mar 26, 2026
3c776f6
Merge branch 'improve-ci' into 'master'
Mar 26, 2026
a931ce3
Add dependabot workflow
Mar 26, 2026
89c3e8f
Merge pull request #163 from mborland/dependabot
Mar 26, 2026
5663233
Bump @antora/lunr-extension in /doc in the all-dependencies group
Mar 26, 2026
bb96d1f
Merge pull request #164 from correaa/dependabot/npm_and_yarn/doc/all-…
Mar 26, 2026
847dbc8
Merge branch 'master' into cufft-bug
Mar 26, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
278 changes: 61 additions & 217 deletions .clang-format
Original file line number Diff line number Diff line change
@@ -1,230 +1,74 @@
# https://clang-format-configurator.site
# Copyright 2020-2025 Alfredo A. Correa
# this format specification requires clang-format version 15, it is optimized for clang-format version 19
---
Language: Cpp
# BasedOnStyle: Google
#AccessModifierOffset: -1
AlignAfterOpenBracket: BlockIndent # Align
Language: Cpp
AccessModifierOffset: -3
AlignAfterOpenBracket: BlockIndent
AlignArrayOfStructures: Right
#AlignConsecutiveMacros: None
AlignConsecutiveAssignments: Consecutive # None
#AlignConsecutiveBitFields: None
AlignConsecutiveDeclarations: Consecutive
#AlignEscapedNewlines: Left
AlignOperands: AlignAfterOperator
AlignTrailingComments: false
#AllowAllArgumentsOnNextLine: true
#AllowAllParametersOfDeclarationOnNextLine: true
#AllowShortEnumsOnASingleLine: true
#AllowShortBlocksOnASingleLine: Never
AllowShortCaseLabelsOnASingleLine: true # false
#AllowShortFunctionsOnASingleLine: All
#AllowShortLambdasOnASingleLine: All
#AllowShortIfStatementsOnASingleLine: WithoutElse
#AllowShortLoopsOnASingleLine: true
#AlwaysBreakAfterDefinitionReturnType: None
#AlwaysBreakAfterReturnType: None
#AlwaysBreakBeforeMultilineStrings: true
AlwaysBreakTemplateDeclarations: No # Yes
#AttributeMacros:
# - __capability
#BinPackArguments: true
#BinPackParameters: true
#BraceWrapping:
# AfterCaseLabel: false
# AfterClass: false
# AfterControlStatement: Never
# AfterEnum: false
# AfterFunction: false
# AfterNamespace: false
# AfterObjCDeclaration: false
# AfterStruct: false
# AfterUnion: false
# AfterExternBlock: false
# BeforeCatch: false
# BeforeElse: false
# BeforeLambdaBody: false
# BeforeWhile: false
# IndentBraces: false
# SplitEmptyFunction: true
# SplitEmptyRecord: true
# SplitEmptyNamespace: true
#BreakBeforeBinaryOperators: None
#BreakBeforeConceptDeclarations: true
#BreakBeforeBraces: Attach
#BreakBeforeInheritanceComma: false
AlignConsecutiveAssignments:
Enabled: true
AcrossEmptyLines: false
AcrossComments: false
AlignConsecutiveDeclarations:
Enabled: true
AcrossEmptyLines: false
AcrossComments: false
AlignConsecutiveMacros: None
AlignOperands: AlignAfterOperator
AllowAllArgumentsOnNextLine: false
AllowShortLambdasOnASingleLine: All
AllowShortCaseLabelsOnASingleLine: true
AlwaysBreakTemplateDeclarations: No
# BreakConstructorInitializers: BeforeComma
BreakInheritanceList: BeforeComma
#BreakBeforeTernaryOperators: true
#BreakConstructorInitializersBeforeComma: false
#BreakConstructorInitializers: BeforeColon
#BreakAfterJavaFieldAnnotations: false
#BreakStringLiterals: true
ColumnLimit: 0
#CommentPragmas: '^ IWYU pragma:'
QualifierAlignment: Right # Leave
#CompactNamespaces: false
BraceWrapping:
BeforeLambdaBody: false
ColumnLimit: 0
QualifierAlignment: Right
ConstructorInitializerIndentWidth: 0
ContinuationIndentWidth: 99
#Cpp11BracedListStyle: true
#DeriveLineEnding: true
#DerivePointerAlignment: true
#DisableFormat: false
#EmptyLineAfterAccessModifier: Never
#EmptyLineBeforeAccessModifier: LogicalBlock
#ExperimentalAutoDetectBinPacking: false
#PackConstructorInitializers: NextLine
#BasedOnStyle: ''
#ConstructorInitializerAllOnOneLineOrOnePerLine: false
#AllowAllConstructorInitializersOnNextLine: true
ContinuationIndentWidth: 4
Cpp11BracedListStyle: true
FixNamespaceComments: true
#ForEachMacros:
# - foreach
# - Q_FOREACH
# - BOOST_FOREACH
#IfMacros:
# - KJ_IF_MAYBE
#IncludeBlocks: Regroup
#IncludeCategories:
# - Regex: '^<ext/.*\.h>'
# Priority: 2
# SortPriority: 0
# CaseSensitive: false
# - Regex: '^<.*\.h>'
# Priority: 1
# SortPriority: 0
# CaseSensitive: false
# - Regex: '^<.*'
# Priority: 2
# SortPriority: 0
# CaseSensitive: false
# - Regex: '.*'
# Priority: 3
# SortPriority: 0
# CaseSensitive: false
#IncludeIsMainRegex: '([-_](test|unittest))?$'
#IncludeIsMainSourceRegex: ''
#IndentAccessModifiers: true # false
AccessModifierOffset: -98 # 2
#IndentCaseLabels: true
#IndentCaseBlocks: false
#IndentGotoLabels: true
IncludeBlocks: Regroup
IncludeCategories:
- Regex: <(boost\/multi)\/
Priority: 1
- Regex: <([A-Za-z0-9\Q/-_\E])+>
Priority: 5
- Regex: <(boost)\/
Priority: 4
- Regex: <([A-Za-z0-9.\Q/-_\E])+>
Priority: 3
- Regex: '"([A-Za-z0-9.\Q/-_\E])+"'
Priority: 2
#IndentPPDirectives: Leave
#IndentPPDirectives: None
#IndentExternBlock: AfterExternBlock
#IndentRequires: false
IndentWidth: 99
#IndentWrappedFunctionNames: false
#InsertTrailingCommas: None
#JavaScriptQuotes: Leave
#JavaScriptWrapImports: true
#KeepEmptyLinesAtTheStartOfBlocks: false
#LambdaBodyIndentation: Signature
#MacroBlockBegin: ''
#MacroBlockEnd: ''
#MaxEmptyLinesToKeep: 1
#NamespaceIndentation: None
#ObjCBinPackProtocolList: Never
#ObjCBlockIndentWidth: 2
#ObjCBreakBeforeNestedBlockParam: true
#ObjCSpaceAfterProperty: false
#ObjCSpaceBeforeProtocolList: true
#PenaltyBreakAssignment: 2
#PenaltyBreakBeforeFirstCallParameter: 1
#PenaltyBreakComment: 300
#PenaltyBreakFirstLessLess: 120
#PenaltyBreakOpenParenthesis: 0
#PenaltyBreakString: 1000
IndentWidth: 4
# LambdaBodyIndentation: Signature
# OneLineFormatOffRegex: ^(\#ifdef|\#endif) # for clang-format version 21
# PackConstructorInitializers: CurrentLine
PenaltyBreakTemplateDeclaration: 10
#PenaltyExcessCharacter: 1000000
#PenaltyReturnTypeOnItsOwnLine: 200
#PenaltyIndentedWhitespace: 0
PointerAlignment: Left
#PPIndentWidth: -1
#RawStringFormats:
# - Language: Cpp
# Delimiters:
# - cc
# - CC
# - cpp
# - Cpp
# - CPP
# - 'c++'
# - 'C++'
# CanonicalDelimiter: ''
# BasedOnStyle: google
# - Language: TextProto
# Delimiters:
# - pb
# - PB
# - proto
# - PROTO
# EnclosingFunctions:
# - EqualsProto
# - EquivToProto
# - PARSE_PARTIAL_TEXT_PROTO
# - PARSE_TEST_PROTO
# - PARSE_TEXT_PROTO
# - ParseTextOrDie
# - ParseTextProtoOrDie
# - ParseTestProto
# - ParsePartialTestProto
# CanonicalDelimiter: pb
# BasedOnStyle: google
#ReferenceAlignment: Pointer
#ReflowComments: true
#RemoveBracesLLVM: false
#SeparateDefinitionBlocks: Leave
#ShortNamespaceLines: 1
#SortIncludes: CaseSensitive
#SortJavaStaticImport: Before
#SortUsingDeclarations: true
#SpaceAfterCStyleCast: false
#SpaceAfterLogicalNot: false
SpaceAfterTemplateKeyword: false # true
#SpaceBeforeAssignmentOperators: true
#SpaceBeforeCaseColon: false
#SpaceBeforeCpp11BracedList: false
#SpaceBeforeCtorInitializerColon: true
#SpaceBeforeInheritanceColon: true
SpaceBeforeParens: Custom # ControlStatements
ReferenceAlignment: Left
SpaceAfterTemplateKeyword: false
SpaceBeforeAssignmentOperators: true
SpaceBeforeParens: Custom
SpaceBeforeParensOptions:
AfterControlStatements: false # true
# AfterForeachMacros: true
# AfterFunctionDefinitionName: false
# AfterFunctionDeclarationName: false
# AfterIfMacros: true
# AfterOverloadedOperator: false
# BeforeNonEmptyParentheses: false
#SpaceAroundPointerQualifiers: Default
#SpaceBeforeRangeBasedForLoopColon: true
#SpaceInEmptyBlock: false
#SpaceInEmptyParentheses: false
AfterControlStatements: false
AfterForeachMacros: false
AfterFunctionDeclarationName: false
AfterFunctionDefinitionName: false
AfterIfMacros: false # AfterNot: false
AfterOverloadedOperator: false # AfterPlacementOperator: false
AfterRequiresInClause: false
AfterRequiresInExpression: false
BeforeNonEmptyParentheses: false
SpacesBeforeTrailingComments: 2
#SpacesInAngles: Never
#SpacesInConditionalStatement: false
#SpacesInContainerLiterals: true
#SpacesInCStyleCastParentheses: false
SpacesInLineCommentPrefix:
Minimum: 1
# Maximum: -1
#SpacesInParentheses: false
#SpacesInSquareBrackets: false
#SpaceBeforeSquareBrackets: false
#BitFieldColonSpacing: Both
Standard: c++17
#StatementAttributeLikeMacros:
# - Q_EMIT
#StatementMacros:
# - Q_UNUSED
# - QT_REQUIRE_VERSION
TabWidth: 99
#UseCRLF: false
UseTab: ForContinuationAndIndentation # Never
Minimum: 1
Standard: c++17
TabWidth: 4
UseTab: ForContinuationAndIndentation
WhitespaceSensitiveMacros:
- BOOST_REQUIRE
- BOOST_TEST
- BOOST_TEST_REQUIRE
#WhitespaceSensitiveMacros:
# - STRINGIZE
# - PP_STRINGIZE
# - BOOST_PP_STRINGIZE
# - NS_SWIFT_NAME
# - CF_SWIFT_NAME
...
65 changes: 41 additions & 24 deletions .clang-tidy
Original file line number Diff line number Diff line change
@@ -1,47 +1,64 @@
# -*-indent-tabs-mode:nil;c-basic-offset:2;tab-width:2;autowrap:nil;-*-
# Copyright 2020-2025 Alfredo A. Correa

WarningsAsErrors: '*'
HeaderFilterRegex: '.'
FormatStyle: file
TransformLambdas: none

CheckOptions:
- { key: readability-identifier-naming.ClassCase , value: lower_case }
- { key: readability-identifier-naming.FunctionCase , value: lower_case }
- { key: readability-identifier-naming.GlobalConstantCase , value: aNy_CasE }
- { key: readability-identifier-naming.NamespaceCase , value: lower_case }
- { key: readability-identifier-naming.PrivateMemberPrefix , value: '' }
- { key: readability-identifier-naming.PrivateMemberSufix , value: _ }
- { key: readability-identifier-naming.StructCase , value: lower_case }
- { key: readability-identifier-naming.TemplateParameterCase , value: CamelCase }
- { key: readability-identifier-length.MinimumLoopCounterNameLength, value: 2 }
- { key: readability-identifier-length.MinimumParameterNameLength , value: 2 }
- { key: readability-identifier-length.MinimumVariableNameLength , value: 2 }
- { key: readability-identifier-length.IgnoredLoopCounterNames , value: "^[ijk_]$" }
- { key: readability-identifier-length.IgnoredVariableNames , value: "^[ijk]$" }
- { key: readability-identifier-naming.GlobalConstantCase , value: aNy_CasE }
- { key: readability-identifier-naming.PrivateMemberSufix , value: _ }

# for range-for loops, e.g. `for(auto i : is) ...`
# - { key: readability-identifier-length.IgnoredVariableNames , value: "^[ijk]$" }
- { key: readability-identifier-naming.ClassCase , value: lower_case }
- { key: readability-identifier-naming.FunctionCase , value: lower_case }
- { key: readability-identifier-naming.GlobalConstantCase , value: aNy_CasE }
- { key: readability-identifier-length.IgnoredLoopCounterNames , value: "^[ijk_]$" }
- { key: readability-identifier-length.IgnoredParameterNames , value: "^[xyzabcdnml]$" }
- { key: readability-identifier-length.IgnoredVariableNames , value: "^[ijk_]$" }
- { key: readability-identifier-length.MethodCase , value: lower_case }
- { key: readability-identifier-length.MinimumLoopCounterNameLength , value: 2 }
- { key: readability-identifier-length.MinimumParameterNameLength , value: 2 }
- { key: readability-identifier-length.MinimumVariableNameLength , value: 2 }
- { key: readability-identifier-naming.NamespaceCase , value: lower_case }
- { key: readability-identifier-naming.PrivateMemberPrefix , value: '' }
- { key: readability-identifier-naming.PrivateMemberSuffix , value: _ }
- { key: readability-identifier-naming.PrivateMethodSuffix , value: _ }
- { key: readability-identifier-naming.StructCase , value: lower_case }
- { key: readability-identifier-naming.TemplateParameterCase , value: CamelCase }
- { key: readability-identifier-naming.TypeTemplateParameterIgnoredRegexp, value: expr-type}
- { key: readability-operators-representation.BinaryOperators , value: '&&;&=;&;|;~;!;!=;||;|=;^;^='}
# value: expr-type , bug in clang 16 in c++20 mode https://stackoverflow.com/a/75157215/225186

Checks: '*,
-altera-struct-pack-align,
-boost-use-ranges,
-cert-dcl21-cpp,
-cppcoreguidelines-avoid-magic-numbers,
-cppcoreguidelines-macro-usage,
-cppcoreguidelines-pro-bounds-avoid-unchecked-container-access,
-fuchsia-default-arguments-calls,
-fuchsia-statically-constructed-objects,
-fuchsia-overloaded-operator,
-fuchsia-trailing-return,
-hicpp-no-array-decay,
-llvm-prefer-static-over-anonymous-namespace,
-llvmlibc-*,
-modernize-use-nodiscard,
-readability-magic-numbers
'
-modernize-use-trailing-return-type,
-readability-magic-numbers,
-readability-simplify-boolean-expr'

## explanation of the suppressed rules above:
# -altera-struct-pack-align, // this asks to use non-standard pragmas such as __attribute__((aligned(0))) and _attribute__((packed)), may interfeere with gcc/nvcc compatibility?
# -boost-use-ranges // would introduce a dependency on Boost
# -cert-dcl21-cpp // this asks postfix operator++ to return a const value
# -cppcoreguidelines-avoid-magic-numbers, // all tests use magic numbers
# -cppcoreguidelines-macro-usage, // BLAS adaptors uses a lot of macros
# -cppcoreguidelines-pro-bounds-avoid-unchecked-container-access // tests use magic numbers
# -fuchsia-statically-constructed-objects, // used for traits, is_const_subarray
# -fuchsia-default-arguments-calls, // this library uses STL functions, which use default arguments
# -fuchsia-overloaded-operator, // this library overloads operators (==, <, +, &)
# -fuchsia-trailing-return, // to allow any '-> decltype(auto)', contradicts modernize trailing
# -hicpp-no-array-decay, // for Boost Lightweight Test
# -llvm-prefer-static-over-anonymous-namespace, // contradicts other rules
# -llvmlibc-*, // nonsense warnings, for llvm developers
# -modernize-use-nodiscard, // this would add [[nodiscard]] to almost all functions, adding a lot of noise
# -readability-magic-numbers, // all tests use magic numbers

# -modernize-use-trailing-return-type, // mandates all lambdas end with -> auto
# -readability-magic-numbers, // many tests use magic numbers
# -readability-simplify-boolean-expr, // for Boost Lightweight Test BOOST_TEST
9 changes: 9 additions & 0 deletions .deepsource.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
version = 1

test_patterns = ["test/**"]

[[analyzers]]
name = "test-coverage"

[[analyzers]]
name = "cxx"
Loading