SIFEL/GEFEL/LAPACK/spdefs.h File Reference

#include <stdio.h>
#include <malloc.h>

Go to the source code of this file.

Classes

struct  AllocationRecord
struct  FillinListNodeStruct
struct  MatrixElement
struct  MatrixFrame

Defines

#define ABORT()
#define ABSS(a)   ((a) < 0.0 ? -(a) : (a))
#define ALLOC(type, number)   ((type *)malloc((unsigned)(sizeof(type)*(number))))
#define ASSERT(condition)   if (!(condition)) ABORT()
#define BOOLEAN   int
#define CALLOC(ptr, type, number)
#define CMPLX_1_NORM(a)   (ABSS((a).Real) + ABSS((a).Imag))
#define CMPLX_2_NORM(a)   (sqrt((a).Real*(a).Real + (a).Imag*(a).Imag))
#define CMPLX_ADD(to, from_a, from_b)   { (to).Real = (from_a).Real + (from_b).Real; (to).Imag = (from_a).Imag + (from_b).Imag; }
#define CMPLX_ADD_ASSIGN(to, from)   { (to).Real += (from).Real; (to).Imag += (from).Imag; }
#define CMPLX_ASSIGN(to, from)   { (to).Real = (from).Real; (to).Imag = (from).Imag; }
#define CMPLX_CONJ(a)   (a).Imag = -(a).Imag
#define CMPLX_CONJ_ASSIGN(to, from)   { (to).Real = (from).Real; (to).Imag = -(from).Imag; }
#define CMPLX_CONJ_MULT(to, from_a, from_b)
#define CMPLX_CONJ_MULT_ADD(to, mult_a, mult_b, add)
#define CMPLX_CONJ_MULT_ADD_ASSIGN(to, from_a, from_b)
#define CMPLX_CONJ_MULT_SUBT_ASSIGN(to, from_a, from_b)
#define CMPLX_CONJ_NEGATE_ASSIGN(to, from)   { (to).Real = -(from).Real; (to).Imag = (from).Imag; }
#define CMPLX_DIV(to, num, den)
#define CMPLX_DIV_ASSIGN(num, den)
#define CMPLX_INF_NORM(a)   (MAX (ABSS((a).Real),ABSS((a).Imag)))
#define CMPLX_MULT(to, from_a, from_b)
#define CMPLX_MULT_ADD(to, mult_a, mult_b, add)
#define CMPLX_MULT_ADD_ASSIGN(to, from_a, from_b)
#define CMPLX_MULT_ASSIGN(to, from)
#define CMPLX_MULT_SUBT(to, mult_a, mult_b, subt)
#define CMPLX_MULT_SUBT_ASSIGN(to, from_a, from_b)
#define CMPLX_NEGATE(a)   { (a).Real = -(a).Real; (a).Imag = -(a).Imag; }
#define CMPLX_NEGATE_ASSIGN(to, from)   { (to).Real = -(from).Real; (to).Imag = -(from).Imag; }
#define CMPLX_RECIPROCAL(to, den)
#define CMPLX_SUBT(to, from_a, from_b)   { (to).Real = (from_a).Real - (from_b).Real; (to).Imag = (from_a).Imag - (from_b).Imag; }
#define CMPLX_SUBT_ASSIGN(to, from)   { (to).Real -= (from).Real; (to).Imag -= (from).Imag; }
#define ELEMENT_MAG(ptr)   ((ptr)->Real < 0.0 ? -(ptr)->Real : (ptr)->Real)
#define FREE(ptr)   { if ((ptr) != NULL) free((char *)(ptr)); (ptr) = NULL; }
#define IS_FACTORED(matrix)   ((matrix)->Factored && !(matrix)->NeedsOrdering)
#define IS_SPARSE(matrix)   ((matrix) != NULL && (matrix)->ID == SPARSE_ID)
#define IS_VALID(matrix)   ((matrix) != NULL && (matrix)->ID == SPARSE_ID && (matrix)->Error >= spOKAY && (matrix)->Error < spFATAL)
#define LINT   NO
#define MAX(a, b)   ((a) > (b) ? (a) : (b))
#define MIN(a, b)   ((a) < (b) ? (a) : (b))
#define REALLOC(ptr, type, number)   ptr = (type *)realloc((char *)ptr,(unsigned)(sizeof(type)*(number)))
#define SCLR_MULT(to, sclr, cmplx)   { (to).Real = (sclr) * (cmplx).Real; (to).Imag = (sclr) * (cmplx).Imag; }
#define SCLR_MULT_ASSIGN(to, sclr)   { (to).Real *= (sclr); (to).Imag *= (sclr); }
#define SPARSE_ID   0x772773
#define SQR(a)   ((a)*(a))
#define SWAP(type, a, b)   {type swapx; swapx = a; a = b; b = swapx;}

