/* instance.c */
#include "../A2.h"
/*--------------------------------------------------------------------*/
/*
--------------------------------------
return the number of rows in the array
created -- 98may01, cca
--------------------------------------
*/
int
A2_nrow (
A2 *mtx
) {
/*
---------------
check the input
---------------
*/
if ( mtx == NULL ) {
fprintf(stderr, "\n fatal error in A2_nrow(%p)"
"\n bad input\n", mtx) ;
exit(-1) ;
}
return(mtx->n1) ; }
/*--------------------------------------------------------------------*/
/*
-----------------------------------------
return the number of columns in the array
created -- 98may01, cca
-----------------------------------------
*/
int
A2_ncol (
A2 *mtx
) {
/*
---------------
check the input
---------------
*/
if ( mtx == NULL ) {
fprintf(stderr, "\n fatal error in A2_ncol(%p)"
"\n bad input\n", mtx) ;
exit(-1) ;
}
return(mtx->n2) ; }
/*--------------------------------------------------------------------*/
/*
--------------------------
return the first increment
created -- 98may01, cca
--------------------------
*/
int
A2_inc1 (
A2 *mtx
) {
/*
---------------
check the input
---------------
*/
if ( mtx == NULL ) {
fprintf(stderr, "\n fatal error in A2_inc1(%p)"
"\n bad input\n", mtx) ;
exit(-1) ;
}
return(mtx->inc1) ; }
/*--------------------------------------------------------------------*/
/*
---------------------------
return the second increment
created -- 98may01, cca
---------------------------
*/
int
A2_inc2 (
A2 *mtx
) {
/*
---------------
check the input
---------------
*/
if ( mtx == NULL ) {
fprintf(stderr, "\n fatal error in A2_inc2(%p)"
"\n bad input\n", mtx) ;
exit(-1) ;
}
return(mtx->inc2) ; }
/*--------------------------------------------------------------------*/
/*
-------------------------------
return a pointer to the entries
created -- 98may01, cca
-------------------------------
*/
double *
A2_entries (
A2 *mtx
) {
/*
---------------
check the input
---------------
*/
if ( mtx == NULL ) {
fprintf(stderr, "\n fatal error in A2_entries(%p)"
"\n bad input\n", mtx) ;
exit(-1) ;
}
return(mtx->entries) ; }
/*--------------------------------------------------------------------*/
/*
--------------------------------------------
return a pointer to the first entry in a row
created -- 98may01, cca
--------------------------------------------
*/
double *
A2_row (
A2 *mtx,
int irow
) {
double *row ;
/*
---------------
check the input
---------------
*/
if ( mtx == NULL ) {
fprintf(stderr, "\n fatal error in A2_row(%p,%d)"
"\n bad input\n", mtx, irow) ;
exit(-1) ;
}
if ( mtx->entries == NULL ) {
fprintf(stderr, "\n fatal error in A2_row(%p,%d)"
"\n bad structure, entries is NULL\n", mtx, irow) ;
exit(-1) ;
}
if ( irow < 0 || irow >= mtx->n1 ) {
fprintf(stderr, "\n fatal error in A2_row(%p,%d)"
"\n bad input, irow = %d, n1 = %d\n",
mtx, irow, irow, mtx->n1) ;
exit(-1) ;
}
if ( A2_IS_REAL(mtx) ) {
row = mtx->entries + irow*mtx->inc1 ;
} else if ( A2_IS_COMPLEX(mtx) ) {
row = mtx->entries + 2*irow*mtx->inc1 ;
} else {
fprintf(stderr, "\n fatal error in A2_row(%p,%d)"
"\n bad type %d, must be SPOOLES_REAL or SPOOLES_COMPLEX",
mtx, irow, mtx->type) ;
exit(-1) ;
}
return(row) ; }
/*--------------------------------------------------------------------*/
/*
-----------------------------------------------
return a pointer to the first entry in a column
created -- 98may01, cca
-----------------------------------------------
*/
double *
A2_column (
A2 *mtx,
int jcol
) {
double *col ;
/*
---------------
check the input
---------------
*/
if ( mtx == NULL ) {
fprintf(stderr, "\n fatal error in A2_column(%p,%d)"
"\n bad input\n", mtx, jcol) ;
exit(-1) ;
}
if ( mtx->entries == NULL ) {
fprintf(stderr, "\n fatal error in A2_column(%p,%d)"
"\n bad structure, entries is NULL\n", mtx, jcol) ;
exit(-1) ;
}
if ( jcol < 0 || jcol >= mtx->n2 ) {
fprintf(stderr, "\n fatal error in A2_column(%p,%d)"
"\n bad input, jcol = %d, n2 = %d\n",
mtx, jcol, jcol, mtx->n2) ;
exit(-1) ;
}
if ( A2_IS_REAL(mtx) ) {
col = mtx->entries + jcol*mtx->inc2 ;
} else if ( A2_IS_COMPLEX(mtx) ) {
col = mtx->entries + 2*jcol*mtx->inc2 ;
} else {
fprintf(stderr, "\n fatal error in A2_col(%p,%d)"
"\n bad type %d, must be SPOOLES_REAL or SPOOLES_COMPLEX",
mtx, jcol, mtx->type) ;
exit(-1) ;
}
return(col) ; }
/*--------------------------------------------------------------------*/
/*
-------------------------------------------
fill *pValue with the entry in (irow, jcol)
created -- 98may01, cca
-------------------------------------------
*/
void
A2_realEntry (
A2 *mtx,
int irow,
int jcol,
double *pValue
) {
int loc ;
/*
---------------
check the input
---------------
*/
if ( mtx == NULL || pValue == NULL ) {
fprintf(stderr, "\n fatal error in A2_realEntry(%p,%d,%d,%p)"
"\n bad input\n", mtx, irow, jcol, pValue) ;
exit(-1) ;
}
if ( ! A2_IS_REAL(mtx) ) {
fprintf(stderr, "\n fatal error in A2_realEntry(%p,%d,%d,%p)"
"\n bad type %d, must be SPOOLES_REAL\n",
mtx, irow, jcol, pValue, mtx->type) ;
exit(-1) ;
}
if ( mtx->entries == NULL ) {
fprintf(stderr, "\n fatal error in A2_realEntry(%p,%d,%d,%p)"
"\n bad structure, entries is NULL\n",
mtx, irow, jcol, pValue) ;
exit(-1) ;
}
if ( irow < 0 || irow >= mtx->n1 ) {
fprintf(stderr, "\n fatal error in A2_realEntry(%p,%d,%d,%p)"
"\n bad input, irow = %d, n1 = %d\n",
mtx, irow, jcol, pValue, irow, mtx->n1) ;
exit(-1) ;
}
if ( jcol < 0 || jcol >= mtx->n2 ) {
fprintf(stderr, "\n fatal error in A2_realEntry(%p,%d,%d,%p)"
"\n bad input, jcol = %d, n2 = %d\n",
mtx, irow, jcol, pValue, jcol, mtx->n2) ;
exit(-1) ;
}
loc = irow*mtx->inc1 + jcol*mtx->inc2 ;
*pValue = mtx->entries[loc] ;
return ; }
/*--------------------------------------------------------------------*/
/*
---------------------------------------------------
fill (*pReal,*pImag) with the entry in (irow, jcol)
created -- 98may01, cca
---------------------------------------------------
*/
void
A2_complexEntry (
A2 *mtx,
int irow,
int jcol,
double *pReal,
double *pImag
) {
int loc ;
/*
---------------
check the input
---------------
*/
if ( mtx == NULL || pReal == NULL || pImag == NULL ) {
fprintf(stderr, "\n fatal error in A2_complexEntry(%p,%d,%d,%p,%p)"
"\n bad input\n", mtx, irow, jcol, pReal, pImag) ;
exit(-1) ;
}
if ( ! A2_IS_COMPLEX(mtx) ) {
fprintf(stderr, "\n fatal error in A2_complexEntry(%p,%d,%d,%p,%p)"
"\n bad type %d, must be SPOOLES_COMPLEX\n",
mtx, irow, jcol, pReal, pImag, mtx->type) ;
exit(-1) ;
}
if ( mtx->entries == NULL ) {
fprintf(stderr, "\n fatal error in A2_complexEntry(%p,%d,%d,%p,%p)"
"\n bad structure, entries is NULL\n",
mtx, irow, jcol, pReal, pImag) ;
exit(-1) ;
}
if ( irow < 0 || irow >= mtx->n1 ) {
fprintf(stderr, "\n fatal error in A2_complexEntry(%p,%d,%d,%p,%p)"
"\n bad input, irow = %d, n1 = %d\n",
mtx, irow, jcol, pReal, pImag, irow, mtx->n1) ;
exit(-1) ;
}
if ( jcol < 0 || jcol >= mtx->n2 ) {
fprintf(stderr, "\n fatal error in A2_complexEntry(%p,%d,%d,%p,%p)"
"\n bad input, jcol = %d, n2 = %d\n",
mtx, irow, jcol, pReal, pImag, jcol, mtx->n2) ;
exit(-1) ;
}
loc = 2*(irow*mtx->inc1 + jcol*mtx->inc2) ;
*pReal = mtx->entries[loc] ;
*pImag = mtx->entries[loc+1] ;
return ; }
/*--------------------------------------------------------------------*/
/*
-----------------------------------------
set the entry in (irow, jcol) to be value
created -- 98may01, cca
-----------------------------------------
*/
void
A2_setRealEntry (
A2 *mtx,
int irow,
int jcol,
double value
) {
int loc ;
/*
---------------
check the input
---------------
*/
if ( mtx == NULL ) {
fprintf(stderr,
"\n fatal error in A2_setRealEntry(%p,%d,%d,%f)"
"\n bad input\n", mtx, irow, jcol, value) ;
exit(-1) ;
}
if ( ! A2_IS_REAL(mtx) ) {
fprintf(stderr,
"\n fatal error in A2_setRealEntry(%p,%d,%d,%f)"
"\n bad type %d, must be SPOOLES_REAL\n",
mtx, irow, jcol, value, mtx->type) ;
exit(-1) ;
}
if ( mtx->entries == NULL ) {
fprintf(stderr,
"\n fatal error in A2_setRealEntry(%p,%d,%d,%f)"
"\n bad structure, entries is NULL\n",
mtx, irow, jcol, value) ;
exit(-1) ;
}
if ( irow < 0 || irow >= mtx->n1 ) {
fprintf(stderr,
"\n fatal error in A2_setRealEntry(%p,%d,%d,%f)"
"\n bad input, irow = %d, n1 = %d\n",
mtx, irow, jcol, value, irow, mtx->n1) ;
exit(-1) ;
}
if ( jcol < 0 || jcol >= mtx->n2 ) {
fprintf(stderr,
"\n fatal error in A2_setRealEntry(%p,%d,%d,%f)"
"\n bad input, jcol = %d, n2 = %d\n",
mtx, irow, jcol, value, jcol, mtx->n2) ;
exit(-1) ;
}
loc = irow*mtx->inc1 + jcol*mtx->inc2 ;
mtx->entries[loc] = value ;
return ; }
/*--------------------------------------------------------------------*/
/*
-----------------------------------------------
set the entry in (irow, jcol) to be (real,imag)
created -- 98may01, cca
-----------------------------------------------
*/
void
A2_setComplexEntry (
A2 *mtx,
int irow,
int jcol,
double real,
double imag
) {
int loc ;
/*
---------------
check the input
---------------
*/
if ( mtx == NULL ) {
fprintf(stderr,
"\n fatal error in A2_setComplexEntry(%p,%d,%d,%f,%f)"
"\n bad input\n", mtx, irow, jcol, real, imag) ;
exit(-1) ;
}
if ( ! A2_IS_COMPLEX(mtx) ) {
fprintf(stderr,
"\n fatal error in A2_setComplexEntry(%p,%d,%d,%f,%f)"
"\n bad type %d, must be SPOOLES_COMPLEX\n",
mtx, irow, jcol, real, imag, mtx->type) ;
exit(-1) ;
}
if ( mtx->entries == NULL ) {
fprintf(stderr,
"\n fatal error in A2_setComplexEntry(%p,%d,%d,%f,%f)"
"\n bad structure, entries is NULL\n",
mtx, irow, jcol, real, imag) ;
exit(-1) ;
}
if ( irow < 0 || irow >= mtx->n1 ) {
fprintf(stderr,
"\n fatal error in A2_setComplexEntry(%p,%d,%d,%f,%f)"
"\n bad input, irow = %d, n1 = %d\n",
mtx, irow, jcol, real, imag, irow, mtx->n1) ;
exit(-1) ;
}
if ( jcol < 0 || jcol >= mtx->n2 ) {
fprintf(stderr,
"\n fatal error in A2_setComplexEntry(%p,%d,%d,%f,%f)"
"\n bad input, jcol = %d, n2 = %d\n",
mtx, irow, jcol, real, imag, jcol, mtx->n2) ;
exit(-1) ;
}
loc = 2*(irow*mtx->inc1 + jcol*mtx->inc2) ;
mtx->entries[loc] = real ;
mtx->entries[loc+1] = imag ;
return ; }
/*--------------------------------------------------------------------*/
/*
---------------------------------------
fill pointers to the matrix first entry
in row irow and column jcol
created -- 98may01, cca
---------------------------------------
*/
void
A2_pointerToRealEntry (
A2 *mtx,
int irow,
int jcol,
double **ppValue
) {
int loc ;
/*
---------------
check the input
---------------
*/
if ( mtx == NULL || ppValue == NULL ) {
fprintf(stderr,
"\n fatal error in A2_pointerToRealEntry(%p,%d,%d,%p)"
"\n bad input\n", mtx, irow, jcol, ppValue) ;
exit(-1) ;
}
if ( ! A2_IS_COMPLEX(mtx) ) {
fprintf(stderr,
"\n fatal error in A2_pointerToRealEntry(%p,%d,%d,%p)"
"\n bad type %d, must be SPOOLES_COMPLEX\n",
mtx, irow, jcol, ppValue, mtx->type) ;
exit(-1) ;
}
if ( mtx->entries == NULL ) {
fprintf(stderr,
"\n fatal error in A2_pointerToRealEntry(%p,%d,%d,%p)"
"\n bad structure, entries is NULL\n",
mtx, irow, jcol, ppValue) ;
exit(-1) ;
}
if ( irow < 0 || irow >= mtx->n1 ) {
fprintf(stderr,
"\n fatal error in A2_pointerToRealEntry(%p,%d,%d,%p)"
"\n bad input, irow = %d, n1 = %d\n",
mtx, irow, jcol, ppValue, irow, mtx->n1) ;
exit(-1) ;
}
if ( jcol < 0 || jcol >= mtx->n2 ) {
fprintf(stderr,
"\n fatal error in A2_pointerToRealEntry(%p,%d,%d,%p)"
"\n bad input, jcol = %d, n2 = %d\n",
mtx, irow, jcol, ppValue, jcol, mtx->n2) ;
exit(-1) ;
}
loc = irow*mtx->inc1 + jcol*mtx->inc2 ;
*ppValue = mtx->entries + loc ;
return ; }
/*--------------------------------------------------------------------*/
/*
---------------------------------------
fill pointers to the matrix first entry
in row irow and column jcol
created -- 98may01, cca
---------------------------------------
*/
void
A2_pointerToComplexEntry (
A2 *mtx,
int irow,
int jcol,
double **ppReal,
double **ppImag
) {
int loc ;
/*
---------------
check the input
---------------
*/
if ( mtx == NULL || ppReal == NULL || ppImag == NULL ) {
fprintf(stderr,
"\n fatal error in A2_pointerToComplexEntry(%p,%d,%d,%p,%p)"
"\n bad input\n", mtx, irow, jcol, ppReal, ppImag) ;
exit(-1) ;
}
if ( ! A2_IS_COMPLEX(mtx) ) {
fprintf(stderr,
"\n fatal error in A2_pointerToComplexEntry(%p,%d,%d,%p,%p)"
"\n bad type %d, must be SPOOLES_COMPLEX\n",
mtx, irow, jcol, ppReal, ppImag, mtx->type) ;
exit(-1) ;
}
if ( mtx->entries == NULL ) {
fprintf(stderr,
"\n fatal error in A2_pointerToComplexEntry(%p,%d,%d,%p,%p)"
"\n bad structure, entries is NULL\n",
mtx, irow, jcol, ppReal, ppImag) ;
exit(-1) ;
}
if ( irow < 0 || irow >= mtx->n1 ) {
fprintf(stderr,
"\n fatal error in A2_pointerToComplexEntry(%p,%d,%d,%p,%p)"
"\n bad input, irow = %d, n1 = %d\n",
mtx, irow, jcol, ppReal, ppImag, irow, mtx->n1) ;
exit(-1) ;
}
if ( jcol < 0 || jcol >= mtx->n2 ) {
fprintf(stderr,
"\n fatal error in A2_pointerToComplexEntry(%p,%d,%d,%p,%p)"
"\n bad input, jcol = %d, n2 = %d\n",
mtx, irow, jcol, ppReal, ppImag, jcol, mtx->n2) ;
exit(-1) ;
}
loc = 2*(irow*mtx->inc1 + jcol*mtx->inc2) ;
*ppReal = mtx->entries + loc ;
*ppImag = mtx->entries + loc + 1 ;
return ; }
/*--------------------------------------------------------------------*/
syntax highlighted by Code2HTML, v. 0.9.1