package org.jlayer.app; 

import javax.annotation.processing.Generated;
import java.util.Random;
import org.jlayer.model.*;
import org.jlayer.util.*;

@Generated("org.jlayer.Processor") 
public class Layer_Hidden_ extends ALayer_Hidden_ implements ILayer_Hidden_ {

   // class Layer_Hidden_.D1
   static public class D1 extends ALayer_Hidden_.D1 implements ILayer_Hidden_.D1 {
      // constructors 
      public D1(ILayer_Hidden_.D1 layerD1){ 
         super(layerD1); 
         // create adapters 
         y = new LayerAdapter.D1<Hidden,MyUtils.Signal>(){
            public int length() { return D1.this.length(); } 
            public MyUtils.Signal get(int x1) { return D1.this.get(x1).y; }
            public void set(int x1, MyUtils.Signal val){ D1.this.get(x1).y = val; }
            public Hidden getUnit(int x1) { return D1.this.getUnit(x1); }
            public void setUnit(int x1, Hidden unit){ D1.this.setUnit(x1, unit); }
         };
         x = new VectorLayerAdapter.D1<Hidden,MyUtils.Signal>(){
            public int length() { return D1.this.length(); } 
            public MyUtils.Signal[] get(int x1) { return D1.this.get(x1).x; }
            public void set(int x1, MyUtils.Signal[] val){ D1.this.get(x1).x = val; }
            public Hidden getUnit(int x1) { return D1.this.getUnit(x1); }
            public void setUnit(int x1, Hidden unit){ D1.this.setUnit(x1, unit); }
            protected MyUtils.Signal newObject(){ return new MyUtils.Signal(); }
            protected MyUtils.Signal[] newArray(int len){ return new MyUtils.Signal[len]; }
         };
         inErr = new VectorLayerAdapter.D1<Hidden,MyUtils.Signal>(){
            public int length() { return D1.this.length(); } 
            public MyUtils.Signal[] get(int x1) { return D1.this.get(x1).inErr; }
            public void set(int x1, MyUtils.Signal[] val){ D1.this.get(x1).inErr = val; }
            public Hidden getUnit(int x1) { return D1.this.getUnit(x1); }
            public void setUnit(int x1, Hidden unit){ D1.this.setUnit(x1, unit); }
            protected MyUtils.Signal newObject(){ return new MyUtils.Signal(); }
            protected MyUtils.Signal[] newArray(int len){ return new MyUtils.Signal[len]; }
         };
      }
      public D1(Hidden[] array){ 
         super(array); 
         // create adapters 
         y = new LayerAdapter.D1<Hidden,MyUtils.Signal>(){
            public int length() { return D1.this.length(); } 
            public MyUtils.Signal get(int x1) { return D1.this.get(x1).y; }
            public void set(int x1, MyUtils.Signal val){ D1.this.get(x1).y = val; }
            public Hidden getUnit(int x1) { return D1.this.getUnit(x1); }
            public void setUnit(int x1, Hidden unit){ D1.this.setUnit(x1, unit); }
         };
         x = new VectorLayerAdapter.D1<Hidden,MyUtils.Signal>(){
            public int length() { return D1.this.length(); } 
            public MyUtils.Signal[] get(int x1) { return D1.this.get(x1).x; }
            public void set(int x1, MyUtils.Signal[] val){ D1.this.get(x1).x = val; }
            public Hidden getUnit(int x1) { return D1.this.getUnit(x1); }
            public void setUnit(int x1, Hidden unit){ D1.this.setUnit(x1, unit); }
            protected MyUtils.Signal newObject(){ return new MyUtils.Signal(); }
            protected MyUtils.Signal[] newArray(int len){ return new MyUtils.Signal[len]; }
         };
         inErr = new VectorLayerAdapter.D1<Hidden,MyUtils.Signal>(){
            public int length() { return D1.this.length(); } 
            public MyUtils.Signal[] get(int x1) { return D1.this.get(x1).inErr; }
            public void set(int x1, MyUtils.Signal[] val){ D1.this.get(x1).inErr = val; }
            public Hidden getUnit(int x1) { return D1.this.getUnit(x1); }
            public void setUnit(int x1, Hidden unit){ D1.this.setUnit(x1, unit); }
            protected MyUtils.Signal newObject(){ return new MyUtils.Signal(); }
            protected MyUtils.Signal[] newArray(int len){ return new MyUtils.Signal[len]; }
         };
      }
      // method items 
      public void initSignals(Random r){
         XIterator.D1<Hidden> iterator = this.xIterator(); 
         while( iterator.hasNext() ){
            Hidden _unit = iterator.next();
            _unit.initSignals(r);
         }
      }
      public void Forward(){
         XIterator.D1<Hidden> iterator = this.xIterator(); 
         while( iterator.hasNext() ){
            Hidden _unit = iterator.next();
            _unit.Forward();
         }
      }
      public void Backward(double eta){
         XIterator.D1<Hidden> iterator = this.xIterator(); 
         while( iterator.hasNext() ){
            Hidden _unit = iterator.next();
            _unit.Backward(eta);
         }
      }
   }

