Overview
Comment: | Revised to use code optimisation via scope |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | origin/master | trunk |
Files: | files | file ages | folders |
SHA3-256: |
428902e66d28ddc79c414b732caddb6e |
User & Date: | gawthrop@users.sourceforge.net on 2000-08-25 09:25:14 |
Other Links: | branch diff | manifest | tags |
Context
2000-08-28
| ||
20:17:59 |
Put in Winfried Neun's bug fix -- prevents segmentation violation using optimised gentran when matrix comtains a number check-in: a13084497f user: gawthrop@users.sourceforge.net tags: origin/master, trunk | |
2000-08-25
| ||
09:25:14 | Revised to use code optimisation via scope check-in: 428902e66d user: gawthrop@users.sourceforge.net tags: origin/master, trunk | |
09:23:40 | Made both names the same! check-in: d7bc82060c user: gawthrop@users.sourceforge.net tags: origin/master, trunk | |
Changes
Modified mttroot/mtt/bin/trans/cse2smx_lang from [2135ad4a0b] to [42d61abe8b].
︙ | ︙ | |||
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | # Constrained-state equation to state matrices with x vector # Used for implicit integration # Copyright (C) 2000 by Peter J. Gawthrop ## Modified from eailier version # Args while [ -n "`echo $1 | grep '^-'`" ]; do case $1 in -noglobals) noglobals='-noglobals'; ;; -parameters) parameters='-parameters'; ;; *) echo $1 is an unknown option exit;; esac shift done | > > > > > | 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 | # Constrained-state equation to state matrices with x vector # Used for implicit integration # Copyright (C) 2000 by Peter J. Gawthrop ## Modified from eailier version # Args ## Now default to matrix form matrix='yes' while [ -n "`echo $1 | grep '^-'`" ]; do case $1 in -noglobals) noglobals='-noglobals'; ;; -parameters) parameters='-parameters'; ;; -matrix) matrix='yes'; ;; *) echo $1 is an unknown option exit;; esac shift done |
︙ | ︙ | |||
41 42 43 44 45 46 47 48 49 | rep=$2 fi case $rep in smx) nrep=0; out='[mtta,mttax]'; ;; smxa) | > | > > > > > > > > | | 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 | rep=$2 fi case $rep in smx) nrep=0; out='[mtta,mttax]'; nmatrix=1; ;; smxa) nrep=1; if [ -n "$matrix" ]; then blurb="in matrix form"; nmatrix=1; else blurb="in vector form"; nmatrix=0; fi out='mtta'; ;; smxax) nrep=2 out='mttax'; nmatrix=0; ;; *) echo Representation $2 not recognised; exit;; esac # Inform user echo Creating $1_$rep.$lang $blurb #echo Creating $1_smxx.$lang #echo Creating $1_smxtx.$lang # Remove the old log file rm -f cse2smx_r.log rm -f $1_smx.$lang rm -f $1_smxx.$lang |
︙ | ︙ | |||
83 84 85 86 87 88 89 90 | clear mttx; % Dont need this now - use mkid instead OFF Echo; % Load the general translator package LOAD GENTRAN; GENTRANLANG!* := 'Pascal; | > | > > | | | | 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 | clear mttx; % Dont need this now - use mkid instead OFF Echo; % Load the general translator package LOAD GENTRAN; LOAD SCOPE; GENTRANLANG!* := 'Pascal; ON GENTRANSEG; % Segmentation ON GENTRANOPT; % Code optimise using scope OFF GENDECS; % No declarations MAXEXPPRINTLEN!* := 80; TEMPVARNUM!* := 1; TEMPVARNAME!* := 'mtt_s; % Matrix output function %in"$MTTPATH/trans/lang_matrix.r"; %Set up output according to the language. OFF NAT; GENTRANOUT "$1_$rep.body"; % Set up output according to the language. |
︙ | ︙ | |||
117 118 119 120 121 122 123 | FOR j := 1:MTTNx DO BEGIN ij := i + MTTNx*(j-1); xj := mkid(mttx,j); a_ij := df(MTTEdx(i,1), xj, 1); aa_ij := MTTE(i,j) - mttt*a_ij; IF (aa_ij NEQ 0) THEN | | | > | > > > > | 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 | FOR j := 1:MTTNx DO BEGIN ij := i + MTTNx*(j-1); xj := mkid(mttx,j); a_ij := df(MTTEdx(i,1), xj, 1); aa_ij := MTTE(i,j) - mttt*a_ij; IF (aa_ij NEQ 0) THEN IF ($nmatrix EQ 1) THEN BEGIN %% Write a with full indexing INAME(mtt_o); % Set temp name GENTRAN mtta(i,j) ::=: aa_ij; END; IF (($nmatrix EQ 0) AND ($nrep EQ 1)) THEN BEGIN %% Write a with vector indexing INAME(mtt_o); % Set temp name GENTRAN mtta(ij) ::=: aa_ij; END; mttAAx_i := mttAAx_i + aa_ij*xj; END; IF (mttAAx_i NEQ 0) THEN IF (($nrep EQ 0) OR ($nrep EQ 2)) THEN BEGIN INAME(mtt_o); % Set temp name GENTRAN mttax(i) ::=: mttAAx_i; END; END; %Shut the output according to the language. GENTRANSHUT "$1_$rep.body"; EOF if [ "$lang" = "m" ]; then |
︙ | ︙ |