 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;; Main call
 
+;;;; The parameters used in the paper mentioned at the top are:
+;:population-size 500
+;:max-generations 100
+;:mutation-probability 0.09
+;:crossover-probability 0.81
+;;:replication-rate 0.1 ;implicit
+;:tournament-size 10
+;:node-selection-method :uniform
+;;:max-depth 17 ;tree GP param
+;;:max-dept-of-mutation-code 6 ;tree GP param
+
 (def argmap
   {:error-function (partial bioavailability-error-function :train)
    :atom-generators bioavailability-atom-generators

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Define instructions and fitness cases

;; I want x0 through x240 to be instructions that, when executed, push
;; the float from that column onto the float stack.
(doseq [[numb symb] (map #(vector % (symbol (str "x" %))) (range 241))]
  (eval `(define-registered ~symb (fn [state#] (push-item (stack-ref :auxiliary ~numb state#) :float state#)))))

   :mutation-probability 0.09
   :crossover-probability 0.81
   :tournament-size 10
   :node-selection-method :uniform
   :report-simplifications 0
   :final-report-simplifications 1000
   :use-rmse true
