Overview
Comment: | Main part of optimisation routine moved to separate file. |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | origin/optimise-algebraic-equations | trunk |
Files: | files | file ages | folders |
SHA3-256: |
9e8650bb26bfc9153672d75fead28d33 |
User & Date: | geraint@users.sourceforge.net on 2002-06-05 17:57:50 |
Other Links: | branch diff | manifest | tags |
Context
2002-06-05
| ||
18:23:38 | Cosmetic change. check-in: 56f530fcb4 user: geraint@users.sourceforge.net tags: origin/optimise-algebraic-equations, trunk | |
17:57:50 | Main part of optimisation routine moved to separate file. check-in: 9e8650bb26 user: geraint@users.sourceforge.net tags: origin/optimise-algebraic-equations, trunk | |
17:28:00 | Cosmetic change. check-in: 96f269ef83 user: geraint@users.sourceforge.net tags: origin/optimise-algebraic-equations, trunk | |
Changes
Modified mttroot/mtt/bin/trans/def2write_r from [83e084d8bc] to [99d73e586c].
︙ | ︙ | |||
9 10 11 12 13 14 15 16 17 18 19 20 21 22 | # Copyright (C) 2000 by Peter J. Gawthrop ############################################################### ## Version control history ############################################################### ## $Id$ ## $Log$ ## Revision 1.11 2002/05/17 09:14:58 geraint ## Optimises each line in a separate session. Allows larger models to be built. ## ## Revision 1.10 2002/04/28 18:41:27 geraint ## Fixed [ 549658 ] awk should be gawk. ## Replaced calls to awk with call to gawk. ## | > > > > > > > > > | 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | # Copyright (C) 2000 by Peter J. Gawthrop ############################################################### ## Version control history ############################################################### ## $Id$ ## $Log$ ## Revision 1.11.2.1 2002/06/05 11:14:51 geraint ## ae.r now generated using def2write_r like cse?.r ## fix_c.r called at ese2rdae stage so that pow gets fixed in ae.r. ## ## These changes produce the desired result (optimised algebraic equations) but ## have highlighted a problem; when optimisation fails, Reduce does not write ## a result. For complicated systems, this can lead to missing assignments in ## the resultant code. ## ## Revision 1.11 2002/05/17 09:14:58 geraint ## Optimises each line in a separate session. Allows larger models to be built. ## ## Revision 1.10 2002/04/28 18:41:27 geraint ## Fixed [ 549658 ] awk should be gawk. ## Replaced calls to awk with call to gawk. ## |
︙ | ︙ | |||
150 151 152 153 154 155 156 | }' } mtt_optimise () { sys="$1" lhs="$2" | < | < < < < < | | < < < < < < < < | < < < | < | | | | < | | < < > | < < < < | 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 | }' } mtt_optimise () { sys="$1" lhs="$2" lhs=`echo $lhs | sed 's/MTTEdX/MTTdX/'` dae="${sys}_dae.r" exp=`grep -i -e "^$lhs" $dae` rhs=`echo $exp | sed 's/.*:=\ \(.*\)/\1/'` rhs=`echo $rhs | sed 's/[;$]*$//'` if [ ! -z "${rhs}" ]; then mtt_optimise.sh "$lhs" "$rhs" | mtt_fix_integers fi return } # Remove log files rm -f def2write_r1.log def2write_r2.log |
︙ | ︙ | |||
214 215 216 217 218 219 220 | m=`first "$ms"`; ms=`rest "$ms"` is=`n2m 1 $n`; js=`n2m 1 $m`; for i in $is; do for j in $js; do if [ ${opt:-""} = "-optimise" ]; then name=`echo MTT$matrix'('$i','$j')'` | | | 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 | m=`first "$ms"`; ms=`rest "$ms"` is=`n2m 1 $n`; js=`n2m 1 $m`; for i in $is; do for j in $js; do if [ ${opt:-""} = "-optimise" ]; then name=`echo MTT$matrix'('$i','$j')'` mtt_optimise $1 "$comma$name" comma='' else echo 'write' name=`echo MTT$matrix'('$i','$j')'` echo ' '$comma$name ':=' $name '$' fi >> $1_$2_write.r done done done echo ';END;' >>$1_$2_write.r |
Added mttroot/mtt/bin/trans/mtt_optimise.sh version [a0808806c8].
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | #! /bin/sh set -e # get expression to optimise lhs="$1" rhs="$2" create_reduce_script () { lhs="$1" rhs="$2" cat <<EOF off echo$ load scope$ on double$ on noconvert$ on rounded$ off int$ off nat$ out "${tmp}"$ optimize mtt_tmp0 :=: ${rhs} iname mtt_tmp$ write "${lhs} := mtt_tmp0 $"$ shut "${tmp}"$ ;end; EOF return } # set work file names tmp="$0.tmp" log="$0.log" create_reduce_script "${lhs}" "${rhs}" | reduce > ${log} cat ${tmp} rm -f ${tmp} exit 0 |