Overview
Comment: | Now uses explicit ordered list of ports instead of port.index. Note that subsystems are still treated in arbitrary order. |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | origin/master | trunk |
Files: | files | file ages | folders |
SHA3-256: |
6f766628673634bcf00e9a4bc2f22842 |
User & Date: | gawthrop@users.sourceforge.net on 1998-09-02 11:47:09 |
Other Links: | branch diff | manifest | tags |
Context
1998-09-02
| ||
11:48:51 |
VERSION 3.2 (Swansea) abg data structure now uses explicti port and subsystem lists so that processing is in predetermined order. check-in: 0030d60738 user: gawthrop@users.sourceforge.net tags: origin/master, trunk | |
11:47:09 |
Now uses explicit ordered list of ports instead of port.index. Note that subsystems are still treated in arbitrary order. check-in: 6f76662867 user: gawthrop@users.sourceforge.net tags: origin/master, trunk | |
11:35:20 | Removed port.index field check-in: 5ee7c259c9 user: gawthrop@users.sourceforge.net tags: origin/master, trunk | |
Changes
Modified mttroot/mtt/bin/trans/m/abg2cbg.m from [fe77282cde] to [6774ac386d].
︙ | ︙ | |||
15 16 17 18 19 20 21 22 23 24 25 26 27 28 | # [bonds,status] = abg2cbg(system_name, system_type, full_name, port_bonds, infofile) # ############################################################### # ## Version control history # ############################################################### # ## $Id$ # ## $Log$ # ## Revision 1.38 1998/08/25 09:15:28 peterg # ## Fixed couple of problems with using two copies of the one data # ## stucture: # ## # ## ABG_field and ABG.field # ## # ## Maybe this is conceptually wrong? | > > > | 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | # [bonds,status] = abg2cbg(system_name, system_type, full_name, port_bonds, infofile) # ############################################################### # ## Version control history # ############################################################### # ## $Id$ # ## $Log$ # ## Revision 1.39 1998/08/25 20:06:16 peterg # ## Writes flipped port info # ## # ## Revision 1.38 1998/08/25 09:15:28 peterg # ## Fixed couple of problems with using two copies of the one data # ## stucture: # ## # ## ABG_field and ABG.field # ## # ## Maybe this is conceptually wrong? |
︙ | ︙ | |||
218 219 220 221 222 223 224 | if !struct_contains(ABG,"subsystems")# Are there any subsystems? return; # Nothing to do else [n_subsystems,junk] = size(struct_elements(ABG.subsystems)); endif | | | | > | | < | 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 | if !struct_contains(ABG,"subsystems")# Are there any subsystems? return; # Nothing to do else [n_subsystems,junk] = size(struct_elements(ABG.subsystems)); endif if struct_contains(ABG,"portlist")# Are there any ports? [n_ports,junk] = size(ABG.portlist); port_bond_index=zeros(n_ports,1); for i=1:n_ports # Find indices of the internal name = deblank(ABG.portlist(i,:)); # Name of this port eval(["port = ABG.ports.",name,";"]); # Extract port info port_bond_index(i) = abs(port.connections); endfor else n_ports = 0; endif [n_bonds,columns] = size(ABG.bonds);# Find number of bonds if (columns ~= 2)&(n_bonds>0) |
︙ | ︙ | |||
248 249 250 251 252 253 254 255 | # end; # Coerce the port (SS:[]) component bonds to have the same direction as # of the bonds in the encapsulating system -- but not at top level Flipped.ports="";Flipped.subs="";Flipped.cons=""; if (n_ports>0)&&(!at_top_level) # Coerce directions | > > > | | | 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 | # end; # Coerce the port (SS:[]) component bonds to have the same direction as # of the bonds in the encapsulating system -- but not at top level Flipped.ports="";Flipped.subs="";Flipped.cons=""; if (n_ports>0)&&(!at_top_level) # Coerce directions for i=1:n_ports name = deblank(ABG.portlist(i,:)); # Name of this port eval(["port = ABG.ports.",name,";"]); # Extract port info if (sign(port.connections)!=port_bond_direction(i)) # Direction different? eval(["ABG.ports.",name,".connections = - port.connections;"]); # Flip direction at port Flipped.ports=[Flipped.ports;name]; # Remember which port has been flipped bond_index=abs(port.connections); # Index of bond on port mtt_info(sprintf("Flip port %s on %s"\ ,name,full_name),infofile); # And report for [subsystem,name] = ABG.subsystems # and at the other end for k=1:length(subsystem.connections) |
︙ | ︙ | |||
276 277 278 279 280 281 282 | #(these are arrow-orientated) endif # Is the direction different? endfor # port = ABG.ports endif # (n_ports>0)&&(!at_top_level) # If not at top level, then copy the port bonds. if !at_top_level # Find number of port bonds | | | | | | 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 | #(these are arrow-orientated) endif # Is the direction different? endfor # port = ABG.ports endif # (n_ports>0)&&(!at_top_level) # If not at top level, then copy the port bonds. if !at_top_level # Find number of port bonds for j=1:n_ports jj = port_bond_index(j); # The index of the bond for k = 1:2 if ABG.bonds(jj,k)==0 # only copy if not already set ABG.bonds(jj,k) = port_bonds(j,k); endif endfor endfor else n_port_bonds=0; endif # Causality indicator total = 2*n_bonds; done = sum(sum(abs(ABG.bonds)))/total*100; fields=["ports";"subsystems"]; # Do for both ports and subsystems - # ports first |
︙ | ︙ |