Mercurial > hg > amuse
changeset 10:356ee92313be
Move default methods from default-methods.lisp to generics.lisp and remove default-methods.lisp.
darcs-hash:20061113192940-aa3d6-c5c255e9aa6486b360e1ac1393910ba3c783f4b8.gz
author | m.pearce <m.pearce@gold.ac.uk> |
---|---|
date | Mon, 13 Nov 2006 19:29:40 +0000 |
parents | 22d090e96582 |
children | 9f05ce23e71e |
files | amuse.asd default-methods.lisp generics.lisp |
diffstat | 3 files changed, 35 insertions(+), 76 deletions(-) [+] |
line wrap: on
line diff
--- a/amuse.asd Mon Nov 13 19:00:10 2006 +0000 +++ b/amuse.asd Mon Nov 13 19:29:40 2006 +0000 @@ -5,6 +5,4 @@ :components ((:file "package") (:file "conditions") (:file "generics") - (:file "classes") - (:file "default-methods"))) - + (:file "classes")))
--- a/default-methods.lisp Mon Nov 13 19:00:10 2006 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,55 +0,0 @@ -(cl:in-package #:amuse) - -;; Some methods that can be defined in terms of others: - -;; Time - -(defmethod time>= ((object1 moment) (object2 moment)) - (or (time> object1 object2) - (time= object1 object2))) - -(defmethod time<= ((object1 moment) (object2 moment)) - (or (time< object1 object2) - (time= object1 object2))) - -(defmethod time/= ((object1 moment) (object2 moment)) - (not (time= object1 object2))) - -;; Duration - -(defmethod duration>= ((object1 duration) (object2 duration)) - (or (duration> object1 object2) - (duration= object1 object2))) - -(defmethod duration<= ((object1 duration) (object2 duration)) - (or (duration< object1 object2) - (duration= object1 object2))) - -(defmethod duration/= ((object1 duration) (object2 duration)) - (not (duration= object1 object2))) - -;; Pitch - -(defmethod pitch>= ((object1 pitch) (object2 pitch)) - (or (pitch> object1 object2) - (pitch= object1 object2))) - -(defmethod pitch<= ((object1 pitch) (object2 pitch)) - (or (pitch< object1 object2) - (pitch= object1 object2))) - -(defmethod pitch/= ((object1 pitch) (object2 pitch)) - (not (pitch= object1 object2))) - -;; Interval - -(defmethod interval>= ((object1 interval) (object2 interval)) - (or (interval> object1 object2) - (interval= object1 object2))) - -(defmethod interval<= ((object1 interval) (object2 interval)) - (or (interval< object1 object2) - (interval= object1 object2))) - -(defmethod interval/= ((object1 interval) (object2 interval)) - (not (interval= object1 object2)))
--- a/generics.lisp Mon Nov 13 19:00:10 2006 +0000 +++ b/generics.lisp Mon Nov 13 19:29:40 2006 +0000 @@ -35,19 +35,26 @@ (defgeneric time> (object1 object2)) (defgeneric time< (object1 object2)) -(defgeneric time>= (object1 object2)) -(defgeneric time<= (object1 object2)) (defgeneric time= (object1 object2)) -(defgeneric time/= (object1 object2)) +(defgeneric time>= (object1 object2) + (:method (o1 o2) (or (time> o1 o2) (time= o1 o2)))) +(defgeneric time<= (object1 object2) + (:method (o1 o2) (or (time< o1 o2) (time= o1 o2)))) +(defgeneric time/= (object1 object2) + (:method (o1 o2) (not (time= o1 o2)))) + ;;; Duration protocol (defgeneric duration> (object1 object2)) (defgeneric duration< (object1 object2)) -(defgeneric duration>= (object1 object2)) -(defgeneric duration<= (object1 object2)) (defgeneric duration= (object1 object2)) -(defgeneric duration/= (object1 object2)) +(defgeneric duration>= (object1 object2) + (:method (o1 o2) (or (duration> o1 o2) (duration= o1 o2)))) +(defgeneric duration<= (object1 object2) + (:method (o1 o2) (or (duration< o1 o2) (duration= o1 o2)))) +(defgeneric duration/= (object1 object2) + (:method (o1 o2) (not (duration= o1 o2)))) ;;; Pitch protocol @@ -67,23 +74,30 @@ (defgeneric pitch> (object1 object2)) (defgeneric pitch< (object1 object2)) -(defgeneric pitch>= (object1 object2)) -(defgeneric pitch<= (object1 object2)) (defgeneric pitch= (object1 object2)) -(defgeneric pitch/= (object1 object2)) +(defgeneric pitch>= (object1 object2) + (:method (o1 o2) (or (pitch> o1 o2) (pitch= o1 o2)))) +(defgeneric pitch<= (object1 object2) + (:method (o1 o2) (or (pitch< o1 o2) (pitch= o1 o2)))) +(defgeneric pitch/= (object1 object2) + (:method (o1 o2) (not (pitch= o1 o2)))) ;;; Interval protocol (emphasise _pitch_ not _time_ interval?) (defgeneric interval> (object1 object2)) (defgeneric interval< (object1 object2)) -(defgeneric interval>= (object1 object2)) -(defgeneric interval<= (object1 object2)) (defgeneric interval= (object1 object2)) -(defgeneric interval/= (object1 object2)) +(defgeneric interval>= (object1 object2) + (:method (o1 o2) (or (interval> o1 o2) (interval= o1 o2)))) +(defgeneric interval<= (object1 object2) + (:method (o1 o2) (or (interval< o1 o2) (interval= o1 o2)))) +(defgeneric interval/= (object1 object2) + (:method (o1 o2) (not (interval= o1 o2)))) ;;; Allen's (1984) interval relations ;;; . equals already defined as INTERVAL= above -;;; . can all be defined in terms of MEETS +;;; . inverses ommitted for now (just use CL:NOT) +;;; . can all be defined in terms of MEETS (apparently) (defgeneric meets (object1 object2)) (defgeneric before (object1 object2)) @@ -92,12 +106,14 @@ (defgeneric starts (object1 object2)) (defgeneric ends (object1 object2)) -;;; and extensions ... +;;; and extensions thereof ... -;;; i subinterval j if i starts j or i during j or i ends j -(defgeneric subinterval (object1 object2)) -;;; i disjoint j if i before j or i meets j or j meets i or j before i -(defgeneric disjoint (object1 object2)) +(defgeneric subinterval (object1 object2) + (:method (o1 o2) (or (starts o1 o2) (during o1 o2) (ends o1 o2)))) + +(defgeneric disjoint (object1 object2) + (:method (o1 o2) + (or (before o1 o2) (meets o1 o2) (meets o2 o1) (before o2 o1)))) ;;; Time Signature