;;;  SEARCHING-HOMOLOGY  SEARCHING-HOMOLOGY  SEARCHING-HOMOLOGY
;;;  SEARCHING-HOMOLOGY  SEARCHING-HOMOLOGY  SEARCHING-HOMOLOGY
;;;  SEARCHING-HOMOLOGY  SEARCHING-HOMOLOGY  SEARCHING-HOMOLOGY

(IN-PACKAGE "COMMON-LISP-USER")

(PROVIDE "searching-homology")

(DEFUN ECHCM (chcm)
   (rbcc (efhm chcm)))

(DEFMETHOD HOMOLOGY ((chcm chain-complex) degr1 &optional (degr2 (1+ degr1)))
   (declare (fixnum degr1 degr2))
   (do ((degr degr1 (1+ degr)))
       ((>= degr degr2))
      (declare (fixnum degr))
      (chcm-homology (echcm chcm) degr)
      (terpri) (clock) (terpri)))

(DEFGENERIC SEARCH-EFHM (chcm orgn))

(DEFMETHOD SEARCH-EFHM (chcm orgn)
  (declare (ignore chcm orgn))
  nil)

(DEFMETHOD SLOT-UNBOUND (class (chcm chain-complex) (slot-name (eql 'efhm)))
   (declare (ignore class))
   (the homotopy-equivalence
     (let ((efhm (search-efhm chcm (first (orgn chcm)))))
       (setf (slot-value chcm 'efhm)
         (or efhm
         (when (functionp (basis chcm))
               (trivial-hmeq chcm))
         (error "I don't know how to determine ~
                         the effective homology of:~@
                         ~A (Origin: ~A)." chcm (orgn chcm)))))))

#|
  (cat-init)
  (setf d (delta 3))
  (homology d 0)
|#


Home page.