// Path: src/sane/Best_net_structure.java
// public class Best_net_structure {
// 
//   Best_net_structure() {
//     neuron = new Neuron [Config.NUM_HIDDEN];
//   }
// 
// public Neuron neuron[];
// 
// public float fitness;
// 
// }


import sane.Best_net_structure;
import java.util.Random;
import java.io.*;
        Sane.best_nets[child1].neuron[i] = pop[Config.POP_SIZE -
                                               ((Math.abs(myRandom.nextInt()) % 2)
                                               +1) + (j*
                                               (Math.abs(myRandom.nextInt()) %
                                               OP_PER_ELITE)*2)];
      else
        Sane.best_nets[child1].neuron[i] = pop[j];
    } /* end hideous for loop */

    if (Config.NUM_HIDDEN > 10) {
      Sane.best_nets[child1].neuron[Math.abs(myRandom.nextInt()) % Config.NUM_HIDDEN]
                             = pop[Math.abs(myRandom.nextInt()) % Config.POP_SIZE];
      Sane.best_nets[child2].neuron[Math.abs(myRandom.nextInt()) % Config.NUM_HIDDEN]
                             = pop[Math.abs(myRandom.nextInt()) % Config.POP_SIZE];
    } /* end if */

  }  /* end New_network_one_pt_crossover method */

/**********************************************************/


/*****************************************************************/
/* Sort_best_networks does an insertion sort on neurons based on */
/* their fitness values.                                         */
/*****************************************************************/

static void Sort_best_networks() {

  int i, j;
  float k;
// Path: src/sane/Best_net_structure.java
// public class Best_net_structure {
// 
//   Best_net_structure() {
//     neuron = new Neuron [Config.NUM_HIDDEN];
//   }
// 
// public Neuron neuron[];
// 
// public float fitness;
// 
// }


// Path: src/sane/Sane_EA.java
import sane.Best_net_structure;
import java.util.Random;
import java.io.*;

        Sane.best_nets[child1].neuron[i] = pop[Config.POP_SIZE -
                                               ((Math.abs(myRandom.nextInt()) % 2)
                                               +1) + (j*
                                               (Math.abs(myRandom.nextInt()) %
                                               OP_PER_ELITE)*2)];
      else
        Sane.best_nets[child1].neuron[i] = pop[j];
    } /* end hideous for loop */

    if (Config.NUM_HIDDEN > 10) {
      Sane.best_nets[child1].neuron[Math.abs(myRandom.nextInt()) % Config.NUM_HIDDEN]
                             = pop[Math.abs(myRandom.nextInt()) % Config.POP_SIZE];
      Sane.best_nets[child2].neuron[Math.abs(myRandom.nextInt()) % Config.NUM_HIDDEN]
                             = pop[Math.abs(myRandom.nextInt()) % Config.POP_SIZE];
    } /* end if */

  }  /* end New_network_one_pt_crossover method */

/**********************************************************/


/*****************************************************************/
/* Sort_best_networks does an insertion sort on neurons based on */
/* their fitness values.                                         */
/*****************************************************************/

static void Sort_best_networks() {

  int i, j;
  float k;
  Best_net_structure temp;