User Tools

Site Tools


dev:program_ulam

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
dev:program_ulam [2015/07/02 01:07] – [Interaction between three Elements] xychendev:program_ulam [2016/01/14 07:13] (current) ackley
Line 21: Line 21:
 ==== EventWindow Indices ==== ==== EventWindow Indices ====
  
-Left picture is an indices map within an EventWindow. The sites are labeled from 1 to 40Right is a colored mapWe use different names to distinct different 'tens'For 1 to 10 we use W1,..,W0. For 11 to 20 we use E1,...,E0. For 21 to 30 we use F1,...,F0. And from 31 to 40 we use G1,...,G0. +{{ :dev:event-window-10.png?300|}} The image at right (click to enlarge) shows the indexing scheme used for sites within an ''EventWindow'' Both 2D 'coord' numbering and a 1D 'site number' approach are offered  
-{{:dev:ew_index.png?220 |}}{{:dev:mfms_ew_index.png?260 |}}+ 
 +The ''getCoord(siteNum)'' function converts an 1D index (which is an ''Unsigned(6)'' ) to 2D coordinate (which is a quark ''C2D'')The ''getSiteNumber(coord)'' convert ''C2D'' back to 1-d ''Unsigned(6)'' The quark ''C2D'' has ''getX()'' and ''getY()'' methods to access the //x// and //y// coordinate values individually. 
 + 
 +In generalwhen code is referring to individual fixed sites within the event windowthe 1D coordinate system is used (see the 'First' element below for an example) Two-dimensional C2D indexing is more commonly used when there is some flexibility depending on geometry or relative positions  
  
 ===== The 'First' Element ===== ===== The 'First' Element =====
Line 32: Line 36:
   EventWindow ew;   EventWindow ew;
   Void behave(){   Void behave(){
-    ew[1]=ew[0];+    ew[1]=ew[0]; // Copy self one site west
   }   }
 } }
Line 340: Line 344:
   DebugUtils du;   DebugUtils du;
   EventWindow ew;   EventWindow ew;
-  Once oldFlag;+  Once oc;
   AtomUtils au;   AtomUtils au;
   Weight wa;   Weight wa;
Line 410: Line 414:
   Void behave(){   Void behave(){
     Int msum;     Int msum;
-    if(oldFlag.new()){+    if(oc.new()){
       initSelf();       initSelf();
       du.printContext();       du.printContext();
Line 420: Line 424:
 } }
 </code> </code>
 +
 +We use a ''Once'' quark to call the ''initSelf()'' //once//. We have used a lot of quarks before without realizing that. The ''EventWindow'', ''DebugUtils'', ''Random'', ''AtomUtils'' are all quarks. It's the same thing here to use a ''Once'': instantiate ''Once oc'', then use ''oc.new()'' to decide if this is the first time of a call. 
 +
 +In the ''changeColor()'' of this ''Node'' element, we use ''ARGB getColor()'' to give new color values. This ''getColor()'' returns a array with Four values: //Opacity//, //Red//, //Green// and //Blue//.  
 +
 +Like other Neurons, our ''Node'' will be fired by neighbors. In this simplified case, only the //left neighbors// can trigger our ''Nodes''. This time we need to scan the whole ''EventWindow''. To decide which neighbors are located to the left we use C2D coordinate. Those Atoms with negative x coordinate are to the left of our ''Node''
 +
dev/program_ulam.1435799244.txt.gz · Last modified: 2015/07/02 01:07 by xychen