Extracted simplicial morphism tests.

This commit is contained in:
Gerd Heber 2015-07-13 19:20:30 -05:00
parent 3fb780645b
commit 682b7ad2f8
4 changed files with 119 additions and 91 deletions

View File

@ -27,6 +27,8 @@
(:file "k-pi-n-test")
(:file "kan-test")
(:file "searching-homology-test")
(:file "simplicial-mrphs-test")
(:file "simplicial-sets-test")
(:file "tensor-products-test")
(:file "various-test")))
(:file "various-test")
))

View File

@ -283,6 +283,10 @@
HOMOLOGY
;; simplicial-mrphs.lisp
BUILD-SMMR
;; simplicial-sets.lisp
1DGNR

View File

@ -8,29 +8,30 @@
(DEFMETHOD ?3 ((smmr simplicial-mrph) dmns absm-or-gmsm)
(declare
(fixnum dmns)
(type (or absm gmsm) absm-or-gmsm))
(fixnum dmns)
(type (or absm gmsm) absm-or-gmsm))
(typecase absm-or-gmsm
(absm
(with-absm (dgop gmsm) absm-or-gmsm
(let ((gmsm-smmr (funcall (sintr smmr)
(- dmns (logcount dgop)) gmsm)))
(declare (type absm gmsm-smmr))
(ndgnr dgop gmsm-smmr))))
(otherwise
(funcall (sintr smmr) dmns absm-or-gmsm))))
(absm
(with-absm (dgop gmsm) absm-or-gmsm
(let ((gmsm-smmr (funcall (sintr smmr)
(- dmns (logcount dgop)) gmsm)))
(declare (type absm gmsm-smmr))
(ndgnr dgop gmsm-smmr))))
(otherwise
(funcall (sintr smmr) dmns absm-or-gmsm))))
#+clisp(eval-when (:compile-toplevel :load-toplevel :execute)
(setf (ext:package-lock :clos) nil))
(DEFMETHOD PRINT-OBJECT ((smmr simplicial-mrph) stream)
(the simplicial-mrph
(progn
(if (= -1 (degr smmr))
(format stream "[K~D Fibration K~D -> K~D]"
(idnm smmr) (idnm (sorc smmr)) (idnm (trgt smmr)))
(format stream "[K~D Simplicial-Morphism K~D -> K~D]"
(idnm smmr) (idnm (sorc smmr)) (idnm (trgt smmr))))
smmr)))
(progn
(if (= -1 (degr smmr))
(format stream "[K~D Fibration K~D -> K~D]"
(idnm smmr) (idnm (sorc smmr)) (idnm (trgt smmr)))
(format stream "[K~D Simplicial-Morphism K~D -> K~D]"
(idnm smmr) (idnm (sorc smmr)) (idnm (trgt smmr))))
smmr)))
#+clisp(eval-when (:compile-toplevel :load-toplevel :execute)
(setf (ext:package-lock :clos) t))
@ -38,48 +39,50 @@
(DEFUN SMMR (idnm)
(declare (fixnum idnm))
(the (or null simplicial-mrph)
(find idnm *smmr-list* :key #'idnm)))
(find idnm *smmr-list* :key #'idnm)))
(DEFUN SINTR-INTR (sintr)
(declare (type sintr sintr))
(flet ((rslt (dmns gmsm)
(declare
(fixnum dmns)
(type gmsm gmsm))
(when (minusp dmns)
(return-from rslt (zero-cmbn dmns)))
(let ((rslt (funcall sintr dmns gmsm)))
(declare (type absm rslt))
(if (degenerate-p rslt)
(zero-cmbn dmns)
(term-cmbn dmns 1 (gmsm rslt))))))
(the intr-mrph #'rslt)))
(declare (type sintr sintr))
(flet ((rslt (dmns gmsm)
(declare
(fixnum dmns)
(type gmsm gmsm))
(when (minusp dmns)
(return-from rslt (zero-cmbn dmns)))
(let ((rslt (funcall sintr dmns gmsm)))
(declare (type absm rslt))
(if (degenerate-p rslt)
(zero-cmbn dmns)
(term-cmbn dmns 1 (gmsm rslt))))))
(the intr-mrph #'rslt)))
(DEFUN BUILD-SMMR (&key sorc trgt degr sintr intr strt orgn)
(declare
(type simplicial-set sorc trgt)
(fixnum degr)
(type sintr sintr)
(type (or intr-mrph null) intr)
(type (or strt null) strt)
(list orgn))
(the simplicial-mrph
(progn
(declare
(type simplicial-set sorc trgt)
(fixnum degr)
(type sintr sintr)
(type (or intr-mrph null) intr)
(type (or strt null) strt)
(list orgn))
(the simplicial-mrph
(progn
(let ((already (find orgn *smmr-list* :test #'equal :key #'orgn)))
(declare (type (or simplicial-mrph null) already))
(when already
(return-from build-smmr already)))
(declare (type (or simplicial-mrph null) already))
(when already
(return-from build-smmr already)))
(if (zerop degr)
(if intr
(unless strt
(error "In BUILD-SMMR, an intr is given but not its strt"))
(setf strt :gnrt
intr (sintr-intr sintr)))
(setf intr nil strt :gnrt))
(error "In BUILD-SMMR, an intr is given but not its strt"))
(setf strt :gnrt
intr (sintr-intr sintr)))
(setf intr nil strt :gnrt))
(let ((rslt (build-mrph
:sorc sorc :trgt trgt :degr degr
:intr intr :strt strt
:orgn orgn)))
:sorc sorc :trgt trgt :degr degr
:intr intr :strt strt
:orgn orgn)))
(declare (type morphism rslt))
(change-class rslt 'simplicial-mrph)
(setf (slot-value rslt 'sintr) sintr)
@ -87,30 +90,30 @@
rslt))))
#|
(setf d (delta 3))
(setf m (build-smmr
:sorc d :trgt d :degr 0
:sintr #'(lambda (dmns gmsm)
(absm 0 gmsm))
:orgn '(identity delta-3)))
(setf m2 (build-smmr
:sorc d :trgt d :degr 0
:sintr #'(lambda (dmns gmsm)
(absm (mask dmns) 1))
:orgn '(null delta-3)))
(? m2 2 7)
(setf d (delta 3))
(setf m (build-smmr
:sorc d :trgt d :degr 0
:sintr #'(lambda (dmns gmsm)
(absm 0 gmsm))
:orgn '(identity delta-3)))
(setf m2 (build-smmr
:sorc d :trgt d :degr 0
:sintr #'(lambda (dmns gmsm)
(absm (mask dmns) 1))
:orgn '(null delta-3)))
(? m2 2 7)
;; (s? m2 2 7)
|#
#| ????
#| ????
(DEFUN IA-SINTR3 (sintr dmns iabsm)
(declare
(type sintr sintr)
(fixnum dmns)
(type iabsm iabsm))
(type sintr sintr)
(fixnum dmns)
(type iabsm iabsm))
(the absm
(with-iabsm (dgop gmsm) iabsm
(ndgnr dgop (funcall sintr (- dmns (logcount dgop)) gmsm)))))
(with-iabsm (dgop gmsm) iabsm
(ndgnr dgop (funcall sintr (- dmns (logcount dgop)) gmsm)))))
(DEFUN A-SINTR3 (sintr dmns absm)
(declare
@ -118,8 +121,8 @@
(fixnum dmns)
(type absm absm))
(the absm
(with-absm (dgop gmsm) absm
(ndgnr dgop (funcall sintr (- dmns (logcount dgop)) gmsm)))))
(with-absm (dgop gmsm) absm
(ndgnr dgop (funcall sintr (- dmns (logcount dgop)) gmsm)))))
|# ;;; ????
@ -130,29 +133,29 @@
(type absm absm)
(type gmsm bspn))
(the absm
(with-absm (dgop gmsm) absm
(let ((dmns-1 (1- dmns)))
(declare (fixnum dmns-1))
(if (logbitp dmns-1 dgop)
(absm (mask dmns-1) bspn)
(ndgnr dgop (funcall sintr
(- dmns (logcount dgop))
gmsm)))))))
(with-absm (dgop gmsm) absm
(let ((dmns-1 (1- dmns)))
(declare (fixnum dmns-1))
(if (logbitp dmns-1 dgop)
(absm (mask dmns-1) bspn)
(ndgnr dgop (funcall sintr
(- dmns (logcount dgop))
gmsm)))))))
#|
(DEFUN TW-IA-SINTR3 (sintr dmns iabsm bspn)
(declare
(type sintr sintr)
(fixnum dmns)
(type iabsm iabsm)
(type gmsm bspn))
(type sintr sintr)
(fixnum dmns)
(type iabsm iabsm)
(type gmsm bspn))
(the absm
(with-iabsm (dgop gmsm) iabsm
(let ((dmns-1 (1- dmns)))
(declare (fixnum dmns-1))
(if (logbitp dmns-1 dgop)
(absm (mask dmns-1) bspn)
(ndgnr dgop (funcall sintr
(- dmns (logcount dgop))
gmsm)))))))
(with-iabsm (dgop gmsm) iabsm
(let ((dmns-1 (1- dmns)))
(declare (fixnum dmns-1))
(if (logbitp dmns-1 dgop)
(absm (mask dmns-1) bspn)
(ndgnr dgop (funcall sintr
(- dmns (logcount dgop))
gmsm)))))))
|#

View File

@ -0,0 +1,19 @@
(in-package :kenzo-test)
(in-suite :kenzo)
(test build-smmr
(let* ((d (cat:delta 3))
(m (cat:build-smmr
:sorc d :trgt d :degr 0
:sintr #'(lambda (dmns gmsm) (cat:absm 0 gmsm))
:orgn '(identity delta-3)))
(m2 (cat:build-smmr
:sorc d :trgt d :degr 0
:sintr #'(lambda (dmns gmsm) (cat:absm (cat:mask dmns) 1))
:orgn '(null delta-3))))
(cat:? m2 2 7)
;; (s? m2 2 7)
))