'!box'(0, 903364440, 0, 0, [], 'Serial Position in Free Recall', 'Compound', [], ''). '!cycle'(903364440,'0.'). '!trial'(903364440,'1. 0. 1. 1.'). '!random_seed'(903364440,'seed(13503, 18364, 17572).'). '!temp'(903364440,''). '!subboxes_current'(903364440,'31: data(903390619, add(polyline(primary_axes, [ (50, 50), (50, 350), (50+500, 350)], [colour(black)])), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, add(line(primary_axes, (50, 350-3* (0-0))to (50+500, 350-3* (0-0)), [colour(black), weight(0), style(dash)])), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, del_all(polyline(primary_axes, _G16277, _G16278)), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, del_all(line(primary_axes, _G16277, _G16278)), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, add(text(primary_axes, (% N=1)aligned (c, b)at (50, 50-10), [colour(black)])), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, del_all(text(primary_axes, _G16277, _G16278)), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, add(line(primary_labels, (50, 350)to (50-3, 350), [colour(black)])), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, add(text(primary_labels, 0 aligned (r, c)at (50-8, 350), [colour(black)])), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, del_all(line(primary_labels, _G16277, _G16278)), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, del_all(text(primary_labels, _G16277, _G16278)), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, add(line(primary_labels, (50, 290)to (50-3, 290), [colour(black)])), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, add(text(primary_labels, 20 aligned (r, c)at (50-8, 290), [colour(black)])), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, del_all(line(primary_labels, _G16277, _G16278)), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, del_all(text(primary_labels, _G16277, _G16278)), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, add(line(primary_labels, (50, 230)to (50-3, 230), [colour(black)])), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, add(text(primary_labels, 40 aligned (r, c)at (50-8, 230), [colour(black)])), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, del_all(line(primary_labels, _G16277, _G16278)), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, del_all(text(primary_labels, _G16277, _G16278)), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, add(line(primary_labels, (50, 170)to (50-3, 170), [colour(black)])), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, add(text(primary_labels, 60 aligned (r, c)at (50-8, 170), [colour(black)])), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, del_all(line(primary_labels, _G16277, _G16278)), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, del_all(text(primary_labels, _G16277, _G16278)), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, add(line(primary_labels, (50, 110)to (50-3, 110), [colour(black)])), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, add(text(primary_labels, 80 aligned (r, c)at (50-8, 110), [colour(black)])), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, del_all(line(primary_labels, _G16277, _G16278)), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, del_all(text(primary_labels, _G16277, _G16278)), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, add(line(primary_labels, (50, 50)to (50-3, 50), [colour(black)])), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, add(text(primary_labels, 100 aligned (r, c)at (50-8, 50), [colour(black)])), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, del_all(line(primary_labels, _G16277, _G16278)), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, del_all(text(primary_labels, _G16277, _G16278)), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, add(text(x_categ, 1 aligned (c, t)at (70-20/2, 350+8), [colour(black)])), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, add(line(x_categ, (70, 350)to (70, 350+3), [colour(black)])), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, del_all(text(x_categ, _G16277, _G16278)), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, del_all(line(x_categ, _G16277, _G16278)), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, add(text(x_categ, 2 aligned (c, t)at (90-20/2, 350+8), [colour(black)])), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, add(line(x_categ, (90, 350)to (90, 350+3), [colour(black)])), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, del_all(text(x_categ, _G16277, _G16278)), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, del_all(line(x_categ, _G16277, _G16278)), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, add(text(x_categ, 3 aligned (c, t)at (110-20/2, 350+8), [colour(black)])), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, add(line(x_categ, (110, 350)to (110, 350+3), [colour(black)])), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, del_all(text(x_categ, _G16277, _G16278)), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, del_all(line(x_categ, _G16277, _G16278)), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, add(text(x_categ, 4 aligned (c, t)at (130-20/2, 350+8), [colour(black)])), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, add(line(x_categ, (130, 350)to (130, 350+3), [colour(black)])), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, del_all(text(x_categ, _G16277, _G16278)), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, del_all(line(x_categ, _G16277, _G16278)), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, add(text(x_categ, 5 aligned (c, t)at (150-20/2, 350+8), [colour(black)])), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, add(line(x_categ, (150, 350)to (150, 350+3), [colour(black)])), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, del_all(text(x_categ, _G16277, _G16278)), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, del_all(line(x_categ, _G16277, _G16278)), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, add(text(x_categ, 6 aligned (c, t)at (170-20/2, 350+8), [colour(black)])), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, add(line(x_categ, (170, 350)to (170, 350+3), [colour(black)])), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, del_all(text(x_categ, _G16277, _G16278)), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, del_all(line(x_categ, _G16277, _G16278)), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, add(text(x_categ, 7 aligned (c, t)at (190-20/2, 350+8), [colour(black)])), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, add(line(x_categ, (190, 350)to (190, 350+3), [colour(black)])), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, del_all(text(x_categ, _G16277, _G16278)), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, del_all(line(x_categ, _G16277, _G16278)), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, add(text(x_categ, 8 aligned (c, t)at (210-20/2, 350+8), [colour(black)])), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, add(line(x_categ, (210, 350)to (210, 350+3), [colour(black)])), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, del_all(text(x_categ, _G16277, _G16278)), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, del_all(line(x_categ, _G16277, _G16278)), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, add(text(x_categ, 9 aligned (c, t)at (230-20/2, 350+8), [colour(black)])), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, add(line(x_categ, (230, 350)to (230, 350+3), [colour(black)])), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, del_all(text(x_categ, _G16277, _G16278)), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, del_all(line(x_categ, _G16277, _G16278)), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, add(text(x_categ, 10 aligned (c, t)at (250-20/2, 350+8), [colour(black)])), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, add(line(x_categ, (250, 350)to (250, 350+3), [colour(black)])), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, del_all(text(x_categ, _G16277, _G16278)), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, del_all(line(x_categ, _G16277, _G16278)), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, add(text(x_categ, 11 aligned (c, t)at (270-20/2, 350+8), [colour(black)])), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, add(line(x_categ, (270, 350)to (270, 350+3), [colour(black)])), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, del_all(text(x_categ, _G16277, _G16278)), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, del_all(line(x_categ, _G16277, _G16278)), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, add(text(x_categ, 12 aligned (c, t)at (290-20/2, 350+8), [colour(black)])), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, add(line(x_categ, (290, 350)to (290, 350+3), [colour(black)])), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, del_all(text(x_categ, _G16277, _G16278)), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, del_all(line(x_categ, _G16277, _G16278)), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, add(text(x_categ, 13 aligned (c, t)at (310-20/2, 350+8), [colour(black)])), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, add(line(x_categ, (310, 350)to (310, 350+3), [colour(black)])), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, del_all(text(x_categ, _G16277, _G16278)), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, del_all(line(x_categ, _G16277, _G16278)), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, add(text(x_categ, 14 aligned (c, t)at (330-20/2, 350+8), [colour(black)])), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, add(line(x_categ, (330, 350)to (330, 350+3), [colour(black)])), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, del_all(text(x_categ, _G16277, _G16278)), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, del_all(line(x_categ, _G16277, _G16278)), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, add(text(x_categ, 15 aligned (c, t)at (350-20/2, 350+8), [colour(black)])), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, add(line(x_categ, (350, 350)to (350, 350+3), [colour(black)])), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, del_all(text(x_categ, _G16277, _G16278)), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, del_all(line(x_categ, _G16277, _G16278)), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, add(text(x_categ, 16 aligned (c, t)at (370-20/2, 350+8), [colour(black)])), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, add(line(x_categ, (370, 350)to (370, 350+3), [colour(black)])), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, del_all(text(x_categ, _G16277, _G16278)), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, del_all(line(x_categ, _G16277, _G16278)), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, add(text(x_categ, 17 aligned (c, t)at (390-20/2, 350+8), [colour(black)])), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, add(line(x_categ, (390, 350)to (390, 350+3), [colour(black)])), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, del_all(text(x_categ, _G16277, _G16278)), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, del_all(line(x_categ, _G16277, _G16278)), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, add(text(x_categ, 18 aligned (c, t)at (410-20/2, 350+8), [colour(black)])), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, add(line(x_categ, (410, 350)to (410, 350+3), [colour(black)])), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, del_all(text(x_categ, _G16277, _G16278)), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, del_all(line(x_categ, _G16277, _G16278)), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, add(text(x_categ, 19 aligned (c, t)at (430-20/2, 350+8), [colour(black)])), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, add(line(x_categ, (430, 350)to (430, 350+3), [colour(black)])), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, del_all(text(x_categ, _G16277, _G16278)), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, del_all(line(x_categ, _G16277, _G16278)), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, add(text(x_categ, 20 aligned (c, t)at (450-20/2, 350+8), [colour(black)])), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, add(line(x_categ, (450, 350)to (450, 350+3), [colour(black)])), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, del_all(text(x_categ, _G16277, _G16278)), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, del_all(line(x_categ, _G16277, _G16278)), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, add(text(x_categ, 21 aligned (c, t)at (470-20/2, 350+8), [colour(black)])), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, add(line(x_categ, (470, 350)to (470, 350+3), [colour(black)])), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, del_all(text(x_categ, _G16277, _G16278)), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, del_all(line(x_categ, _G16277, _G16278)), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, add(text(x_categ, 22 aligned (c, t)at (490-20/2, 350+8), [colour(black)])), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, add(line(x_categ, (490, 350)to (490, 350+3), [colour(black)])), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, del_all(text(x_categ, _G16277, _G16278)), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, del_all(line(x_categ, _G16277, _G16278)), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, add(text(x_categ, 23 aligned (c, t)at (510-20/2, 350+8), [colour(black)])), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, add(line(x_categ, (510, 350)to (510, 350+3), [colour(black)])), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, del_all(text(x_categ, _G16277, _G16278)), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, del_all(line(x_categ, _G16277, _G16278)), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, add(text(x_categ, 24 aligned (c, t)at (530-20/2, 350+8), [colour(black)])), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, add(line(x_categ, (530, 350)to (530, 350+3), [colour(black)])), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, del_all(text(x_categ, _G16277, _G16278)), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, del_all(line(x_categ, _G16277, _G16278)), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, add(text(x_categ, 25 aligned (c, t)at (550-20/2, 350+8), [colour(black)])), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, add(line(x_categ, (550, 350)to (550, 350+3), [colour(black)])), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, del_all(text(x_categ, _G16277, _G16278)), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, del_all(line(x_categ, _G16277, _G16278)), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, add(text(x_title, Serial position aligned (c, t)at (50+500/2, 350+20), [colour(black)])), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, del_all(text(x_title, _G16277, _G16278)), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, add(polyline(recall, [ (60, 350- (0-0)*3), (80, 350- (0-0)*3), (100, 350- (0-0)*3), (120, 350- (0-0)*3), (140, 350- (0-0)*3), (160, 350- (0-0)*3), (180, 350- (0-0)*3), (200, 350- (0-0)*3), (220, 350- (0-0)*3), (240, 350- (0-0)*3), (260, 350- (0-0)*3), (280, 350- (0-0)*3), (300, 350- (0-0)*3), (320, 350- (0-0)*3), (340, 350- (0-0)*3), (360, 350- (0-0)*3), (380, 350- (0-0)*3), (400, 350- (0-0)*3), (420, 350- (0-0)*3), (440, 350- (0-0)*3), (460, 350- (0-0)*3), (480, 350- (0-0)*3), (500, 350- (0-0)*3), (520, 350- (0-0)*3), (540, 350- (0-0)*3)])), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, del_all(polyline(recall, _G16277)), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, add(circle(recall, 4 at (60, 350- (0-0)*3), [weight(1)])), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, del_all(circle(recall, _G16277, _G16278)), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, add(circle(recall, 4 at (80, 350- (0-0)*3), [weight(1)])), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, del_all(circle(recall, _G16277, _G16278)), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, add(circle(recall, 4 at (100, 350- (0-0)*3), [weight(1)])), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, del_all(circle(recall, _G16277, _G16278)), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, add(circle(recall, 4 at (120, 350- (0-0)*3), [weight(1)])), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, del_all(circle(recall, _G16277, _G16278)), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, add(circle(recall, 4 at (140, 350- (0-0)*3), [weight(1)])), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, del_all(circle(recall, _G16277, _G16278)), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, add(circle(recall, 4 at (160, 350- (0-0)*3), [weight(1)])), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, del_all(circle(recall, _G16277, _G16278)), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, add(circle(recall, 4 at (180, 350- (0-0)*3), [weight(1)])), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, del_all(circle(recall, _G16277, _G16278)), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, add(circle(recall, 4 at (200, 350- (0-0)*3), [weight(1)])), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, del_all(circle(recall, _G16277, _G16278)), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, add(circle(recall, 4 at (220, 350- (0-0)*3), [weight(1)])), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, del_all(circle(recall, _G16277, _G16278)), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, add(circle(recall, 4 at (240, 350- (0-0)*3), [weight(1)])), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, del_all(circle(recall, _G16277, _G16278)), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, add(circle(recall, 4 at (260, 350- (0-0)*3), [weight(1)])), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, del_all(circle(recall, _G16277, _G16278)), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, add(circle(recall, 4 at (280, 350- (0-0)*3), [weight(1)])), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, del_all(circle(recall, _G16277, _G16278)), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, add(circle(recall, 4 at (300, 350- (0-0)*3), [weight(1)])), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, del_all(circle(recall, _G16277, _G16278)), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, add(circle(recall, 4 at (320, 350- (0-0)*3), [weight(1)])), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, del_all(circle(recall, _G16277, _G16278)), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, add(circle(recall, 4 at (340, 350- (0-0)*3), [weight(1)])), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, del_all(circle(recall, _G16277, _G16278)), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, add(circle(recall, 4 at (360, 350- (0-0)*3), [weight(1)])), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, del_all(circle(recall, _G16277, _G16278)), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, add(circle(recall, 4 at (380, 350- (0-0)*3), [weight(1)])), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, del_all(circle(recall, _G16277, _G16278)), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, add(circle(recall, 4 at (400, 350- (0-0)*3), [weight(1)])), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, del_all(circle(recall, _G16277, _G16278)), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, add(circle(recall, 4 at (420, 350- (0-0)*3), [weight(1)])), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, del_all(circle(recall, _G16277, _G16278)), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, add(circle(recall, 4 at (440, 350- (0-0)*3), [weight(1)])), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, del_all(circle(recall, _G16277, _G16278)), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, add(circle(recall, 4 at (460, 350- (0-0)*3), [weight(1)])), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, del_all(circle(recall, _G16277, _G16278)), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, add(circle(recall, 4 at (480, 350- (0-0)*3), [weight(1)])), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, del_all(circle(recall, _G16277, _G16278)), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, add(circle(recall, 4 at (500, 350- (0-0)*3), [weight(1)])), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, del_all(circle(recall, _G16277, _G16278)), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, add(circle(recall, 4 at (520, 350- (0-0)*3), [weight(1)])), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, del_all(circle(recall, _G16277, _G16278)), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, add(circle(recall, 4 at (540, 350- (0-0)*3), [weight(1)])), 903390619).'). '!subboxes_current'(903364440,'31: data(903390619, del_all(circle(recall, _G16277, _G16278)), 903390619).'). '!box'(903364440, 903390619, 65, 120, [input(903364449, send)], 'Graph Package', 'Compound', [], ''). '!box'(903390619, 861216060, 320, 185, [input(903364449, send), output(864077783, send), output(867770884, read), output(867770884, send), output(867629775, read), output(867629775, send), output(864145229, send), output(864145229, read)], 'Draw Graph', 'Process', [enum("Recurrent:", 'Yes'), real("Firing Rate:", 1.000000)], ''). '!comment'(861216060,'***************************************INITIALISATION*****************************'). '!rule'(861216060,'------------------------calculate scale----------------------', [triggered(graph(Chart)), refracted], [not [property_test(xy_pair, _, Chart)], not [property_test(y_range, _, Chart)], property_test(cluster, on, Chart), property_test(error, ErrBars, Chart), findall(Set, [get_series(_, Set, _, Chart)], Datasets), maxminlist(Datasets, Extremes, ErrBars), sort(Extremes, Sorted), first_element(Sorted, Min1), last_element(Sorted, Max1), property_test(scale_units, ScaleUnits, Chart), once([decide_unit(Min1, Max1, ScaleUnits, 1, Unit, Min, Max)])], [send(add(Chart, y_range = Min to Max), 861216060), send(add(Chart, y_scale_unit = Unit), 861216060), send(graph(Chart), 861216060)]). '!rule'(861216060,'y scale for XY chart', [triggered(graph(Chart)), refracted], [property_test(xy_pair, _, Chart), not [property_test(y_range, _, Chart)], property_test(error, ErrBars, Chart), findall(Set, [y_series(Set, Chart)], Datasets), maxminlist(Datasets, Extremes, ErrBars), sort(Extremes, Sorted), first_element(Sorted, Min1), last_element(Sorted, Max1), property_test(scale_units, ScaleUnits, Chart), once([decide_unit(Min1, Max1, ScaleUnits, 1, Unit, Min, Max)])], [send(add(Chart, y_range = Min to Max), 861216060), send(add(Chart, y_scale_unit = Unit), 861216060), send(graph(Chart), 861216060)]). '!rule'(861216060,'x scale for XY chart', [triggered(graph(Chart)), refracted], [property_test(xy_pair, _, Chart), not [property_test(x_range, _, Chart)], property_test(error, ErrBars, Chart), findall(Set, [x_series(Set, Chart)], Datasets), maxminlist(Datasets, Extremes, ErrBars), sort(Extremes, Sorted), first_element(Sorted, Min1), last_element(Sorted, Max1), property_test(scale_units, ScaleUnits, Chart), once([decide_unit(Min1, Max1, ScaleUnits, 1, Unit, Min, Max)])], [send(add(Chart, x_range = Min to Max), 861216060), send(add(Chart, x_scale_unit = Unit), 861216060), send(graph(Chart), 861216060)]). '!rule'(861216060,'calculate scale for stacked chart', [triggered(graph(Chart)), refracted], [not [property_test(xy_pair, _, Chart)], not [property_test(y_range, _, Chart)], property_test(cluster, off, Chart), property_test(obs, N, Chart), property_test(stacked_series, SeriesNos, Chart), findall(Sum, [get_sums(N, SeriesNos, Sum, Chart)], Sums), maxmin(Sums, Max1, _, off), property_test(scale_units, ScaleUnits, Chart), once([decide_unit(1, Max1, ScaleUnits, 1, Unit, Min, Max)])], [send(add(Chart, y_range = Min to Max), 861216060), send(add(Chart, y_scale_unit = Unit), 861216060), send(graph(Chart), 861216060)]). '!rule'(861216060,'Compute nos of observations and series if required', [triggered(graph(Chart)), refracted], [not [property_test(xy_pair, _, Chart)], not [property_test(obs, _, Chart), property_test(no_of_series, _, Chart)], findall(Points, [get_series(_, Points, _, Chart)], Pointlists), call(maplist(length, Pointlists, Lengths)), standard_deviation(Lengths, 0), Lengths = [N|_], length(Pointlists, Nseries)], [send(add(Chart, obs = N), 861216060), send(add(Chart, no_of_series = Nseries), 861216060), send(graph(Chart), 861216060)]). '!rule'(861216060,'Compute series list for stacked bar chart if required', [triggered(graph(Chart)), refracted], [not [property_test(xy_pair, _, Chart)], property_test(bar, on, Chart), property_test(cluster, off, Chart), not [property_test(stacked_series, _, Chart)], findall(SeriesNo, [get_series(SeriesNo, _, _, Chart)], SeriesNos)], [send(add(Chart, stacked_series = SeriesNos), 861216060), send(graph(Chart), 861216060)]). '!rule'(861216060,'Get default list of marker types if required', [triggered(graph(Chart)), refracted], [property_test(marker, on, Chart), not [property_test(marker_types, _, Chart)], findall(Mark, [draw_marker(Mark, 0, name, (0 , 0), _)], MarkTypes)], [send(add(Chart, marker_types = MarkTypes), 861216060), send(graph(Chart), 861216060)]). '!condition'(861216060,'------------ various conditions for scaling--------------------', maxminlist, 3, [(maxminlist([], [], _) :- []), (maxminlist([List|Rest], [Min, Max|NewRest], Type) :- [maxmin(List, Max, Min, Type), maxminlist(Rest, NewRest, Type)])]). '!condition'(861216060,'get max and min values in list', maxmin, 4, [(maxmin(List, Max, Min, Type) :- [call(maplist(getmax(Type), List, Maxes)), call(maplist(getmin(Type), List, Mins)), append(Mins, Maxes, Extremes), sort(Extremes, Sorted), first_element(Sorted, Min), last_element(Sorted, Max)])]). '!condition'(861216060,'Pick a good set of scale values', decide_unit, 7, [(decide_unit(Min1, Max1, ScaleFactors, Mag, MagUnit, Min, Max) :- [member(Unit, ScaleFactors), MagUnit is Mag * Unit, Klicks is (Max1 - Min1) / MagUnit, Klicks >= 5, Klicks < 10, Min is MagUnit * round(Min1 / MagUnit - 0.5000000000), Max is MagUnit * round(Max1 / MagUnit + 0.5000000000)]), (decide_unit(Min1, Max1, ScaleFactors, Mag, MagUnit, Min, Max) :- [not [member(Unit, ScaleFactors), Klicks is (Max1 - Min1) / (Mag * Unit), Klicks < 10], NewMag is Mag * 10, decide_unit(Min1, Max1, ScaleFactors, NewMag, MagUnit, Min, Max)]), (decide_unit(Min1, Max1, ScaleFactors, Mag, MagUnit, Min, Max) :- [not [member(Unit, ScaleFactors), Klicks is (Max1 - Min1) / (Mag * Unit), Klicks >= 5], NewMag is Mag / 10, decide_unit(Min1, Max1, ScaleFactors, NewMag, MagUnit, Min, Max)])]). '!comment'(861216060,'********************************** GRAPH DRAWING ********************************'). '!rule'(861216060,'-----------------------draw axes---------------------------', [triggered(graph(Chart)), refracted], [property_test(primary_axis, on, Chart), property_test(y_range, Min to Max, Chart), dimensions(Xorig, Xlen, Ytop, Ylen, Yorig, Chart), x_axis(Min, Max, Xaxis, Chart), Yscale is Ylen / (Max - Min), Axes = [(Xorig , Ytop), (Xorig , Yorig), (Xorig + Xlen , Yorig)]], [delete_all(polyline(primary_axes, _, _), 864077783), delete_all(line(primary_axes, _, _), 864077783), add(polyline(primary_axes, Axes, [colour(black)]), 864077783), add(line(primary_axes, (Xorig , Yorig - Yscale * (Xaxis - Min)) to (Xorig + Xlen , Yorig - Yscale * (Xaxis - Min)), [colour(black), weight(0), style(dash)]), 864077783)]). '!rule'(861216060,'label primary axis', [triggered(graph(Chart)), refracted], [property_test(primary_axis, on, Chart), dimensions(Xorig, Xlen, Ytop, Ylen, Yorig, Chart), property_test(y_label, Text, Chart)], [delete_all(text(primary_axes, _, _), 864077783), add(text(primary_axes, Text aligned (c , b) at (Xorig , Ytop - 10), [colour(black)]), 864077783)]). '!rule'(861216060,'secondary y-axis', [triggered(graph(Chart)), refracted], [property_test(primary_axis, off, Chart), property_test(y_range, Min to Max, Chart), dimensions(Xorig, Xlen, Ytop, Ylen, Yorig, Chart), x_axis(Min, Max, Xaxis, Chart), Yscale is Ylen / (Max - Min), Axes = [(Xorig , Yorig), (Xorig + Xlen , Yorig), (Xorig + Xlen , Ytop)]], [delete_all(polyline(secondary_axes, _, _), 864077783), delete_all(line(secondary_axes, _, _), 864077783), add(polyline(secondary_axes, Axes, [colour(black)]), 864077783), add(line(secondary_axes, (Xorig , Yorig - Yscale * (Xaxis - Min)) to (Xorig + Xlen , Yorig - Yscale * (Xaxis - Min)), [colour(black)]), 864077783)]). '!rule'(861216060,'label secondary axis', [triggered(graph(Chart)), refracted], [property_test(primary_axis, off, Chart), dimensions(Xorig, Xlen, Ytop, Ylen, Yorig, Chart), property_test(y_label, Text, Chart)], [delete_all(text(secondary_axes, _, _), 864077783), add(text(secondary_axes, Text aligned (c , b) at (Xorig + Xlen , Ytop - 10), [colour(black)]), 864077783)]). '!rule'(861216060,'Mark primary Y-axis', [triggered(graph(Chart)), refracted], [property_test(primary_axis, on, Chart), property_test(y_range, Min to Max, Chart), property_test(y_scale_unit, Yunit, Chart), dimensions(Xorig, Xlen, Ytop, Ylen, Yorig, Chart), Yscale is Ylen / (Max - Min), for(Yvalue, Min, Max, Yunit), Ycoord is Yorig - (Yvalue - Min) * Yscale, Line = (Xorig , Ycoord) to (Xorig - 3 , Ycoord)], [delete_all(line(primary_labels, _, _), 864077783), delete_all(text(primary_labels, _, _), 864077783), add(line(primary_labels, Line, [colour(black)]), 864077783), add(text(primary_labels, Yvalue aligned (r , c) at (Xorig - 8 , Ycoord), [colour(black)]), 864077783)]). '!rule'(861216060,'Mark secondary Y-axis', [triggered(graph(Chart)), refracted], [property_test(primary_axis, off, Chart), property_test(y_range, Min to Max, Chart), property_test(y_scale_unit, Yunit, Chart), dimensions(Xorig, Xlen, Ytop, Ylen, Yorig, Chart), Yscale is Ylen / (Max - Min), Xend is Xorig + Xlen, for(Yvalue, Min, Max, Yunit), Ycoord is Yorig - (Yvalue - Min) * Yscale, Line = (Xend , Ycoord) to (Xend + 3 , Ycoord)], [delete_all(line(secondary_labels, _, _), 864077783), delete_all(text(secondary_labels, _, _), 864077783), add(line(secondary_labels, Line, [colour(black)]), 864077783), add(text(secondary_labels, Yvalue aligned (l , c) at (Xend + 8 , Ycoord), [colour(black)]), 864077783)]). '!rule'(861216060,'Mark X-axis', [triggered(graph(Chart)), refracted], [property_test(x_range, Min to Max, Chart), property_test(x_scale_unit, Xunit, Chart), dimensions(Xorig, Xlen, Ytop, Ylen, Yorig, Chart), Xscale is Xlen / (Max - Min), for(Xvalue, Min, Max, Xunit), Xcoord is Xorig + (Xvalue - Min) * Xscale, Line = (Xcoord , Yorig) to (Xcoord , Yorig + 3)], [delete_all(line(x_labels, _, _), 864077783), delete_all(text(x_labels, _, _), 864077783), add(line(x_labels, Line, [colour(black)]), 864077783), add(text(x_labels, Xvalue aligned (c , t) at (Xcoord , Yorig + 8), [colour(black)]), 864077783)]). '!rule'(861216060,'write X-axis category names', [triggered(graph(Chart)), refracted], [not [property_test(xy_pair, _, Chart)], not [property_test(bar, off, Chart), property_test(line, off, Chart), property_test(marker, off, Chart)], dimensions(Xorig, Xlen, Ytop, Ylen, Yorig, Chart), property_test(obs, N, Chart), property_test(category_names, Names, Chart), Xinterval is Xlen / N, call(nth1(CategNo, Names, Name)), Xcoord is Xorig + CategNo * Xinterval], [delete_all(text(x_categ, _, _), 864077783), delete_all(line(x_categ, _, _), 864077783), add(text(x_categ, Name aligned (c , t) at (Xcoord - Xinterval / 2 , Yorig + 8), [colour(black)]), 864077783), add(line(x_categ, (Xcoord , Yorig) to (Xcoord , Yorig + 3), [colour(black)]), 864077783)]). '!rule'(861216060,'X axis label', [triggered(graph(Chart)), refracted], [property_test(x_label, Text, Chart), dimensions(Xorig, Xlen, Ytop, Ylen, Yorig, Chart)], [delete_all(text(x_title, _, _), 864077783), add(text(x_title, Text aligned (c , t) at (Xorig + Xlen / 2 , Yorig + 20), [colour(black)]), 864077783)]). '!comment'(861216060,'********************************* X-Y Charts ********************************'). '!rule'(861216060,'---------------------- X-Y marker chart---------------------', [triggered(graph(Chart)), refracted], [property_test(xy_pair, _, Chart), property_test(marker, on, Chart), property_test(y_range, MinY to MaxY, Chart), property_test(x_range, MinX to MaxX, Chart), property_test(marker_size, MarkSize, Chart), property_test(marker_types, MarkTypes, Chart), length(MarkTypes, Nmarkers), dimensions(Xorig, Xlen, Ytop, Ylen, Yorig, Chart), Yscale is Ylen / (MaxY - MinY), Xscale is Xlen / (MaxX - MinX), findall(Pair, [property_read(xy_pair, Pair, Chart)], Pairs), call(nth0(PairNo, Pairs, (XSNo , YSNo))), get_series(XSNo, XValues, XNames, Chart), get_mean(XNames, XName), get_series(YSNo, YValues, YNames, Chart), get_mean(YNames, YName), MarkNo is PairNo mod Nmarkers, call(nth0(MarkNo, MarkTypes, MarkType)), call(nth1(ObsNo, XValues, XValue)), get_mean(XValue, XMean), scale_horizontal(Xscale, MinX, Xorig, XMean, Xcoord), call(nth1(ObsNo, YValues, YValue)), get_mean(YValue, YMean), scale_vertical(Yscale, MinY, Yorig, YMean, Ycoord), draw_marker(MarkType, MarkSize, (XName , YName), (Xcoord , Ycoord), MarkObj, DelObj)], [delete_all(DelObj, 864077783), add(MarkObj, 864077783)]). '!rule'(861216060,'-----------------Draw Y error bars (for XY chart)---------------', [triggered(graph(Chart)), refracted], [property_test(xy_pair, _, Chart), property_test(error, on, Chart), property_test(x_range, MinX to MaxX, Chart), property_test(y_range, MinY to MaxY, Chart), dimensions(Xorig, Xlen, Ytop, Ylen, Yorig, Chart), Xscale is Xlen / (MaxX - MinX), Yscale is Ylen / (MaxY - MinY), property_read(xy_pair, (XSNo , YSNo), Chart), get_series(XSNo, XPoints, XNames, Chart), get_err(XNames, XName), get_series(YSNo, YPoints, YNames, Chart), get_err(YNames, YName), call(nth1(ObsNo, XPoints, Xvalue)), get_mean(Xvalue, Xmean), scale_horizontal(Xscale, MinX, Xorig, Xmean, Xcoord), call(nth1(ObsNo, YPoints, Yvalue)), y_error_bar(Yscale, 3, MinY, Yorig, (Xcoord , Yvalue), ErrBar)], [delete_all(polyline((XName , YName), _), 864077783), add(polyline((XName , YName), ErrBar), 864077783)]). '!rule'(861216060,'-----------------Draw X error bars (for XY chart)---------------', [triggered(graph(Chart)), refracted], [property_test(xy_pair, _, Chart), property_test(error, on, Chart), property_test(x_range, MinX to MaxX, Chart), property_test(y_range, MinY to MaxY, Chart), dimensions(Xorig, Xlen, Ytop, Ylen, Yorig, Chart), Xscale is Xlen / (MaxX - MinX), Yscale is Ylen / (MaxY - MinY), property_read(xy_pair, (XSNo , YSNo), Chart), get_series(XSNo, XPoints, XNames, Chart), get_err(XNames, XName), get_series(YSNo, YPoints, YNames, Chart), get_err(YNames, YName), call(nth1(ObsNo, YPoints, Yvalue)), get_mean(Yvalue, Ymean), scale_vertical(Yscale, MinY, Yorig, Ymean, Ycoord), call(nth1(ObsNo, XPoints, Xvalue)), x_error_bar(Xscale, 3, MinX, Xorig, (Xvalue , Ycoord), ErrBar)], [delete_all(polyline((XName , YName), _), 864077783), add(polyline((XName , YName), ErrBar), 864077783)]). '!comment'(861216060,'****************************Categorical charts****************************'). '!rule'(861216060,'----------------------Draw line chart--------------------------', [triggered(graph(Chart)), refracted], [not [property_test(xy_pair, _, Chart)], property_test(line, on, Chart), property_test(y_range, Min to Max, Chart), property_test(obs, N, Chart), dimensions(Xorig, Xlen, Ytop, Ylen, Yorig, Chart), Yscale is Ylen / (Max - Min), Xoffset is Xorig + Xlen / (N * 2), Xinterval is Xlen / N, get_series(Series, Points, Names, Chart), get_mean(Names, Name), call(maplist(get_mean, Points, Means)), call(maplist(scale_vertical(Yscale, Min, Yorig), Means, Yvalues)), x_spacing(Xoffset, Xinterval, Yvalues, Line)], [delete_all(polyline(Name, _), 864077783), add(polyline(Name, Line), 864077783)]). '!rule'(861216060,'----------------------Draw marker chart---------------------', [triggered(graph(Chart)), refracted], [not [property_test(xy_pair, _, Chart)], property_test(marker, on, Chart), property_test(y_range, Min to Max, Chart), property_test(obs, N, Chart), property_test(marker_size, MarkSize, Chart), property_test(marker_types, MarkTypes, Chart), length(MarkTypes, Nmarkers), dimensions(Xorig, Xlen, Ytop, Ylen, Yorig, Chart), Yscale is Ylen / (Max - Min), Xoffset is Xorig + Xlen / (N * 2), Xinterval is Xlen / N, get_series(Series, Values, Names, Chart), get_mean(Names, Name), MarkNo is 1 + (Series - 1) mod Nmarkers, call(nth1(MarkNo, MarkTypes, MarkType)), call(maplist(get_mean, Values, Means)), call(maplist(scale_vertical(Yscale, Min, Yorig), Means, Yvalues)), x_spacing(Xoffset, Xinterval, Yvalues, Points), member(Point, Points), draw_marker(MarkType, MarkSize, Name, Point, MarkObj, DelObj)], [delete_all(DelObj, 864077783), add(MarkObj, 864077783)]). '!rule'(861216060,'-------------------Draw cluster bar chart---------------------', [triggered(graph(Chart)), refracted], [not [property_test(xy_pair, _, Chart)], property_test(bar, on, Chart), property_test(cluster, on, Chart), property_test(y_range, Min to Max, Chart), property_test(obs, N, Chart), property_test(no_of_series, Nseries, Chart), dimensions(Xorig, Xlen, Ytop, Ylen, Yorig, Chart), property_test(bar_width, BarFactor, Chart), x_axis(Min, Max, Xaxis, Chart), Yscale is Ylen / (Max - Min), BarSpace is Xlen / (N * Nseries), BarSize is BarSpace * BarFactor, Xinterval is Xlen / N, get_series(Series, Points, Names, Chart), get_mean(Names, Name), call(maplist(get_mean, Points, Means)), Xoffset is Xorig + BarSpace / 2 + (Series - 1) * BarSpace, x_spacing(Xoffset, Xinterval, Means, HalfCoded), member((Xmid , Mean), HalfCoded)], [delete_all(box(Name, _), 864077783), add(box(Name, (BarSize , (Mean - Xaxis) * Yscale) aligned (c , b) at (Xmid , Yorig - (Xaxis - Min) * Yscale)), 864077783)]). '!rule'(861216060,'--------------------Draw stacked bar chart-------------------', [triggered(graph(Chart)), refracted], [not [property_test(xy_pair, _, Chart)], property_test(bar, on, Chart), property_test(cluster, off, Chart), property_test(y_range, Min to Max, Chart), property_test(obs, N, Chart), property_test(no_of_series, Nseries, Chart), property_test(stacked_series, SeriesNos, Chart), dimensions(Xorig, Xlen, Ytop, Ylen, Yorig, Chart), property_test(bar_width, BarFactor, Chart), x_axis(Min, Max, Xaxis, Chart), Yscale is Ylen / (Max - Min), BarSpace is Xlen / N, BarSize is BarSpace * BarFactor, append(BaseSeries, [Series|_], SeriesNos), get_series(Series, Points, Names, Chart), get_mean(Names, Name), call(maplist(get_mean, Points, Means)), Xoffset is Xorig + BarSpace / 2, x_spacing(Xoffset, BarSpace, Means, HalfCoded), call(nth1(ObsNo, HalfCoded, (Xmid , Mean))), sum_across_lists(ObsNo, BaseSeries, Base, Chart)], [delete_all(box(Name, _), 864077783), add(box(Name, (BarSize , (Mean - Xaxis) * Yscale) aligned (c , b) at (Xmid , Yorig - (Xaxis + Base - Min) * Yscale)), 864077783)]). '!rule'(861216060,'-----------------Draw error bars (for non-bar chart)---------------', [triggered(graph(Chart)), refracted], [not [property_test(xy_pair, _, Chart)], property_test(bar, off, Chart), property_test(error, on, Chart), property_test(y_range, Min to Max, Chart), property_test(obs, N, Chart), dimensions(Xorig, Xlen, Ytop, Ylen, Yorig, Chart), Yscale is Ylen / (Max - Min), Xoffset is Xorig + Xlen / (N * 2), Xinterval is Xlen / N, get_series(Series, Points, Names, Chart), get_err(Names, Name), x_spacing(Xoffset, Xinterval, Points, HalfCoded), member(HalfC, HalfCoded), y_error_bar(Yscale, 3, Min, Yorig, HalfC, ErrBar)], [delete_all(polyline(Name, _), 864077783), add(polyline(Name, ErrBar), 864077783)]). '!rule'(861216060,'Draw error bars for cluster bar chart', [triggered(graph(Chart)), refracted], [not [property_test(xy_pair, _, Chart)], property_test(bar, on, Chart), property_test(cluster, on, Chart), property_test(error, on, Chart), property_test(y_range, Min to Max, Chart), property_test(obs, N, Chart), property_test(no_of_series, Nseries, Chart), dimensions(Xorig, Xlen, Ytop, Ylen, Yorig, Chart), Yscale is Ylen / (Max - Min), BarWidth is Xlen / (N * Nseries), Xinterval is Xlen / N, get_series(Series, Points, Names, Chart), get_err(Names, Name), Xoffset is Xorig + BarWidth / 2 + (Series - 1) * BarWidth, x_spacing(Xoffset, Xinterval, Points, HalfCoded), member(HalfC, HalfCoded), y_error_bar(Yscale, 3, Min, Yorig, HalfC, ErrBar)], [delete_all(polyline(Name, _), 864077783), add(polyline(Name, ErrBar), 864077783)]). '!condition'(861216060,'----------------compute graphics -------------------------', scale_vertical, 5, [(scale_vertical(Factor, Min, Yorig, (X , Y), (X , Yorig - (Y - Min) * Factor)) :- ['!']), (scale_vertical(Factor, Min, Yorig, Y, Yorig - (Y - Min) * Factor) :- [])]). '!condition'(861216060,'', scale_horizontal, 5, [(scale_horizontal(Factor, Min, Xorig, X, Xorig + (X - Min) * Factor) :- [])]). '!condition'(861216060,'generate Y-axis error bar polyline', y_error_bar, 6, [(y_error_bar(Yscale, Width, Min, Yorig, (Xmid , [Mean, Err]), PolyLine) :- [Top is Yorig - (Mean - Err - Min) * Yscale, Bottom is Yorig - (Mean + Err - Min) * Yscale, Left is Xmid - Width, Right is Xmid + Width, PolyLine = [(Left , Top), (Right , Top), (Xmid , Top), (Xmid , Bottom), (Left , Bottom), (Right , Bottom)]])]). '!condition'(861216060,'generate X-axis error bar polyline', x_error_bar, 6, [(x_error_bar(Xscale, Width, Min, Xorig, ([Mean, Err] , Ymid), PolyLine) :- [Top is Ymid - Width, Bottom is Ymid + Width, Left is Xorig + (Mean - Err - Min) * Xscale, Right is Xorig + (Mean + Err - Min) * Xscale, PolyLine = [(Left , Top), (Left , Bottom), (Left , Ymid), (Right , Ymid), (Right , Top), (Right , Bottom)]])]). '!condition'(861216060,'Draw a marker (various types)', draw_marker, 6, [(draw_marker(times, Size, Name, (X , Y), polyline(Name, PolyLine, []), polyline(Name, _, _)) :- [Top is Y + Size, Bottom is Y - Size, Left is X - Size, Right is X + Size, PolyLine = [(Left , Top), (Right , Bottom), (X , Y), (Right , Top), (Left , Bottom)]]), (draw_marker(square, Size, Name, Centre, box(Name, (Size * 2 , Size * 2) aligned (c , c) at Centre, [weight(1)]), box(Name, _, _)) :- []), (draw_marker(circle, Size, Name, Centre, circle(Name, Size at Centre, [weight(1)]), circle(Name, _, _)) :- []), (draw_marker(plus, Size, Name, (X , Y), polyline(Name, PolyLine, []), polyline(Name, _, _)) :- [Top is Y + Size, Bottom is Y - Size, Left is X - Size, Right is X + Size, PolyLine = [(Left , Y), (Right , Y), (X , Y), (X , Top), (X , Bottom)]])]). '!ignore'('!condition'(861216060,'Draw a marker (various types)', draw_marker, 5, [(draw_marker(times, Size, Name, (X , Y), polyline(Name, PolyLine, [])) :- [Top is Y + Size, Bottom is Y - Size, Left is X - Size, Right is X + Size, PolyLine = [(Left , Top), (Right , Bottom), (X , Y), (Right , Top), (Left , Bottom)]]), (draw_marker(square, Size, Name, Centre, box(Name, (Size * 2 , Size * 2) aligned (c , c) at Centre, [weight(1)])) :- []), (draw_marker(circle, Size, Name, Centre, circle(Name, Size at Centre, [weight(1)])) :- []), (draw_marker(plus, Size, Name, (X , Y), polyline(Name, PolyLine, [])) :- [Top is Y + Size, Bottom is Y - Size, Left is X - Size, Right is X + Size, PolyLine = [(Left , Y), (Right , Y), (X , Y), (X , Top), (X , Bottom)]])])). '!comment'(861216060,'**************************************MISC PRIMITIVES******************************'). '!condition'(861216060,'for X = Start to Finish, Step Inc', for, 4, [(for(Start, Start, Finish, _Inc) :- [Start =< Finish]), (for(X, OldStart, Finish, Inc) :- [OldStart =< Finish, Start is OldStart + Inc, for(X, Start, Finish, Inc)])]). '!condition'(861216060,'---------------stuff about value lists ---------------', sum_across_lists, 4, [(sum_across_lists(N, [], 0, Chart) :- []), (sum_across_lists(N, [Series|Rest], Sum, Chart) :- [get_series(Series, Points, _, Chart), call(nth1(N, Points, Elem)), get_mean(Elem, Mean), sum_across_lists(N, Rest, SumRest, Chart), Sum is Mean + SumRest])]). '!condition'(861216060,'Condition', get_sums, 4, [(get_sums(N, SeriesNos, Sum, Chart) :- [for(X, 1, N, 1), sum_across_lists(X, SeriesNos, Sum, Chart)])]). '!condition'(861216060,'add X values to categorical data series', x_spacing, 4, [(x_spacing(_, _, [], []) :- []), (x_spacing(Current, Increment, [Y|Rest], NewRest) :- [not [valid_value(Y)], '!', New is Current + Increment, x_spacing(New, Increment, Rest, NewRest)]), (x_spacing(Current, Increment, [Y|Rest], [(Current , Y)|NewRest]) :- [New is Current + Increment, x_spacing(New, Increment, Rest, NewRest)])]). '!condition'(861216060,'Condition', get_mean, 2, [(get_mean([Mean, Err], Mean) :- ['!']), (get_mean(Mean, Mean) :- [])]). '!condition'(861216060,'Condition', get_err, 2, [(get_err([_, Err], Err) :- ['!']), (get_err(Mean, Mean) :- [])]). '!condition'(861216060,'Condition', valid_value, 1, [(valid_value([Mean, Err]) :- []), (valid_value(Mean) :- [call(arithmetic_check(Mean, number))])]). '!condition'(861216060,'Condition', getmax, 3, [(getmax(on, [Mean, Err], Max) :- [Max is Mean + Err, '!']), (getmax(off, [Mean, Err], Mean) :- ['!']), (getmax(_, Mean, Mean) :- [])]). '!condition'(861216060,'Condition', getmin, 3, [(getmin(on, [Mean, Err], Min) :- [Min is Mean - Err, '!']), (getmin(off, [Mean, Err], Mean) :- ['!']), (getmin(_, Mean, Mean) :- [])]). '!condition'(861216060,'-------------property list handling ---------------------', property_test, 3, [(property_test(Name, Value, Chart) :- [once([property_read(Name, FirstValue, Chart)]), Value = FirstValue])]). '!condition'(861216060,'Get chart dimensions', dimensions, 6, [(dimensions(Xorig, Xlen, Ytop, Ylen, Yorig, Chart) :- [property_test(xorig, Xorig, Chart), property_test(xlen, Xlen, Chart), property_test(ytop, Ytop, Chart), property_test(ylen, Ylen, Chart), Yorig is Ylen + Ytop])]). '!condition'(861216060,'Return data series', get_series, 4, [(get_series(SeriesNo, Values, Name, Chart) :- [property_read(series(SeriesNo), Values, Chart), property_test(name(SeriesNo), Name, Chart)])]). '!condition'(861216060,'X-axis line, if specified and within range', x_axis, 4, [(x_axis(Min, Max, Xaxis, Chart) :- [property_test(x_axis, Xaxis, Chart), Xaxis >= Min, Xaxis =< Max, '!']), (x_axis(Min, Max, Min, Chart) :- [])]). '!condition'(861216060,'Condition', y_series, 2, [(y_series(Series, Chart) :- [property_read(xy_pair, (_ , YNo), Chart), get_series(YNo, Series, _, Chart)])]). '!condition'(861216060,'Condition', x_series, 2, [(x_series(Series, Chart) :- [property_read(xy_pair, (XNo , _), Chart), get_series(XNo, Series, _, Chart)])]). '!comment'(861216060,'************EDIT CODE BELOW TO CREATE MORE SIMULTANEOUS CHARTS ********************'). '!condition'(861216060,'Condition', property_read, 3, [(property_read(Name, Value, chart1) :- [match(Name = Value, 867629775)]), (property_read(Name, Value, chart2) :- [match(Name = Value, 864145229)]), (property_read(Name, Value, _) :- [match(Name = Value, 867770884)])]). '!rule'(861216060,'Rule', [triggered(add(chart1, Item))], [], [add(Item, 867629775), send(graph(chart1), 861216060)]). '!rule'(861216060,'Rule', [triggered(add(chart2, Item))], [], [add(Item, 864145229), send(graph(chart2), 861216060)]). '!rule'(861216060,'Flush buffers', [triggered(clear)], [], [delete_all(_, 864077783), delete_all(_, 867629775), delete_all(_, 864145229)]). '!box'(903390619, 864145229, 70, 110, [input(861216060, read), input(861216060, send)], 'Chart 2 Properties', 'Buffer'/'Propositional', [enum("Initialise:", 'Each Block'), enum("Decay:", 'None'), pos_int("Decay Constant:", 20), enum("Limited Capacity:", 'No'), pos_int("Capacity:", 7), enum("On Excess:", 'Random'), enum("Duplicates:", 'No'), enum("Access:", 'LIFO')], ''). '!current'(864145229,' '). '!box'(903390619, 867629775, 220, 110, [input(903364449, send), input(861216060, send), input(861216060, read)], 'Chart 1 Properties', 'Buffer'/'Propositional', [enum("Initialise:", 'Each Block'), enum("Decay:", 'None'), pos_int("Decay Constant:", 20), enum("Limited Capacity:", 'No'), pos_int("Capacity:", 7), enum("On Excess:", 'Random'), enum("Duplicates:", 'No'), enum("Access:", 'LIFO')], ''). '!box'(903390619, 867770884, 490, 115, [input(861216060, send), input(861216060, read)], 'Default Properties', 'Buffer'/'Propositional', [enum("Initialise:", 'Each Block'), enum("Decay:", 'None'), pos_int("Decay Constant:", 20), enum("Limited Capacity:", 'No'), pos_int("Capacity:", 7), enum("On Excess:", 'Random'), enum("Duplicates:", 'No'), enum("Access:", 'LIFO')], ''). '!element'(867770884,'preferred order of marker types', marker_types = [circle, square, times, plus]). '!element'(867770884,'plot on primary Y axis by default', primary_axis = on). '!element'(867770884,'Nothing', scale_units = [5, 2.5000000000, 2, 1]). '!element'(867770884,'X position of left of scale in pixels', xorig = 50). '!element'(867770884,'default X scale size in pixels', xlen = 500). '!element'(867770884,'Y position of top of scale in pixels', ytop = 50). '!element'(867770884,'default Y scale size in pixels', ylen = 300). '!element'(867770884,'Default names for mean and error series', name(X) = [series(X), error(X)]). '!element'(867770884,'line chart on by default', line = on). '!element'(867770884,'markers on by default', marker = on). '!element'(867770884,'size of markers in pixels', marker_size = 4). '!element'(867770884,'bar chart off by default', bars = off). '!element'(867770884,'Default bar chart type is cluster', cluster = on). '!element'(867770884,'bar width as proportion of maximum size', bar_width = 0.6000000000). '!element'(867770884,'error bars on by default', error = on). '!element'(867770884,'floating x_axis at 0', x_axis = 0). '!current'(867770884,' 0: x_axis=0.'). '!current'(867770884,' 0: error=on.'). '!current'(867770884,' 0: bar_width=0.6.'). '!current'(867770884,' 0: cluster=on.'). '!current'(867770884,' 0: bars=off.'). '!current'(867770884,' 0: marker_size=4.'). '!current'(867770884,' 0: marker=on.'). '!current'(867770884,' 0: line=on.'). '!current'(867770884,' 0: name(_G52100)=[series(_G52100), error(_G52100)].'). '!current'(867770884,' 0: ylen=300.'). '!current'(867770884,' 0: ytop=50.'). '!current'(867770884,' 0: xlen=500.'). '!current'(867770884,' 0: xorig=50.'). '!current'(867770884,' 0: scale_units=[5, 2.5, 2, 1].'). '!current'(867770884,' 0: primary_axis=on.'). '!current'(867770884,' 0: marker_types=[circle, square, times, plus].'). '!box'(903390619, 864077783, 320, 300, [input(861216060, send)], 'Graph Display', 'Buffer'/'Analogue', [enum("Access:", 'Random'), real("Granularity:", 1.000000), enum("Continuity:", 'Yes'), real("Variance:", 1.000000), enum("Point movement:", 'No'), enum("Dimensionality:", '2d'), enum("Duplicates:", 'Yes'), enum("On Excess:", 'Random'), pos_int("Capacity:", 7), enum("Limited Capacity:", 'No'), pos_int("Decay Constant:", 20), enum("Decay:", 'None'), enum("Initialise:", 'Each Session')], ''). '!description'(864077783,'It''s a good idea to have point movement off, or your graph will look terrible.'). '!description'(864077783,'Duplicates should be set to "yes" or else it will be very slow.'). '!external_box'(903390619,903364449,320,25). '!box'(903364440, 903364449, 255, 120, [output(903390619, send), input(903364453, send), output(903364453, send)], 'Experimenter', 'Compound', [], ''). '!box'(903364449, 903365431, 320, 200, [output(903390619, send), output(903377725, send), output(903376084, read), output(903376084, send), output(903375835, read), output(903375835, send), input(903375178, send), output(903364453, send), output(903369132, send), input(903364453, send), output(903369132, read)], 'expter process', 'Process', [enum("Recurrent:", 'Yes'), real("Firing Rate:", 1.000000)], ''). '!rule'(903365431,'Maintain a total trials counter, to allow arbitrary block structure', [refracted], [clock(1), match(total_trials(Trials), 903376084), Trials1 is Trials + 1], [delete(total_trials(Trials), 903376084), add(total_trials(Trials1), 903376084)]). '!rule'(903365431,'Send one word to S every cycle', [triggered(send_word(N))], [once([match(Word, 903369132)]), N1 is N + 1], [send(word(Word), 903364963), add(word(N, Word), 903375835), delete(Word, 903369132), send(send_word(N1), 903365431)]). '!rule'(903365431,'When words exhausted, tell S to start recall', [refracted], [not [match(_, 903369132)]], [send(recall, 903364963)]). '!rule'(903365431,'Get recalled word''s ser pos, increment the tally, and update table', [triggered(recalled(Word))], [match(word(N, Word), 903375835), match(stats(N, Total), 903376084), Total1 is Total + 1, number_atom(N, Nat)], [delete(stats(N, Total), 903376084), add(stats(N, Total1), 903376084), send(data(freq, Nat, Total1), 903377725)]). '!condition'(903365431,'Make 2-digit atom from number', number_atom, 2, [(number_atom(Number, Atom) :- [call(number_chars(Number, String)), append("0", String, Zeroed), append(_, [A, B], Zeroed), call(atom_chars(Atom, [A, B]))])]). '!rule'(903365431,'system quiescence indicates end of recall, so graph results', [triggered(system_quiescent), refracted], [], [send(draw_graph, 903365431)]). '!rule'(903365431,'Graph results after recall finished', [triggered(draw_graph)], [Labels = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25], get_percentages(0, 25, Percentages), match(total_trials(Trials), 903376084)], [delete_all(_, 867629775), add(obs = 25, 867629775), add(no_of_series = 1, 867629775), add(y_range = 0 to 100, 867629775), add(y_scale_unit = 20, 867629775), add(y_label = ('% N' = Trials), 867629775), add(series(1) = Percentages, 867629775), add(name(1) = recall, 867629775), add(category_names = Labels, 867629775), add(x_label = 'Serial position', 867629775), send(graph(chart1), 861216060)]). '!condition'(903365431,'Calculate percentage score for each serial position', get_percentages, 3, [(get_percentages(X, X, []) :- ['!']), (get_percentages(Start, Fin, [H|T]) :- [N is Start + 1, match(stats(N, Freq), 903376084), match(total_trials(Trial), 903376084), H is 100 * (Freq / Trial), get_percentages(N, Fin, T)])]). '!box'(903364449, 903376084, 160, 300, [input(903365431, read), input(903365431, send)], 'serial statistics', 'Buffer'/'Propositional', [enum("Initialise:", 'Each Session'), enum("Decay:", 'None'), pos_int("Decay Constant:", 20), enum("Limited Capacity:", 'No'), pos_int("Capacity:", 7), enum("On Excess:", 'Random'), enum("Duplicates:", 'No'), enum("Access:", 'LIFO')], ''). '!element'(903376084,'Nothing', total_trials(0)). '!element'(903376084,'Nothing', stats(1, 0)). '!element'(903376084,'Nothing', stats(2, 0)). '!element'(903376084,'Nothing', stats(3, 0)). '!element'(903376084,'Nothing', stats(4, 0)). '!element'(903376084,'Nothing', stats(5, 0)). '!element'(903376084,'Nothing', stats(6, 0)). '!element'(903376084,'Nothing', stats(7, 0)). '!element'(903376084,'Nothing', stats(8, 0)). '!element'(903376084,'Nothing', stats(9, 0)). '!element'(903376084,'Nothing', stats(10, 0)). '!element'(903376084,'Nothing', stats(11, 0)). '!element'(903376084,'Nothing', stats(12, 0)). '!element'(903376084,'Nothing', stats(13, 0)). '!element'(903376084,'Nothing', stats(14, 0)). '!element'(903376084,'Nothing', stats(15, 0)). '!element'(903376084,'Nothing', stats(16, 0)). '!element'(903376084,'Nothing', stats(17, 0)). '!element'(903376084,'Nothing', stats(18, 0)). '!element'(903376084,'Nothing', stats(19, 0)). '!element'(903376084,'Nothing', stats(20, 0)). '!element'(903376084,'Nothing', stats(21, 0)). '!element'(903376084,'Nothing', stats(22, 0)). '!element'(903376084,'Nothing', stats(23, 0)). '!element'(903376084,'Nothing', stats(24, 0)). '!element'(903376084,'Nothing', stats(25, 0)). '!current'(903376084,' 0: stats(25, 0).'). '!current'(903376084,' 0: stats(24, 0).'). '!current'(903376084,' 0: stats(23, 0).'). '!current'(903376084,' 0: stats(22, 0).'). '!current'(903376084,' 0: stats(21, 0).'). '!current'(903376084,' 0: stats(20, 0).'). '!current'(903376084,' 0: stats(19, 0).'). '!current'(903376084,' 0: stats(18, 0).'). '!current'(903376084,' 0: stats(17, 0).'). '!current'(903376084,' 0: stats(16, 0).'). '!current'(903376084,' 0: stats(15, 0).'). '!current'(903376084,' 0: stats(14, 0).'). '!current'(903376084,' 0: stats(13, 0).'). '!current'(903376084,' 0: stats(12, 0).'). '!current'(903376084,' 0: stats(11, 0).'). '!current'(903376084,' 0: stats(10, 0).'). '!current'(903376084,' 0: stats(9, 0).'). '!current'(903376084,' 0: stats(8, 0).'). '!current'(903376084,' 0: stats(7, 0).'). '!current'(903376084,' 0: stats(6, 0).'). '!current'(903376084,' 0: stats(5, 0).'). '!current'(903376084,' 0: stats(4, 0).'). '!current'(903376084,' 0: stats(3, 0).'). '!current'(903376084,' 0: stats(2, 0).'). '!current'(903376084,' 0: stats(1, 0).'). '!current'(903376084,' 0: total_trials(0).'). '!box'(903364449, 903375835, 110, 200, [input(903365431, read), input(903365431, send)], 'serial record', 'Buffer'/'Propositional', [enum("Initialise:", 'Each Trial'), enum("Decay:", 'None'), pos_int("Decay Constant:", 20), enum("Limited Capacity:", 'No'), pos_int("Capacity:", 7), enum("On Excess:", 'Random'), enum("Duplicates:", 'No'), enum("Access:", 'LIFO')], ''). '!box'(903364449, 903375178, 320, 35, [output(903365431, send)], start, 'Data'/'Source', [], ''). '!data'(903375178,'Nothing', [send(send_word(1), 903365431)]). '!current'(903375178,'''Nothing'': [send(send_word(1), 903365431)].'). '!box'(903364449, 903369132, 150, 40, [input(903365431, send), input(903365431, read)], 'word list', 'Buffer'/'Propositional', [enum("Initialise:", 'Each Trial'), enum("Decay:", 'None'), pos_int("Decay Constant:", 20), enum("Limited Capacity:", 'No'), pos_int("Capacity:", 7), enum("On Excess:", 'Random'), enum("Duplicates:", 'No'), enum("Access:", 'Random')], ''). '!element'(903369132,'Nothing', black). '!element'(903369132,'Nothing', white). '!element'(903369132,'Nothing', red). '!element'(903369132,'Nothing', orange). '!element'(903369132,'Nothing', yellow). '!element'(903369132,'Nothing', green). '!element'(903369132,'Nothing', blue). '!element'(903369132,'Nothing', indigo). '!element'(903369132,'Nothing', violet). '!element'(903369132,'Nothing', brown). '!element'(903369132,'Nothing', magenta). '!element'(903369132,'Nothing', cyan). '!element'(903369132,'Nothing', mustard). '!element'(903369132,'Nothing', beige). '!element'(903369132,'Nothing', azure). '!element'(903369132,'Nothing', russet). '!element'(903369132,'Nothing', skyblue). '!element'(903369132,'Nothing', navy). '!element'(903369132,'Nothing', racinggreen). '!element'(903369132,'Nothing', cream). '!element'(903369132,'Nothing', grey). '!element'(903369132,'Nothing', pink). '!element'(903369132,'Nothing', charcoal). '!element'(903369132,'Nothing', purple). '!element'(903369132,'Nothing', olive). '!current'(903369132,' 0: olive.'). '!current'(903369132,' 0: purple.'). '!current'(903369132,' 0: charcoal.'). '!current'(903369132,' 0: pink.'). '!current'(903369132,' 0: grey.'). '!current'(903369132,' 0: cream.'). '!current'(903369132,' 0: racinggreen.'). '!current'(903369132,' 0: navy.'). '!current'(903369132,' 0: skyblue.'). '!current'(903369132,' 0: russet.'). '!current'(903369132,' 0: azure.'). '!current'(903369132,' 0: beige.'). '!current'(903369132,' 0: mustard.'). '!current'(903369132,' 0: cyan.'). '!current'(903369132,' 0: magenta.'). '!current'(903369132,' 0: brown.'). '!current'(903369132,' 0: violet.'). '!current'(903369132,' 0: indigo.'). '!current'(903369132,' 0: blue.'). '!current'(903369132,' 0: green.'). '!current'(903369132,' 0: yellow.'). '!current'(903369132,' 0: orange.'). '!current'(903369132,' 0: red.'). '!current'(903369132,' 0: white.'). '!current'(903369132,' 0: black.'). '!box'(903364449, 903377725, 485, 305, [input(903365431, send)], 'Data table', 'Data'/'Sink'/'Table', [char_string("File:", "data.current"), enum("Location:", 'Local'), enum("Initialise:", 'Each Session'), char_string("Column Label:", "Serial position"), pos_int("Cell Width:", 25), char_string("Row Label:", ""), pos_int("Cell Height:", 20)], ''). '!current'(903377725,' '). '!external_box'(903364449,903390619,320,340). '!external_box'(903364449,903364453,500,200). '!box'(903364440, 903364453, 455, 120, [output(903364449, send), input(903364449, send)], 'Subject', 'Compound', [], ''). '!box'(903364453, 903364963, 235, 190, [input(903364449, send), output(903364449, send)], 'Input/Output', 'Process', [enum("Recurrent:", 'Yes'), real("Firing Rate:", 1.000000)], ''). '!external_box'(903364453,903364449,65,190).