|
1 | 1 | import math, nimsimd/sse2, random
|
2 | 2 |
|
| 3 | +func m128(a: float32): M128 {.inline.} = mm_set1_ps(a) |
| 4 | + |
| 5 | +func m128i(a: int32): M128i {.inline.} = mm_set1_epi32(a) |
| 6 | + |
| 7 | +func `and`(a, b: M128): M128 {.inline.} = mm_and_ps(a, b) |
| 8 | + |
| 9 | +func `and`(a, b: M128i): M128i {.inline.} = mm_and_si128(a, b) |
| 10 | + |
| 11 | +func `or`(a, b: M128): M128 {.inline.} = mm_or_ps(a, b) |
| 12 | + |
| 13 | +func `xor`(a, b: M128): M128 {.inline.} = mm_xor_ps(a, b) |
| 14 | + |
| 15 | +func `>`(a, b: M128): M128 {.inline.} = mm_cmpgt_ps(a, b) |
| 16 | + |
| 17 | +func `>=`(a, b: M128): M128 {.inline.} = mm_cmpge_ps(a, b) |
| 18 | + |
| 19 | +func `<`(a, b: M128): M128 {.inline.} = mm_cmplt_ps(a, b) |
| 20 | + |
| 21 | +func `+`(a, b: M128): M128 {.inline.} = mm_add_ps(a, b) |
| 22 | + |
| 23 | +func `+=`(a: var M128, b: M128) {.inline.} = a = a + b |
| 24 | + |
| 25 | +func `-`(a, b: M128): M128 {.inline.} = mm_sub_ps(a, b) |
| 26 | + |
| 27 | +func `*`(a, b: M128): M128 {.inline.} = mm_mul_ps(a, b) |
| 28 | + |
| 29 | +func `/`(a, b: M128): M128 {.inline.} = mm_div_ps(a, b) |
| 30 | + |
| 31 | +func `/=`(a: var M128, b: M128) {.inline.} = a = a / b |
| 32 | + |
3 | 33 | const
|
4 | 34 | F2 = (0.5 * (sqrt(3.0) - 1)).float32
|
5 | 35 | G2 = ((3 - sqrt(3.0)) / 6).float32
|
@@ -736,19 +766,20 @@ when defined(release):
|
736 | 766 | when isMainModule:
|
737 | 767 | ## Draw an image to see what the noise looks like
|
738 | 768 |
|
739 |
| - import chroma, flippy |
| 769 | + import pixie |
740 | 770 |
|
741 | 771 | var s = initSimplex(1988)
|
742 | 772 | s.frequency = 0.1
|
743 |
| - let img = newImage(480, 480, 3) |
744 |
| - let g = s.grid((0, 0), (480, 480)) |
| 773 | + let |
| 774 | + image = newImage(480, 480) |
| 775 | + g = s.grid((0, 0), (480, 480)) |
745 | 776 | for x in 0 ..< 480:
|
746 | 777 | for y in 0 ..< 480:
|
747 | 778 | # for z in 0 ..< 1:
|
748 | 779 | let
|
749 | 780 | # v = s.value(x.float32, y.float32)#, z.float32)
|
750 | 781 | v = g[x, y] #, z]
|
751 | 782 | c = (((v + 1) / 2) * 255).uint8
|
752 |
| - img.putRgba(x, y, rgba(c, c, c, 255)) |
| 783 | + image[x, y] = rgba(c, c, c, 255) |
753 | 784 |
|
754 |
| - img.save("examples/noise.png") |
| 785 | + image.writeFile("examples/noise.png") |
0 commit comments