53 lines
1.1 KiB
Tcl
53 lines
1.1 KiB
Tcl
# A pretty-printer
|
|
proc pretty matrix {
|
|
set size [rank $matrix]
|
|
if {$size == 1} {
|
|
return \[[join $matrix ", "]\]
|
|
} elseif {$size == 2} {
|
|
set out ""
|
|
foreach row $matrix {
|
|
append out " " [pretty $row] ",\n"
|
|
}
|
|
return \[[string trimleft [string trimright $out ,\n]]\]
|
|
}
|
|
set rowout {}
|
|
foreach row $matrix {append rowout [pretty $row] ,\n}
|
|
set rowout2 {}
|
|
foreach row [split [string trimright $rowout ,\n] \n] {
|
|
append rowout2 " " $row \n
|
|
}
|
|
return \[\n[string trimright $rowout2 \n]\n\]
|
|
}
|
|
|
|
# The 3D test data
|
|
set f {
|
|
{{-9 5 -8} {3 5 1}}
|
|
{{-1 -7 2} {-5 -6 6}}
|
|
{{8 5 8} {-2 -6 -4}}
|
|
}
|
|
set g {
|
|
{
|
|
{54 42 53 -42 85 -72}
|
|
{45 -170 94 -36 48 73}
|
|
{-39 65 -112 -16 -78 -72}
|
|
{6 -11 -6 62 49 8}}
|
|
{
|
|
{-57 49 -23 52 -135 66}
|
|
{-23 127 -58 -5 -118 64}
|
|
{87 -16 121 23 -41 -12}
|
|
{-19 29 35 -148 -11 45}}
|
|
{
|
|
{-55 -147 -146 -31 55 60}
|
|
{-88 -45 -28 46 -26 -144}
|
|
{-12 -107 -34 150 249 66}
|
|
{11 -15 -34 27 -78 -50}}
|
|
{
|
|
{56 67 108 4 2 -48}
|
|
{58 67 89 32 32 -8}
|
|
{-42 -31 -103 -30 -23 -8}
|
|
{6 4 -26 -10 26 12}}
|
|
}
|
|
|
|
# Now do the deconvolution and print it out
|
|
puts h:\ [pretty [deconvolve $g $f]]
|