Overview
Comment:Now computes n_vector_bonds -- number apparent (maybe vector) bonds per component.
Neeeded to vectorise junctions.
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | origin/master | trunk
Files: files | file ages | folders
SHA3-256: a4fc0123b6a987852be8249709a9d7ea7ee6b1d1ff095d8204d41a1ec9397d4f
User & Date: gawthrop@users.sourceforge.net on 1999-10-18 04:08:46
Other Links: branch diff | manifest | tags
Context
1999-10-18
05:16:51
Now vectorises 0 and 1 junctions !! check-in: 869df7d510 user: gawthrop@users.sourceforge.net tags: origin/master, trunk
04:08:46
Now computes n_vector_bonds -- number apparent (maybe vector) bonds per component.
Neeeded to vectorise junctions.
check-in: a4fc0123b6 user: gawthrop@users.sourceforge.net tags: origin/master, trunk
1999-10-15
07:34:23
Initial revision check-in: 09d62fb574 user: gawthrop@users.sourceforge.net tags: origin/master, trunk
Changes

Modified mttroot/mtt/bin/trans/m/rbg2abg.m from [55c42237ba] to [c4467a3093].

1

2
3
4
5
6
7
8
9



10
11
12
13
14
15
16

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
-
+








+
+
+







function [bonds,components] = rbg2abg(name,rbonds,rstrokes,rcomponents,\
function [bonds,components,n_vector_bonds] = rbg2abg(name,rbonds,rstrokes,rcomponents,\
				      port_coord,port_name,\
				      infofile,errorfile)

  ## ###############################################################
  ## ## Version control history
  ## ###############################################################
  ## ## $Id$
  ## ## $Log$
  ## ## Revision 1.42  1999/08/25 21:45:03  peterg
  ## ## Spurious start to vector 0 and 1
  ## ##
  ## ## Revision 1.41  1999/08/19 21:12:33  peterg
  ## ## Tidied and started implementaation of vector junctions
  ## ##
  ## ## Revision 1.40  1999/08/19 05:39:55  peterg
  ## ## Put into octave format
  ## ##
  ## ## Revision 1.39  1999/08/19 05:22:16  peterg
248
249
250
251
252
253
254
255
256
257
258




259
260
261
262
263
264
265
251
252
253
254
255
256
257




258
259
260
261
262
263
264
265
266
267
268







-
-
-
-
+
+
+
+







#       n_name = length(comp_type);
#       if n_name>1
# 	n_vector = str2num(comp_type(2:n_name));
#       endif
#     endif
#     n_vector

    ## Create scalar versions of vector components
    for new_comp=2:n_vector
      i_vector++;
    endfor
#     ## Create scalar versions of vector components
#     for new_comp=2:n_vector
#       i_vector++;
#     endfor
    
    ## There are n_comp_bonds bonds on this component with corresponding index
    [index,n_comp_bonds] = getindex(comp_near_bond,i);

    if index(1,1)==0
      mtt_error(sprintf("Component %s (%s) has no bonds", comp_name,
			comp_type),errorfile);
412
413
414
415
416
417
418






419

420
421
422
423
424
425
426
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436







+
+
+
+
+
+

+







    endfor
    
  endif


  bonds = causality;


  ## Find number of bonds on each component BEFORE vectorisation
  for i=1:n_components
    n_vector_bonds(i) = length(nozeros(components(i,:)))
  endfor
  
  ## Now expand vector ports
  disp("Expanding vector ports");
  [n_bonds,junk] = size(bonds);
  n_ports = length(port_bond);
  n_exp_ports=n_ports;
  exp_port_name="";
  exp_port_bond = [];
  ##exp_comps = [];
  for i=1:n_ports
437
438
439
440
441
442
443
444
445


446
447
448
449
450
451
452
447
448
449
450
451
452
453


454
455
456
457
458
459
460
461
462







-
-
+
+







      [other_bond_index,n_other] = getindex(port_bond,-signed_bond_index);
      if n_other == 1
	other_port_name = port_name(other_bond_index,:);
	[other_subport,n_other_subports] = split_port(other_port_name, ',');
	if n_other_subports~=n_subports
	  mtt_error(['Vector ports ', port_name_i, ' and ', other_port_name, 'are not compatible'],errorfile);
	end
      else 
	mtt_error(['Vector port ', port_name_i, ' has no matching port'], errorfile);
      else # No explicit matching vector port
 	mtt_error(['Vector port ', port_name_i, ' has no matching port'], errorfile);
      endif
      
      
      if other_bond_index>i ##then its not been done yet
	mtt_info(["Vector port: ", port_name_i],infofile);
	mtt_info(["matching: ", other_port_name],infofile);
	## Remove sign info.
505
506
507
508
509
510
511
512

513
514
515

516
517

518



519
520
521
522
523
524
525
515
516
517
518
519
520
521

522
523


524


525
526
527
528
529
530
531
532
533
534
535
536







-
+

-
-
+
-
-
+

+
+
+







  for i = 1:n_components    
    disp('-----------------');
    ##Get component type
    eval(['[comp_type, comp_name] = ', name, '_cmp(i)']);


    ##Convert junction names   
    if comp_type(1)=='0'
    if comp_type(1)=='0'	# Zero junction
      comp_type = 'zero';
    endif
    
      isa_junction = 1;

    if comp_type(1)=='1'
    elseif comp_type(1)=='1'	# One junction
      comp_type = 'one';
      isa_junction = 1;
    else
      isa_junction = 0;
    endif

    ## Find the (unsorted) bond list on this component
    signed_bond_list = nozeros(components(i,:));
    n_comp_bonds = length(signed_bond_list);
    direction = sign(signed_bond_list);
    
625
626
627
628
629
630
631

632
633
634
635
636
637
638
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650







+







	  mtt_error(['Component ', comp_name, ' (', comp_type, ') has an unrecognised port: ', name_k], errorfile); 
	else
	  components(i,k) = signed_bond_list(j);     
	endif
      endfor
    endif
  endfor

endfunction







MTT: Model Transformation Tools
GitHub | SourceHut | Sourceforge | Fossil RSS ]