   // class Layer_Hidden_.D2
   static public class D2 extends ALayer_Hidden_.D2 implements ILayer_Hidden_.D2 {
      // constructors 
      public D2(ILayer_Hidden_.D2 layerD2){ 
         super(layerD2); 
         // create adapters 
         y = new LayerAdapter.D2<Hidden,MyUtils.Signal>(){
            public int length() { return D2.this.length(); }
            public int length(int x1) { return D2.this.length(x1); }
            public MyUtils.Signal get(int x1, int x2) { return D2.this.get(x1, x2).y; }
            public void set(int x1, int x2, MyUtils.Signal val){ D2.this.get(x1, x2).y = val; }
            public Hidden getUnit(int x1, int x2) { return D2.this.getUnit(x1, x2); }
            public void setUnit(int x1, int x2, Hidden unit){ D2.this.setUnit(x1, x2, unit); }
         };
         x = new VectorLayerAdapter.D2<Hidden,MyUtils.Signal>(){
            public int length() { return D2.this.length(); }
            public int length(int x1) { return D2.this.length(x1); }
            public MyUtils.Signal[] get(int x1, int x2) { return D2.this.get(x1, x2).x; }
            public void set(int x1, int x2, MyUtils.Signal[] val){ D2.this.get(x1, x2).x = val; }
            public Hidden getUnit(int x1, int x2) { return D2.this.getUnit(x1, x2); }
            public void setUnit(int x1, int x2, Hidden unit){ D2.this.setUnit(x1, x2, unit); }
            protected MyUtils.Signal newObject(){ return new MyUtils.Signal(); }
            protected MyUtils.Signal[] newArray(int len){ return new MyUtils.Signal[len]; }
         };
         inErr = new VectorLayerAdapter.D2<Hidden,MyUtils.Signal>(){
            public int length() { return D2.this.length(); }
            public int length(int x1) { return D2.this.length(x1); }
            public MyUtils.Signal[] get(int x1, int x2) { return D2.this.get(x1, x2).inErr; }
            public void set(int x1, int x2, MyUtils.Signal[] val){ D2.this.get(x1, x2).inErr = val; }
            public Hidden getUnit(int x1, int x2) { return D2.this.getUnit(x1, x2); }
            public void setUnit(int x1, int x2, Hidden unit){ D2.this.setUnit(x1, x2, unit); }
            protected MyUtils.Signal newObject(){ return new MyUtils.Signal(); }
            protected MyUtils.Signal[] newArray(int len){ return new MyUtils.Signal[len]; }
         };
      }
      public D2(Hidden[][] array){ 
         super(array); 
         // create adapters 
         y = new LayerAdapter.D2<Hidden,MyUtils.Signal>(){
            public int length() { return D2.this.length(); }
            public int length(int x1) { return D2.this.length(x1); }
            public MyUtils.Signal get(int x1, int x2) { return D2.this.get(x1, x2).y; }
            public void set(int x1, int x2, MyUtils.Signal val){ D2.this.get(x1, x2).y = val; }
            public Hidden getUnit(int x1, int x2) { return D2.this.getUnit(x1, x2); }
            public void setUnit(int x1, int x2, Hidden unit){ D2.this.setUnit(x1, x2, unit); }
         };
         x = new VectorLayerAdapter.D2<Hidden,MyUtils.Signal>(){
            public int length() { return D2.this.length(); }
            public int length(int x1) { return D2.this.length(x1); }
            public MyUtils.Signal[] get(int x1, int x2) { return D2.this.get(x1, x2).x; }
            public void set(int x1, int x2, MyUtils.Signal[] val){ D2.this.get(x1, x2).x = val; }
            public Hidden getUnit(int x1, int x2) { return D2.this.getUnit(x1, x2); }
            public void setUnit(int x1, int x2, Hidden unit){ D2.this.setUnit(x1, x2, unit); }
            protected MyUtils.Signal newObject(){ return new MyUtils.Signal(); }
            protected MyUtils.Signal[] newArray(int len){ return new MyUtils.Signal[len]; }
         };
         inErr = new VectorLayerAdapter.D2<Hidden,MyUtils.Signal>(){
            public int length() { return D2.this.length(); }
            public int length(int x1) { return D2.this.length(x1); }
            public MyUtils.Signal[] get(int x1, int x2) { return D2.this.get(x1, x2).inErr; }
            public void set(int x1, int x2, MyUtils.Signal[] val){ D2.this.get(x1, x2).inErr = val; }
            public Hidden getUnit(int x1, int x2) { return D2.this.getUnit(x1, x2); }
            public void setUnit(int x1, int x2, Hidden unit){ D2.this.setUnit(x1, x2, unit); }
            protected MyUtils.Signal newObject(){ return new MyUtils.Signal(); }
            protected MyUtils.Signal[] newArray(int len){ return new MyUtils.Signal[len]; }
         };
      }
      // method items 
      public void initSignals(Random r){
         XIterator.D2<Hidden> iterator = this.xIterator(); 
         while( iterator.hasNext() ){
            Hidden _unit = iterator.next();
            _unit.initSignals(r);
         }
      }
      public void Forward(){
         XIterator.D2<Hidden> iterator = this.xIterator(); 
         while( iterator.hasNext() ){
            Hidden _unit = iterator.next();
            _unit.Forward();
         }
      }
      public void Backward(double eta){
         XIterator.D2<Hidden> iterator = this.xIterator(); 
         while( iterator.hasNext() ){
            Hidden _unit = iterator.next();
            _unit.Backward(eta);
         }
      }
   }

