-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Git workflow and pre-commit updates (#21)
* added cpp check to pr workflow * testing pre-commit hooks * added pre-commit hooks for cpp formatting * added cpp pre-commit hook, updated readme * Added pre-commit hooks for cpp code analysis * update requirements * update github workflows * update github workflows * update github workflows * update github workflows * wip * wip * Fix C++ files from cppcheck --------- Co-authored-by: Michelle Richer <[email protected]>
- Loading branch information
1 parent
c9ac1e8
commit 35367d1
Showing
9 changed files
with
387 additions
and
419 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,38 +1,59 @@ | ||
exclude: | | ||
(?x)^( | ||
src/perm-mv0\.h$ | | ||
src/kperm-gray\.h$ | | ||
src/swap\.h$ | ||
) | ||
ci: | ||
skip: | ||
[cppcheck, cpplint, clang-format] | ||
|
||
repos: | ||
- repo: https://github.com/pre-commit/pre-commit-hooks | ||
rev: v4.5.0 | ||
hooks: | ||
- id: check-added-large-files # prevents giant files from being commit | ||
- id: check-ast # Check whether files parse as valid python. | ||
- id: check-case-conflict # Checks conflict case-insensitive | ||
- id: check-executables-have-shebangs | ||
- id: check-json | ||
- id: check-merge-conflict | ||
- id: check-symlinks # Check for symlinks which don't point | ||
- id: check-toml | ||
- id: check-vcs-permalinks | ||
- id: debug-statements # Check for debugger imports and py37 breakpt | ||
- id: detect-private-key # Checks for the existence of private keys. | ||
- id: destroyed-symlinks | ||
- id: end-of-file-fixer # Makes sure files end in a newline | ||
- id: fix-byte-order-marker # Removes UTF-8 byte order marker | ||
- id: mixed-line-ending # Replaces or checks mixed line ending. | ||
- id: pretty-format-json # Checks JSON are pretty | ||
args: ["--autofix", "--no-sort-keys"] | ||
- id: trailing-whitespace # Trims trailing whitespace. | ||
- repo: https://github.com/Lucas-C/pre-commit-hooks | ||
rev: v1.5.4 | ||
hooks: | ||
- id: remove-crlf | ||
- repo: https://github.com/psf/black | ||
rev: 23.12.1 | ||
hooks: | ||
- id: black | ||
- repo: https://github.com/astral-sh/ruff-pre-commit | ||
rev: 'v0.1.9' | ||
hooks: | ||
- id: ruff | ||
- repo: https://github.com/python-jsonschema/check-jsonschema | ||
rev: 0.27.3 | ||
hooks: | ||
- id: check-github-workflows | ||
- repo: https://github.com/pre-commit/pre-commit-hooks | ||
rev: v4.5.0 | ||
hooks: | ||
- id: check-added-large-files # prevents giant files from being commit | ||
- id: check-ast # Check whether files parse as valid python. | ||
- id: check-case-conflict # Checks conflict case-insensitive | ||
- id: check-executables-have-shebangs | ||
- id: check-json | ||
- id: check-merge-conflict | ||
- id: check-symlinks # Check for symlinks which don't point | ||
- id: check-toml | ||
- id: check-vcs-permalinks | ||
- id: debug-statements # Check for debugger imports and py37 breakpt | ||
- id: detect-private-key # Checks for the existence of private keys | ||
- id: destroyed-symlinks | ||
- id: end-of-file-fixer # Makes sure files end in a newline | ||
- id: fix-byte-order-marker # Removes UTF-8 byte order marker | ||
- id: mixed-line-ending # Replaces or checks mixed line ending | ||
- id: pretty-format-json # Checks JSON are pretty | ||
args: ["--autofix", "--no-sort-keys"] | ||
- id: trailing-whitespace # Trims trailing whitespace | ||
- repo: https://github.com/Lucas-C/pre-commit-hooks | ||
rev: v1.5.5 | ||
hooks: | ||
- id: remove-crlf | ||
- repo: https://github.com/psf/black | ||
rev: 24.2.0 | ||
hooks: | ||
- id: black | ||
- repo: https://github.com/astral-sh/ruff-pre-commit | ||
rev: v0.3.2 | ||
hooks: | ||
- id: ruff | ||
- repo: https://github.com/python-jsonschema/check-jsonschema | ||
rev: 0.28.0 | ||
hooks: | ||
- id: check-github-workflows | ||
- repo: https://github.com/pocc/pre-commit-hooks | ||
rev: v1.3.5 | ||
hooks: | ||
- id: cppcheck | ||
args: ["--inline-suppr", "--suppress=missingIncludeSystem", | ||
"--suppress=*:src/swap.h", "--suppress=*:src/perm-mv0.h", "--suppress=*:src/kperm-gray.h"] | ||
- id: cpplint | ||
args: ["--root=src", "--filter=-build/include_subdir"] | ||
- id: clang-format | ||
args: ["-i", "-style={BasedOnStyle: google, IndentWidth: 4}"] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,6 +1,5 @@ | ||
r"""Module for computing the permanents of matrices.""" | ||
|
||
|
||
__all__ = [ | ||
"opt", | ||
"combinatoric", | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,20 +1,48 @@ | ||
#include <complex> | ||
/* Copyright 2034 QC-Devs (GPLv3) */ | ||
|
||
#include "permanent.h" | ||
|
||
#include <complex> | ||
|
||
template double combinatoric<double>(const std::size_t, const std::size_t, | ||
const double *); | ||
|
||
template double combinatoric_rectangular<double>(const std::size_t, | ||
const std::size_t, | ||
const double *); | ||
|
||
template double glynn<double>(const std::size_t, const std::size_t, | ||
const double *); | ||
|
||
template double glynn_rectangular<double>(const std::size_t, const std::size_t, | ||
const double *); | ||
|
||
template double ryser<double>(const std::size_t, const std::size_t, | ||
const double *); | ||
|
||
template double ryser_rectangular<double>(const std::size_t, const std::size_t, | ||
const double *); | ||
|
||
template double opt<double>(const std::size_t, const std::size_t, | ||
const double *); | ||
|
||
template std::complex<double> combinatoric<std::complex<double>>( | ||
const std::size_t, const std::size_t, const std::complex<double> *); | ||
|
||
template std::complex<double> combinatoric_rectangular<std::complex<double>>( | ||
const std::size_t, const std::size_t, const std::complex<double> *); | ||
|
||
template std::complex<double> glynn<std::complex<double>>( | ||
const std::size_t, const std::size_t, const std::complex<double> *); | ||
|
||
template std::complex<double> glynn_rectangular<std::complex<double>>( | ||
const std::size_t, const std::size_t, const std::complex<double> *); | ||
|
||
template std::complex<double> ryser<std::complex<double>>( | ||
const std::size_t, const std::size_t, const std::complex<double> *); | ||
|
||
template std::complex<double> ryser_rectangular<std::complex<double>>( | ||
const std::size_t, const std::size_t, const std::complex<double> *); | ||
|
||
template double combinatoric<double>(const std::size_t, const std::size_t, double *const); | ||
template double combinatoric_rectangular<double>(const std::size_t, const std::size_t, double *const); | ||
template double glynn<double>(const std::size_t, const std::size_t, double *const); | ||
template double glynn_rectangular<double>(const std::size_t, const std::size_t, double *const); | ||
template double ryser<double>(const std::size_t, const std::size_t, double *const); | ||
template double ryser_rectangular<double>(const std::size_t, const std::size_t, double *const); | ||
template double opt<double>(const std::size_t, const std::size_t, double *const); | ||
|
||
template std::complex<double> combinatoric<std::complex<double>>(const std::size_t, const std::size_t, std::complex<double> *const); | ||
template std::complex<double> combinatoric_rectangular<std::complex<double>>(const std::size_t, const std::size_t, std::complex<double> *const); | ||
template std::complex<double> glynn<std::complex<double>>(const std::size_t, const std::size_t, std::complex<double> *const); | ||
template std::complex<double> glynn_rectangular<std::complex<double>>(const std::size_t, const std::size_t, std::complex<double> *const); | ||
template std::complex<double> ryser<std::complex<double>>(const std::size_t, const std::size_t, std::complex<double> *const); | ||
template std::complex<double> ryser_rectangular<std::complex<double>>(const std::size_t, const std::size_t, std::complex<double> *const); | ||
template std::complex<double> opt<std::complex<double>>(const std::size_t, const std::size_t, std::complex<double> *const); | ||
template std::complex<double> opt<std::complex<double>>( | ||
const std::size_t, const std::size_t, const std::complex<double> *); |
Oops, something went wrong.