Matrix r4655
Loading...
Searching...
No Matches
Macros
idz.c File Reference
#include "Mdefines.h"
#include "idz.h"

Go to the source code of this file.

Macros

#define IDZ
 
#define TEMPLATE(_PREFIX_, _CTYPE_, _ZERO_, _ONE_)
 
#define TEMPLATE(_PREFIX_, _CTYPE_, _ZERO_, _ONE_)
 
#define TEMPLATE(_PREFIX_, _CTYPE_, _ZERO_, _ONE_)
 
#define TEMPLATE(_PREFIX_, _CTYPE_, _ZERO_, _ONE_)
 
#define TEMPLATE(_PREFIX_, _CTYPE_, _ZERO_, _ONE_)
 
#define TEMPLATE(_PREFIX_, _CTYPE_, _ZERO_, _ONE_)
 
#define TEMPLATE(_PREFIX_, _CTYPE_, _ZERO_, _ONE_)
 
#define TEMPLATE(_PREFIX_, _CTYPE_, _ZERO_, _ONE_)
 
#define ASSIGN_JJ_i(_X_)
 
#define ASSIGN_JJ_d(_X_)
 
#define ASSIGN_JJ_z(_X_)    _X_.i = 0.0
 
#define ASSIGN_JI_i(_X_, _Y_)    _X_ = _Y_
 
#define ASSIGN_JI_d(_X_, _Y_)    _X_ = _Y_
 
#define ASSIGN_JI_z(_X_, _Y_)
 
#define TEMPLATE(_PREFIX_, _CTYPE_, _ZERO_, _ONE_)
 
#define TEMPLATE(_PREFIX_, _CTYPE_, _ZERO_, _ONE_)
 
#define TEMPLATE(_PREFIX_, _CTYPE_, _ZERO_, _ONE_)
 
#define TEMPLATE(_PREFIX_, _CTYPE_, _ZERO_, _ONE_)
 
#define TEMPLATE(_PREFIX_, _CTYPE_, _ZERO_, _ONE_)
 
#define TEMPLATE(_PREFIX_, _CTYPE_, _ZERO_, _ONE_)
 

Macro Definition Documentation

◆ ASSIGN_JI_d

#define ASSIGN_JI_d (   _X_,
  _Y_ 
)     _X_ = _Y_

Definition at line 238 of file idz.c.

◆ ASSIGN_JI_i

#define ASSIGN_JI_i (   _X_,
  _Y_ 
)     _X_ = _Y_

Definition at line 236 of file idz.c.

◆ ASSIGN_JI_z

#define ASSIGN_JI_z (   _X_,
  _Y_ 
)
Value:
do { \
_X_.r = _Y_.r; \
_X_.i = -_Y_.i; \
} while (0)

Definition at line 240 of file idz.c.

◆ ASSIGN_JJ_d

#define ASSIGN_JJ_d (   _X_)

Definition at line 233 of file idz.c.

◆ ASSIGN_JJ_i

#define ASSIGN_JJ_i (   _X_)

Definition at line 232 of file idz.c.

◆ ASSIGN_JJ_z

#define ASSIGN_JJ_z (   _X_)     _X_.i = 0.0

Definition at line 234 of file idz.c.

◆ IDZ

#define IDZ
Value:
TEMPLATE(i, int, 0 , 1 ) \
TEMPLATE(d, double, 0.0, 1.0) \
TEMPLATE(z, Rcomplex, Matrix_zzero, Matrix_zone)
#define TEMPLATE(_PREFIX_, _CTYPE_, _ZERO_, _ONE_)
Definition idz.c:9
Rcomplex Matrix_zone
Definition init.c:26
Rcomplex Matrix_zzero
Definition init.c:26

Definition at line 4 of file idz.c.

◆ TEMPLATE [1/14]

#define TEMPLATE (   _PREFIX_,
  _CTYPE_,
  _ZERO_,
  _ONE_ 
)
Value:
static void _PREFIX_ ## \
swap(int n, _CTYPE_ *x, int incx, _CTYPE_ *y, int incy) \
{ \
_CTYPE_ tmp; \
while (n--) { \
tmp = *x; \
*x = *y; \
*y = tmp; \
x += incx; \
y += incy; \
} \
return; \
}

