PreviousUpNext

13.4.146  sparse_rw_vector

The standard library sparse_rw_vector package implements mutable-vector functionality via hashtables, allowing large numbers of zero entries without unreasonable ram consumption.

The sparse_rw_vector package API is specified anonymously in-line in the source.

The sparse_rw_vector package source code is in src/lib/src/sparse-rw-vector.pkg.

See also: hashtable.

See also: rw_vector.

The above information is manually maintained and may contain errors.

api {
    Rw_Vector X = ...;
    Vector X = Vector(X );
    maximum_vector_length : Int;
    make_rw_vector : (Int , X) -> Rw_Vector(X );
    from_list : List(X ) -> Rw_Vector(X );
    from_fn : (Int , (Int -> X)) -> Rw_Vector(X );
    length : Rw_Vector(X ) -> Int;
    get : (Rw_Vector(X ) , Int) -> X;
    _[] : (Rw_Vector(X ) , Int) -> X;
    set : (Rw_Vector(X ) , Int , X) -> Void;
    _[]:= : (Rw_Vector(X ) , Int , X) -> Void;
    to_vector : Rw_Vector(X ) -> Vector(X );
    copy : {at:Int, from:Rw_Vector(X ), into:Rw_Vector(X )} -> Void;
    copy_vector : {at:Int, from:Vector(X ), into:Rw_Vector(X )} -> Void;
    apply : (X -> Void) -> Rw_Vector(X ) -> Void;
    keyed_apply : ((Int , X) -> Void) -> Rw_Vector(X ) -> Void;
    map_in_place : (X -> X) -> Rw_Vector(X ) -> Void;
    keyed_map_in_place : ((Int , X) -> X) -> Rw_Vector(X ) -> Void;
    fold_forward : ((X , Y) -> Y) -> Y -> Rw_Vector(X ) -> Y;
    fold_backward : ((X , Y) -> Y) -> Y -> Rw_Vector(X ) -> Y;
    keyed_fold_forward : ((Int , X , Y) -> Y) -> Y -> Rw_Vector(X ) -> Y;
    keyed_fold_backward : ((Int , X , Y) -> Y) -> Y -> Rw_Vector(X ) -> Y;
    find : (X -> Bool) -> Rw_Vector(X ) -> Null_Or(X );
    keyed_find : ((Int , X) -> Bool) -> Rw_Vector(X ) -> Null_Or(((Int , X)) );
    exists : (X -> Bool) -> Rw_Vector(X ) -> Bool;
    all : (X -> Bool) -> Rw_Vector(X ) -> Bool;
    compare_sequences : ((X , X) -> Order) -> (Rw_Vector(X ) , Rw_Vector(X )) -> Order;
    make_rw_vector' : (Int , (Int -> X)) -> Rw_Vector(X );
    make_rw_vector'' : (Int , (Int -> X)) -> Rw_Vector(X );
    remove : (Rw_Vector(X ) , Int) -> Void;
    clear : Rw_Vector(X ) -> Void;
    dom : Rw_Vector(X ) -> List(Int );
    copy_rw_vector : Rw_Vector(X ) -> Rw_Vector(X );};

Comments and suggestions to: bugs@mythryl.org

PreviousUpNext