File: GB_math.c

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 (83 lines) | stat: -rw-r--r-- 3,524 bytes parent folder | download | duplicates (3)
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
//------------------------------------------------------------------------------
// GB_math.c: declaring functions from GB_math.h
//------------------------------------------------------------------------------

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

//------------------------------------------------------------------------------

#include "GB.h"

// integer division
extern int8_t   GB_idiv_int8   (int8_t   x, int8_t   y) ;
extern int16_t  GB_idiv_int16  (int16_t  x, int16_t  y) ;
extern int32_t  GB_idiv_int32  (int32_t  x, int32_t  y) ;
extern int64_t  GB_idiv_int64  (int64_t  x, int64_t  y) ;
extern uint8_t  GB_idiv_uint8  (uint8_t  x, uint8_t  y) ;
extern uint16_t GB_idiv_uint16 (uint16_t x, uint16_t y) ;
extern uint32_t GB_idiv_uint32 (uint32_t x, uint32_t y) ;
extern uint64_t GB_idiv_uint64 (uint64_t x, uint64_t y) ;

// complex division
extern int GB_divcomplex (double xr, double xi, double yr, double yi,
    double *zr, double *zi) ;
extern GxB_FC32_t GB_FC32_div (GxB_FC32_t x, GxB_FC32_t y) ;
extern GxB_FC64_t GB_FC64_div (GxB_FC64_t x, GxB_FC64_t y) ;

// complex unary functions that return complex
extern GxB_FC32_t GB_cceilf  (GxB_FC32_t x) ;
extern GxB_FC64_t GB_cceil   (GxB_FC64_t x) ;
extern GxB_FC32_t GB_cfloorf (GxB_FC32_t x) ;
extern GxB_FC64_t GB_cfloor  (GxB_FC64_t x) ;
extern GxB_FC32_t GB_croundf (GxB_FC32_t x) ;
extern GxB_FC64_t GB_cround  (GxB_FC64_t x) ;
extern GxB_FC32_t GB_ctruncf (GxB_FC32_t x) ;
extern GxB_FC64_t GB_ctrunc  (GxB_FC64_t x) ;
extern GxB_FC32_t GB_cexp2f  (GxB_FC32_t x) ;
extern GxB_FC64_t GB_cexp2   (GxB_FC64_t x) ;
extern GxB_FC32_t GB_cexpm1f (GxB_FC32_t x) ;
extern GxB_FC64_t GB_cexpm1  (GxB_FC64_t x) ;
extern GxB_FC32_t GB_clog1pf (GxB_FC32_t x) ;
extern GxB_FC64_t GB_clog1p  (GxB_FC64_t x) ;
extern GxB_FC32_t GB_clog10f (GxB_FC32_t x) ;
extern GxB_FC64_t GB_clog10  (GxB_FC64_t x) ;
extern GxB_FC32_t GB_clog2f  (GxB_FC32_t x) ;
extern GxB_FC64_t GB_clog2   (GxB_FC64_t x) ;

// complex unary functions that return bool
extern bool GB_cisinff    (GxB_FC32_t x) ;
extern bool GB_cisinf     (GxB_FC64_t x) ;
extern bool GB_cisnanf    (GxB_FC32_t x) ;
extern bool GB_cisnan     (GxB_FC64_t x) ;
extern bool GB_cisfinitef (GxB_FC32_t x) ;
extern bool GB_cisfinite  (GxB_FC64_t x) ;

// z = pow (x,y) for floating-point types
extern float      GB_powf  (float      x, float      y) ;
extern double     GB_pow   (double     x, double     y) ;
extern GxB_FC32_t GB_cpowf (GxB_FC32_t x, GxB_FC32_t y) ;
extern GxB_FC64_t GB_cpow  (GxB_FC64_t x, GxB_FC64_t y) ;

// z = pow (x,y) for integers
extern int8_t   GB_pow_int8   (int8_t   x, int8_t   y) ;
extern int16_t  GB_pow_int16  (int16_t  x, int16_t  y) ;
extern int32_t  GB_pow_int32  (int32_t  x, int32_t  y) ;
extern int64_t  GB_pow_int64  (int64_t  x, int64_t  y) ;
extern uint8_t  GB_pow_uint8  (uint8_t  x, uint8_t  y) ;
extern uint16_t GB_pow_uint16 (uint16_t x, uint16_t y) ;
extern uint32_t GB_pow_uint32 (uint32_t x, uint32_t y) ;
extern uint64_t GB_pow_uint64 (uint64_t x, uint64_t y) ;

// z = frexp* (x) for float and double
extern float  GB_frexpxf (float  x) ;
extern double GB_frexpx  (double x) ;
extern float  GB_frexpef (float  x) ;
extern double GB_frexpe  (double x) ;

// z = signum (x) for floating-point types
extern float      GB_signumf  (float      x) ;
extern double     GB_signum   (double     x) ;
extern GxB_FC32_t GB_csignumf (GxB_FC32_t x) ;
extern GxB_FC64_t GB_csignum  (GxB_FC64_t x) ;