File: deserialize.m

package info (click to toggle)
suitesparse-graphblas 7.4.0%2Bdfsg-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 67,112 kB
  • sloc: ansic: 1,072,243; cpp: 8,081; sh: 512; makefile: 506; asm: 369; python: 125; awk: 10
file content (41 lines) | stat: -rw-r--r-- 1,469 bytes parent folder | download | duplicates (2)
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