123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- ;;;; types.lisp
- ;;;;
- ;;;; Copyright (c) 2020 Samuel W. Flint <swflint@flintfam.org>
- (in-package #:lcsp)
- ;;; "lcsp" goes here.
- (defclass <csp> ()
- ((name :reader name
- :type 'symbol
- :initarg :name)
- (variables :reader variables
- :type 'list
- :initarg :variables)
- (constraints :reader constraints
- :type 'list
- :initarg :constraints)
- (constraint-checks :accessor constraint-checks
- :type 'integer
- :initform 0)))
- (defclass <variable> ()
- ((name :accessor name
- :type 'symbol
- :initarg :name)
- (type :accessor var-type
- :type 'type-specifier
- :initarg :type)
- (domain :accessor domain)
- (constraints-map :accessor constraints
- :type list
- :initarg :constraints-map)))
- (defclass <constraint> ()
- ((adicity :reader constraint-adicity
- :type 'integer)
- (variables :reader variables
- :initarg :variables
- :type list)
- (problem :reader problem
- :initarg :problem
- :type '<csp>)))
- (defmethod initialize-instance :after
- ((instance <constraint>) &key &allow-other-keys)
- (with-slots (variables adicity) instance
- (setf adicity (length variables))))
- (defgeneric check-constraint (constraint vvps &key suppress-cc-update-p))
- (defclass <constraint-extension> (<constraint>)
- ((conflictsp :reader conflictsp
- :initarg :conflictsp)
- (constraints-list :reader constraints-list
- :initarg :list)))
- (defclass <constraint-intension> (<constraint>)
- ((function :reader constraint-function
- :initarg :constraint-function)))
- (defclass <constraint-combined> (<constraint>)
- ((constraints :reader constraints
- :initarg constraints)))
- ;;; End lcsp
|