https://github.com/ConwayJ18/comp460s18final/
| File Name | File Description |
| Driver.java | Used to run all aspects of the program at once. |
| src/dixon/Dixon.java | Contains all necessary elements for the Dixon algorithm |
| src/logicalmatrix/LogicalMatrixMultiply.java | Contains all necessary elements for Logical Matrix Multiplication |
| src/millerrabin/MillerRabin.java | Contains all necessary elements for Primality Testing |
| src/pollardrho/PollardRho.java | Contains all necessary elements for the Pollard's Rho algorithm |
| src/semiprime/SemiPrime.java | Contains all necessary elements for Semi-Prime Testing |
| src/singlethread/DixonSingleThread.java | An archival file to run Dixon on a single thread |
| src/singlethread/MillerRabinSingleThread.java | An archival file to run Primality Testing on a single thread |
| src/singlethread/SemiPrimeSingleThread.java | An archival file to run Semi-Prime Testing on a single thread |
| Documentation.pdf | The documentation associated with this project. |
This is a project designed to implement a set of Number Theoretic Algorithms on one or more threads.
The selected algorithms include the following:
- The Miller-Rabin Primality Testing Algorithm
- A standard Semi-Prime Testing Algorithm
- The Pollard's Rho Factoring Algorithm
- The Dixon Factoring Algorithm
- A Logical (0,1) Matrix Multiplication Algorithm
Each of these programs is run by the Driver.java file and can be run using multiple threads if the user so desires.
Jess Conway — Project lead. Wrote the base code for each algorithm.
Pranjali Mishra — Multithreaded each algorithm to run on multiple cores.
- Compile and run Driver.java
- Enter the number of cores (1-8) that you have on your computer
- This will determine the number of threads used by the program
- Enter a number to run the non-matrix algorithms on
- Enter a number to use as the logical matrix dimension
- Repeat 3 & 4 as many times as desired, typing "0" when finished