Changeset 26993 in project


Ignore:
Timestamp:
07/05/12 07:06:44 (8 years ago)
Author:
Ivan Raikov
Message:

srfi-4-utils: completed repmat/meshgrid functions for f64vectors

Location:
release/4/srfi-4-utils/trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • release/4/srfi-4-utils/trunk/srfi-4-utils.scm

    r26992 r26993  
    256256            (recur (+ 1 i) (cdr dims)))
    257257          ))
     258
    258259    ;; determine repetition vector
    259260    (let* ((nrep (length reps))
     
    265266              (s32vector-set! rep i repv)
    266267              (recur (+ 1 i) (cdr reps)))))
     268
    267269      ;; compute output size
    268       (let ((destdims (make-s32vector ndimdest)))
     270      (let ((destdims (make-s32vector ndimdest 0)))
    269271        (let recur ((i 0))
    270272          (if (< i ndim)
    271273              (begin (s32vector-set! destdims i
    272                                      (* (s32vector-ref vdims i)
    273                                         (s32vector-ref rep i )))
     274                                    (* (s32vector-ref vdims i)
     275                                       (s32vector-ref rep i )))
    274276                     (recur (+ 1 i)))))
     277
    275278        (let ((extrarep
    276279               (let recur ((i ndim) (extrarep 1))
     
    281284                     extrarep
    282285                     ))))
    283           (let ((destdimsize (make-s32vector ndim)))
     286
     287          (let ((destdimsize (make-s32vector ndimdest)))
    284288            (s32vector-set! destdimsize 0 (s32vector-ref destdims 0))
    285289            (let recur ((i 1))
    286               (if (< i ndim)
     290              (if (< i ndimdest)
    287291                  (begin
    288292                    (s32vector-set! destdimsize i
     
    290294                                       (s32vector-ref destdims i)))
    291295                    (recur (+ 1 i)))))
     296
    292297            ;; return array
    293             (let ((dest (make-f64vector (s32vector-ref destdimsize (- ndim 1)) 0.)))
     298            (let ((dest (make-f64vector (s32vector-ref destdimsize (- ndimdest 1)) 0.)))
    294299             
    295 
    296               (print "destdimsize = " destdimsize)
    297               (print "destdims = " destdims)
    298               (print "dimsize = " dimsize)
    299               (print "vdims = " vdims)
    300               (print "rep = " rep)
    301               (print "ndimdest = " ndimdest)
    302               (print "ndim = " ndim)
    303 
    304300              (crepmat dest src ndim destdimsize dimsize vdims rep)
    305301              (if (> ndimdest ndim)
     
    320316          (dimy (list 1 leny))
    321317          (dimz (list 1 lenz)))
    322     (let ((xx (repmat (repmat x dimx (list leny 1))
    323                       (list leny lenx)
    324                       (list 1 1 lenz)))
    325           (yy (repmat (repmat y dimy (list 1 lenx))
    326                       (list lenx leny)
    327                       (list 1 1 lenz)))
    328           (zz (repmat z dimz (list (* lenx leny) 1))))
     318    (let ((xx (f64vector-repmat
     319               (f64vector-repmat x dimx (list leny 1))
     320               (list leny lenx)
     321               (list 1 1 lenz)))
     322          (yy (f64vector-repmat
     323               (f64vector-repmat y dimy (list 1 lenx))
     324               (list lenx leny)
     325               (list 1 1 lenz)))
     326          (zz (f64vector-repmat z dimz (list (* lenx leny) 1))))
    329327      (list xx yy zz))
    330328    )))
  • release/4/srfi-4-utils/trunk/srfi-4-utils.setup

    r26992 r26993  
    44  (make-pathname #f fn ##sys#load-dynamic-extension))   
    55
    6 (compile -O2 -s srfi-4-utils.scm -j srfi-4-utils)
     6(compile -O2 -d0 -s srfi-4-utils.scm -j srfi-4-utils)
    77(compile -O2 -s srfi-4-utils.import.scm)
    88
     
    1010 'srfi-4-utils
    1111 `(,(dynld-name "srfi-4-utils") ,(dynld-name "srfi-4-utils.import"))
    12  `((version 1.7)
     12 `((version 1.8)
    1313   ))
  • release/4/srfi-4-utils/trunk/test.scm

    r26992 r26993  
    11(use srfi-4-utils)
    22
    3 (define xx1 (repmat (f64vector 1 2 3) (list 1 3) (list 3 1)))
    4 (define xx2 (repmat xx1 (list 3 3) (list 1 1 3)))
    5 (print xx2)
     3(define xx1 (f64vector-repmat (f64vector 1 2 3) (list 1 3) (list 3 1)))
     4(define xx2 (f64vector-repmat xx1 (list 3 3) (list 1 1 3)))
    65
    7 ;;(print (meshgrid (f64vector 1 2 3) (f64vector 4 5 6) (f64vector 7 8 9)))
     6(print (f64vector-meshgrid (f64vector 1 2 3) (f64vector 4 5 6) (f64vector 7 8 9)))
Note: See TracChangeset for help on using the changeset viewer.