    (catch Exception e
      pos-infinity)))
 
-;; Attractive Energy
+(defn- repulsive-force
+  "Computes the n-th component of the vector of repulsive forces
+  acting on the inf-irreducible elements of layout. The vector
+  itself has 2n entries."
+  [layout inf-irrs n]
+  (throw (UnsupportedOperationException. "Not yet implemented.")))
+
+;; Attractive Energy and Force
 
 (defn- attractive-energy
   "Computes the attractive energy of the given layout."


;;;

(comment "For Testing"

(require 'conexp :reload-all)
(def lat (conexp/concept-lattice (conexp/rand-context #{1 2 3 4 5 6} 0.4)))
(defn simple-layered-force-layout [lat]
  (force-layout lat (conexp/simple-layered-layout lat)))
(conexp/draw-lattice lat simple-layered-force-layout)

)
;;;

nil

     (catch Exception e
       pos-infinity))))

(defn- gravitative-force
  "Computes the n-th component of the vector of gravitative forces
  acting on the inf-irreducible elements of layout. The vector itself
  has 2n entries."
  [layout inf-irrs n]
  (throw (UnsupportedOperationException. "Not yet implemented.")))

;; Overall Energy and Force

(def *repulsive-amount* 1)
(def *attractive-amount* 1)
(def *gravitative-amount* 1)

(defn- layout-energy
  "Returns the overall energy of the given layout."
  [layout additional-information]
  (+ (* *repulsive-amount* (repulsive-energy layout))
     (* *attractive-amount* (attractive-energy layout))
     (* *gravitative-amount* (gravitative-energy layout additional-information))))

(defn- layout-force
  "Computes overall force _component_ of index n in the inf-irreducible elements."
  [layout inf-irrs n additional-information]
  (throw (UnsupportedOperationException. "Not yet implemented.")))

(defn- energy-by-inf-irr-positions
  "Returns a function calculating the energy of an attribute additive