Typedefs

typedef struct AllocationRecordAllocationListPtr
typedef ElementPtrArrayOfElementPtrs
typedef struct MatrixElementElementPtr
typedef struct MatrixFrameMatrixPtr

Define Documentation

 
#define ABORT (  ) 
Value:
{ (void)fflush(stdout); \
 (void)fprintf(stderr, "sparse: panic in file `%s' at line %d.\n", \
 __FILE__, __LINE__); (void)fflush(stderr); \
 abort(); \
}

Definition at line 283 of file spdefs.h.

#define ABSS (  )     ((a) < 0.0 ? -(a) : (a))
#define ALLOC ( type,
number   )     ((type *)malloc((unsigned)(sizeof(type)*(number))))
#define ASSERT ( condition   )     if (!(condition)) ABORT()
#define BOOLEAN   int

Definition at line 77 of file spdefs.h.

Referenced by CreateInternalVectors(), main(), spMNA_Preorder(), and spPartition().

#define CALLOC ( ptr,
type,
number   ) 
Value:
{ int i; if ((ptr = ALLOC(type, number)) != (type *)NULL) \
 for(i=(number)-1;i>=0; i--) ptr[i] = (type)0; }

Definition at line 297 of file spdefs.h.

Referenced by spCreate(), and spPrint().

#define CMPLX_1_NORM (  )     (ABSS((a).Real) + ABSS((a).Imag))

Definition at line 111 of file spdefs.h.

Referenced by spLargestElement().

#define CMPLX_2_NORM (  )     (sqrt((a).Real*(a).Real + (a).Imag*(a).Imag))

Definition at line 117 of file spdefs.h.

#define CMPLX_ADD ( to,
from_a,
from_b   )     { (to).Real = (from_a).Real + (from_b).Real; (to).Imag = (from_a).Imag + (from_b).Imag; }

Definition at line 120 of file spdefs.h.

#define CMPLX_ADD_ASSIGN ( to,
from   )     { (to).Real += (from).Real; (to).Imag += (from).Imag; }

Definition at line 126 of file spdefs.h.

#define CMPLX_ASSIGN ( to,
from   )     { (to).Real = (from).Real; (to).Imag = (from).Imag; }

Definition at line 103 of file spdefs.h.

#define CMPLX_CONJ (  )     (a).Imag = -(a).Imag

Definition at line 107 of file spdefs.h.

#define CMPLX_CONJ_ASSIGN ( to,
from   )     { (to).Real = (from).Real; (to).Imag = -(from).Imag; }

Definition at line 104 of file spdefs.h.

#define CMPLX_CONJ_MULT ( to,
from_a,
from_b   ) 
Value:
{ (to).Real = (from_a).Real * (from_b).Real + \
 (from_a).Imag * (from_b).Imag; (to).Imag = (from_a).Real * (from_b).Imag - (from_a).Imag * (from_b).Real; }

Definition at line 148 of file spdefs.h.

#define CMPLX_CONJ_MULT_ADD ( to,
mult_a,
mult_b,
add   ) 
Value:
{ (to).Real = (mult_a).Real * (mult_b).Real + \
 (mult_a).Imag * (mult_b).Imag + (add).Real; \
 (to).Imag = (mult_a).Real * (mult_b).Imag - \
 (mult_a).Imag * (mult_b).Real + (add).Imag; \
}

Definition at line 169 of file spdefs.h.

#define CMPLX_CONJ_MULT_ADD_ASSIGN ( to,
from_a,
from_b   ) 
Value:
{ (to).Real += (from_a).Real * (from_b).Real + \
 (from_a).Imag * (from_b).Imag; \
 (to).Imag += (from_a).Real * (from_b).Imag - \
 (from_a).Imag * (from_b).Real; \
}

Definition at line 193 of file spdefs.h.

#define CMPLX_CONJ_MULT_SUBT_ASSIGN ( to,
from_a,
from_b   ) 
Value:
{ (to).Real -= (from_a).Real * (from_b).Real + \
 (from_a).Imag * (from_b).Imag; \
 (to).Imag -= (from_a).Real * (from_b).Imag - \
 (from_a).Imag * (from_b).Real; \
}

