/* * 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