Changeset 5833 in project
- Timestamp:
- 08/31/07 08:58:48 (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
nordsieck/trunk/nordsieck.scm
r5831 r5833 51 51 (define-matrix-map f64) 52 52 53 (define-record nordsieck-def order Ainv A B C V Econst d dhist dhistlen p1 p2 mn)53 (define-record nordsieck-def order Ainv A B C V Econst d dhist dhistlen p1 p2 n) 54 54 55 55 (define-record-printer (nordsieck-def x out) 56 (fprintf out "#(nordsieck order=~A Ainv=~S A=~S B=~S C=~S V=~S Econst=~S d=~S dhist=~S p1=~S p2=~S m=~Sn=~S)"56 (fprintf out "#(nordsieck order=~A Ainv=~S A=~S B=~S C=~S V=~S Econst=~S d=~S dhist=~S p1=~S p2=~S n=~S)" 57 57 (if (= blas:RowMajor (nordsieck-def-order x)) 58 58 "row" "col") … … 199 199 200 200 (define (nordsieck-form order Econst a b . rest) 201 (let-optionals rest ((va #f) (vb #f) (dhistlen 3) (m 1))201 (let-optionals rest ((va #f) (vb #f) (dhistlen 3)) 202 202 (let* ((implicit? (and va vb)) 203 203 (p1 (- (f64vector-length a) 1)) … … 227 227 (print "C = " C) 228 228 (print "V = " V) 229 (make-nordsieck-def order Ainv A B C V Econst d (list) dhistlen p1 p2 mn))))))))))229 (make-nordsieck-def order Ainv A B C V Econst d (list) dhistlen p1 p2 n)))))))))) 230 230 231 231 232 232 (define (nordsieck-step def h prev frhs) 233 233 (let ((order (nordsieck-def-order def)) 234 ( m (nordsieck-def-mdef))234 (p2 (nordsieck-def-p2 def)) 235 235 (n (nordsieck-def-n def)) 236 236 (C (nordsieck-def-C def)) … … 238 238 (let ((y0 (let ((v (matrix-zeros n 1))) 239 239 (blas:dgemv! blas:NoTrans n n 1.0 C prev 0.0 v)))) 240 (let loop ((i 0) (m m) (ym (list y0)))241 (if (fx<= m 1) ym240 (let loop ((i 0) (m p2) (ym (list y0))) 241 (if (fx<= m 0) ym 242 242 (let ((yi (let ((fy (fp- (fp* h (frhs (f64vector-ref (car ym) 0))) 243 243 (fp* h (f64vector-ref (car ym) 1)))))
Note: See TracChangeset
for help on using the changeset viewer.