Walsh matrix: Difference between revisions
Content deleted Content added
imported>Tybalt89 |
Added FreeBASIC |
||
Line 468: | Line 468: | ||
[[File:Walsh matrices.png|thumb|center]] |
[[File:Walsh matrices.png|thumb|center]] |
||
=={{header| |
=={{header|FreeBASIC}}== |
||
<syntaxhighlight lang="vbnet">REM Text mode version. |
|||
Sub Imprime(w() As Integer) |
|||
Dim As Integer i, j, ub = Ubound(w) |
|||
Print "Walsh matrix - order " & Fix(Sqr(ub)) & " (" & ub & "x" & ub & "), Natural order:" |
|||
For i = 0 To ub-1 |
|||
For j = 0 To ub-1 |
|||
Print Using "###"; w(i, j); |
|||
Next j |
|||
Print |
|||
Next i |
|||
Print |
|||
End Sub |
|||
Sub WalshMatrix(n As Integer) |
|||
Dim walsh(0 To n, 0 To n) As Integer |
|||
walsh(0,0) = 1 |
|||
Dim As Integer i, j, k |
|||
k = 1 |
|||
While k < n |
|||
For i = 0 To k-1 |
|||
For j = 0 To k-1 |
|||
walsh(i+k, j) = walsh(i, j) |
|||
walsh(i, j+k) = walsh(i, j) |
|||
walsh(i+k, j+k) = -walsh(i, j) |
|||
Next j |
|||
Next i |
|||
k *= 2 |
|||
Wend |
|||
Imprime(walsh()) |
|||
End Sub |
|||
Dim As Integer n = 4 |
|||
n = 4: WalshMatrix(n) |
|||
n = 16: WalshMatrix(n) |
|||
n = 32: WalshMatrix(n) |
|||
Sleep</syntaxhighlight> |
|||
{{out}} |
|||
<pre>Walsh matrix - order 2 (4x4), Natural order: |
|||
1 1 1 1 |
|||
1 -1 1 -1 |
|||
1 1 -1 -1 |
|||
1 -1 -1 1 |
|||
Walsh matrix - order 4 (16x16), Natural order: |
|||
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 |
|||
1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 |
|||
1 1 -1 -1 1 1 -1 -1 1 1 -1 -1 1 1 -1 -1 |
|||
1 -1 -1 1 1 -1 -1 1 1 -1 -1 1 1 -1 -1 1 |
|||
1 1 1 1 -1 -1 -1 -1 1 1 1 1 -1 -1 -1 -1 |
|||
1 -1 1 -1 -1 1 -1 1 1 -1 1 -1 -1 1 -1 1 |
|||
1 1 -1 -1 -1 -1 1 1 1 1 -1 -1 -1 -1 1 1 |
|||
1 -1 -1 1 -1 1 1 -1 1 -1 -1 1 -1 1 1 -1 |
|||
1 1 1 1 1 1 1 1 -1 -1 -1 -1 -1 -1 -1 -1 |
|||
1 -1 1 -1 1 -1 1 -1 -1 1 -1 1 -1 1 -1 1 |
|||
1 1 -1 -1 1 1 -1 -1 -1 -1 1 1 -1 -1 1 1 |
|||
1 -1 -1 1 1 -1 -1 1 -1 1 1 -1 -1 1 1 -1 |
|||
1 1 1 1 -1 -1 -1 -1 -1 -1 -1 -1 1 1 1 1 |
|||
1 -1 1 -1 -1 1 -1 1 -1 1 -1 1 1 -1 1 -1 |
|||
1 1 -1 -1 -1 -1 1 1 -1 -1 1 1 1 1 -1 -1 |
|||
1 -1 -1 1 -1 1 1 -1 -1 1 1 -1 1 -1 -1 1 |
|||
Walsh matrix - order 5 (32x32), Natural order: |
|||
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 |
|||
1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 |
|||
1 1 -1 -1 1 1 -1 -1 1 1 -1 -1 1 1 -1 -1 1 1 -1 -1 1 1 -1 -1 1 1 -1 -1 1 1 -1 -1 |
|||
1 -1 -1 1 1 -1 -1 1 1 -1 -1 1 1 -1 -1 1 1 -1 -1 1 1 -1 -1 1 1 -1 -1 1 1 -1 -1 1 |
|||
1 1 1 1 -1 -1 -1 -1 1 1 1 1 -1 -1 -1 -1 1 1 1 1 -1 -1 -1 -1 1 1 1 1 -1 -1 -1 -1 |
|||
1 -1 1 -1 -1 1 -1 1 1 -1 1 -1 -1 1 -1 1 1 -1 1 -1 -1 1 -1 1 1 -1 1 -1 -1 1 -1 1 |
|||
1 1 -1 -1 -1 -1 1 1 1 1 -1 -1 -1 -1 1 1 1 1 -1 -1 -1 -1 1 1 1 1 -1 -1 -1 -1 1 1 |
|||
1 -1 -1 1 -1 1 1 -1 1 -1 -1 1 -1 1 1 -1 1 -1 -1 1 -1 1 1 -1 1 -1 -1 1 -1 1 1 -1 |
|||
1 1 1 1 1 1 1 1 -1 -1 -1 -1 -1 -1 -1 -1 1 1 1 1 1 1 1 1 -1 -1 -1 -1 -1 -1 -1 -1 |
|||
1 -1 1 -1 1 -1 1 -1 -1 1 -1 1 -1 1 -1 1 1 -1 1 -1 1 -1 1 -1 -1 1 -1 1 -1 1 -1 1 |
|||
1 1 -1 -1 1 1 -1 -1 -1 -1 1 1 -1 -1 1 1 1 1 -1 -1 1 1 -1 -1 -1 -1 1 1 -1 -1 1 1 |
|||
1 -1 -1 1 1 -1 -1 1 -1 1 1 -1 -1 1 1 -1 1 -1 -1 1 1 -1 -1 1 -1 1 1 -1 -1 1 1 -1 |
|||
1 1 1 1 -1 -1 -1 -1 -1 -1 -1 -1 1 1 1 1 1 1 1 1 -1 -1 -1 -1 -1 -1 -1 -1 1 1 1 1 |
|||
1 -1 1 -1 -1 1 -1 1 -1 1 -1 1 1 -1 1 -1 1 -1 1 -1 -1 1 -1 1 -1 1 -1 1 1 -1 1 -1 |
|||
1 1 -1 -1 -1 -1 1 1 -1 -1 1 1 1 1 -1 -1 1 1 -1 -1 -1 -1 1 1 -1 -1 1 1 1 1 -1 -1 |
|||
1 -1 -1 1 -1 1 1 -1 -1 1 1 -1 1 -1 -1 1 1 -1 -1 1 -1 1 1 -1 -1 1 1 -1 1 -1 -1 1 |
|||
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 |
|||
1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 |
|||
1 1 -1 -1 1 1 -1 -1 1 1 -1 -1 1 1 -1 -1 -1 -1 1 1 -1 -1 1 1 -1 -1 1 1 -1 -1 1 1 |
|||
1 -1 -1 1 1 -1 -1 1 1 -1 -1 1 1 -1 -1 1 -1 1 1 -1 -1 1 1 -1 -1 1 1 -1 -1 1 1 -1 |
|||
1 1 1 1 -1 -1 -1 -1 1 1 1 1 -1 -1 -1 -1 -1 -1 -1 -1 1 1 1 1 -1 -1 -1 -1 1 1 1 1 |
|||
1 -1 1 -1 -1 1 -1 1 1 -1 1 -1 -1 1 -1 1 -1 1 -1 1 1 -1 1 -1 -1 1 -1 1 1 -1 1 -1 |
|||
1 1 -1 -1 -1 -1 1 1 1 1 -1 -1 -1 -1 1 1 -1 -1 1 1 1 1 -1 -1 -1 -1 1 1 1 1 -1 -1 |
|||
1 -1 -1 1 -1 1 1 -1 1 -1 -1 1 -1 1 1 -1 -1 1 1 -1 1 -1 -1 1 -1 1 1 -1 1 -1 -1 1 |
|||
1 1 1 1 1 1 1 1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 1 1 1 1 1 1 1 1 |
|||
1 -1 1 -1 1 -1 1 -1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 1 -1 1 -1 1 -1 1 -1 |
|||
1 1 -1 -1 1 1 -1 -1 -1 -1 1 1 -1 -1 1 1 -1 -1 1 1 -1 -1 1 1 1 1 -1 -1 1 1 -1 -1 |
|||
1 -1 -1 1 1 -1 -1 1 -1 1 1 -1 -1 1 1 -1 -1 1 1 -1 -1 1 1 -1 1 -1 -1 1 1 -1 -1 1 |
|||
1 1 1 1 -1 -1 -1 -1 -1 -1 -1 -1 1 1 1 1 -1 -1 -1 -1 1 1 1 1 1 1 1 1 -1 -1 -1 -1 |
|||
1 -1 1 -1 -1 1 -1 1 -1 1 -1 1 1 -1 1 -1 -1 1 -1 1 1 -1 1 -1 1 -1 1 -1 -1 1 -1 1 |
|||
1 1 -1 -1 -1 -1 1 1 -1 -1 1 1 1 1 -1 -1 -1 -1 1 1 1 1 -1 -1 1 1 -1 -1 -1 -1 1 1 |
|||
1 -1 -1 1 -1 1 1 -1 -1 1 1 -1 1 -1 -1 1 -1 1 1 -1 1 -1 -1 1 1 -1 -1 1 -1 1 1 -1 |
|||
</pre> |
|||
=={{header|J}}== |
|||
<syntaxhighlight lang=J>kp1=: [: ,./^:2 */ NB. Victor Cerovski, 2010-02-26 |
<syntaxhighlight lang=J>kp1=: [: ,./^:2 */ NB. Victor Cerovski, 2010-02-26 |
||
walsh=: {{(_1^3=i.2 2)&kp1^:y 1}} |
walsh=: {{(_1^3=i.2 2)&kp1^:y 1}} |