Skip to content

Commit af8667d

Browse files
committed
Records changed.
1 parent 5bcdec2 commit af8667d

File tree

10 files changed

+26
-1659
lines changed

10 files changed

+26
-1659
lines changed

src/lines.fut

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -36,11 +36,11 @@ let linepoints (p1:point) (p2:point) : points =
3636
let len = i32.max (i32.abs(x1-x2)) (i32.abs(y1-y2))
3737
let dirx = if x2 > x1 then 1 else if x1 > x2 then -1 else 0
3838
let slop = if x2==x1 then
39-
if y2 > y1 then f32(1) else f32(-1)
40-
else f32(y2-y1) / f32.abs(f32(x2-x1))
39+
if y2 > y1 then 1f32 else -1f32
40+
else r32(y2-y1) / f32.abs(r32(x2-x1))
4141
in map (\i ->
4242
let x = x1+i*dirx
43-
let y = y1+i32(slop*f32(i))
43+
let y = y1+t32(slop*r32(i))
4444
in (x,y))
4545
(iota(len))
4646

@@ -49,8 +49,8 @@ let drawlines_seq [h][w][n] (grid: *[h][w]i32) (lines:[n]line) : [h][w]i32 =
4949
let (p1,p2) = lines[i]
5050
let ps = linepoints p1 p2
5151
in loop (grid) for j < length ps do
52-
let x = #1 (ps[j])
53-
let y = #2 (ps[j])
52+
let x = (ps[j]).1
53+
let y = (ps[j]).2
5454
let grid[y,x] = 1
5555
in grid
5656

@@ -79,13 +79,13 @@ let drawlines_par [h][w][n] (grid:*[h][w]i32) (lines:[n]line) :[h][w]i32 =
7979
else 0) xs1 xs2
8080
let slops = map (\x1 y1 x2 y2 ->
8181
if x2 == x1 then
82-
if y2 > y1 then f32(1) else f32(-1)
83-
else f32(y2-y1) / f32.abs(f32(x2-x1))) xs1 ys1 xs2 ys2
82+
if y2 > y1 then 1f32 else -1f32
83+
else r32(y2-y1) / f32.abs(r32(x2-x1))) xs1 ys1 xs2 ys2
8484
let iotas = sgmIota flags
8585
let xs = map (\x1 dirx i ->
8686
x1+dirx*i) xs1 dirxs iotas
8787
let ys = map (\y1 slop i ->
88-
y1+i32(slop*f32(i))) ys1 slops iotas
88+
y1+t32(slop*r32(i))) ys1 slops iotas
8989
let is = map (\x y -> w*y+x) xs ys
9090
let flatgrid = reshape (h*w) grid
9191
in reshape (h,w) (scatter flatgrid is (replicate nn 1))

src/lines_flat.fut

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -53,13 +53,13 @@ let drawlines [h][w][n] (grid:*[h][w]i32) (lines:[n]line) :[h][w]i32 =
5353
else 0) lines1
5454
let slops = map (\((x1,y1),(x2,y2)) ->
5555
if x2 == x1 then
56-
if y2 > y1 then f32(1) else f32(-1)
57-
else f32(y2-y1) / f32.abs(f32(x2-x1))) lines1
56+
if y2 > y1 then 1f32 else -1f32
57+
else r32(y2-y1) / f32.abs(r32(x2-x1))) lines1
5858
let iotas = sgm_iota flags
5959
let xs = map (\((x1,_),_) dirx i ->
6060
x1+dirx*i) lines1 dirxs iotas
6161
let ys = map (\((_,y1),_) slop i ->
62-
y1+i32(slop*f32(i))) lines1 slops iotas
62+
y1+t32(slop*r32(i))) lines1 slops iotas
6363
in upd_grid grid xs ys
6464

6565
let main () : [][]i32 =

src/lines_seq.fut

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,17 +12,17 @@ let compare (v1:i32) (v2:i32) : i32 =
1212
if v2 > v1 then 1 else if v1 > v2 then -1 else 0
1313

1414
let slo ((x1,y1):point) ((x2,y2):point) : f32 =
15-
if x2==x1 then if y2>y1 then f32(1) else f32(-1)
16-
else f32(y2-y1) / f32.abs(f32(x2-x1))
15+
if x2==x1 then if y2>y1 then 1f32 else -1f32
16+
else r32(y2-y1) / f32.abs(r32(x2-x1))
1717

1818
let linepoints ((x1,y1):point, (x2,y2):point) : points =
1919
let len = 1 + i32.max (i32.abs(x2-x1)) (i32.abs(y2-y1))
2020
let xmax = i32.abs(x2-x1) > i32.abs(y2-y1)
2121
let (dir,slop) =
2222
if xmax then (compare x1 x2, slo (x1,y1) (x2,y2))
2323
else (compare y1 y2, slo (y1,x1) (y2,x2))
24-
in map (\i -> if xmax then (x1+i*dir, y1+i32(slop*f32(i)))
25-
else (x1+i32(slop*f32(i)), y1+i*dir)) (iota len)
24+
in map (\i -> if xmax then (x1+i*dir, y1+t32(slop*r32(i)))
25+
else (x1+t32(slop*r32(i)), y1+i*dir)) (iota len)
2626