Definition at line 9 of file idz.c.

◆ TEMPLATE [2/14]

#define TEMPLATE (   _PREFIX_,
  _CTYPE_,
  _ZERO_,
  _ONE_ 
)
Value:
static void _PREFIX_ ## \
syswapr(char uplo, int n, _CTYPE_ *x, int k0, int k1) \
{ \
_CTYPE_ *x0 = x + (R_xlen_t) k0 * n, *x1 = x + (R_xlen_t) k1 * n, \
tmp; \
if (uplo == 'U') { \
_PREFIX_ ## swap(k0, x0, 1, x1, 1); \
tmp = x0[k0]; \
x0[k0] = x1[k1]; \
x1[k1] = tmp; \
_PREFIX_ ## swap(k1 - k0 - 1, x0 + k0 + n, n, x1 + k0 + 1, 1); \
_PREFIX_ ## swap(n - k1 - 1, x1 + k0 + n, n, x1 + k1 + n, n); \
} else { \
_PREFIX_ ## swap(k0, x + k0, n, x + k1, n); \
tmp = x0[k0]; \
x0[k0] = x1[k1]; \
x1[k1] = tmp; \
_PREFIX_ ## swap(k1 - k0 - 1, x0 + k0 + 1, 1, x0 + k1 + n, n); \
_PREFIX_ ## swap(n - k1 - 1, x0 + k1 + 1, 1, x1 + k1 + 1, 1); \
} \
return; \
}

Definition at line 9 of file idz.c.

◆ TEMPLATE [3/14]

#define TEMPLATE (   _PREFIX_,
  _CTYPE_,
  _ZERO_,
  _ONE_ 
)

Definition at line 9 of file idz.c.

◆ TEMPLATE [4/14]

#define TEMPLATE (   _PREFIX_,
  _CTYPE_,
  _ZERO_,
  _ONE_ 
)

Definition at line 9 of file idz.c.

◆ TEMPLATE [5/14]

#define TEMPLATE (   _PREFIX_,
  _CTYPE_,
  _ZERO_,
  _ONE_ 
)
Value:
void _PREFIX_ ## \
pack2(_CTYPE_ *dest, const _CTYPE_ *src, int n, char uplo, char diag) \
{ \
int i, j; \
R_xlen_t dpos = 0, spos = 0; \
if (uplo == 'U') { \
for (j = 0; j < n; spos += n-(++j)) \
for (i = 0; i <= j; ++i) \
dest[dpos++] = src[spos++]; \
if (diag != 'N') { \
dpos = 0; \
for (j = 0; j < n; dpos += (++j)+1) \
dest[dpos] = _ONE_; \
} \
} else { \
for (j = 0; j < n; spos += (++j)) \
for (i = j; i < n; ++i) \
dest[dpos++] = src[spos++]; \
if (diag != 'N') { \
dpos = 0; \
for (j = 0; j < n; dpos += n-(j++)) \
dest[dpos] = _ONE_; \
} \
} \
return; \
}

Definition at line 9 of file idz.c.

◆ TEMPLATE [6/14]

#define TEMPLATE (   _PREFIX_,
  _CTYPE_,
  _ZERO_,
  _ONE_ 
)
Value:
void _PREFIX_ ## \
unpack1(_CTYPE_ *dest, const _CTYPE_ *src, int n, char uplo, char diag) \
{ \
int i, j; \
R_xlen_t dpos = 0, spos = 0; \
if (uplo == 'U') { \
for (j = 0; j < n; dpos += n-(++j)) \
for (i = 0; i <= j; ++i) \
dest[dpos++] = src[spos++]; \
} else { \
for (j = 0; j < n; dpos += (++j)) \
for (i = j; i < n; ++i) \
dest[dpos++] = src[spos++]; \
} \
if (diag != 'N') { \
dpos = 0; \
R_xlen_t n1a = (R_xlen_t) n + 1; \
for (j = 0; j < n; ++j, dpos += n1a) \
dest[dpos] = _ONE_; \
} \
return; \
}

