((section 2 "Outdated egg!" (p "This is an egg for CHICKEN 4, the unsupported old release.  You're almost certainly looking for " (int-link "/eggref/5/chunk-vector" "the CHICKEN 5 version of this egg") ", if it exists.") (p "If it does not exist, there may be equivalent functionality provided by another egg; have a look at the " (link "https://wiki.call-cc.org/chicken-projects/egg-index-5.html" "egg index") ". Otherwise, please consider porting this egg to the current version of CHICKEN.") (tags "egg")) (section 2 "chunk-vector" (toc) (section 3 "Description" (p "A dyn-vector like library capable of storing other srfi-4 vectors inside a dense array.")) (section 3 "Author" (p "Richard van Roy (pluizer)")) (section 3 "Requirements" (p "none")) (section 3 "Documentation" (section 4 "Procedures" (def (sig (procedure "(make-f32chunk-vector size [size-hint])" (id make-f32chunk-vector)) (procedure "(make-f64chunk-vector size [size-hint])" (id make-f64chunk-vector)) (procedure "(make-s8chunk-vector size [size-hint])" (id make-s8chunk-vector)) (procedure "(make-s16chunk-vector size [size-hint])" (id make-s16chunk-vector)) (procedure "(make-s32chunk-vector size [size-hint])" (id make-s32chunk-vector)) (procedure "(make-u8chunk-vector size [size-hint])" (id make-u8chunk-vector)) (procedure "(make-u16chunk-vector size [size-hint])" (id make-u16chunk-vector)) (procedure "(make-u32chunk-vector size [size-hint])" (id make-u32chunk-vector))) (p "Create a new chunk vector with a chunk-size of " (i "size") ".")) (def (sig (procedure "(f32chunk-vector-remove! vector index)" (id f32chunk-vector-remove!)) (procedure "(f64chunk-vector-remove! vector index)" (id f64chunk-vector-remove!)) (procedure "(s8chunk-vector-remove! vector index)" (id s8chunk-vector-remove!)) (procedure "(s16chunk-vector-remove! vector index)" (id s16chunk-vector-remove!)) (procedure "(s32chunk-vector-remove! vector index)" (id s32chunk-vector-remove!)) (procedure "(u8chunk-vector-remove! vector index)" (id u8chunk-vector-remove!)) (procedure "(u16chunk-vector-remove! vector index)" (id u16chunk-vector-remove!)) (procedure "(u32chunk-vector-remove! vector index)" (id u32chunk-vector-remove!))) (p "Removes a chunk from the vector using its " (i "index") ".")) (def (sig (procedure "(f32chunk-vector-set! vector index value)" (id f32chunk-vector-set!)) (procedure "(f64chunk-vector-set! vector index value)" (id f64chunk-vector-set!)) (procedure "(s8chunk-vector-set! vector index value)" (id s8chunk-vector-set!)) (procedure "(s16chunk-vector-set! vector index value)" (id s16chunk-vector-set!)) (procedure "(s32chunk-vector-set! vector index value)" (id s32chunk-vector-set!)) (procedure "(u8chunk-vector-set! vector index value)" (id u8chunk-vector-set!)) (procedure "(u16chunk-vector-set! vector index value)" (id u16chunk-vector-set!)) (procedure "(u32chunk-vector-set! vector index value)" (id u32chunk-vector-set!))) (p "Changed the value of a chunk using its " (i "index") ".")) (def (sig (procedure "(f32chunk-vector-push! vector value)" (id f32chunk-vector-push!)) (procedure "(f64chunk-vector-push! vector value)" (id f64chunk-vector-push!)) (procedure "(s8chunk-vector-push! vector value)" (id s8chunk-vector-push!)) (procedure "(s16chunk-vector-push! vector value)" (id s16chunk-vector-push!)) (procedure "(s32chunk-vector-push! vector value)" (id s32chunk-vector-push!)) (procedure "(u8chunk-vector-push! vector value)" (id u8chunk-vector-push!)) (procedure "(u16chunk-vector-push! vector value)" (id u16chunk-vector-push!)) (procedure "(u32chunk-vector-push! vector value)" (id u32chunk-vector-push!))) (p "Pushes a new chunk to the vector.")) (def (sig (procedure "(f32chunk-vector-ref vector index)" (id f32chunk-vector-ref)) (procedure "(f64chunk-vector-ref vector index)" (id f64chunk-vector-ref)) (procedure "(s8chunk-vector-ref vector index)" (id s8chunk-vector-ref)) (procedure "(s16chunk-vector-ref vector index)" (id s16chunk-vector-ref)) (procedure "(s32chunk-vector-ref vector index)" (id s32chunk-vector-ref)) (procedure "(u8chunk-vector-ref vector index)" (id u8chunk-vector-ref)) (procedure "(u16chunk-vector-ref vector index)" (id u16chunk-vector-ref)) (procedure "(u32chunk-vector-ref vector index)" (id u32chunk-vector-ref))) (p "Returns the data at " (i "index") ".")) (def (sig (procedure "(f32chunk-vector-length vector)" (id f32chunk-vector-length)) (procedure "(f64chunk-vector-length vector)" (id f64chunk-vector-length)) (procedure "(s8chunk-vector-length vector)" (id s8chunk-vector-length)) (procedure "(s16chunk-vector-length vector)" (id s16chunk-vector-length)) (procedure "(s32chunk-vector-length vector)" (id s32chunk-vector-length)) (procedure "(u8chunk-vector-length vector)" (id u8chunk-vector-length)) (procedure "(u16chunk-vector-length vector)" (id u16chunk-vector-length)) (procedure "(u32chunk-vector-length vector)" (id u32chunk-vector-length))) (p "Returns the number of chunks in the vector.")) (def (sig (procedure "(f32chunk-vector->pointer vector)" (id f32chunk-vector->pointer)) (procedure "(f64chunk-vector->pointer vector)" (id f64chunk-vector->pointer)) (procedure "(s8chunk-vector->pointer vector)" (id s8chunk-vector->pointer)) (procedure "(s16chunk-vector->pointer vector)" (id s16chunk-vector->pointer)) (procedure "(s32chunk-vector->pointer vector)" (id s32chunk-vector->pointer)) (procedure "(u8chunk-vector->pointer vector)" (id u8chunk-vector->pointer)) (procedure "(u16chunk-vector->pointer vector)" (id u16chunk-vector->pointer)) (procedure "(u32chunk-vector->pointer vector)" (id u32chunk-vector->pointer))) (p "Returns a pointer to the dense foreign array where the data is stored."))) (section 4 "Example" (highlight scheme "(use chunk-vector)\n\n;; Create a chunk-vector that holds f32vectors with the size of 2.\n(define v (make-f32chunk-vector 2))\n\n(define index-a (f32chunk-vector-push! v (f32vector 1 2)))\n\n(define index-b (f32chunk-vector-push! v (f32vector 3 4)))\n\n(define index-c (f32chunk-vector-push! v (f32vector 7 8)))\n\n(f32chunk-vector-remove! v index-c)\n\n(f32chunk-vector-set! v index-b (f32vector 0 0))\n\n(print (f32chunk-vector-ref v index-a)) ; => #f32(1.0 2.0)\n\n(print (f32chunk-vector-ref v index-b)) ; => #f32(0.0 0.0)\n\n(print (f32chunk-vector-ref v index-c)) ; undefined")))))