This the current project structure.
── cryptographic_estimators
│ ├── base_algorithm.py
│ ├── base_estimator.py
│ ├── base_problem.py
│ ├── helper.py
│ ├── libtii-cryptalib-c.dylib
│ ├── libtii-cryptalib-c.so
│ ├── MQEstimator
│ │ ├── degree_of_regularity.py
│ │ ├── mq_algorithm.py
│ │ ├── MQAlgorithms
│ │ ├── mq_estimator.py
│ │ ├── mq_helper.py
│ │ ├── mq_problem.py
│ │ ├── series
│ │ ├── temp_utils.py
│ │ └── witness_degree.py
│ └── SDEstimator
│ ├── sd_algorithm.py
│ ├── SDAlgorithms
│ ├── sd_c_interface.py
│ ├── sd_c_library_loader.py
│ ├── sd_estimator.py
│ ├── sd_helper.py
│ └── sd_problem.py
If you want to add a new estimator please run make add-estimator
and it will create the basic code and folder structure for you to edit, you also can review the DummyEstimator
to see a minimal reproduction of whats its needed to start.
── cryptographic_estimators
│ ├── base_algorithm.py
│ ├── base_problem.py
│ ├── base_estimator.py
│ └── NEWEstimator
│ ├── NEWestimator.py (Inherits from base_estimator)
│ ├── NEWproblem.py (Inherits from base_problem)
│ ├── NEWalgorithm.py (Inherits from base_algorithm)
│ └── Algorithms
│ ├── List of algorithms (Inherits from NEWalgorithm.py)
To contribute to this project please follow the conventional commits.
Branch names should be snake_case. Which means that all the text must be lowercase and replace spaces with dashes. Also we should add as a prefix based on the type of implementation. For example:
poc/some_testing_branch
refactor/modify_base_problem
feature/implement_dummy_estimator
fix/algorithm_parameter
- Last commit must be the CHANGELOG.md with a versioned tag e.g. vx.y.z. This version should match the one defined in setup.py.
- Create PR to master and fullfill the template.
To build and run the image based on Dockerfile.test
make test
or if you have Apple Silicon M1 Chip
make test-m1
Remember to document your code using sphinx syntax.