Оптимизация кода TCL
Форум — Development
Помогите оптимизировать следующий кусок кода. Операции (Haar-Wavelet-Transformation) проводятся над графическими файлами которые могут иметь довольно большой размер. Поэтому важна каждая миллисекунда..
set matrix ""
set matrix2 ""
set matrix [read $in]
close $in
for {set yy 0} {$yy < $y} {incr yy} {
set mids ""
set ints ""
for {set xx 0} {$xx < $x} {incr xx 2} {
set a [ expr {$x * $yy + $xx} ]
set b [ expr {$a+1} ]
set aa [ lindex $matrix $a ]
set bb [ lindex $matrix $b ]
set middle [ expr { [ expr {$aa + $bb} ] / 2 } ]
set mids [concat $mids $middle]
set int [ expr {$aa-$middle+$grey2} ]
set ints [concat $ints $int]
}
set matrix2 [ concat $matrix2 $mids $ints ]
}
for {set xx 0} {$xx < $x} {incr xx} {
for {set yy 0} {$yy < $y} {incr yy 2} {
set a [ expr {$x * $yy + $xx} ]
set b [ expr {$a + $x} ]
set aa [ lindex $matrix2 $a ]
set bb [ lindex $matrix2 $b ]
set middle [ expr { [ expr {$aa + $bb} ] / 2 } ]
set pos [ expr {$yy/2 * $x + $xx} ]
lset matrix $pos $middle
set int [ expr {$aa-$middle+$grey2} ]
set pos [ expr {($yy/2+$y/2)*$x + $xx} ]
lset matrix $pos $int
}
}
p.s. я только начал заниматся tcl, поэтому не ругайтесь если очень криво...
ЗАРАНЕЕ СПАСИБО!