Mercurial > repos > public > sbplib_julia
annotate ext/SbplibSparseArraysExt.jl @ 1699:3e9c3986930d feature/lazy_tensors/sparse_conversions
Add extensions for SparseArrays and SparseArrayKit that allow conversion of a LazyTensor
author | Jonatan Werpers <jonatan@werpers.com> |
---|---|
date | Mon, 02 Sep 2024 15:35:54 +0200 |
parents | |
children | 8787b2f9f5f8 |
rev | line source |
---|---|
1699
3e9c3986930d
Add extensions for SparseArrays and SparseArrayKit that allow conversion of a LazyTensor
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
1 module SbplibSparseArraysExt |
3e9c3986930d
Add extensions for SparseArrays and SparseArrayKit that allow conversion of a LazyTensor
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
2 |
3e9c3986930d
Add extensions for SparseArrays and SparseArrayKit that allow conversion of a LazyTensor
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
3 using Sbplib |
3e9c3986930d
Add extensions for SparseArrays and SparseArrayKit that allow conversion of a LazyTensor
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
4 using Sbplib.LazyTensors |
3e9c3986930d
Add extensions for SparseArrays and SparseArrayKit that allow conversion of a LazyTensor
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
5 |
3e9c3986930d
Add extensions for SparseArrays and SparseArrayKit that allow conversion of a LazyTensor
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
6 using SparseArrays |
3e9c3986930d
Add extensions for SparseArrays and SparseArrayKit that allow conversion of a LazyTensor
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
7 using Tokens |
3e9c3986930d
Add extensions for SparseArrays and SparseArrayKit that allow conversion of a LazyTensor
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
8 |
3e9c3986930d
Add extensions for SparseArrays and SparseArrayKit that allow conversion of a LazyTensor
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
9 function SparseArrays.sparse(t::LazyTensor) |
3e9c3986930d
Add extensions for SparseArrays and SparseArrayKit that allow conversion of a LazyTensor
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
10 v = ArrayToken(:v, prod(domain_size(t))) |
3e9c3986930d
Add extensions for SparseArrays and SparseArrayKit that allow conversion of a LazyTensor
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
11 |
3e9c3986930d
Add extensions for SparseArrays and SparseArrayKit that allow conversion of a LazyTensor
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
12 v̄ = reshape(v,domain_size(t)...) |
3e9c3986930d
Add extensions for SparseArrays and SparseArrayKit that allow conversion of a LazyTensor
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
13 tv = reshape(t*v̄, :) |
3e9c3986930d
Add extensions for SparseArrays and SparseArrayKit that allow conversion of a LazyTensor
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
14 return Tokens._to_matrix(tv, prod(range_size(t)), prod(domain_size(t))) |
3e9c3986930d
Add extensions for SparseArrays and SparseArrayKit that allow conversion of a LazyTensor
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
15 end |
3e9c3986930d
Add extensions for SparseArrays and SparseArrayKit that allow conversion of a LazyTensor
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
16 |
3e9c3986930d
Add extensions for SparseArrays and SparseArrayKit that allow conversion of a LazyTensor
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
17 end |