- Timestamp:
- 2015-06-19T10:15:19-07:00 (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/f4grobner/polynomial.lisp
r2447 r2448 134 134 (length (poly-termlist self))) 135 135 136 (defmethod multiply-by-scalar ((self poly) scalar) 137 "The scalar product of a polynomial SELF by a scalar SCALAR." 138 (mapc #'(lambda (term) (multiply-by-scalar term scalar)) (poly-termlist self)) 139 self) 140 141 (defun multiply-by-monom ((self poly) (monom monom)) 142 (mapc #'(lambda (term) (r* term monom)) (poly-termlist self)) 143 self) 144 145 146 (defun term-times-poly (ring term p) 147 (declare (type ring ring) (type term term) (type poly p)) 148 (make-poly-from-termlist 149 (term-times-termlist ring term (poly-termlist p)) 150 (+ (poly-sugar p) (term-sugar term)))) 151 152 (defun poly-add (ring-and-order p q) 153 (declare (type ring-and-order ring-and-order) (type poly p q)) 154 (make-poly-from-termlist 155 (termlist-add ring-and-order 156 (poly-termlist p) 157 (poly-termlist q)) 158 (max (poly-sugar p) (poly-sugar q)))) 159 160 (defun poly-sub (ring-and-order p q) 161 (declare (type ring-and-order ring-and-order) (type poly p q)) 162 (make-poly-from-termlist 163 (termlist-sub ring-and-order (poly-termlist p) (poly-termlist q)) 164 (max (poly-sugar p) (poly-sugar q)))) 165 166 (defun poly-uminus (ring p) 167 (declare (type ring ring) (type poly p)) 168 (make-poly-from-termlist 169 (termlist-uminus ring (poly-termlist p)) 170 (poly-sugar p))) 171 172 (defun poly-mul (ring-and-order p q) 173 (declare (type ring-and-order ring-and-order) (type poly p q)) 174 (make-poly-from-termlist 175 (termlist-mul ring-and-order (poly-termlist p) (poly-termlist q)) 176 (+ (poly-sugar p) (poly-sugar q)))) 177 178 (defun poly-expt (ring-and-order p n) 179 (declare (type ring-and-order ring-and-order) (type poly p)) 180 (make-poly-from-termlist (termlist-expt ring-and-order (poly-termlist p) n) (* n (poly-sugar p)))) 136 (defgeneric multiply-by (self other) 137 (:method ((self poly) (other scalar)) 138 (mapc #'(lambda (term) (multiply-by term other)) (poly-termlist self)) 139 self) 140 (:method ((self poly) (other monom)) 141 (mapc #'(lambda (term) (multiply-by term monom)) (poly-termlist self)) 142 self)) 143 144 (defgeneric add-to (self other) 145 (:method ((self poly) (other poly)))) 146 147 (defgeneric subtract-from (self other) 148 (:method ((self poly) (other poly)))) 149 150 (defmethod unary-uminus (self)) 181 151 182 152 (defun poly-append (&rest plist)
Note:
See TracChangeset
for help on using the changeset viewer.