   // class Layer_Hidden_.D3
   static public class D3 extends ALayer_Hidden_.D3 implements ILayer_Hidden_.D3 {
      // constructors 
      public D3(ILayer_Hidden_.D3 layerD3){ 
         super(layerD3); 
         // create adapters 
         y = new LayerAdapter.D3<Hidden,MyUtils.Signal>(){
            public int length() { return D3.this.length(); }
            public int length(int x1) { return D3.this.length(x1); }
            public int length(int x1, int x2) { return D3.this.length(x1, x2); }
            public MyUtils.Signal get(int x1, int x2, int x3) { return D3.this.get(x1, x2, x3).y; }
            public void set(int x1, int x2, int x3, MyUtils.Signal val){ D3.this.get(x1, x2, x3).y = val; }
            public Hidden getUnit(int x1, int x2, int x3) { return D3.this.getUnit(x1, x2, x3); }
            public void setUnit(int x1, int x2, int x3, Hidden unit){ D3.this.setUnit(x1, x2, x3, unit); }
         };
         x = new VectorLayerAdapter.D3<Hidden,MyUtils.Signal>(){
            public int length() { return D3.this.length(); }
            public int length(int x1) { return D3.this.length(x1); }
            public int length(int x1, int x2) { return D3.this.length(x1, x2); }
            public MyUtils.Signal[] get(int x1, int x2, int x3) { return D3.this.get(x1, x2, x3).x; }
            public void set(int x1, int x2, int x3, MyUtils.Signal[] val){ D3.this.get(x1, x2, x3).x = val; }
            public Hidden getUnit(int x1, int x2, int x3) { return D3.this.getUnit(x1, x2, x3); }
            public void setUnit(int x1, int x2, int x3, Hidden unit){ D3.this.setUnit(x1, x2, x3, unit); }
            protected MyUtils.Signal newObject(){ return new MyUtils.Signal(); }
            protected MyUtils.Signal[] newArray(int len){ return new MyUtils.Signal[len]; }
         };
         inErr = new VectorLayerAdapter.D3<Hidden,MyUtils.Signal>(){
            public int length() { return D3.this.length(); }
            public int length(int x1) { return D3.this.length(x1); }
            public int length(int x1, int x2) { return D3.this.length(x1, x2); }
            public MyUtils.Signal[] get(int x1, int x2, int x3) { return D3.this.get(x1, x2, x3).inErr; }
            public void set(int x1, int x2, int x3, MyUtils.Signal[] val){ D3.this.get(x1, x2, x3).inErr = val; }
            public Hidden getUnit(int x1, int x2, int x3) { return D3.this.getUnit(x1, x2, x3); }
            public void setUnit(int x1, int x2, int x3, Hidden unit){ D3.this.setUnit(x1, x2, x3, unit); }
            protected MyUtils.Signal newObject(){ return new MyUtils.Signal(); }
            protected MyUtils.Signal[] newArray(int len){ return new MyUtils.Signal[len]; }
         };
      }
      public D3(Hidden[][][] array){ 
         super(array); 
         // create adapters 
         y = new LayerAdapter.D3<Hidden,MyUtils.Signal>(){
            public int length() { return D3.this.length(); }
            public int length(int x1) { return D3.this.length(x1); }
            public int length(int x1, int x2) { return D3.this.length(x1, x2); }
            public MyUtils.Signal get(int x1, int x2, int x3) { return D3.this.get(x1, x2, x3).y; }
            public void set(int x1, int x2, int x3, MyUtils.Signal val){ D3.this.get(x1, x2, x3).y = val; }
            public Hidden getUnit(int x1, int x2, int x3) { return D3.this.getUnit(x1, x2, x3); }
            public void setUnit(int x1, int x2, int x3, Hidden unit){ D3.this.setUnit(x1, x2, x3, unit); }
         };
         x = new VectorLayerAdapter.D3<Hidden,MyUtils.Signal>(){
            public int length() { return D3.this.length(); }
            public int length(int x1) { return D3.this.length(x1); }
            public int length(int x1, int x2) { return D3.this.length(x1, x2); }
            public MyUtils.Signal[] get(int x1, int x2, int x3) { return D3.this.get(x1, x2, x3).x; }
            public void set(int x1, int x2, int x3, MyUtils.Signal[] val){ D3.this.get(x1, x2, x3).x = val; }
            public Hidden getUnit(int x1, int x2, int x3) { return D3.this.getUnit(x1, x2, x3); }
            public void setUnit(int x1, int x2, int x3, Hidden unit){ D3.this.setUnit(x1, x2, x3, unit); }
            protected MyUtils.Signal newObject(){ return new MyUtils.Signal(); }
            protected MyUtils.Signal[] newArray(int len){ return new MyUtils.Signal[len]; }
         };
         inErr = new VectorLayerAdapter.D3<Hidden,MyUtils.Signal>(){
            public int length() { return D3.this.length(); }
            public int length(int x1) { return D3.this.length(x1); }
            public int length(int x1, int x2) { return D3.this.length(x1, x2); }
            public MyUtils.Signal[] get(int x1, int x2, int x3) { return D3.this.get(x1, x2, x3).inErr; }
            public void set(int x1, int x2, int x3, MyUtils.Signal[] val){ D3.this.get(x1, x2, x3).inErr = val; }
            public Hidden getUnit(int x1, int x2, int x3) { return D3.this.getUnit(x1, x2, x3); }
            public void setUnit(int x1, int x2, int x3, Hidden unit){ D3.this.setUnit(x1, x2, x3, unit); }
            protected MyUtils.Signal newObject(){ return new MyUtils.Signal(); }
            protected MyUtils.Signal[] newArray(int len){ return new MyUtils.Signal[len]; }
         };
      }
      // method items 
      public void initSignals(Random r){
         XIterator.D3<Hidden> iterator = this.xIterator(); 
         while( iterator.hasNext() ){
            Hidden _unit = iterator.next();
            _unit.initSignals(r);
         }
      }
      public void Forward(){
         XIterator.D3<Hidden> iterator = this.xIterator(); 
         while( iterator.hasNext() ){
            Hidden _unit = iterator.next();
            _unit.Forward();
         }
      }
      public void Backward(double eta){
         XIterator.D3<Hidden> iterator = this.xIterator(); 
         while( iterator.hasNext() ){
            Hidden _unit = iterator.next();
            _unit.Backward(eta);
         }
      }
   }

// class Layer_Hidden_

