7.7.10. IDX operations on squares of elements
(lsh/libidx/idx-squops.lsh)


matrix and tensor operations that use the squares of the elements. This is used primarily for second derivative backpropagations in gradient-based learning algorithms.

7.7.10.0. (idx-m1squextm1 m1 m2 m3)
(lsh/libidx/idx-squops.lsh)


square outer product of m1 and m2 . M3ij = M1i * M2j^2

7.7.10.1. (idx-m2squextm2 m1 m2 m3)
(lsh/libidx/idx-squops.lsh)


square outer product of m1 and m2 . M3ijkl = M1ij * M2kl^2

7.7.10.2. (idx-m1squextm1acc m1 m2 m3)
(lsh/libidx/idx-squops.lsh)


square outer product of m1 and m2 . M3ij += M1i * M2j^2

7.7.10.3. (idx-m2squextm2acc m1 m2 m3)
(lsh/libidx/idx-squops.lsh)


square outer product of m1 and m2 . M3ijkl += M1ij * M2kl^2

7.7.10.4. (idx-m2squdotm1 m1 m2 m3)
(lsh/libidx/idx-squops.lsh)


multiply vector m2 by matrix m1 using square of m1 elements M3i = sum_j M1ij^2 * M2j

7.7.10.5. (idx-m4squdotm2 m1 m2 m3)
(lsh/libidx/idx-squops.lsh)


multiply matrix m2 by tensor m1 using square of m1 elements M3ij = sum_kl M1ijkl^2 * M2kl

7.7.10.6. (idx-m2squdotm1acc m1 m2 m3)
(lsh/libidx/idx-squops.lsh)


multiply vector m2 by matrix m1 using square of m1 elements M3i += sum_j M1ij^2 * M2j

7.7.10.7. (idx-m4squdotm2acc m1 m2 m3)
(lsh/libidx/idx-squops.lsh)


multiply matrix m2 by tensor m1 using square of m1 elements M3ij += sum_kl M1ijkl^2 * M2kl

7.7.10.8. (idx-m1squdotm1acc m1 m2 m3)
(lsh/libidx/idx-squops.lsh)


dot product between m1 and m2 , except square of terms of m1 are used: M3 += sum_i M1i^2 * M2i

7.7.10.9. (idx-m2squdotm2acc m1 m2 m3)
(lsh/libidx/idx-squops.lsh)


dot product between matrices m1 and m2 , except square of terms of m1 are used: M3 += sum_ij M1ij^2 * M2ij