File: gb_speye.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 (27 lines) | stat: -rw-r--r-- 777 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
function C = gb_speye (func, varargin)
%GB_SPEYE Sparse identity matrix, of any type supported by GraphBLAS.
% Implements C = GrB.eye (...) and GrB.speye (...).

% SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2022, All Rights Reserved.
% SPDX-License-Identifier: Apache-2.0

% get the size and type
[m, n, type] = gb_parse_args (func, varargin {:}) ;

% construct the m-by-n identity matrix of the given type
m = max (m, 0) ;
n = max (n, 0) ;
mn = min (m, n) ;
I = int64 (0) : int64 (mn-1) ;
desc.base = 'zero-based' ;

if (isequal (type, 'single complex'))
    X = complex (ones (mn, 1, 'single')) ;
elseif (gb_contains (type, 'complex'))
    X = complex (ones (mn, 1, 'double')) ;
else
    X = ones (mn, 1, type) ;
end

C = gbbuild (I, I, X, m, n, '1st', type, desc) ;