Change int64 for select variables to uint64. (Closes #21)

This commit is contained in:
Sacha Ligthert 2025-01-28 02:30:25 +01:00
parent 2735074515
commit a314e945ed
3 changed files with 12 additions and 12 deletions

View File

@ -23,7 +23,7 @@ func (solver *Solver) PopulateBlocks() {
solver.findBlocks(&solver.Controller.Row9, &solver.row9s)
// This calculates and stores the total number of solutions to validate.
solver.Iter = int64(len(solver.row1s)) * int64(len(solver.row2s)) * int64(len(solver.row3s)) * int64(len(solver.row4s)) * int64(len(solver.row5s)) * int64(len(solver.row6s)) * int64(len(solver.row7s)) * int64(len(solver.row8s)) * int64(len(solver.row9s))
solver.Iter = uint64(len(solver.row1s)) * uint64(len(solver.row2s)) * uint64(len(solver.row3s)) * uint64(len(solver.row4s)) * uint64(len(solver.row5s)) * uint64(len(solver.row6s)) * uint64(len(solver.row7s)) * uint64(len(solver.row8s)) * uint64(len(solver.row9s))
}
@ -114,9 +114,9 @@ func (solver *Solver) Tracker() {
var track int
// Tracking the rate, starting point
var rateStart int64
var rateStart uint64
// Tracking the rate, difference between previous iterations
var rateDiff int64
var rateDiff uint64
// Tracking duration
var timerStart = time.Now()
@ -164,7 +164,7 @@ func (solver *Solver) Tracker() {
}
// Printing the progress
log.Println("Processing: " + strconv.Itoa(int(percentage)) + "% (" + strconv.FormatInt(solver.counter.Load(), 10) + "/" + strconv.Itoa(int(solver.Iter)) + "); Rate: " + strconv.FormatInt(rateDiff, 10) + "/sec for " + timer_elapsed.String() + "; Time left (est.): " + est_fin)
log.Println("Processing: " + strconv.Itoa(int(percentage)) + "% (" + strconv.FormatUint(solver.counter.Load(), 10) + "/" + strconv.Itoa(int(solver.Iter)) + "); Rate: " + strconv.FormatUint(rateDiff, 10) + "/sec for " + timer_elapsed.String() + "; Time left (est.): " + est_fin)
// After we are done printing, exit this for-loop
if percentage == 100 {
@ -240,14 +240,14 @@ func (solver *Solver) validateCombination(row1 string, row2 string, row3 string,
}
// Calculate the average rate in a stored slice of rates.
func (solver *Solver) calcAVG() (avg int64) {
var avgSum int64
func (solver *Solver) calcAVG() (avg uint64) {
var avgSum uint64
for _, value := range solver.rates {
avgSum += value
avgSum += uint64(value)
}
avg = avgSum / int64(len(solver.rates))
avg = avgSum / uint64(len(solver.rates))
return
}

View File

@ -57,5 +57,5 @@ func (solver *Solver) setWorkload(agents []int) {
solver.row1s = solver.row1s[start:finish]
// Recalculate how much we need to grind through
solver.Iter = int64(len(solver.row1s)) * int64(len(solver.row2s)) * int64(len(solver.row3s)) * int64(len(solver.row4s)) * int64(len(solver.row5s)) * int64(len(solver.row6s)) * int64(len(solver.row7s)) * int64(len(solver.row8s)) * int64(len(solver.row9s))
solver.Iter = uint64(len(solver.row1s)) * uint64(len(solver.row2s)) * uint64(len(solver.row3s)) * uint64(len(solver.row4s)) * uint64(len(solver.row5s)) * uint64(len(solver.row6s)) * uint64(len(solver.row7s)) * uint64(len(solver.row8s)) * uint64(len(solver.row9s))
}

View File

@ -28,9 +28,9 @@ type Solver struct {
// Slice of possible blocks for the 9th row.
row9s []string
// Maximum number of possible solutions with the current set of rows.
Iter int64
Iter uint64
// Progress counter, needs atomic due to the number of updates.
counter atomic.Int64
counter atomic.Uint64
// Slice of rates for accurate duration estimation.
rates []int64
rates []uint64
}