Definition at line 9 of file idz.c.

◆ TEMPLATE [7/14]

#define TEMPLATE (   _PREFIX_,
  _CTYPE_,
  _ZERO_,
  _ONE_ 
)
Value:
void _PREFIX_ ## \
transpose2(_CTYPE_ *dest, const _CTYPE_ *src, int m, int n) \
{ \
R_xlen_t mn1s = (R_xlen_t) m * n - 1; \
int i, j; \
for (j = 0; j < m; ++j, src -= mn1s) \
for (i = 0; i < n; ++i, src += m) \
*(dest++) = *src; \
return; \
}

Definition at line 9 of file idz.c.

◆ TEMPLATE [8/14]

#define TEMPLATE (   _PREFIX_,
  _CTYPE_,
  _ZERO_,
  _ONE_ 
)
Value:
void _PREFIX_ ## \
transpose1(_CTYPE_ *dest, const _CTYPE_ *src, int n, char uplo) \
{ \
int i, j; \
if (uplo == 'U') { \
for (j = 0; j < n; ++j) \
for (i = j; i < n; ++i) \
*(dest++) = *(src + PACKED_AR21_UP(j, i)); \
} else { \
R_xlen_t n2 = (R_xlen_t) n * 2; \
for (j = 0; j < n; ++j) \
for (i = 0; i <= j; ++i) \
*(dest++) = *(src + PACKED_AR21_LO(j, i, n2)); \
} \
return; \
}
#define PACKED_AR21_UP(i, j)
Definition Mdefines.h:194
#define PACKED_AR21_LO(i, j, m2)
Definition Mdefines.h:196

Definition at line 9 of file idz.c.

◆ TEMPLATE [9/14]

#define TEMPLATE (   _PREFIX_,
  _CTYPE_,
  _ZERO_,
  _ONE_ 
)

Definition at line 9 of file idz.c.

◆ TEMPLATE [10/14]

#define TEMPLATE (   _PREFIX_,
  _CTYPE_,
  _ZERO_,
  _ONE_ 
)
Value:
void _PREFIX_ ## \
trforce2(_CTYPE_ *x, int m, int n, char uplo, char diag) \
{ \
_CTYPE_ *y = x; \
int i, j, r = (m < n) ? m : n; \
if (uplo == 'U') { \
for (j = 0; j < r; ++j) { \
for (i = j + 1; i < m; ++i) \
*(++x) = _ZERO_; \
x += j + 2; \
} \
} else { \
for (j = 0; j < r; ++j) { \
for (i = 0; i < j; ++i) \
*(x++) = _ZERO_; \
x += m - j; \
} \
for (j = r; j < n; ++j) \
for (i = 0; i < m; ++i) \
*(x++) = _ZERO_; \
} \
if (diag != 'N') { \
R_xlen_t m1a = (R_xlen_t) m + 1; \
for (j = 0; j < r; ++j) { \
*y = _ONE_; \
y += m1a; \
} \
} \
return; \
}

Definition at line 9 of file idz.c.

◆ TEMPLATE [11/14]

#define TEMPLATE (   _PREFIX_,
  _CTYPE_,
  _ZERO_,
  _ONE_ 
)

Definition at line 9 of file idz.c.

◆ TEMPLATE [12/14]

#define TEMPLATE (   _PREFIX_,
  _CTYPE_,
  _ZERO_,
  _ONE_ 
)

Definition at line 9 of file idz.c.

◆ TEMPLATE [13/14]

#define TEMPLATE (   _PREFIX_,
  _CTYPE_,
  _ZERO_,
  _ONE_ 
)

Definition at line 9 of file idz.c.

◆ TEMPLATE [14/14]

#define TEMPLATE (   _PREFIX_,
  _CTYPE_,
  _ZERO_,
  _ONE_ 
)

Definition at line 9 of file idz.c.