Walsh matrix: Difference between revisions

Line 107:
1 -1 -1 1 -1 1 1 -1 -1 1 1 -1 1 -1 -1 1 -1 .. 1 -1
</pre>
 
=={{header|Julia}}==
kron is a builtin function in Julia.
<syntaxhighlight lang="julia">julia> const w2 = [1 1; 1 -1]
2×2 Matrix{Int64}:
1 1
1 -1
 
julia> walsh(k) = k < 2 ? w2 : kron(w2, walsh(k - 1))
walsh (generic function with 1 method)
 
julia> countsignchanges(r) = count(i -> sign(r[i - 1]) != sign(r[i[]]), 2:lastindex(r))
countsignchanges (generic function with 1 method)
 
julia> sequency(m) = sortslices(m, dims=1, by = countsignchanges)
sequency (generic function with 1 method)
 
julia>
 
julia> display(walsh(2))
4×4 Matrix{Int64}:
1 1 1 1
1 -1 1 -1
1 1 -1 -1
1 -1 -1 1
 
julia> display(walsh(3))
8×8 Matrix{Int64}:
1 1 1 1 1 1 1 1
1 -1 1 -1 1 -1 1 -1
1 1 -1 -1 1 1 -1 -1
1 -1 -1 1 1 -1 -1 1
1 1 1 1 -1 -1 -1 -1
1 -1 1 -1 -1 1 -1 1
1 1 -1 -1 -1 -1 1 1
1 -1 -1 1 -1 1 1 -1
 
julia> display(walsh(4))
16×16 Matrix{Int64}:
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1
1 1 -1 -1 1 1 -1 -1 1 1 -1 -1 1 1 -1 -1
1 -1 -1 1 1 -1 -1 1 1 -1 -1 1 1 -1 -1 1
1 1 1 1 -1 -1 -1 -1 1 1 1 1 -1 -1 -1 -1
1 -1 1 -1 -1 1 -1 1 1 -1 1 -1 -1 1 -1 1
1 1 -1 -1 -1 -1 1 1 1 1 -1 -1 -1 -1 1 1
1 -1 -1 1 -1 1 1 -1 1 -1 -1 1 -1 1 1 -1
1 1 1 1 1 1 1 1 -1 -1 -1 -1 -1 -1 -1 -1
1 -1 1 -1 1 -1 1 -1 -1 1 -1 1 -1 1 -1 1
1 1 -1 -1 1 1 -1 -1 -1 -1 1 1 -1 -1 1 1
1 -1 -1 1 1 -1 -1 1 -1 1 1 -1 -1 1 1 -1
1 1 1 1 -1 -1 -1 -1 -1 -1 -1 -1 1 1 1 1
1 -1 1 -1 -1 1 -1 1 -1 1 -1 1 1 -1 1 -1
1 1 -1 -1 -1 -1 1 1 -1 -1 1 1 1 1 -1 -1
1 -1 -1 1 -1 1 1 -1 -1 1 1 -1 1 -1 -1 1
 
julia> display(sequency(walsh(3)))
8×8 Matrix{Int64}:
1 1 1 1 1 1 1 1
1 1 1 1 -1 -1 -1 -1
1 1 -1 -1 -1 -1 1 1
1 1 -1 -1 1 1 -1 -1
1 -1 -1 1 1 -1 -1 1
1 -1 -1 1 -1 1 1 -1
1 -1 1 -1 -1 1 -1 1
1 -1 1 -1 1 -1 1 -1
 
julia> display(sequency(walsh(4)))
16×16 Matrix{Int64}:
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 -1 -1 -1 -1 -1 -1 -1 -1
1 1 1 1 -1 -1 -1 -1 -1 -1 -1 -1 1 1 1 1
1 1 1 1 -1 -1 -1 -1 1 1 1 1 -1 -1 -1 -1
1 1 -1 -1 -1 -1 1 1 1 1 -1 -1 -1 -1 1 1
1 1 -1 -1 -1 -1 1 1 -1 -1 1 1 1 1 -1 -1
1 1 -1 -1 1 1 -1 -1 -1 -1 1 1 -1 -1 1 1
1 1 -1 -1 1 1 -1 -1 1 1 -1 -1 1 1 -1 -1
1 -1 -1 1 1 -1 -1 1 1 -1 -1 1 1 -1 -1 1
1 -1 -1 1 1 -1 -1 1 -1 1 1 -1 -1 1 1 -1
1 -1 -1 1 -1 1 1 -1 -1 1 1 -1 1 -1 -1 1
1 -1 -1 1 -1 1 1 -1 1 -1 -1 1 -1 1 1 -1
1 -1 1 -1 -1 1 -1 1 1 -1 1 -1 -1 1 -1 1
1 -1 1 -1 -1 1 -1 1 -1 1 -1 1 1 -1 1 -1
1 -1 1 -1 1 -1 1 -1 -1 1 -1 1 -1 1 -1 1
1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1
</syntaxhighlight>
 
=={{header|Phix}}==
{{libheader|Phix/xpGUI}}
4,105

edits