Overview
Comment: | Replaced: comp_bonds = bonds(bond_list,:) by: for kk = 1:n_comp comp_bonds(kk,:) = bonds(comp(kk),:); end; to avoid an octave bug in 1.92. |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | origin/master | trunk |
Files: | files | file ages | folders |
SHA3-256: |
c07c83d7e64e632bb5d6955d962d900f |
User & Date: | gawthrop@users.sourceforge.net on 1997-08-18 12:45:24 |
Other Links: | branch diff | manifest | tags |
Context
1997-08-18
| ||
13:12:23 | Initial revision check-in: 9612f6fc83 user: gawthrop@users.sourceforge.net tags: origin/master, trunk | |
12:45:24 |
Replaced: comp_bonds = bonds(bond_list,:) by: for kk = 1:n_comp comp_bonds(kk,:) = bonds(comp(kk),:); end; to avoid an octave bug in 1.92. check-in: c07c83d7e6 user: gawthrop@users.sourceforge.net tags: origin/master, trunk | |
11:23:59 |
Main component loop now misses out the ports (SS:[]) -- the causality is merely passed through these components. check-in: a02aee26fe user: gawthrop@users.sourceforge.net tags: origin/master, trunk | |
Changes
Modified mttroot/mtt/bin/trans/m/abg2cbg.m from [23f6a7ee0b] to [1e301015c1].
︙ | ︙ | |||
13 14 15 16 17 18 19 20 21 22 23 24 25 26 | % [bonds,status] = abg2cbg(system_name, system_type, full_name, port_bonds, infofile) % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % %% Version control history % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % %% $Id$ % %% $Log$ % %% Revision 1.18 1997/08/08 08:11:04 peterg % %% Suppress compoment trace. % %% % %% Revision 1.17 1997/08/07 16:10:13 peterg % %% Move the if status .. to the beginning of the main loop. % %% % %% Revision 1.16 1997/08/04 13:11:19 peterg | > > > > | 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | % [bonds,status] = abg2cbg(system_name, system_type, full_name, port_bonds, infofile) % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % %% Version control history % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % %% $Id$ % %% $Log$ % %% Revision 1.19 1997/08/18 11:23:59 peterg % %% Main component loop now misses out the ports (SS:[]) -- the causality % %% is merely passed through these components. % %% % %% Revision 1.18 1997/08/08 08:11:04 peterg % %% Suppress compoment trace. % %% % %% Revision 1.17 1997/08/07 16:10:13 peterg % %% Move the if status .. to the beginning of the main loop. % %% % %% Revision 1.16 1997/08/04 13:11:19 peterg |
︙ | ︙ | |||
156 157 158 159 160 161 162 | % Check compatibility - if ok copy port bonds to the internal bonds list. if n_port_bonds~=n_ports mtt_info(sprintf('%s: %1.0f port bonds incompatible with %1.0f ports', ... full_name, n_port_bonds, n_ports), infofile); else % Copy the port bonds & status | | | 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 | % Check compatibility - if ok copy port bonds to the internal bonds list. if n_port_bonds~=n_ports mtt_info(sprintf('%s: %1.0f port bonds incompatible with %1.0f ports', ... full_name, n_port_bonds, n_ports), infofile); else % Copy the port bonds & status j = abs(components(1:n_ports,1)) % relevant bond numbers bonds(j,:) = port_bonds; status(1:n_ports) = port_status; end else n_port_bonds=0; end; bonds,port_bonds |
︙ | ︙ | |||
179 180 181 182 183 184 185 | while( ci_index>0) old_done = inf; % Inner loop propagates causality while done~=old_done % disp(sprintf('Causality is %3.0f%s complete.', done, pc)); old_done = done; | | | 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 | while( ci_index>0) old_done = inf; % Inner loop propagates causality while done~=old_done % disp(sprintf('Causality is %3.0f%s complete.', done, pc)); old_done = done; for i = n_port_bonds+1:n_components % Miss out the ports if status(i) ~= 0 % only do this if causality not yet complete % Get the bonds on this component comp = nozeros(components(i,:)) bond_list = abs(comp); direction = sign(comp)'*[1 1]; n_bonds = length(bond_list); |
︙ | ︙ | |||
202 203 204 205 206 207 208 | if strcmp(comp_type,'1') comp_type = 'one'; end; % Component causality procedure name cause_name = [comp_type, '_cause']; | | > > > > | > > > > > | | | | | | | | < | | 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 | if strcmp(comp_type,'1') comp_type = 'one'; end; % Component causality procedure name cause_name = [comp_type, '_cause']; % Bonds on this component (arrow-orientated) -- these become the % port bonds on the ith component of this subsystem. % a bug in octave 1.92 (??) prevents this from working -- replace by % a loop -- but check on V2.0 % comp_bonds = bonds(bond_list,:) for kk = 1:n_comp comp_bonds(kk,:) = bonds(comp(kk),:); end; % Invoke the appropriate causality procedure if exist(cause_name)~=2 % Try a compound component % Port status depends on whether the corresponding bonds are % fully causal at this stage. one = ones(n_bonds,1); port_status = (sum(abs(comp_bonds'))'==2*one) - one; [comp_bonds,s] = abg2cbg(name, comp_type, full_name, comp_bonds, port_status, ... typefile, infofile); % Create a single status from the status vector s if max(abs(s)) == 0 % Causal status(i) = 0; else if max(s) == 1 % At least one component is overcausal status(i) = 1; else % no component is overcausal but some are undercausal status(i) = -1; end; end; else % its a simple component comp_bonds_in = comp_bonds % Convert from arrow orientated to component orientated causality comp_bonds = comp_bonds.*direction; disp(['---', name, ' (', cause_name, ') ---']); % Evaluate the built-in causality procedure eval([ '[comp_bonds,status(i)] = ', cause_name, '(comp_bonds);' ]); % and convert from component orientated to arrow orientated causality comp_bonds = comp_bonds.*direction; comp_bonds_out = comp_bonds end; % Update the full bonds list bonds(bond_list,:) = comp_bonds end; end; done = sum(sum(abs(bonds)))/total*100; %disp(sprintf('Causality is %3.0f%s complete.', done, pc), infofile)); end; |
︙ | ︙ | |||
300 301 302 303 304 305 306 | file_name = [full_name, '_cbg.m']; disp(['Writing ', file_name]); cbgfilenum = fopen(file_name,'w'); write_cbg(cbgfilenum,full_name,system_type,bonds,status); fclose(cbgfilenum); % Return the port bonds - arrow orientated causality | | | 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 | file_name = [full_name, '_cbg.m']; disp(['Writing ', file_name]); cbgfilenum = fopen(file_name,'w'); write_cbg(cbgfilenum,full_name,system_type,bonds,status); fclose(cbgfilenum); % Return the port bonds - arrow orientated causality if ~at_top_level % Not at top level j = abs(components(1:n_ports,1)) %relevant bond numbers port_bonds = bonds(j,:) end; disp('===================================='); disp(['END: ', full_name, ' (', fun_name, ')']); disp('===================================='); |