Definition at line 203 of file spdefs.h.

#define CMPLX_CONJ_NEGATE_ASSIGN ( to,
from   )     { (to).Real = -(from).Real; (to).Imag = (from).Imag; }

Definition at line 106 of file spdefs.h.

#define CMPLX_DIV ( to,
num,
den   ) 
Value:
{ double r_, s_; \
 if (((den).Real >= (den).Imag && (den).Real > -(den).Imag) || \
 ((den).Real < (den).Imag && (den).Real <= -(den).Imag)) \
 { r_ = (den).Imag / (den).Real; \
 s_ = (den).Real + r_*(den).Imag; \
 (to).Real = ((num).Real + r_*(num).Imag)/s_; \
 (to).Imag = ((num).Imag - r_*(num).Real)/s_; \
 } \
 else \
 { r_ = (den).Real / (den).Imag; \
 s_ = (den).Imag + r_*(den).Real; \
 (to).Real = (r_*(num).Real + (num).Imag)/s_; \
 (to).Imag = (r_*(num).Imag - (num).Real)/s_; \
 } \
}

Definition at line 215 of file spdefs.h.

#define CMPLX_DIV_ASSIGN ( num,
den   ) 
Value:
{ double r_, s_, t_; \
 if (((den).Real >= (den).Imag && (den).Real > -(den).Imag) || \
 ((den).Real < (den).Imag && (den).Real <= -(den).Imag)) \
 { r_ = (den).Imag / (den).Real; \
 s_ = (den).Real + r_*(den).Imag; \
 t_ = ((num).Real + r_*(num).Imag)/s_; \
 (num).Imag = ((num).Imag - r_*(num).Real)/s_; \
 (num).Real = t_; \
 } \
 else \
 { r_ = (den).Real / (den).Imag; \
 s_ = (den).Imag + r_*(den).Real; \
 t_ = (r_*(num).Real + (num).Imag)/s_; \
 (num).Imag = (r_*(num).Imag - (num).Real)/s_; \
 (num).Real = t_; \
 } \
}

Definition at line 233 of file spdefs.h.

#define CMPLX_INF_NORM (  )     (MAX (ABSS((a).Real),ABSS((a).Imag)))

Definition at line 114 of file spdefs.h.

#define CMPLX_MULT ( to,
from_a,
from_b   ) 
Value:
{ (to).Real = (from_a).Real * (from_b).Real - \
 (from_a).Imag * (from_b).Imag; (to).Imag = (from_a).Real * (from_b).Imag + (from_a).Imag * (from_b).Real; }

Definition at line 138 of file spdefs.h.

#define CMPLX_MULT_ADD ( to,
mult_a,
mult_b,
add   ) 
Value:
{ (to).Real = (mult_a).Real * (mult_b).Real - \
 (mult_a).Imag * (mult_b).Imag + (add).Real; \
 (to).Imag = (mult_a).Real * (mult_b).Imag + \
 (mult_a).Imag * (mult_b).Real + (add).Imag; \
}

Definition at line 153 of file spdefs.h.

#define CMPLX_MULT_ADD_ASSIGN ( to,
from_a,
from_b   ) 
Value:
{ (to).Real += (from_a).Real * (from_b).Real - \
 (from_a).Imag * (from_b).Imag; (to).Imag += (from_a).Real * (from_b).Imag + (from_a).Imag * (from_b).Real; }

Definition at line 178 of file spdefs.h.

#define CMPLX_MULT_ASSIGN ( to,
from   ) 
Value:
{ double to_real_ = (to).Real; \
 (to).Real = to_real_ * (from).Real - (to).Imag * (from).Imag; \
 (to).Imag = to_real_ * (from).Imag + (to).Imag * (from).Real; }

Definition at line 142 of file spdefs.h.

Referenced by spDeterminant().

#define CMPLX_MULT_SUBT ( to,
mult_a,
mult_b,
subt   ) 
Value:
{ (to).Real = (subt).Real - (mult_a).Real * (mult_b).Real + (mult_a).Imag * (mult_b).Imag; \
 (to).Imag = (subt).Imag - (mult_a).Real * (mult_b).Imag - (mult_a).Imag * (mult_b).Real; }

Definition at line 162 of file spdefs.h.

#define CMPLX_MULT_SUBT_ASSIGN ( to,
from_a,
from_b   ) 
Value:
{ (to).Real -= (from_a).Real * (from_b).Real - \
 (from_a).Imag * (from_b).Imag; \
 (to).Imag -= (from_a).Real * (from_b).Imag + \
 (from_a).Imag * (from_b).Real; \
}

