        ;;; where the indices in the arrays are bids
        :votes-base (plmb/fnk [bid-to-pid rating-mat]
                      (time2 "votes-base"
-                       (greedy
                        (let [tids (:cols rating-mat)]
                          (reduce
                            (fn [o entry]

                               {:tid tid
                                :A (agg-bucket-votes-for-tid bid-to-pid rating-mat agree? tid)
                                :D (agg-bucket-votes-for-tid bid-to-pid rating-mat disagree? tid)})
                             tids))))))
       ; End of large-update
       }))


     {:mat (plmb/fnk [rating-mat]
             "swap nils for zeros - most things need the 0s, but repness needs the nils"
             (time2 "mat"
               (greedy
               (map (fn [row] (map #(if (nil? %) 0 %) row))
                 (:matrix rating-mat)))))

      :pca (plmb/fnk [conv mat opts']
             (time2 "pca"
               (wrapped-pca mat (:n-comps opts')
                            :start-vectors (get-in conv [:pca :comps])