   // constructors 
   public Layer_Hidden_(Hidden[] array){ 
      super(array); 
      // create adapters 
      y = new LayerAdapter<Hidden,MyUtils.Signal>(){
         public int dims() { return Layer_Hidden_.this.dims(); } 
         public int length() { return Layer_Hidden_.this.length(); } 
         public int length(int... ix) { return Layer_Hidden_.this.length(ix); } 
         public MyUtils.Signal get(int... ix) { return Layer_Hidden_.this.get(ix).y; }
         public void set(int[] ix, MyUtils.Signal val){ Layer_Hidden_.this.get(ix).y = val; }
         public void set(int x1, MyUtils.Signal val){ Layer_Hidden_.this.get(x1).y = val; }
         public void set(int x1, int x2, MyUtils.Signal val){ Layer_Hidden_.this.get(x1, x2).y = val; }
         public void set(int x1, int x2, int x3, MyUtils.Signal val){ Layer_Hidden_.this.get(x1, x2, x3).y = val; }
         public Hidden getUnit(int... ix) { return Layer_Hidden_.this.getUnit(ix); }
         public void setUnit(int[] ix, Hidden unit){ Layer_Hidden_.this.setUnit(ix, unit); }
         public void setUnit(int x1, Hidden unit){ Layer_Hidden_.this.setUnit(x1, unit); }
         public void setUnit(int x1, int x2, Hidden unit){ Layer_Hidden_.this.setUnit(x1, x2, unit); }
         public void setUnit(int x1, int x2, int x3, Hidden unit){ Layer_Hidden_.this.setUnit(x1, x2, x3, unit); }
      };
      x = new VectorLayerAdapter<Hidden,MyUtils.Signal>(){
         public int dims() { return Layer_Hidden_.this.dims(); } 
         public int length() { return Layer_Hidden_.this.length(); } 
         public int length(int... ix) { return Layer_Hidden_.this.length(ix); } 
         public MyUtils.Signal[] get(int... ix) { return Layer_Hidden_.this.get(ix).x; }
         public void set(int[] ix, MyUtils.Signal[] val){ Layer_Hidden_.this.get(ix).x = val; }
         public void set(int x1, MyUtils.Signal[] val){ Layer_Hidden_.this.get(x1).x = val; }
         public void set(int x1, int x2, MyUtils.Signal[] val){ Layer_Hidden_.this.get(x1, x2).x = val; }
         public void set(int x1, int x2, int x3, MyUtils.Signal[] val){ Layer_Hidden_.this.get(x1, x2, x3).x = val; }
         public Hidden getUnit(int... ix) { return Layer_Hidden_.this.getUnit(ix); }
         public void setUnit(int[] ix, Hidden unit){ Layer_Hidden_.this.setUnit(ix, unit); }
         public void setUnit(int x1, Hidden unit){ Layer_Hidden_.this.setUnit(x1, unit); }
         public void setUnit(int x1, int x2, Hidden unit){ Layer_Hidden_.this.setUnit(x1, x2, unit); }
         public void setUnit(int x1, int x2, int x3, Hidden unit){ Layer_Hidden_.this.setUnit(x1, x2, x3, unit); }
         protected MyUtils.Signal newObject(){ return new MyUtils.Signal(); }
         protected MyUtils.Signal[] newArray(int len){ return new MyUtils.Signal[len]; }
      };
      inErr = new VectorLayerAdapter<Hidden,MyUtils.Signal>(){
         public int dims() { return Layer_Hidden_.this.dims(); } 
         public int length() { return Layer_Hidden_.this.length(); } 
         public int length(int... ix) { return Layer_Hidden_.this.length(ix); } 
         public MyUtils.Signal[] get(int... ix) { return Layer_Hidden_.this.get(ix).inErr; }
         public void set(int[] ix, MyUtils.Signal[] val){ Layer_Hidden_.this.get(ix).inErr = val; }
         public void set(int x1, MyUtils.Signal[] val){ Layer_Hidden_.this.get(x1).inErr = val; }
         public void set(int x1, int x2, MyUtils.Signal[] val){ Layer_Hidden_.this.get(x1, x2).inErr = val; }
         public void set(int x1, int x2, int x3, MyUtils.Signal[] val){ Layer_Hidden_.this.get(x1, x2, x3).inErr = val; }
         public Hidden getUnit(int... ix) { return Layer_Hidden_.this.getUnit(ix); }
         public void setUnit(int[] ix, Hidden unit){ Layer_Hidden_.this.setUnit(ix, unit); }
         public void setUnit(int x1, Hidden unit){ Layer_Hidden_.this.setUnit(x1, unit); }
         public void setUnit(int x1, int x2, Hidden unit){ Layer_Hidden_.this.setUnit(x1, x2, unit); }
         public void setUnit(int x1, int x2, int x3, Hidden unit){ Layer_Hidden_.this.setUnit(x1, x2, x3, unit); }
         protected MyUtils.Signal newObject(){ return new MyUtils.Signal(); }
         protected MyUtils.Signal[] newArray(int len){ return new MyUtils.Signal[len]; }
      };
   }
   public Layer_Hidden_(Hidden[][] array){ 
      super(array); 
      // create adapters 
      y = new LayerAdapter<Hidden,MyUtils.Signal>(){
         public int dims() { return Layer_Hidden_.this.dims(); } 
         public int length() { return Layer_Hidden_.this.length(); } 
         public int length(int... ix) { return Layer_Hidden_.this.length(ix); } 
         public MyUtils.Signal get(int... ix) { return Layer_Hidden_.this.get(ix).y; }
         public void set(int[] ix, MyUtils.Signal val){ Layer_Hidden_.this.get(ix).y = val; }
         public void set(int x1, MyUtils.Signal val){ Layer_Hidden_.this.get(x1).y = val; }
         public void set(int x1, int x2, MyUtils.Signal val){ Layer_Hidden_.this.get(x1, x2).y = val; }
         public void set(int x1, int x2, int x3, MyUtils.Signal val){ Layer_Hidden_.this.get(x1, x2, x3).y = val; }
         public Hidden getUnit(int... ix) { return Layer_Hidden_.this.getUnit(ix); }
         public void setUnit(int[] ix, Hidden unit){ Layer_Hidden_.this.setUnit(ix, unit); }
         public void setUnit(int x1, Hidden unit){ Layer_Hidden_.this.setUnit(x1, unit); }
         public void setUnit(int x1, int x2, Hidden unit){ Layer_Hidden_.this.setUnit(x1, x2, unit); }
         public void setUnit(int x1, int x2, int x3, Hidden unit){ Layer_Hidden_.this.setUnit(x1, x2, x3, unit); }
      };
      x = new VectorLayerAdapter<Hidden,MyUtils.Signal>(){
         public int dims() { return Layer_Hidden_.this.dims(); } 
         public int length() { return Layer_Hidden_.this.length(); } 
         public int length(int... ix) { return Layer_Hidden_.this.length(ix); } 
         public MyUtils.Signal[] get(int... ix) { return Layer_Hidden_.this.get(ix).x; }
         public void set(int[] ix, MyUtils.Signal[] val){ Layer_Hidden_.this.get(ix).x = val; }
         public void set(int x1, MyUtils.Signal[] val){ Layer_Hidden_.this.get(x1).x = val; }
         public void set(int x1, int x2, MyUtils.Signal[] val){ Layer_Hidden_.this.get(x1, x2).x = val; }
         public void set(int x1, int x2, int x3, MyUtils.Signal[] val){ Layer_Hidden_.this.get(x1, x2, x3).x = val; }
         public Hidden getUnit(int... ix) { return Layer_Hidden_.this.getUnit(ix); }
         public void setUnit(int[] ix, Hidden unit){ Layer_Hidden_.this.setUnit(ix, unit); }
         public void setUnit(int x1, Hidden unit){ Layer_Hidden_.this.setUnit(x1, unit); }
         public void setUnit(int x1, int x2, Hidden unit){ Layer_Hidden_.this.setUnit(x1, x2, unit); }
         public void setUnit(int x1, int x2, int x3, Hidden unit){ Layer_Hidden_.this.setUnit(x1, x2, x3, unit); }
         protected MyUtils.Signal newObject(){ return new MyUtils.Signal(); }
         protected MyUtils.Signal[] newArray(int len){ return new MyUtils.Signal[len]; }
      };
      inErr = new VectorLayerAdapter<Hidden,MyUtils.Signal>(){
         public int dims() { return Layer_Hidden_.this.dims(); } 
         public int length() { return Layer_Hidden_.this.length(); } 
         public int length(int... ix) { return Layer_Hidden_.this.length(ix); } 
         public MyUtils.Signal[] get(int... ix) { return Layer_Hidden_.this.get(ix).inErr; }
         public void set(int[] ix, MyUtils.Signal[] val){ Layer_Hidden_.this.get(ix).inErr = val; }
         public void set(int x1, MyUtils.Signal[] val){ Layer_Hidden_.this.get(x1).inErr = val; }
         public void set(int x1, int x2, MyUtils.Signal[] val){ Layer_Hidden_.this.get(x1, x2).inErr = val; }
         public void set(int x1, int x2, int x3, MyUtils.Signal[] val){ Layer_Hidden_.this.get(x1, x2, x3).inErr = val; }
         public Hidden getUnit(int... ix) { return Layer_Hidden_.this.getUnit(ix); }
         public void setUnit(int[] ix, Hidden unit){ Layer_Hidden_.this.setUnit(ix, unit); }
         public void setUnit(int x1, Hidden unit){ Layer_Hidden_.this.setUnit(x1, unit); }
         public void setUnit(int x1, int x2, Hidden unit){ Layer_Hidden_.this.setUnit(x1, x2, unit); }
         public void setUnit(int x1, int x2, int x3, Hidden unit){ Layer_Hidden_.this.setUnit(x1, x2, x3, unit); }
         protected MyUtils.Signal newObject(){ return new MyUtils.Signal(); }
         protected MyUtils.Signal[] newArray(int len){ return new MyUtils.Signal[len]; }
      };
   }
   public Layer_Hidden_(Hidden[][][] array){ 
      super(array); 
      // create adapters 
      y = new LayerAdapter<Hidden,MyUtils.Signal>(){
         public int dims() { return Layer_Hidden_.this.dims(); } 
         public int length() { return Layer_Hidden_.this.length(); } 
         public int length(int... ix) { return Layer_Hidden_.this.length(ix); } 
         public MyUtils.Signal get(int... ix) { return Layer_Hidden_.this.get(ix).y; }
         public void set(int[] ix, MyUtils.Signal val){ Layer_Hidden_.this.get(ix).y = val; }
         public void set(int x1, MyUtils.Signal val){ Layer_Hidden_.this.get(x1).y = val; }
         public void set(int x1, int x2, MyUtils.Signal val){ Layer_Hidden_.this.get(x1, x2).y = val; }
         public void set(int x1, int x2, int x3, MyUtils.Signal val){ Layer_Hidden_.this.get(x1, x2, x3).y = val; }
         public Hidden getUnit(int... ix) { return Layer_Hidden_.this.getUnit(ix); }
         public void setUnit(int[] ix, Hidden unit){ Layer_Hidden_.this.setUnit(ix, unit); }
         public void setUnit(int x1, Hidden unit){ Layer_Hidden_.this.setUnit(x1, unit); }
         public void setUnit(int x1, int x2, Hidden unit){ Layer_Hidden_.this.setUnit(x1, x2, unit); }
         public void setUnit(int x1, int x2, int x3, Hidden unit){ Layer_Hidden_.this.setUnit(x1, x2, x3, unit); }
      };
      x = new VectorLayerAdapter<Hidden,MyUtils.Signal>(){
         public int dims() { return Layer_Hidden_.this.dims(); } 
         public int length() { return Layer_Hidden_.this.length(); } 
         public int length(int... ix) { return Layer_Hidden_.this.length(ix); } 
         public MyUtils.Signal[] get(int... ix) { return Layer_Hidden_.this.get(ix).x; }
         public void set(int[] ix, MyUtils.Signal[] val){ Layer_Hidden_.this.get(ix).x = val; }
         public void set(int x1, MyUtils.Signal[] val){ Layer_Hidden_.this.get(x1).x = val; }
         public void set(int x1, int x2, MyUtils.Signal[] val){ Layer_Hidden_.this.get(x1, x2).x = val; }
         public void set(int x1, int x2, int x3, MyUtils.Signal[] val){ Layer_Hidden_.this.get(x1, x2, x3).x = val; }
         public Hidden getUnit(int... ix) { return Layer_Hidden_.this.getUnit(ix); }
         public void setUnit(int[] ix, Hidden unit){ Layer_Hidden_.this.setUnit(ix, unit); }
         public void setUnit(int x1, Hidden unit){ Layer_Hidden_.this.setUnit(x1, unit); }
         public void setUnit(int x1, int x2, Hidden unit){ Layer_Hidden_.this.setUnit(x1, x2, unit); }
         public void setUnit(int x1, int x2, int x3, Hidden unit){ Layer_Hidden_.this.setUnit(x1, x2, x3, unit); }
         protected MyUtils.Signal newObject(){ return new MyUtils.Signal(); }
         protected MyUtils.Signal[] newArray(int len){ return new MyUtils.Signal[len]; }
      };
      inErr = new VectorLayerAdapter<Hidden,MyUtils.Signal>(){
         public int dims() { return Layer_Hidden_.this.dims(); } 
         public int length() { return Layer_Hidden_.this.length(); } 
         public int length(int... ix) { return Layer_Hidden_.this.length(ix); } 
         public MyUtils.Signal[] get(int... ix) { return Layer_Hidden_.this.get(ix).inErr; }
         public void set(int[] ix, MyUtils.Signal[] val){ Layer_Hidden_.this.get(ix).inErr = val; }
         public void set(int x1, MyUtils.Signal[] val){ Layer_Hidden_.this.get(x1).inErr = val; }
         public void set(int x1, int x2, MyUtils.Signal[] val){ Layer_Hidden_.this.get(x1, x2).inErr = val; }
         public void set(int x1, int x2, int x3, MyUtils.Signal[] val){ Layer_Hidden_.this.get(x1, x2, x3).inErr = val; }
         public Hidden getUnit(int... ix) { return Layer_Hidden_.this.getUnit(ix); }
         public void setUnit(int[] ix, Hidden unit){ Layer_Hidden_.this.setUnit(ix, unit); }
         public void setUnit(int x1, Hidden unit){ Layer_Hidden_.this.setUnit(x1, unit); }
         public void setUnit(int x1, int x2, Hidden unit){ Layer_Hidden_.this.setUnit(x1, x2, unit); }
         public void setUnit(int x1, int x2, int x3, Hidden unit){ Layer_Hidden_.this.setUnit(x1, x2, x3, unit); }
         protected MyUtils.Signal newObject(){ return new MyUtils.Signal(); }
         protected MyUtils.Signal[] newArray(int len){ return new MyUtils.Signal[len]; }
      };
   }

