   (rowEnd [_ i]
     (min n (inc (+ i ku))))
   (isLower [_]
-    (< ku 1))
+    (= 122 uplo))
   (isUpper [_]
-    (< kl 1))
+    (= 121 uplo))
   (isDiagUnit [_]
     (or (= -1 kl) (= -1 ku)))
   (uplo [_]

  ([^long n ^long k lower? diag-unit?]
   (let [diag-pad (if diag-unit? -1 0)]
     (if lower?
       (band-region n n (min (max 0 k) (dec n)) diag-pad)
       (band-region n n diag-pad (min (max 0 k) (dec n)))))))

(defn sb-region
  ([^long n ^long k lower?]
   (if lower?
     (band-region n n (min (max 0 k) (dec n)) 0)
     (band-region n n 0 (min (max 0 k) (dec n))))))

(deftype GERegion [^long m ^long n]
  Object

     :kl (.kl r)
     :ku (.ku r)
     :surface (.surface r)
     :uplo (dec-property (.uplo r))
     :diag (if (.isDiagUnit r) :unit :non-unit)})
  Region
  (accessible [_ _ _]
