#lang racket

(require "Clases-neuron-capa-red.rkt")

;;;;;;;;;;;;;;INSTANCIAS
;;;NEURONAS
(define n_1 (make-object neuron_entrada% 'n_1))
(define n_2 (make-object neuron_entrada% 'n_2))
(define n_3 (make-object neuron_entrada% 'n_3))
(define n_4 (make-object neuron_entrada% 'n_4))
(define n_5 (make-object neuron_entrada% 'n_5))
(define n_6 (make-object neuron_entrada% 'n_6))
(define n_7 (make-object neuron_entrada% 'n_7))
(define n_8 (make-object neuron_entrada% 'n_8))
(define n_9 (make-object neuron_entrada% 'n_9))
(define n_10 (make-object neuron_entrada% 'n_10))
(define n_11 (make-object neuron_entrada% 'n_11))
(define n_12 (make-object neuron_entrada% 'n_12))
(define n_13 (make-object neuron_entrada% 'n_13))
(define n_14 (make-object neuron_entrada% 'n_14))
(define n_15 (make-object neuron_entrada% 'n_15))

;umbrales: '(9 0 6 -9 -7 6 8 4 -5 1 -6 0 4 -7 4)
(define o_1 
  (make-object neurona% '0_1
    9 propagacion_lineal lineal escalon_1))
(define o_2 
  (make-object neurona% '0_2
    0 propagacion_lineal lineal escalon_1))
(define o_3 
  (make-object neurona% '0_3
    6 propagacion_lineal lineal escalon_1))
(define o_4 
  (make-object neurona% '0_4
    -9 propagacion_lineal lineal escalon_1))
(define o_5 
  (make-object neurona% '0_5
    -7 propagacion_lineal lineal escalon_1))
(define o_6 
  (make-object neurona% '0_6
    6 propagacion_lineal lineal escalon_1))
(define o_7 
  (make-object neurona% '0_7
    8 propagacion_lineal lineal escalon_1))
(define o_8 
  (make-object neurona% '0_8
    4 propagacion_lineal lineal escalon_1))
(define o_9 
  (make-object neurona% '0_9
    -5 propagacion_lineal lineal escalon_1))
(define o_10 
  (make-object neurona% '0_10
    1 propagacion_lineal lineal escalon_1))
(define o_11 
  (make-object neurona% '0_11
    -6 propagacion_lineal lineal escalon_1))
(define o_12 
  (make-object neurona% '0_12
    0 propagacion_lineal lineal escalon_1))
(define o_13 
  (make-object neurona% '0_13
    4 propagacion_lineal lineal escalon_1))
(define o_14 
  (make-object neurona% '0_14
    -7 propagacion_lineal lineal escalon_1))
(define o_15 
  (make-object neurona% '0_15
    4 propagacion_lineal lineal escalon_1))

;umbrales: '(5 2 5 3)
(define s_1 
  (make-object neurona% 's_1
    5 propagacion_lineal lineal escalon_1))
(define s_2 
  (make-object neurona% 's_2
    2 propagacion_lineal lineal escalon_1))
(define s_3 
  (make-object neurona% 's_3
    5 propagacion_lineal lineal escalon_1))
(define s_4 
  (make-object neurona% 's_4
    3 propagacion_lineal lineal escalon_1))
;;;CAPAS
(define capa_1 
  (make-object capa_entrada% 'c_1
    (list n_1 n_2 n_3 n_4 n_5 n_6 n_7 n_8 n_9 n_10 n_11 n_12 n_13 n_14 n_15) ))
(define capa_2 
  (make-object capa% 'c_2
    (list o_1 o_2 o_3 o_4 o_5 o_6 o_7 o_8 o_9 o_10 o_11 o_12 o_13 o_14 o_15)
    '((5 5 3 2 4 4 -1 -3 8 7 4 -6 6 8 5 9)
      (6 5 7 -8 7 3 5 6 1 8 -8 -3 -7 -5 -7 0)
      (7 7 4 -5 -8 -3 1 0 -9 0 1 6 -7 -9 4 6)
      (-7 3 -8 -5 -2 0 3 1 -9 3 -1 -6 -6 0 3 -9)
      (9 5 8 8 7 7 0 -2 -4 9 6 -6 -5 -4 9 -7)
      (1 0 3 -6 0 -4 -7 1 9 -5 -2 -2 -2 -1 0 6)
      (0 2 -3 7 -3 -6 -8 0 9 6 -3 9 -6 -3 8 8)
      (-1 -5 1 9 -8 3 4 5 5 5 -7 -8 -3 -3 -3 4)
      (-6 -3 6 6 -1 -8 2 -6 -9 0 7 7 -1 -9 -4 -5)
      (-3 -6 -7 -6 0 7 2 -1 -7 3 7 7 9 -9 1 1)
      (-3 5 0 3 -7 7 4 -1 -4 -2 5 -2 2 8 -6 -6)
      (9 7 2 5 6 3 0 2 -8 0 8 -9 4 -6 -1 0)
      (7 6 4 -7 5 -1 2 6 -7 8 -4 -1 -1 1 1 4)
      (0 -5 8 6 8 7 8 7 -4 -4 1 8 -6 4 4 -7)
      (4 4 4 -5 2 4 1 -4 -2 0 6 9 3 -6 2 4))
    ))
(define capa_3 
  (make-object capa% 'c_3
    (list s_1 s_2 s_3 s_4)
    '((0 1 3 -1 -3 -5 3 8 3 0 4 4 -7 -3 -6 5) 
      (-5 2 0 -5 7 8 3 -1 -6 -9 0 2 -9 -3 0 2) 
      (0 5 -4 0 0 -6 -3 -5 0 -8 8 1 2 -5 -7 5) 
      (-7 6 7 4 -2 -9 -3 -8 -2 8 1 4 -4 -5 6 3))
    ))
;;;RED
(define RtO (make-object red% (list capa_1 capa_2 capa_3)))
;;;;;;;;


(provide red% capa% capa_entrada% neurona% neuron_entrada%
         RtO)