   public Layer_Hidden_(ILayer_Hidden_ layer){ 
      super(layer); 
      // create adapters 
      y = new LayerAdapter<Hidden,MyUtils.Signal>(){
         public int dims() { return Layer_Hidden_.this.dims(); } 
         public int length() { return Layer_Hidden_.this.length(); } 
         public int length(int... ix) { return Layer_Hidden_.this.length(ix); } 
         public MyUtils.Signal get(int... ix) { return Layer_Hidden_.this.get(ix).y; }
         public void set(int[] ix, MyUtils.Signal val){ Layer_Hidden_.this.get(ix).y = val; }
         public void set(int x1, MyUtils.Signal val){ Layer_Hidden_.this.get(x1).y = val; }
         public void set(int x1, int x2, MyUtils.Signal val){ Layer_Hidden_.this.get(x1, x2).y = val; }
         public void set(int x1, int x2, int x3, MyUtils.Signal val){ Layer_Hidden_.this.get(x1, x2, x3).y = val; }
         public Hidden getUnit(int... ix) { return Layer_Hidden_.this.getUnit(ix); }
         public void setUnit(int[] ix, Hidden unit){ Layer_Hidden_.this.setUnit(ix, unit); }
         public void setUnit(int x1, Hidden unit){ Layer_Hidden_.this.setUnit(x1, unit); }
         public void setUnit(int x1, int x2, Hidden unit){ Layer_Hidden_.this.setUnit(x1, x2, unit); }
         public void setUnit(int x1, int x2, int x3, Hidden unit){ Layer_Hidden_.this.setUnit(x1, x2, x3, unit); }
      };
      x = new VectorLayerAdapter<Hidden,MyUtils.Signal>(){
         public int dims() { return Layer_Hidden_.this.dims(); } 
         public int length() { return Layer_Hidden_.this.length(); } 
         public int length(int... ix) { return Layer_Hidden_.this.length(ix); } 
         public MyUtils.Signal[] get(int... ix) { return Layer_Hidden_.this.get(ix).x; }
         public void set(int[] ix, MyUtils.Signal[] val){ Layer_Hidden_.this.get(ix).x = val; }
         public void set(int x1, MyUtils.Signal[] val){ Layer_Hidden_.this.get(x1).x = val; }
         public void set(int x1, int x2, MyUtils.Signal[] val){ Layer_Hidden_.this.get(x1, x2).x = val; }
         public void set(int x1, int x2, int x3, MyUtils.Signal[] val){ Layer_Hidden_.this.get(x1, x2, x3).x = val; }
         public Hidden getUnit(int... ix) { return Layer_Hidden_.this.getUnit(ix); }
         public void setUnit(int[] ix, Hidden unit){ Layer_Hidden_.this.setUnit(ix, unit); }
         public void setUnit(int x1, Hidden unit){ Layer_Hidden_.this.setUnit(x1, unit); }
         public void setUnit(int x1, int x2, Hidden unit){ Layer_Hidden_.this.setUnit(x1, x2, unit); }
         public void setUnit(int x1, int x2, int x3, Hidden unit){ Layer_Hidden_.this.setUnit(x1, x2, x3, unit); }
         protected MyUtils.Signal newObject(){ return new MyUtils.Signal(); }
         protected MyUtils.Signal[] newArray(int len){ return new MyUtils.Signal[len]; }
      };
      inErr = new VectorLayerAdapter<Hidden,MyUtils.Signal>(){
         public int dims() { return Layer_Hidden_.this.dims(); } 
         public int length() { return Layer_Hidden_.this.length(); } 
         public int length(int... ix) { return Layer_Hidden_.this.length(ix); } 
         public MyUtils.Signal[] get(int... ix) { return Layer_Hidden_.this.get(ix).inErr; }
         public void set(int[] ix, MyUtils.Signal[] val){ Layer_Hidden_.this.get(ix).inErr = val; }
         public void set(int x1, MyUtils.Signal[] val){ Layer_Hidden_.this.get(x1).inErr = val; }
         public void set(int x1, int x2, MyUtils.Signal[] val){ Layer_Hidden_.this.get(x1, x2).inErr = val; }
         public void set(int x1, int x2, int x3, MyUtils.Signal[] val){ Layer_Hidden_.this.get(x1, x2, x3).inErr = val; }
         public Hidden getUnit(int... ix) { return Layer_Hidden_.this.getUnit(ix); }
         public void setUnit(int[] ix, Hidden unit){ Layer_Hidden_.this.setUnit(ix, unit); }
         public void setUnit(int x1, Hidden unit){ Layer_Hidden_.this.setUnit(x1, unit); }
         public void setUnit(int x1, int x2, Hidden unit){ Layer_Hidden_.this.setUnit(x1, x2, unit); }
         public void setUnit(int x1, int x2, int x3, Hidden unit){ Layer_Hidden_.this.setUnit(x1, x2, x3, unit); }
         protected MyUtils.Signal newObject(){ return new MyUtils.Signal(); }
         protected MyUtils.Signal[] newArray(int len){ return new MyUtils.Signal[len]; }
      };
   }
   public Layer_Hidden_(ILayer_Hidden_.D1 layer){ 
      super(layer); 
      // create adapters 
      y = new LayerAdapter<Hidden,MyUtils.Signal>(){
         public int dims() { return Layer_Hidden_.this.dims(); } 
         public int length() { return Layer_Hidden_.this.length(); } 
         public int length(int... ix) { return Layer_Hidden_.this.length(ix); } 
         public MyUtils.Signal get(int... ix) { return Layer_Hidden_.this.get(ix).y; }
         public void set(int[] ix, MyUtils.Signal val){ Layer_Hidden_.this.get(ix).y = val; }
         public void set(int x1, MyUtils.Signal val){ Layer_Hidden_.this.get(x1).y = val; }
         public void set(int x1, int x2, MyUtils.Signal val){ Layer_Hidden_.this.get(x1, x2).y = val; }
         public void set(int x1, int x2, int x3, MyUtils.Signal val){ Layer_Hidden_.this.get(x1, x2, x3).y = val; }
         public Hidden getUnit(int... ix) { return Layer_Hidden_.this.getUnit(ix); }
         public void setUnit(int[] ix, Hidden unit){ Layer_Hidden_.this.setUnit(ix, unit); }
         public void setUnit(int x1, Hidden unit){ Layer_Hidden_.this.setUnit(x1, unit); }
         public void setUnit(int x1, int x2, Hidden unit){ Layer_Hidden_.this.setUnit(x1, x2, unit); }
         public void setUnit(int x1, int x2, int x3, Hidden unit){ Layer_Hidden_.this.setUnit(x1, x2, x3, unit); }
      };
      x = new VectorLayerAdapter<Hidden,MyUtils.Signal>(){
         public int dims() { return Layer_Hidden_.this.dims(); } 
         public int length() { return Layer_Hidden_.this.length(); } 
         public int length(int... ix) { return Layer_Hidden_.this.length(ix); } 
         public MyUtils.Signal[] get(int... ix) { return Layer_Hidden_.this.get(ix).x; }
         public void set(int[] ix, MyUtils.Signal[] val){ Layer_Hidden_.this.get(ix).x = val; }
         public void set(int x1, MyUtils.Signal[] val){ Layer_Hidden_.this.get(x1).x = val; }
         public void set(int x1, int x2, MyUtils.Signal[] val){ Layer_Hidden_.this.get(x1, x2).x = val; }
         public void set(int x1, int x2, int x3, MyUtils.Signal[] val){ Layer_Hidden_.this.get(x1, x2, x3).x = val; }
         public Hidden getUnit(int... ix) { return Layer_Hidden_.this.getUnit(ix); }
         public void setUnit(int[] ix, Hidden unit){ Layer_Hidden_.this.setUnit(ix, unit); }
         public void setUnit(int x1, Hidden unit){ Layer_Hidden_.this.setUnit(x1, unit); }
         public void setUnit(int x1, int x2, Hidden unit){ Layer_Hidden_.this.setUnit(x1, x2, unit); }
         public void setUnit(int x1, int x2, int x3, Hidden unit){ Layer_Hidden_.this.setUnit(x1, x2, x3, unit); }
         protected MyUtils.Signal newObject(){ return new MyUtils.Signal(); }
         protected MyUtils.Signal[] newArray(int len){ return new MyUtils.Signal[len]; }
      };
      inErr = new VectorLayerAdapter<Hidden,MyUtils.Signal>(){
         public int dims() { return Layer_Hidden_.this.dims(); } 
         public int length() { return Layer_Hidden_.this.length(); } 
         public int length(int... ix) { return Layer_Hidden_.this.length(ix); } 
         public MyUtils.Signal[] get(int... ix) { return Layer_Hidden_.this.get(ix).inErr; }
         public void set(int[] ix, MyUtils.Signal[] val){ Layer_Hidden_.this.get(ix).inErr = val; }
         public void set(int x1, MyUtils.Signal[] val){ Layer_Hidden_.this.get(x1).inErr = val; }
         public void set(int x1, int x2, MyUtils.Signal[] val){ Layer_Hidden_.this.get(x1, x2).inErr = val; }
         public void set(int x1, int x2, int x3, MyUtils.Signal[] val){ Layer_Hidden_.this.get(x1, x2, x3).inErr = val; }
         public Hidden getUnit(int... ix) { return Layer_Hidden_.this.getUnit(ix); }
         public void setUnit(int[] ix, Hidden unit){ Layer_Hidden_.this.setUnit(ix, unit); }
         public void setUnit(int x1, Hidden unit){ Layer_Hidden_.this.setUnit(x1, unit); }
         public void setUnit(int x1, int x2, Hidden unit){ Layer_Hidden_.this.setUnit(x1, x2, unit); }
         public void setUnit(int x1, int x2, int x3, Hidden unit){ Layer_Hidden_.this.setUnit(x1, x2, x3, unit); }
         protected MyUtils.Signal newObject(){ return new MyUtils.Signal(); }
         protected MyUtils.Signal[] newArray(int len){ return new MyUtils.Signal[len]; }
      };
   }
   public Layer_Hidden_(ILayer_Hidden_.D2 layer){ 
      super(layer); 
      // create adapters 
      y = new LayerAdapter<Hidden,MyUtils.Signal>(){
         public int dims() { return Layer_Hidden_.this.dims(); } 
         public int length() { return Layer_Hidden_.this.length(); } 
         public int length(int... ix) { return Layer_Hidden_.this.length(ix); } 
         public MyUtils.Signal get(int... ix) { return Layer_Hidden_.this.get(ix).y; }
         public void set(int[] ix, MyUtils.Signal val){ Layer_Hidden_.this.get(ix).y = val; }
         public void set(int x1, MyUtils.Signal val){ Layer_Hidden_.this.get(x1).y = val; }
         public void set(int x1, int x2, MyUtils.Signal val){ Layer_Hidden_.this.get(x1, x2).y = val; }
         public void set(int x1, int x2, int x3, MyUtils.Signal val){ Layer_Hidden_.this.get(x1, x2, x3).y = val; }
         public Hidden getUnit(int... ix) { return Layer_Hidden_.this.getUnit(ix); }
         public void setUnit(int[] ix, Hidden unit){ Layer_Hidden_.this.setUnit(ix, unit); }
         public void setUnit(int x1, Hidden unit){ Layer_Hidden_.this.setUnit(x1, unit); }
         public void setUnit(int x1, int x2, Hidden unit){ Layer_Hidden_.this.setUnit(x1, x2, unit); }
         public void setUnit(int x1, int x2, int x3, Hidden unit){ Layer_Hidden_.this.setUnit(x1, x2, x3, unit); }
      };
      x = new VectorLayerAdapter<Hidden,MyUtils.Signal>(){
         public int dims() { return Layer_Hidden_.this.dims(); } 
         public int length() { return Layer_Hidden_.this.length(); } 
         public int length(int... ix) { return Layer_Hidden_.this.length(ix); } 
         public MyUtils.Signal[] get(int... ix) { return Layer_Hidden_.this.get(ix).x; }
         public void set(int[] ix, MyUtils.Signal[] val){ Layer_Hidden_.this.get(ix).x = val; }
         public void set(int x1, MyUtils.Signal[] val){ Layer_Hidden_.this.get(x1).x = val; }
         public void set(int x1, int x2, MyUtils.Signal[] val){ Layer_Hidden_.this.get(x1, x2).x = val; }
         public void set(int x1, int x2, int x3, MyUtils.Signal[] val){ Layer_Hidden_.this.get(x1, x2, x3).x = val; }
         public Hidden getUnit(int... ix) { return Layer_Hidden_.this.getUnit(ix); }
         public void setUnit(int[] ix, Hidden unit){ Layer_Hidden_.this.setUnit(ix, unit); }
         public void setUnit(int x1, Hidden unit){ Layer_Hidden_.this.setUnit(x1, unit); }
         public void setUnit(int x1, int x2, Hidden unit){ Layer_Hidden_.this.setUnit(x1, x2, unit); }
         public void setUnit(int x1, int x2, int x3, Hidden unit){ Layer_Hidden_.this.setUnit(x1, x2, x3, unit); }
         protected MyUtils.Signal newObject(){ return new MyUtils.Signal(); }
         protected MyUtils.Signal[] newArray(int len){ return new MyUtils.Signal[len]; }
      };
      inErr = new VectorLayerAdapter<Hidden,MyUtils.Signal>(){
         public int dims() { return Layer_Hidden_.this.dims(); } 
         public int length() { return Layer_Hidden_.this.length(); } 
         public int length(int... ix) { return Layer_Hidden_.this.length(ix); } 
         public MyUtils.Signal[] get(int... ix) { return Layer_Hidden_.this.get(ix).inErr; }
         public void set(int[] ix, MyUtils.Signal[] val){ Layer_Hidden_.this.get(ix).inErr = val; }
         public void set(int x1, MyUtils.Signal[] val){ Layer_Hidden_.this.get(x1).inErr = val; }
         public void set(int x1, int x2, MyUtils.Signal[] val){ Layer_Hidden_.this.get(x1, x2).inErr = val; }
         public void set(int x1, int x2, int x3, MyUtils.Signal[] val){ Layer_Hidden_.this.get(x1, x2, x3).inErr = val; }
         public Hidden getUnit(int... ix) { return Layer_Hidden_.this.getUnit(ix); }
         public void setUnit(int[] ix, Hidden unit){ Layer_Hidden_.this.setUnit(ix, unit); }
         public void setUnit(int x1, Hidden unit){ Layer_Hidden_.this.setUnit(x1, unit); }
         public void setUnit(int x1, int x2, Hidden unit){ Layer_Hidden_.this.setUnit(x1, x2, unit); }
         public void setUnit(int x1, int x2, int x3, Hidden unit){ Layer_Hidden_.this.setUnit(x1, x2, x3, unit); }
         protected MyUtils.Signal newObject(){ return new MyUtils.Signal(); }
         protected MyUtils.Signal[] newArray(int len){ return new MyUtils.Signal[len]; }
      };
   }
   public Layer_Hidden_(ILayer_Hidden_.D3 layer){ 
      super(layer); 
      // create adapters 
      y = new LayerAdapter<Hidden,MyUtils.Signal>(){
         public int dims() { return Layer_Hidden_.this.dims(); } 
         public int length() { return Layer_Hidden_.this.length(); } 
         public int length(int... ix) { return Layer_Hidden_.this.length(ix); } 
         public MyUtils.Signal get(int... ix) { return Layer_Hidden_.this.get(ix).y; }
         public void set(int[] ix, MyUtils.Signal val){ Layer_Hidden_.this.get(ix).y = val; }
         public void set(int x1, MyUtils.Signal val){ Layer_Hidden_.this.get(x1).y = val; }
         public void set(int x1, int x2, MyUtils.Signal val){ Layer_Hidden_.this.get(x1, x2).y = val; }
         public void set(int x1, int x2, int x3, MyUtils.Signal val){ Layer_Hidden_.this.get(x1, x2, x3).y = val; }
         public Hidden getUnit(int... ix) { return Layer_Hidden_.this.getUnit(ix); }
         public void setUnit(int[] ix, Hidden unit){ Layer_Hidden_.this.setUnit(ix, unit); }
         public void setUnit(int x1, Hidden unit){ Layer_Hidden_.this.setUnit(x1, unit); }
         public void setUnit(int x1, int x2, Hidden unit){ Layer_Hidden_.this.setUnit(x1, x2, unit); }
         public void setUnit(int x1, int x2, int x3, Hidden unit){ Layer_Hidden_.this.setUnit(x1, x2, x3, unit); }
      };
      x = new VectorLayerAdapter<Hidden,MyUtils.Signal>(){
         public int dims() { return Layer_Hidden_.this.dims(); } 
         public int length() { return Layer_Hidden_.this.length(); } 
         public int length(int... ix) { return Layer_Hidden_.this.length(ix); } 
         public MyUtils.Signal[] get(int... ix) { return Layer_Hidden_.this.get(ix).x; }
         public void set(int[] ix, MyUtils.Signal[] val){ Layer_Hidden_.this.get(ix).x = val; }
         public void set(int x1, MyUtils.Signal[] val){ Layer_Hidden_.this.get(x1).x = val; }
         public void set(int x1, int x2, MyUtils.Signal[] val){ Layer_Hidden_.this.get(x1, x2).x = val; }
         public void set(int x1, int x2, int x3, MyUtils.Signal[] val){ Layer_Hidden_.this.get(x1, x2, x3).x = val; }
         public Hidden getUnit(int... ix) { return Layer_Hidden_.this.getUnit(ix); }
         public void setUnit(int[] ix, Hidden unit){ Layer_Hidden_.this.setUnit(ix, unit); }
         public void setUnit(int x1, Hidden unit){ Layer_Hidden_.this.setUnit(x1, unit); }
         public void setUnit(int x1, int x2, Hidden unit){ Layer_Hidden_.this.setUnit(x1, x2, unit); }
         public void setUnit(int x1, int x2, int x3, Hidden unit){ Layer_Hidden_.this.setUnit(x1, x2, x3, unit); }
         protected MyUtils.Signal newObject(){ return new MyUtils.Signal(); }
         protected MyUtils.Signal[] newArray(int len){ return new MyUtils.Signal[len]; }
      };
      inErr = new VectorLayerAdapter<Hidden,MyUtils.Signal>(){
         public int dims() { return Layer_Hidden_.this.dims(); } 
         public int length() { return Layer_Hidden_.this.length(); } 
         public int length(int... ix) { return Layer_Hidden_.this.length(ix); } 
         public MyUtils.Signal[] get(int... ix) { return Layer_Hidden_.this.get(ix).inErr; }
         public void set(int[] ix, MyUtils.Signal[] val){ Layer_Hidden_.this.get(ix).inErr = val; }
         public void set(int x1, MyUtils.Signal[] val){ Layer_Hidden_.this.get(x1).inErr = val; }
         public void set(int x1, int x2, MyUtils.Signal[] val){ Layer_Hidden_.this.get(x1, x2).inErr = val; }
         public void set(int x1, int x2, int x3, MyUtils.Signal[] val){ Layer_Hidden_.this.get(x1, x2, x3).inErr = val; }
         public Hidden getUnit(int... ix) { return Layer_Hidden_.this.getUnit(ix); }
         public void setUnit(int[] ix, Hidden unit){ Layer_Hidden_.this.setUnit(ix, unit); }
         public void setUnit(int x1, Hidden unit){ Layer_Hidden_.this.setUnit(x1, unit); }
         public void setUnit(int x1, int x2, Hidden unit){ Layer_Hidden_.this.setUnit(x1, x2, unit); }
         public void setUnit(int x1, int x2, int x3, Hidden unit){ Layer_Hidden_.this.setUnit(x1, x2, x3, unit); }
         protected MyUtils.Signal newObject(){ return new MyUtils.Signal(); }
         protected MyUtils.Signal[] newArray(int len){ return new MyUtils.Signal[len]; }
      };
   }

