1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
|
function G = deserialize (blob, mode, arg3)
%GRB.DESERIALIZE convert a serialized blob into a matrix.
% G = GrB.deserialize (blob) returns a @GrB matrix constructed from the
% uint8 array blob constructed by GrB.serialize.
%
% G = GrB.deserialize (blob) or GrB.deserialize (blob, 'fast') assume the
% blob comes from a trusted source. G = GrB.deserialize (blob, 'secure')
% does a secure (but slow) deserialization, checking the blob to ensure it
% is valid, when the blob might not be trusted.
%
% Example:
% G = GrB (magic (5))
% blob = GrB.serialize (G) ;
% f = fopen ('G.bin', 'wb') ;
% fwrite (f, blob) ;
% fclose (f)
% clear all
% f = fopen ('G.bin', 'r') ;
% blob = fread (f, '*uint8') ;
% G = GrB.deserialize (blob)
%
% See also GrB.serialize, GrB.load, GrB.save, GrB/struct.
% SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2022, All Rights Reserved.
% SPDX-License-Identifier: Apache-2.0
% The type may also be specified, as an optional arg3 string:
% G = GrB.deserialize (blob, 'fast', 'single') for example. This is
% feature not documented, and is only intended for testing. The ANSI C
% rules for casting floating-point to integers are used (truncation), not
% the MATLAB rules (rounding to nearest integer).
% deserialize the blob into a @GrB matrix
if (nargin == 1)
G = GrB (gbdeserialize (blob)) ;
elseif (nargin == 2)
G = GrB (gbdeserialize (blob, mode)) ;
else
G = GrB (gbdeserialize (blob, mode, arg3)) ;
end
|