kigubkur.elfun.square
Elementary Function: squaring function.
(require '[kigubkur.elfun [square :refer [sq]]])
Examples
Square of a scalar
=> (sq 3)
9.0
Square of a matrix
=> (def r [[1 2 3 4]])
=> (def c [[1][2][3][4]])
=> (def M [[1 2] [3 4]])
=> (view (sq r))
[1.0 4.0 9.0 16.0]
Order -> 1 x 4
=> (view (sq c))
[1.0]
[4.0]
[9.0]
[16.0]
Order-> 4 x 1
=> (view (sq M))
[1.0 4.0]
[9.0 16.0]
Order -> 2 x 2
Square of a block
(require '[kigubkur.construct [blocking :refer [block]]])
=> (def L [[1 2 3 4 5 6 7 8 9 10]
[1 2 3 4 5 6 7 8 9 10]
[1 2 3 4 5 6 7 8 9 10]
[1 2 3 4 5 6 7 8 9 10]
[1 2 3 4 5 6 7 8 9 10]
[1 2 3 4 5 6 7 8 9 10]
[1 2 3 4 5 6 7 8 9 10]])
=> (def B (block L 5))
=> (pprint B)
[[{:A11 [[1 2 3 4 5]
[1 2 3 4 5]
[1 2 3 4 5]
[1 2 3 4 5]
[1 2 3 4 5]],
:A12 [[6 7 8 9 10]
[6 7 8 9 10]
[6 7 8 9 10]
[6 7 8 9 10]
[6 7 8 9 10]]}]
[{:A22 [[6 7 8 9 10]
[6 7 8 9 10]],
:A21 [[1 2 3 4 5]
[1 2 3 4 5]]}]]
=> (pprint (sq B 2))
[[{:A11 [[1.0 4.0 9.0 16.0 25.0]
[1.0 4.0 9.0 16.0 25.0]
[1.0 4.0 9.0 16.0 25.0]
[1.0 4.0 9.0 16.0 25.0]
[1.0 4.0 9.0 16.0 25.0]],
:A12 [[36.0 49.0 64.0 81.0 100.0]
[36.0 49.0 64.0 81.0 100.0]
[36.0 49.0 64.0 81.0 100.0]
[36.0 49.0 64.0 81.0 100.0]
[36.0 49.0 64.0 81.0 100.0]]}]
[{:A22 [[36.0 49.0 64.0 81.0 100.0] [36.0 49.0 64.0 81.0 100.0]],
:A21 [[1.0 4.0 9.0 16.0 25.0] [1.0 4.0 9.0 16.0 25.0]]}]]
sq
(sq X)
Given a scalar, row matrix, column matrix, matrix or a block and a scalar, row matrix, column matrix, matrix or a block, returns element-wise square.
Syntax: (sq X)
s.t X
is a scalar or a kigubkur© matrix (or both blocks)
Note:
if xik or yik ∈ {##NaN
, ##Inf
, ##-Inf
}, returns ##NaN
,
otherwise, returns x2.