[ return ]

layer.h




/*
 * file: layer.h
 *
 * [DEFINE DESCRIPTION = Neural layer class]
 *
 *  Name                Date        Description
 *  --------------      --------    -------------------------------------
 *  Andrew H. Fagg      09/05/94    Original
 *
 *
 */

#ifndef LAYER_CLASS
#define LAYER_CLASS
#include "column.h"



#define PET_POS 0
#define PET_NEG 1


class layer_parms_class
{
 public:

};


class layer_class
{
  int num_columns;		/* Total number of columns in the layer */
  int used_columns;		/* Number of columns that are actually */
				/*  used (ie have connections). */
  column_class** columns;

  name_class* name;

 public:
				/* Methods */
  layer_class(char*, int, short, column_parms_class*,
	      int, short, gate_parms_class*);
  ~layer_class();
  void init_weights();        //OVERLOAD CALL: init_weights: column.c(column_class), gate.c(gate_class), layer.c(layer_class)
  void clear_activities();        //OVERLOAD CALL: clear_activities: column.c(column_class), gate.c(gate_class), layer.c(layer_class)
  void forward_mem();        //OVERLOAD CALL: forward_mem: column.c(column_class), layer.c(layer_class)
  void forward_act();        //OVERLOAD CALL: forward_act: column.c(column_class), layer.c(layer_class)
  name_class* get_name();        //OVERLOAD CALL: get_name: column.c(column_class), connector.c(connector_class), gate.c(gate_class), layer.c(layer_class), reverse_connector.c(reverse_connector_input_class), reverse_connector.c(reverse_connector_output_class), sensor.c(sensor_class)
  nsl_vector get_collector();        //OVERLOAD CALL: get_collector: layer.c(layer_class), column.c(column_class)
  nsl_vector get_collector_mem();        //OVERLOAD CALL: get_collector_mem: column.c(column_class), layer.c(layer_class)
  nsl_vector get_sensory();        //OVERLOAD CALL: get_sensory: layer.c(layer_class), column.c(column_class)
  nsl_vector get_sensory_mem();        //OVERLOAD CALL: get_sensory_mem: column.c(column_class), layer.c(layer_class)
  nsl_vector get_output();        //OVERLOAD CALL: get_output: layer.c(layer_class), column.c(column_class)
  nsl_vector get_output_mem();        //OVERLOAD CALL: get_output_mem: column.c(column_class), layer.c(layer_class)
  connector_class* get_column_connector(int);
  connector_class* get_gate_connector(int, int, int);        //OVERLOAD CALL: get_gate_connector: column.c(column_class), layer.c(layer_class)
  nsl_data* get_column_output(int);
  name_class* get_column_name(int);
  void report_column(int, int, int);        //OVERLOAD CALL: report_column: column.c(column_class), layer.c(layer_class)
  void report_gate(int, int, int);        //OVERLOAD CALL: report_gate: column.c(column_class), gate.c(gate_class), layer.c(layer_class)
  int stuff(ifstream&);        //OVERLOAD CALL: stuff: gate.c(gate_class), layer.c(layer_class), column.c(column_class), connector.c(connector_class)
  int get_num_columns();
  column_class* get_column(int);
  void stuff_pet_connector(connector_class*, int);
};

#endif


[ return ]