Definition at line 183 of file spdefs.h.

#define CMPLX_NEGATE (  )     { (a).Real = -(a).Real; (a).Imag = -(a).Imag; }

Definition at line 108 of file spdefs.h.

Referenced by spDeterminant().

#define CMPLX_NEGATE_ASSIGN ( to,
from   )     { (to).Real = -(from).Real; (to).Imag = -(from).Imag; }

Definition at line 105 of file spdefs.h.

#define CMPLX_RECIPROCAL ( to,
den   ) 
Value:
{ double r_; \
 if (((den).Real >= (den).Imag && (den).Real > -(den).Imag) || \
 ((den).Real < (den).Imag && (den).Real <= -(den).Imag)) \
 { r_ = (den).Imag / (den).Real; \
 (to).Imag = -r_*((to).Real = 1.0/((den).Real + r_*(den).Imag)); \
 } \
 else \
 { r_ = (den).Real / (den).Imag; \
 (to).Real = -r_*((to).Imag = -1.0/((den).Imag + r_*(den).Real));\
 } \
}

Definition at line 253 of file spdefs.h.

Referenced by spDeterminant(), and spLargestElement().

#define CMPLX_SUBT ( to,
from_a,
from_b   )     { (to).Real = (from_a).Real - (from_b).Real; (to).Imag = (from_a).Imag - (from_b).Imag; }

Definition at line 123 of file spdefs.h.

#define CMPLX_SUBT_ASSIGN ( to,
from   )     { (to).Real -= (from).Real; (to).Imag -= (from).Imag; }

Definition at line 129 of file spdefs.h.

#define ELEMENT_MAG ( ptr   )     ((ptr)->Real < 0.0 ? -(ptr)->Real : (ptr)->Real)
#define FREE ( ptr   )     { if ((ptr) != NULL) free((char *)(ptr)); (ptr) = NULL; }

Definition at line 294 of file spdefs.h.

Referenced by EnlargeMatrix(), RecordAllocation(), spCondition(), spDestroy(), and spPrint().

#define IS_FACTORED ( matrix   )     ((matrix)->Factored && !(matrix)->NeedsOrdering)
#define IS_SPARSE ( matrix   )     ((matrix) != NULL && (matrix)->ID == SPARSE_ID)
#define IS_VALID ( matrix   )     ((matrix) != NULL && (matrix)->ID == SPARSE_ID && (matrix)->Error >= spOKAY && (matrix)->Error < spFATAL)

Definition at line 81 of file spdefs.h.

Referenced by spFactor(), spMNA_Preorder(), spOrderAndFactor(), spScale(), and spSolveTransposed().

#define LINT   NO

Definition at line 74 of file spdefs.h.

#define MAX ( a,
 )     ((a) > (b) ? (a) : (b))
#define MIN ( a,
 )     ((a) < (b) ? (a) : (b))
#define REALLOC ( ptr,
type,
number   )     ptr = (type *)realloc((char *)ptr,(unsigned)(sizeof(type)*(number)))

Definition at line 293 of file spdefs.h.

Referenced by EnlargeMatrix().

#define SCLR_MULT ( to,
sclr,
cmplx   )     { (to).Real = (sclr) * (cmplx).Real; (to).Imag = (sclr) * (cmplx).Imag; }

Definition at line 132 of file spdefs.h.

#define SCLR_MULT_ASSIGN ( to,
sclr   )     { (to).Real *= (sclr); (to).Imag *= (sclr); }

Definition at line 135 of file spdefs.h.

#define SPARSE_ID   0x772773

Definition at line 79 of file spdefs.h.

Referenced by spCreate(), and spError().

#define SQR (  )     ((a)*(a))

Definition at line 90 of file spdefs.h.

Referenced by spCondition(), and spRoundoff().

#define SWAP ( type,
a,
 )     {type swapx; swapx = a; a = b; b = swapx;}

Definition at line 93 of file spdefs.h.

Referenced by ExchangeRowsAndCols(), spcColExchange(), spcRowExchange(), and SwapCols().


Typedef Documentation

Definition at line 381 of file spdefs.h.

Definition at line 364 of file spdefs.h.

typedef struct MatrixElement* ElementPtr

Definition at line 363 of file spdefs.h.

typedef struct MatrixFrame* MatrixPtr

Definition at line 641 of file spdefs.h.


Generated by  doxygen 1.6.2