   // getD1(), getD2(), getD3() 
   public D1 getD1() {
      if (this.dimensionality != 1) return null;
      return new D1(layerD1.getBase());
   }
   public D2 getD2() {
      if (this.dimensionality != 2) return null;
      return new D2(layerD2.getBase());
   }
   public D3 getD3() {
      if (this.dimensionality != 3) return null;
      return new D3(layerD3.getBase());
   }

   // further method items 
   public void initSignals(Random r){
      if (r==null) throw new JLayerException("Invocation of method layer initSignals(): parameter r==null");
      switch(this.dims()) {
         case 1:
            D1 _layerD1_ = new D1(layerD1.getBase());
            _layerD1_.initSignals(r); break;
         case 2:
            D2 _layerD2_ = new D2(layerD2.getBase());
            _layerD2_.initSignals(r); break;
         case 3:
            D3 _layerD3_ = new D3(layerD3.getBase());
            _layerD3_.initSignals(r); break;
         default: throw new JLayerException();
      }
   }
   public void Forward(){
      switch(this.dims()) {
         case 1:
            D1 _layerD1_ = new D1(layerD1.getBase());
            _layerD1_.Forward(); break;
         case 2:
            D2 _layerD2_ = new D2(layerD2.getBase());
            _layerD2_.Forward(); break;
         case 3:
            D3 _layerD3_ = new D3(layerD3.getBase());
            _layerD3_.Forward(); break;
         default: throw new JLayerException();
      }
   }
   public void Backward(double eta){
      switch(this.dims()) {
         case 1:
            D1 _layerD1_ = new D1(layerD1.getBase());
            _layerD1_.Backward(eta); break;
         case 2:
            D2 _layerD2_ = new D2(layerD2.getBase());
            _layerD2_.Backward(eta); break;
         case 3:
            D3 _layerD3_ = new D3(layerD3.getBase());
            _layerD3_.Backward(eta); break;
         default: throw new JLayerException();
      }
   }

} // end of class Layer_Hidden_
