Skip to content

Commit 71210ff

Browse files
slight improvement 2
1 parent 59e7d60 commit 71210ff

File tree

1 file changed

+17
-7
lines changed

1 file changed

+17
-7
lines changed

src/main.rs

Lines changed: 17 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ fn main(){
2929
println!("You have chosen to order numbers upto {}", _totalNodes);
3030
println!("You have chosen to hava a max number of threads of {}", _maxThreads);
3131
let totalNodes:i16 = _totalNodes.parse::<i16>().unwrap();
32-
let maxThreads:i8 = _maxThreads.parse::<i8>().unwrap();
32+
let maxThreads:i16 = _maxThreads.parse::<i16>().unwrap();
3333
let now = Instant::now();
3434

3535
let paths = getCore(totalNodes, maxThreads, now);
@@ -39,17 +39,17 @@ fn main(){
3939
println!("It took aproximately {} seconds to compute", endTime);
4040
}
4141

42-
fn getCore(totalNodes:i16, maxThreads:i8, now:Instant) -> Vec<Vec<i16>>{
42+
fn getCore(totalNodes:i16, maxThreads:i16, now:Instant) -> Vec<Vec<i16>>{
4343
let connections:Vec<[i16; 2]> = findConnections(totalNodes);
4444
let (sender, reciever) = sync_channel(maxThreads as usize);
4545
let mut paths:Vec<Vec<i16>> = vec![];
4646

4747
println!("There are {} connections", connections.len());
4848

4949
let mut i:i16 = 0;
50-
let mut openThreads = 0;
50+
let mut openThreads:i16 = 0;
5151
loop{
52-
while (openThreads < maxThreads as usize) && (i < totalNodes){
52+
while (openThreads < maxThreads) && (i < totalNodes){
5353
startCalcAsync(i, connections.clone(), totalNodes.clone(), sender.clone());
5454
openThreads += 1;
5555
i += 1;
@@ -61,7 +61,7 @@ fn getCore(totalNodes:i16, maxThreads:i8, now:Instant) -> Vec<Vec<i16>>{
6161

6262
println!("finnished task {} of {} at {} seconds", completedTask.startNode, totalNodes, now.elapsed().as_secs());
6363

64-
if openThreads == 0 {
64+
if openThreads < 1 {
6565
break;
6666
}
6767
}
@@ -173,6 +173,16 @@ fn findConnections(totalNodes:i16) -> Vec<[i16; 2]> {
173173
}
174174

175175
fn isSquare(num:i16) -> bool{
176-
let sqrt:f64 = (num as f64).sqrt();
177-
return sqrt == sqrt.round();
176+
let mut i:i16 = 2;
177+
loop {
178+
if i*i > num {
179+
return false;
180+
}
181+
else if i*i == num {
182+
return true;
183+
}
184+
else{
185+
i += 1;
186+
}
187+
};
178188
}

0 commit comments

Comments
 (0)