You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/src/index.md
+7-6Lines changed: 7 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -14,13 +14,14 @@ Version 0.2 was a re-write, see the [release notes](https://github.com/mcabbott/
14
14
Version 0.4 has significant changes:
15
15
- Broadcasting options and index ranges are now written `@cast @avx A[i,j] := B[i⊗j] (i ∈ 1:3)` instead of `@cast A[i,j] := B[i⊗j] i:3, axv` (using [LoopVectorization.jl](https://github.com/JuliaSIMD/LoopVectorization.jl) for the broadcast, and supplying the range of `i`).
16
16
- To return an array without naming it, write an underscore `@cast _[i] := ...` rather than omitting it entirely.
17
+
- Some fairly obscure features have been removed for simplicity: Indexing by an array `@cast A[i,k] := B[i,J[k]]` and by a range `@cast C[i] := f(D[1:3, i])` will no longer work.
18
+
- Some dimension checks are inserted by default; previously the option `assert` did this.
17
19
- It uses [LazyStack.jl](https://github.com/mcabbott/LazyStack.jl) to combine handles slices, simplifying earlier code. This is lazier by default, write `@cast A[i,k] := log(B[k][i]) lazy=false` (with a new keyword option) to glue into an `Array` before broadcasting.
18
-
- It uses [TransmuteDims.jl](https://github.com/mcabbott/TransmuteDims.jl) to handle all permutations & many reshapes. This is lazier by default -- the earlier code sometimes copied to avoid reshaping a `PermutedDimsArray`. This isn't always faster, and can be disabled by `lazy=false`.
19
-
- It inserts some dimension checks by default, previously the option `assert` did this.
20
+
- It uses [TransmuteDims.jl](https://github.com/mcabbott/TransmuteDims.jl) to handle all permutations & many reshapes. This is lazier by default -- the earlier code sometimes copied to avoid reshaping a `PermutedDimsArray`. This isn't always faster, though, and can be disabled by `lazy=false`.
20
21
21
22
## Pages
22
23
23
-
1. Use of `@cast` for broadcasting, and slicing
24
-
2.`@reduce` and `@matmul`, for summing over some directions
@@ -977,7 +950,6 @@ function innerparse(firstA, ijk, store::NamedTuple, call::CallInfo; save=false)
977
950
innerflat = []
978
951
for (d,i) inenumerate(ijk)
979
952
iscolon(i) &&throw(MacroError("can't have a colon in inner index!", call))
980
-
isrange(i) &&@capture(i, alpha_Int:omega_) &&throw(MacroError("can't have a range in inner index!", call)) # this is an imperfect check, must not be triggered by @cast R2[j]{i:3} := M[i,j] which is another kind of range!
0 commit comments