csys: add negating feedback to zero neuron
This commit is contained in:
parent
ff4b9d9800
commit
ac44c880af
2 changed files with 16 additions and 10 deletions
|
|
@ -13,7 +13,8 @@
|
|||
#:neuron #:std-proc #:eff-proc #:create-zero
|
||||
#:handle-action
|
||||
#:notify
|
||||
#:basic-actions #:no-op #:value-add #:create))
|
||||
#:basic-actions #:no-op #:value-add #:create
|
||||
#:multiply))
|
||||
|
||||
(in-package :scopes/csys)
|
||||
|
||||
|
|
@ -180,7 +181,7 @@
|
|||
|
||||
(defun multiply (n)
|
||||
(lambda (msg)
|
||||
(let* ((data (shape:data (copy-list msg))))
|
||||
(let* ((data (copy-list (shape:data msg))))
|
||||
(setf (getf data :value) (* (getf data :value 0) n))
|
||||
(message:create (shape:head msg) :data data))))
|
||||
|
||||
|
|
|
|||
|
|
@ -29,8 +29,8 @@
|
|||
|
||||
(defun setup-config ()
|
||||
(config:add :test-receiver :setup #'tc:setup)
|
||||
;(config:add-action '(:csys :effect :c00) (value-in '(1)))
|
||||
(config:add-action '(:csys :effect) #'tc:check-message)
|
||||
(config:add-action '(:csys :effect :e01) (value-in '(1 2)))
|
||||
;(config:add-action '(:csys :effect) #'tc:check-message)
|
||||
(config:add-action '(:csys) (constantly nil)))
|
||||
|
||||
(defun proc-env (msg scope)
|
||||
|
|
@ -76,11 +76,15 @@
|
|||
|
||||
(defun next-zero-initial ()
|
||||
(lambda (msg scope)
|
||||
(let ((head '(:csys :create :c00 "0-0")))
|
||||
(actor:send actor:*self*
|
||||
(message:create head :data '(:categ (:csys :e01) :connect :succ)))
|
||||
(actor:send actor:*self*
|
||||
(message:create head :data '(:addr (:csys :s01 "0-1") :connect :pred)))
|
||||
(let ((self actor:*self*)
|
||||
(cr '(:csys :create :c00 "0-0"))
|
||||
(conn '(:csys :connect :c00 "0-0")))
|
||||
(actor:send self
|
||||
(message:create cr :data '(:categ (:csys :e01) :connect :succ)))
|
||||
(actor:send self
|
||||
(message:create cr :data '(:addr (:csys :s01 "0-1") :connect :pred)))
|
||||
(actor:send self
|
||||
(message:create conn :data (list :target self :op (csys:multiply -1))))
|
||||
;; connect *self* :op (multiply -1)
|
||||
;; switch :active
|
||||
nil)))
|
||||
|
|
@ -91,7 +95,8 @@
|
|||
(let ((env (setup-test (prog-b0)))
|
||||
(rcvr (tc:receiver t:*test-suite*)))
|
||||
(sleep 0.1)
|
||||
(tc:expect rcvr (message:create '(:csys :effect :e01) :data '(:value 1)))
|
||||
;(tc:expect rcvr (message:create '(:csys :effect :e01) :data '(:value 1)))
|
||||
(actor:send env (message:create '(:csys :value :s01 "0-1") :data '(:value 1)))
|
||||
(actor:send env (message:create '(:csys :value :s01 "0-1") :data '(:value 2)))
|
||||
(sleep 0.1)
|
||||
(core:shutdown)))
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue