ASPL User Guide v 1.00
© 2025 Bassem W. Jamaleddine


21. 7
   Tying to Oscillators with Cyclic Containment

 

Finding the Intersection of Oscillators Over Simultanious Temporal Calls to GG-function

ELEMENTS-GROUPING-CLASS: TIEWAVESGROUP

Sample Workspace: TIEDWAVES

GG-function: ggtiewaves()

Get the oscillating wave along its summed areas:

      W1 = ggtiewaves( .. )       where W1 is a set variable

      W2 = ggtiewaves( .. )       where W2 is a set variable

Tying to Oscillators with Cyclic Containment

●  Tying to Oscillators with Cyclic Containment

Tied attributes are bound to functions defined within their corresponding egC-feeder module: Udev. You can view or edit this module using the tilde-extension ~udev. The Udev module is managed by ASPL containment manager, and lexical variables defined in it have their values persisted between intermittent calls to the tied functions. Therefore, it is possible to have tied attributes hold their data between subsequent invocations of the GG-function.

ASPL programming is a containment programming and lexical variables that
are defined within the corresponding egC-feeder module: Udev,
are persisted during the runtime of the element grouping class container.

ASPL's tied-containment provides the programmer with the capability to
reuse variables throughout temporal invocation of the GG-function.

In the following example, we demonstrate how subsequent calls to the GG-function ggtiewaves(), where attributes are hooked to tied oscillator functions, can cycle periodically and the number of points is incremented (with each cycle).

Consider the following three operations performed in ASPL namedspace TIEDWAVES::

aspl> W1 = ggtiewaves(grp1,Waves1,points,100,frequency,1,resetcycle,0,aggregate,1,tiesess,W1)

aspl> sleep 1

aspl> ?3,1 W1

The first operation calls the ggtiewaves() creating the group labeled Waves1 with one hundred points, where the frequency is one. This group, represented by the set variable W1 and labeled Waves1, contains the data of both oscillators. We sleep for a second, then the third operation interrogates the set variable W1, turning it into a differential group variable (since temporal changes are detected which are caused by an increment in the index of the points). Interrogating W1 causes subsequent call to the source of the variable W1, namely the sourcing is done by ggtiewaves(). Since the resetcycle is false, then the oscillating functions defined in Udev.pm will continue incrementing with every call to the aforementioned function. The tiesess is used to tell Udev to continue with the named session W1. The tiesess name can be any name, and if not specified the Udev will assign it a temporary random name.

The following figure shows the net effect of the four calls to the ggtiewaves(): one hundred points per each cycle, for a total of four hundred points for all four cycles. The summed area is also incremented since the aggregation will continue incremeting.

full view

Image File

 -FG- Fig. 21.7.1   [Figure: Cycling periodically with ASPL tied containment]
ASPL (C) 2025 Bassem Jamaleddine


The following figures shows the four cycles along their summed area as being aggregated and computed by the lambda procedures. However in here the resetaggg is true, causing the aggregation pool to be reset between subsequent calls to ggtiewaves().

aspl>  W2 = ggtiewaves(grp1,Waves2,points,100,frequency,1,resetcycle,0,aggregate,1,tiesess,W2,resetaggg,1)

aspl> sleep 1

aspl> ?3,1 W2



full view

Image File

 -FG- Fig. 21.7.2   [Figure: Cycling periodically with ASPL tied containment with their summed area]
ASPL (C) 2025 Bassem Jamaleddine


The runtime output of the operations can be seen in the following display.

viewme

 -TC- Display. 21.7.1   [TIEDWAVES-Sample]
Sample workspace TIEDWAVES