67 lines
1.4 KiB
C
67 lines
1.4 KiB
C
/*
|
|
* project.h
|
|
*
|
|
* Diagonalization by Successive Rotations Method
|
|
* (The Jacobi Method)
|
|
*
|
|
* Date: October 4, 1991
|
|
*
|
|
* Author: Shen Lin
|
|
*
|
|
* Copyright (C) University of California, Berkeley
|
|
*
|
|
*/
|
|
|
|
/************************************************************
|
|
*
|
|
* Macros
|
|
*
|
|
************************************************************/
|
|
|
|
#ifndef MAX
|
|
#define MAX(x, y) ((x) > (y) ? (x) : (y))
|
|
#endif
|
|
#ifndef MIN
|
|
#define MIN(x, y) ((x) < (y) ? (x) : (y))
|
|
#endif
|
|
#ifndef ABS
|
|
#define ABS(x) ((x) >= 0 ? (x) : (-(x)))
|
|
#endif
|
|
#ifndef SGN
|
|
#define SGN(x) ((x) >= 0 ? (1.0) : (-1.0))
|
|
#endif
|
|
|
|
/************************************************************
|
|
*
|
|
* Defines
|
|
*
|
|
************************************************************/
|
|
|
|
#define MAX_DIM 16
|
|
#define Title "Diagonalization of a Symmetric matrix A (A = S^-1 D S)\n"
|
|
#define Left_deg 7 /* should be greater than or equal to 6 */
|
|
#define Right_deg 2
|
|
|
|
|
|
/************************************************************
|
|
*
|
|
* Data Structure Definitions
|
|
*
|
|
************************************************************/
|
|
|
|
typedef struct linked_list_of_max_entry{
|
|
struct linked_list_of_max_entry *next;
|
|
int row, col;
|
|
double value;
|
|
} MAXE, *MAXE_PTR;
|
|
|
|
typedef struct {
|
|
double *Poly[MAX_DIM];
|
|
double C_0[MAX_DIM];
|
|
} Mult_Out;
|
|
|
|
typedef struct {
|
|
double *Poly;
|
|
double C_0;
|
|
} Single_Out;
|