annotate ext/SbplibSparseArraysExt.jl @ 1708:8787b2f9f5f8 feature/lazy_tensors/sparse_conversions

Add docstrings
author Jonatan Werpers <jonatan@werpers.com>
date Wed, 04 Sep 2024 22:47:41 +0200
parents 3e9c3986930d
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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
1708
8787b2f9f5f8 Add docstrings
Jonatan Werpers <jonatan@werpers.com>
parents: 1699
diff changeset
9 """
8787b2f9f5f8 Add docstrings
Jonatan Werpers <jonatan@werpers.com>
parents: 1699
diff changeset
10 sparse(t::LazyTensor)
8787b2f9f5f8 Add docstrings
Jonatan Werpers <jonatan@werpers.com>
parents: 1699
diff changeset
11
8787b2f9f5f8 Add docstrings
Jonatan Werpers <jonatan@werpers.com>
parents: 1699
diff changeset
12 The sparse matrix representation of `t`.
8787b2f9f5f8 Add docstrings
Jonatan Werpers <jonatan@werpers.com>
parents: 1699
diff changeset
13
8787b2f9f5f8 Add docstrings
Jonatan Werpers <jonatan@werpers.com>
parents: 1699
diff changeset
14 If `L` is a `LazyTensor` and `v` a tensor, then `A = sparse(L)` is constructed
8787b2f9f5f8 Add docstrings
Jonatan Werpers <jonatan@werpers.com>
parents: 1699
diff changeset
15 so that `A*reshape(v,:) == reshape(L*v,:)`.
8787b2f9f5f8 Add docstrings
Jonatan Werpers <jonatan@werpers.com>
parents: 1699
diff changeset
16 """
1699
3e9c3986930d Add extensions for SparseArrays and SparseArrayKit that allow conversion of a LazyTensor
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
17 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
18 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
19
3e9c3986930d Add extensions for SparseArrays and SparseArrayKit that allow conversion of a LazyTensor
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
20 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
21 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
22 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
23 end
3e9c3986930d Add extensions for SparseArrays and SparseArrayKit that allow conversion of a LazyTensor
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
24
3e9c3986930d Add extensions for SparseArrays and SparseArrayKit that allow conversion of a LazyTensor
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
25 end