Changeset 396 for trunk/readexp.tcl
 Timestamp:
 Dec 4, 2009 5:05:28 PM (11 years ago)
 File:

 1 edited
Legend:
 Unmodified
 Added
 Removed

trunk/readexp.tcl
 Property rcs:date changed from 2001/05/11 16:09:08 to 2001/06/29 17:54:33
 Property rcs:lines changed from +14 5 to +147 103
 Property rcs:rev changed from 1.26 to 1.27
r387 r396 102 102 # loop over phases 103 103 foreach iph {1 2 3 4 5 6 7 8 9} { 104 set i5s [expr ($iph  1)*5]105 set i5e [expr $i5s + 4]104 set i5s [expr {($iph  1)*5}] 105 set i5e [expr {$i5s + 4}] 106 106 set flag [string trim [string range $line $i5s $i5e]] 107 107 if {$flag == ""} {set flag 0} … … 123 123 set natom [phaseinfo $iph natoms] 124 124 if {$natom != [llength $expmap(atomlist_$iph)]} { 125 set expmap(atomlist_$iph) [lrange $expmap(atomlist_$iph) 0 [expr $natom1]]125 set expmap(atomlist_$iph) [lrange $expmap(atomlist_$iph) 0 [expr {$natom1}]] 126 126 } 127 127 } … … 131 131 set expmap(powderlist) {} 132 132 for {set i 0} {$i < $nhist} {incr i} { 133 set ihist [expr $i + 1]134 if {[expr $i % 12] == 0} {133 set ihist [expr {$i + 1}] 134 if {[expr {$i % 12}] == 0} { 135 135 incr n 136 136 set line [readexp " EXPR HTYP$n"] … … 167 167 # loop over phases 168 168 foreach iph {1 2 3 4 5 6 7 8 9} { 169 set i5s [expr ($iph  1)*5]170 set i5e [expr $i5s + 4]169 set i5s [expr {($iph  1)*5}] 170 set i5e [expr {$i5s + 4}] 171 171 set flag [string trim [string range $line $i5s $i5e]] 172 172 if {$flag == ""} {set flag 0} … … 210 210 211 211 # pad value to $chars 212 set l0 [expr $chars  1]212 set l0 [expr {$chars  1}] 213 213 set value [string range "$value " 0 $l0] 214 214 … … 217 217 set l1 $chars 218 218 } else { 219 set l0 [expr $start  2]220 set l1 [expr $start + $chars  1]219 set l0 [expr {$start  2}] 220 set l1 [expr {$start + $chars  1}] 221 221 set ret [string range $exparray($key) 0 $l0] 222 222 } … … 249 249 proc validreal {val length decimal} { 250 250 upvar $val value 251 if [catch {expr $value}] {return 0}251 if [catch {expr {$value}}] {return 0} 252 252 if [catch { 253 253 set tmp [format "%${length}.${decimal}f" $value] … … 268 268 if {$value == ""} {set value 0} 269 269 if [catch { 270 set tmp [expr round($value)]270 set tmp [expr {round($value)}] 271 271 if {$tmp != $value} {return 0} 272 272 set value [format "%${length}d" $tmp] … … 307 307 # cycles  number of GENLES cycles (*) 308 308 # title  the overall title (*) 309 # convg  convergence criterion: 200 to 200 (*) 310 # marq  Marquardt damping factor: 1.0 to 9.99 (*) 309 311 proc expinfo {parm "action get" "value {}"} { 310 312 switch ${parm}$action { … … 315 317 setexp " DESCR" " $value" 2 68 316 318 } 317 318 319 cyclesget { 319 320 return [string trim [cdatget MXCY]] … … 331 332 if ![validint value 1] {return 0} 332 333 cdatset PRNT [format %3d $value] 334 } 335 convgget { 336 set cvg [string trim [cdatget CVRG]] 337 if {$cvg == ""} {return 200} 338 if [catch {expr {$cvg}}] {return 200} 339 return $cvg 340 } 341 convgset { 342 if ![validint value 1] {return 0} 343 set value [expr {200>$value?200:$value}] 344 set value [expr {200<$value?200:$value}] 345 cdatset CVRG [format %4d $value] 346 } 347 marqget { 348 set mar [string trim [cdatget MARQ]] 349 if {$mar == ""} {return 1.0} 350 if [catch {expr $mar}] {return 1.} 351 return $mar 352 } 353 marqset { 354 if [catch { 355 set value [expr {1.0>$value?1.0:$value}] 356 set value [expr {9.99<$value?9.99:$value}] 357 }] {return 0} 358 if ![validreal value 4 2] {return 0} 359 cdatset MARQ $value 333 360 } 334 361 default { … … 583 610 ODFcoef*get { 584 611 regsub ODFcoef $parm {} term 585 set k [expr ($term+5)/6]612 set k [expr {($term+5)/6}] 586 613 if {$k <= 9} {set k " $k"} 587 set j [expr (($term1) % 6)+1]614 set j [expr {(($term1) % 6)+1}] 588 615 set lineB [readexp "CRS$phase ODF${k}B"] 589 set j0 [expr ($j1) *10]590 set j1 [expr $j0 + 9]616 set j0 [expr { ($j1) *10}] 617 set j1 [expr {$j0 + 9}] 591 618 set val [string trim [string range $lineB $j0 $j1]] 592 619 if {$val == ""} {return 0.0} … … 596 623 regsub ODFcoef $parm {} term 597 624 if ![validreal value 10 3] {return 0} 598 set k [expr ($term+5)/6]625 set k [expr {($term+5)/6}] 599 626 if {$k <= 9} {set k " $k"} 600 set j [expr (($term1) % 6)+1]601 set col [expr ($j1)*10 + 1]627 set j [expr {(($term1) % 6)+1}] 628 set col [expr { ($j1)*10 + 1}] 602 629 setexp "CRS$phase ODF${k}B" $value $col 10 603 630 } … … 641 668 set val [string trim [string range [readexp "CRS$phase ODF"] 5 9]] 642 669 for {set i 1} {$i <= $val} {incr i 6} { 643 set k [expr 1+($i1)/6]670 set k [expr {1+($i1)/6}] 644 671 if {$k <= 9} {set k " $k"} 645 672 set lineA [readexp "CRS$phase ODF${k}A"] 646 673 set k 0 647 674 for {set j $i} {$j <= $val && $j < $i+6} {incr j} { 648 set j0 [expr ($k)*10]649 set j1 [expr $j0 + 9]675 set j0 [expr {($k)*10}] 676 set j1 [expr {$j0 + 9}] 650 677 lappend vallist [string trim [string range $lineA $j0 $j1]] 651 678 incr k … … 680 707 } 681 708 } 682 set col1 [expr $col + 1]709 set col1 [expr {$col + 1}] 683 710 foreach n [lrange $item 0 2] { 684 711 if ![validint n 3] {return 0} … … 786 813 catch { 787 814 # get the trace 788 set value [expr ( \815 set value [expr {( \ 789 816 [string range [readexp ${key}B] 0 9] + \ 790 817 [string range [readexp ${key}B] 10 19] + \ 791 [string range [readexp ${key}B] 20 29])/3. ]818 [string range [readexp ${key}B] 20 29])/3.}] 792 819 } 793 820 validreal value 10 6 … … 962 989 # tofangle  detector angle (TOF only) 963 990 # foextract  Fobs extraction flag (*) 991 # LBdamp  LeBail damping value (*) 992 # tmin/tmax  minimum & maximum usable 2theta/TOF/energy 964 993 proc histinfo {histlist parm "action get" "value {}"} { 965 994 global expgui … … 999 1028 } 1000 1029 } 1030 LBdampget { 1031 set v [string trim [string range [readexp "${key} EPHAS"] 54 54]] 1032 if {$v == ""} {return 0} 1033 return $v 1034 } 1035 LBdampset { 1036 if ![validint value 5] {return 0} 1037 setexp "${key} EPHAS" $value 51 5 1038 } 1001 1039 titleget { 1002 1040 return [string trim [readexp "${key} HNAM"] ] … … 1216 1254 if ![validint value 5] {return 0} 1217 1255 if {$oldval < $value} { 1218 set line1 [expr 2 + ($oldval  1) / 4]1219 set line2 [expr 1 + ($value  1) / 4]1256 set line1 [expr {2 + ($oldval  1) / 4}] 1257 set line2 [expr {1 + ($value  1) / 4}] 1220 1258 for {set i $line1} {$i <= $line2} {incr i} { 1221 1259 # create a blank entry if needed … … 1224 1262 incr oldval 1225 1263 for {set num $oldval} {$num <= $value} {incr num} { 1226 set f1 [expr 15*(($num  1) % 4)]1227 set f2 [expr 15*(1 + ($num  1) % 4)1]1228 set line [expr 1 + ($num  1) / 4]1264 set f1 [expr {15*(($num  1) % 4)}] 1265 set f2 [expr {15*(1 + ($num  1) % 4)1}] 1266 set line [expr {1 + ($num  1) / 4}] 1229 1267 if {[string trim [string range [readexp ${key}BAKGD$line] $f1 $f2]] == ""} { 1230 set f1 [expr 15*(($num  1) % 4)+1]1268 set f1 [expr {15*(($num  1) % 4)+1}] 1231 1269 setexp ${key}BAKGD$line 0.0 $f1 15 1232 1270 } … … 1247 1285 } else { 1248 1286 setexp "${key}BAKGD " "N" 15 1 1249 } 1287 } 1250 1288 } 1251 1289 bdampget { … … 1259 1297 bterm*get { 1260 1298 regsub bterm $parm {} num 1261 set f1 [expr 15*(($num  1) % 4)]1262 set f2 [expr 15*(1 + ($num  1) % 4)1]1263 set line [expr 1 + ($num  1) / 4]1299 set f1 [expr {15*(($num  1) % 4)}] 1300 set f2 [expr {15*(1 + ($num  1) % 4)1}] 1301 set line [expr {1 + ($num  1) / 4}] 1264 1302 return [string trim [string range [readexp ${key}BAKGD$line] $f1 $f2] ] 1265 1303 } … … 1267 1305 regsub bterm $parm {} num 1268 1306 if ![validreal value 15 6] {return 0} 1269 set f1 [expr 15*(($num  1) % 4)+1]1270 set line [expr 1 + ($num  1) / 4]1307 set f1 [expr {15*(($num  1) % 4)+1}] 1308 set line [expr {1 + ($num  1) / 4}] 1271 1309 setexp ${key}BAKGD$line $value $f1 15 1272 1310 } … … 1276 1314 tofangleget { 1277 1315 return [string trim [string range [readexp "${key}BNKPAR"] 10 19]] 1316 } 1317 tminget { 1318 return [string trim [string range [readexp "${key} TRNGE"] 0 9]] 1319 } 1320 tmaxget { 1321 return [string trim [string range [readexp "${key} TRNGE"] 10 19]] 1278 1322 } 1279 1323 default { … … 1309 1353 switch glob ${parm}$action { 1310 1354 extmethget { 1311 set i1 [expr ($phase  1)*5]1312 set i2 [expr $i1 + 4]1355 set i1 [expr {($phase  1)*5}] 1356 set i2 [expr {$i1 + 4}] 1313 1357 return [string trim [string range [readexp "HST $hist EPHAS"] $i1 $i2]] 1314 1358 } 1315 1359 extmethset { 1316 set i1 [expr ($phase  1)*5 + 1]1360 set i1 [expr {($phase  1)*5 + 1}] 1317 1361 if ![validint value 5] {return 0} 1318 1362 setexp "HST $hist EPHAS" $value $i1 5 … … 1364 1408 setexp "${key}PRCF " $value 6 5 1365 1409 # now check that all needed entries exist 1366 set lines [expr 1 + ($value  1) / 4]1410 set lines [expr {1 + ($value  1) / 4}] 1367 1411 for {set i 1} {$i <= $lines} {incr i} { 1368 1412 makeexprec "${key}PRCF $i" … … 1386 1430 pterm*get { 1387 1431 regsub pterm $parm {} num 1388 set f1 [expr 15*(($num  1) % 4)]1389 set f2 [expr 15*(1 + ($num  1) % 4)1]1390 set line [expr 1 + ($num  1) / 4]1432 set f1 [expr {15*(($num  1) % 4)}] 1433 set f2 [expr {15*(1 + ($num  1) % 4)1}] 1434 set line [expr {1 + ($num  1) / 4}] 1391 1435 return [string trim [string range [readexp "${key}PRCF $line"] $f1 $f2] ] 1392 1436 } … … 1394 1438 if ![validreal value 15 6] {return 0} 1395 1439 regsub pterm $parm {} num 1396 set f1 [expr 1+ 15*(($num  1) % 4)]1397 set line [expr 1 + ($num  1) / 4]1440 set f1 [expr {1+ 15*(($num  1) % 4)}] 1441 set line [expr {1 + ($num  1) / 4}] 1398 1442 setexp "${key}PRCF $line" $value $f1 15 1399 1443 } 1400 1444 pref*get { 1401 1445 regsub pref $parm {} num 1402 set f [expr 24+$num]1446 set f [expr {24+$num}] 1403 1447 if {[string toupper [string range [readexp "${key}PRCF "] $f $f]] == "Y"} { 1404 1448 return 1 … … 1408 1452 pref*set { 1409 1453 regsub pref $parm {} num 1410 set f [expr 25+$num]1454 set f [expr {25+$num}] 1411 1455 if $value { 1412 1456 setexp ${key}PRCF "Y" $f 1 … … 1600 1644 # don't delete a nonexisting entry 1601 1645 if {$number > $nterms} {return 0} 1602 set val [expr $nterms  1]1646 set val [expr {$nterms  1}] 1603 1647 validint val 5 1604 1648 setexp $key $val 1 5 1605 1649 for {set i1 $number} {$i1 < $nterms} {incr i1} { 1606 set i2 [expr 1 + $i1]1650 set i2 [expr {1 + $i1}] 1607 1651 # move the contents of constraint #i2 > i1 1608 1652 if {$i1 > 9} { 1609 set k1 [expr ($i1+1)/10]1653 set k1 [expr {($i1+1)/10}] 1610 1654 set l1 $i1 1611 1655 } else { … … 1616 1660 # number of constraint lines for #i1 1617 1661 set n1 [string trim [string range [readexp ${key1}] \ 1618 [expr ($i1%10)*5] [expr 4+(($i1%10)*5)]] ]1662 [expr {($i1%10)*5}] [expr {4+(($i1%10)*5)}]] ] 1619 1663 if {$i2 > 9} { 1620 set k2 [expr ($i2+1)/10]1664 set k2 [expr {($i2+1)/10}] 1621 1665 set l2 $i2 1622 1666 } else { … … 1627 1671 # number of constraint lines for #i2 1628 1672 set n2 [string trim [string range [readexp ${key2}] \ 1629 [expr ($i2%10)*5] [expr 4+(($i2%10)*5)]] ]1673 [expr {($i2%10)*5}] [expr {4+(($i2%10)*5)}]] ] 1630 1674 set val $n2 1631 1675 validint val 5 1632 1676 # move the # of terms 1633 setexp $key1 $val [expr 1+(($i1%10)*5)] 51677 setexp $key1 $val [expr {1+(($i1%10)*5)}] 5 1634 1678 # move the terms 1635 1679 for {set j 1} {$j <= $n2} {incr j 1} { … … 1639 1683 } 1640 1684 # delete any remaining lines 1641 for {set j [expr $n2+1]} {$j <= $n1} {incr j 1} {1685 for {set j [expr {$n2+1}]} {$j <= $n1} {incr j 1} { 1642 1686 delexp "LEQV PF${term}${l1}$j" 1643 1687 } … … 1646 1690 # clear the last term 1647 1691 if {$nterms > 9} { 1648 set i [expr ($nterms+1)/10]1692 set i [expr {($nterms+1)/10}] 1649 1693 } else { 1650 1694 set i " " 1651 1695 } 1652 1696 set key "LEQV PF$term $i" 1653 set cb [expr ($nterms%10)*5]1654 set ce [expr 4+(($nterms%10)*5)]1697 set cb [expr {($nterms%10)*5}] 1698 set ce [expr {4+(($nterms%10)*5)}] 1655 1699 set n2 [string trim [string range [readexp ${key}] $cb $ce] ] 1656 1700 incr cb … … 1672 1716 if {$number > $nterms} {return 0} 1673 1717 if {$number > 9} { 1674 set k1 [expr ($number+1)/10]1718 set k1 [expr {($number+1)/10}] 1675 1719 set l1 $number 1676 1720 } else { … … 1681 1725 # old number of constraint lines 1682 1726 set n1 [string trim [string range [readexp ${key1}] \ 1683 [expr ($number%10)*5] [expr 4+(($number%10)*5)]] ]1727 [expr {($number%10)*5}] [expr {4+(($number%10)*5)}]] ] 1684 1728 # number of new constraints 1685 1729 set j2 [llength $value] 1686 1730 # number of new constraint lines 1687 set val [set n2 [expr ($j2 + 2)/3]]1731 set val [set n2 [expr {($j2 + 2)/3}]] 1688 1732 # store the new # of lines 1689 1733 validint val 5 1690 setexp $key1 $val [expr 1+(($number%10)*5)] 51734 setexp $key1 $val [expr {1+(($number%10)*5)}] 5 1691 1735 1692 1736 # loop over the # of lines in the old or new, whichever is greater 1693 1737 set v0 0 1694 for {set j 1} {$j <= [expr ($n1 > $n2) ? $n1 : $n2]} {incr j 1} {1738 for {set j 1} {$j <= [expr {($n1 > $n2) ? $n1 : $n2}]} {incr j 1} { 1695 1739 set key "LEQV PF${term}${l1}$j" 1696 1740 # were there more lines in the old? … … 1708 1752 # add the three constraints to the line 1709 1753 foreach s {3 23 43} \ 1710 item [lrange $value $v0 [expr 2+$v0]] {1754 item [lrange $value $v0 [expr {2+$v0}]] { 1711 1755 if {$item != ""} { 1712 1756 set val [format %10s%9.3f \ … … 1742 1786 1743 1787 if {$nterms > 9} { 1744 set k1 [expr ($nterms+1)/10]1788 set k1 [expr {($nterms+1)/10}] 1745 1789 set l1 $nterms 1746 1790 } else { … … 1753 1797 set j2 [llength $value] 1754 1798 # number of new constraint lines 1755 set val [set n2 [expr ($j2 + 2)/3]]1799 set val [set n2 [expr {($j2 + 2)/3}]] 1756 1800 # store the new # of lines 1757 1801 validint val 5 1758 setexp $key1 $val [expr 1+(($nterms%10)*5)] 51802 setexp $key1 $val [expr {1+(($nterms%10)*5)}] 5 1759 1803 1760 1804 # loop over the # of lines to be added … … 1765 1809 # add the three constraints to the line 1766 1810 foreach s {3 23 43} \ 1767 item [lrange $value $v0 [expr 2+$v0]] {1811 item [lrange $value $v0 [expr {2+$v0}]] { 1768 1812 if {$item != ""} { 1769 1813 set val [format %10s%9.3f \ … … 1784 1828 } 1785 1829 if {$number > 9} { 1786 set i [expr ($number+1)/10]1830 set i [expr {($number+1)/10}] 1787 1831 } else { 1788 1832 set i " " … … 1794 1838 1795 1839 set numline [string trim [string range [readexp ${key}] \ 1796 [expr ($number%10)*5] [expr 4+(($number%10)*5)]] ]1840 [expr {($number%10)*5}] [expr {4+(($number%10)*5)}]] ] 1797 1841 if {$number == 0} {return $numline} 1798 1842 set clist {} … … 1862 1906 pterm*get { 1863 1907 regsub pterm $parm {} num 1864 set f1 [expr 15*(($num  1) % 4)]1865 set f2 [expr 15*(1 + ($num  1) % 4)1]1866 set line [expr 1 + ($num  1) / 4]1908 set f1 [expr {15*(($num  1) % 4)}] 1909 set f2 [expr {15*(1 + ($num  1) % 4)1}] 1910 set line [expr {1 + ($num  1) / 4}] 1867 1911 return [string trim [string range [\ 1868 1912 readexp "${key}PRCF${set}$line"] $f1 $f2] ] … … 1870 1914 pref*get { 1871 1915 regsub pref $parm {} num 1872 set f [expr 24+$num]1916 set f [expr {24+$num}] 1873 1917 if {[string toupper [string range [readexp "${key}PRCF$set"] $f $f]] == "Y"} { 1874 1918 return 1 … … 2092 2136 } 2093 2137 # change the number of atoms in the phase 2094 phaseinfo $phase natoms set [expr [phaseinfo $phase natoms] 1]2138 phaseinfo $phase natoms set [expr {[phaseinfo $phase natoms] 1}] 2095 2139 2096 2140 # now adjust numbers in "EXPR ATYP" records and delete, if needed. … … 2142 2186 } 2143 2187 2144 set G(1,1) [expr $a * $a]2145 set G(2,2) [expr $b * $b]2146 set G(3,3) [expr $c * $c]2147 set G(1,2) [expr $a * $b * cos($gamma*0.017453292519943)]2188 set G(1,1) [expr {$a * $a}] 2189 set G(2,2) [expr {$b * $b}] 2190 set G(3,3) [expr {$c * $c}] 2191 set G(1,2) [expr {$a * $b * cos($gamma*0.017453292519943)}] 2148 2192 set G(2,1) $G(1,2) 2149 set G(1,3) [expr $a * $c * cos($beta *0.017453292519943)]2193 set G(1,3) [expr {$a * $c * cos($beta *0.017453292519943)}] 2150 2194 set G(3,1) $G(1,3) 2151 set G(2,3) [expr $b * $c * cos($alpha*0.017453292519943)]2195 set G(2,3) [expr {$b * $c * cos($alpha*0.017453292519943)}] 2152 2196 set G(3,2) $G(2,3) 2153 2197 … … 2155 2199 set v2 0.0 2156 2200 foreach i {1 2 3} { 2157 set J [expr ($i%3) + 1]2158 set K [expr (($i+1)%3) + 1]2159 set v2 [expr $v2+ $G(1,$i)*($G(2,$J)*$G(3,$K)$G(3,$J)*$G(2,$K))]2201 set J [expr {($i%3) + 1}] 2202 set K [expr {(($i+1)%3) + 1}] 2203 set v2 [expr {$v2+ $G(1,$i)*($G(2,$J)*$G(3,$K)$G(3,$J)*$G(2,$K))}] 2160 2204 } 2161 2205 if {$v2 > 0} { 2162 set v [expr sqrt($v2)]2206 set v [expr {sqrt($v2)}] 2163 2207 foreach i {1 2 3} { 2164 set i1 [expr ($i%3) + 1]2165 set i2 [expr (($i+1)%3) + 1]2208 set i1 [expr {($i%3) + 1}] 2209 set i2 [expr {(($i+1)%3) + 1}] 2166 2210 foreach j {1 2 3} { 2167 set j1 [expr ($j%3) + 1]2168 set j2 [expr (($j+1)%3) + 1]2169 set C($j,$i) [expr (\2211 set j1 [expr {($j%3) + 1}] 2212 set j2 [expr {(($j+1)%3) + 1}] 2213 set C($j,$i) [expr {(\ 2170 2214 $G($i1,$j1) * $G($i2,$j2)  \ 2171 2215 $G($i1,$j2) * $G($i2,$j1)\ 2172 )/ $v ]2173 } 2174 } 2175 set A(1,2) [expr 0.5 * ($C(1,2) + $C(2,1)) / sqrt( $C(1,1)* $C(2,2) )]2176 set A(1,3) [expr 0.5 * ($C(1,3) + $C(3,1)) / sqrt( $C(1,1)* $C(3,3) )]2177 set A(2,3) [expr 0.5 * ($C(2,3) + $C(3,2)) / sqrt( $C(2,2)* $C(3,3) )]2216 )/ $v}] 2217 } 2218 } 2219 set A(1,2) [expr {0.5 * ($C(1,2)+$C(2,1)) / sqrt( $C(1,1)* $C(2,2) )}] 2220 set A(1,3) [expr {0.5 * ($C(1,3)+$C(3,1)) / sqrt( $C(1,1)* $C(3,3) )}] 2221 set A(2,3) [expr {0.5 * ($C(2,3)+$C(3,2)) / sqrt( $C(2,2)* $C(3,3) )}] 2178 2222 foreach i {1 1 2} j {2 3 3} { 2179 set A($i,$j) [expr 0.5 * ($C($i,$j) + $C($j,$i)) / \2180 sqrt( $C($i,$i)* $C($j,$j) ) ]2223 set A($i,$j) [expr {0.5 * ($C($i,$j) + $C($j,$i)) / \ 2224 sqrt( $C($i,$i)* $C($j,$j) )}] 2181 2225 # clean up roundoff 2182 2226 if {abs($A($i,$j)) < 1e5} {set A($i,$j) 0.0} … … 2188 2232 } 2189 2233 return "$Uequiv $Uequiv $Uequiv \ 2190 [expr $Uequiv * $A(1,2)] \2191 [expr $Uequiv * $A(1,3)] \2192 [expr $Uequiv * $A(2,3)]"2193 } 2234 [expr {$Uequiv * $A(1,2)}] \ 2235 [expr {$Uequiv * $A(1,3)}] \ 2236 [expr {$Uequiv * $A(2,3)}]" 2237 }
Note: See TracChangeset
for help on using the changeset viewer.