2727
-- Write to grid
2828
let update [h] [w] [n] (grid:*[h][w]i32)(xs:[n]i32)(ys:[n]i32):*[h][w]i32 =

src/lines_seq2.fut

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@ let compare (v1:i32) (v2:i32) : i32 =
1212

1313
-- Compute a slope
1414
let sl ((x1,y1):point) ((x2,y2):point) : f32 =
15-
if x2==x1 then if y2>y1 then f32(1) else f32(-1)
16-
else f32(y2-y1) / f32.abs(f32(x2-x1))
15+
if x2==x1 then if y2>y1 then 1f32 else -1f32
16+
else r32(y2-y1) / f32.abs(r32(x2-x1))
1717

1818
let linepoints ((x1,y1):point, (x2,y2):point) : points =
1919
let dx = i32.abs(x1-x2)
@@ -27,8 +27,8 @@ let linepoints ((x1,y1):point, (x2,y2):point) : points =
2727
else sl (y1,x1) (y2,x2)
2828
in map (\i ->
2929
if xmax then (x1+i*dir,
30-
y1+i32(slop*f32(i)))
31-
else (x1+i32(slop*f32(i)),
30+
y1+t32(slop*r32(i)))
31+
else (x1+t32(slop*r32(i)),
3232
y1+i*dir))
3333
(iota len)
3434

src/radix_sort.fut

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,8 @@ module Array = import "/futlib/array"
1616
-- A least significant digit radix sort to test out `write`.
1717
let radix_sort_step [n] (xs: [n]u32, digit_n: i32): [n]u32 =
1818
let bits = map (\(x: u32): i32 ->
19-
i32((x >> u32(digit_n))
20-
& 1u32)) xs
19+
(i32.u32 x >> digit_n)
20+
& 1) xs
2121
let bits_inv = map (\(b: i32): i32 -> 1 - b) bits
2222
let ps0 = scan (+) 0 (bits_inv)
2323
let ps0_clean = map (*) bits_inv ps0
@@ -34,5 +34,5 @@ let radix_sort [n] (xs: [n]u32): [n]u32 =
3434
radix_sort_step(xs, i)
3535

3636
let main(): []u32 =
37-
let arg = map u32 ([83, 1, 4, 99, 33, 0, 6, 5])
37+
let arg = map u32.i32 ([83, 1, 4, 99, 33, 0, 6, 5])
3838
in radix_sort(arg)

src/rsort.fut

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ module Array = import "/futlib/array"
1717
-- all elements with bitn set to the end of the array (and
1818
-- otherwise preserve the order of elements)
1919
let rsort_step [n] (xs: [n]u32, bitn: i32): [n]u32 =
20-
let bits1 = map (\x -> i32((x >> u32(bitn)) & 1u32)) xs
20+
let bits1 = map (\x -> (i32.u32 x >>> bitn) & 1) xs
2121
let bits0 = map (1-) bits1
2222
let idxs0 = map (*) bits0 (scan (+) 0 bits0)
2323
let idxs1 = scan (+) 0 bits1

src/rsort_idx.fut

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ module Array = import "/futlib/array"
1313

1414
-- Store elements for which bitn is not set first
1515
let rs_step_asc [n] ((xs:[n]u32,is:[n]i32),bitn:i32) : ([n]u32,[n]i32) =
16-
let bits1 = map (\x -> i32((x >> u32(bitn)) & 1u32)) xs
16+
let bits1 = map (\x -> (i32.u32 x >>> bitn) & 1) xs
1717
let bits0 = map (1-) bits1
1818
let idxs0 = map (*) bits0 (scan (+) 0 bits0)
1919
let idxs1 = scan (+) 0 bits1
@@ -32,7 +32,7 @@ let rsort_asc [n] (xs: [n]u32) : ([n]u32,[n]i32) =
3232

3333
-- Store elements for which bitn is set first
3434
let rs_step_desc [n] ((xs:[n]u32,is:[n]i32),bitn:i32) : ([n]u32,[n]i32) =
35-
let bits1 = map (\x -> i32((x >> u32(bitn)) & 1u32)) xs
35+
let bits1 = map (\x -> (i32.u32 x >>> bitn) & 1) xs
3636
let bits0 = map (1-) bits1
3737
let idxs1 = map (*) bits1 (scan (+) 0 bits1)
3838
let idxs0 = scan (+) 0 bits0
@@ -58,6 +58,6 @@ let eq_vec [n] (v1: [n]i32) (v2: [n]i32) : bool =
5858
reduce (&&) true (map (==) v1 v2)
5959

6060
let main() : []bool =
61-
let xs = map (\i -> u32(i)) ([83,1,4,99,33,0,6,5])
61+
let xs = map u32.i32 ([83,1,4,99,33,0,6,5])
6262
in [eq_vec (grade_up xs) ([5,1,2,7,6,4,0,3]),
6363
eq_vec (grade_down xs) ([3,0,4,6,7,2,1,5])]

src/visualise.py

Lines changed: 0 additions & 95 deletions
This file was deleted.

src/visualise_model.fut

Lines changed: 0 additions & 63 deletions
This file was deleted.

0 commit comments

Comments
 (0)