13#if (defined(SP_USE_VECTOR_LINEAR_ALGEBRA_ENGINE) && !defined(SP_USE_MATRIX_LINEAR_ALGEBRA_ENGINE)) 
   14#define SP_USE_MATRIX_LINEAR_ALGEBRA_ENGINE 
   64#ifdef SP_USE_MATRIX_ENGINE 
   68#ifdef SP_USE_MATRIX_LINEAR_ALGEBRA_ENGINE 
   69    spLinearAlgebraPluginList la_plugin_list;
 
   70    spLinearAlgebraPluginList la_current_list;
 
   71    unsigned long la_status_mask;
 
 
   99#ifdef SP_USE_MATRIX_ENGINE 
  103#ifdef SP_USE_MATRIX_LINEAR_ALGEBRA_ENGINE 
  104    spLinearAlgebraPluginList la_plugin_list;
 
  105    spLinearAlgebraPluginList la_current_list;
 
  106    unsigned long la_status_mask;
 
 
  134#ifdef SP_USE_MATRIX_ENGINE 
  138#ifdef SP_USE_MATRIX_LINEAR_ALGEBRA_ENGINE 
  139    spLinearAlgebraPluginList la_plugin_list;
 
  140    spLinearAlgebraPluginList la_current_list;
 
  141    unsigned long la_status_mask;
 
 
  169#ifdef SP_USE_MATRIX_ENGINE 
  173#ifdef SP_USE_MATRIX_LINEAR_ALGEBRA_ENGINE 
  174    spLinearAlgebraPluginList la_plugin_list;
 
  175    spLinearAlgebraPluginList la_current_list;
 
  176    unsigned long la_status_mask;
 
 
  181typedef struct _spSMatrices {
 
  186typedef struct _spLMatrices {
 
  191typedef struct _spFMatrices {
 
  196typedef struct _spDMatrices {
 
  203#define SMatrix spSMatrix 
  204#define LMatrix spLMatrix 
  205#define FMatrix spFMatrix 
  206#define DMatrix spDMatrix 
  207#define _SMatrix _spSMatrix 
  208#define _LMatrix _spLMatrix 
  209#define _FMatrix _spFMatrix 
  210#define _DMatrix _spDMatrix 
  212#define SMatrices spSMatrices 
  213#define LMatrices spLMatrices 
  214#define FMatrices spFMatrices 
  215#define DMatrices spDMatrices 
  216#define _SMatrices _spSMatrices 
  217#define _LMatrices _spLMatrices 
  218#define _FMatrices _spFMatrices 
  219#define _DMatrices _spDMatrices 
  225extern spSMatrix xsmalloc(
long row, 
long col);
 
  226extern spLMatrix xlmalloc(
long row, 
long col);
 
  227extern spFMatrix xfmalloc(
long row, 
long col);
 
  228extern spDMatrix xdmalloc(
long row, 
long col);
 
  243extern spSMatrix xsmrialloc(
long row, 
long col);
 
  244extern spLMatrix xlmrialloc(
long row, 
long col);
 
  245extern spFMatrix xfmrialloc(
long row, 
long col);
 
  246extern spDMatrix xdmrialloc(
long row, 
long col);
 
  248extern spSMatrices xsmsalloc(
long num);
 
  249extern spLMatrices xlmsalloc(
long num);
 
  250extern spFMatrices xfmsalloc(
long num);
 
  251extern spDMatrices xdmsalloc(
long num);
 
  252extern void xsmsfree(spSMatrices xs);
 
  253extern void xlmsfree(spLMatrices xs);
 
  254extern void xfmsfree(spFMatrices xs);
 
  255extern void xdmsfree(spDMatrices xs);
 
  257extern void smset(
spSMatrix matrix, 
short **data, 
long row, 
long col);
 
  258extern void lmset(
spLMatrix matrix, 
long **data, 
long row, 
long col);
 
  259extern void fmset(
spFMatrix matrix, 
float **data, 
long row, 
long col);
 
  260extern void dmset(
spDMatrix matrix, 
double **data, 
long row, 
long col);
 
  288extern spSMatrix xsmnums(
long row, 
long col, 
short value);
 
  289extern spLMatrix xlmnums(
long row, 
long col, 
long value);
 
  290extern spFMatrix xfmnums(
long row, 
long col, 
float value);
 
  291extern spDMatrix xdmnums(
long row, 
long col, 
double value);
 
  292extern void smnums(
spSMatrix mat, 
long row, 
long col, 
short value);
 
  293extern void lmnums(
spLMatrix mat, 
long row, 
long col, 
long value);
 
  294extern void fmnums(
spFMatrix mat, 
long row, 
long col, 
float value);
 
  295extern void dmnums(
spDMatrix mat, 
long row, 
long col, 
double value);
 
  296extern void sminums(
spSMatrix mat, 
long row, 
long col, 
short value);
 
  297extern void lminums(
spLMatrix mat, 
long row, 
long col, 
long value);
 
  298extern void fminums(
spFMatrix mat, 
long row, 
long col, 
float value);
 
  299extern void dminums(
spDMatrix mat, 
long row, 
long col, 
double value);
 
  300extern spSMatrix xsmrinums(
long row, 
long col, 
short value);
 
  301extern spLMatrix xlmrinums(
long row, 
long col, 
long value);
 
  302extern spFMatrix xfmrinums(
long row, 
long col, 
float value);
 
  303extern spDMatrix xdmrinums(
long row, 
long col, 
double value);
 
  309extern spSMatrix xsmeye(
long row, 
long col);
 
  310extern spLMatrix xlmeye(
long row, 
long col);
 
  311extern spFMatrix xfmeye(
long row, 
long col);
 
  312extern spDMatrix xdmeye(
long row, 
long col);
 
  317extern spSMatrix xsminitrow(
long nrow, 
long j, 
long incr, 
long n);
 
  318extern spLMatrix xlminitrow(
long nrow, 
long j, 
long incr, 
long n);
 
  319extern spFMatrix xfminitrow(
long nrow, 
float j, 
float incr, 
float n);
 
  320extern spDMatrix xdminitrow(
long nrow, 
double j, 
double incr, 
double n);
 
  321extern spSMatrix xsminitcol(
long ncol, 
long j, 
long incr, 
long n);
 
  322extern spLMatrix xlminitcol(
long ncol, 
long j, 
long incr, 
long n);
 
  323extern spFMatrix xfminitcol(
long ncol, 
float j, 
float incr, 
float n);
 
  324extern spDMatrix xdminitcol(
long ncol, 
double j, 
double incr, 
double n);
 
  326extern void smeraserow(
spSMatrix mat, 
long row, 
long offset, 
long length, 
spBool inv);
 
  327extern void lmeraserow(
spLMatrix mat, 
long row, 
long offset, 
long length, 
spBool inv);
 
  328extern void fmeraserow(
spFMatrix mat, 
long row, 
long offset, 
long length, 
spBool inv);
 
  329extern void dmeraserow(
spDMatrix mat, 
long row, 
long offset, 
long length, 
spBool inv);
 
  334extern void smerasecol(
spSMatrix mat, 
long col, 
long offset, 
long length, 
spBool inv);
 
  335extern void lmerasecol(
spLMatrix mat, 
long col, 
long offset, 
long length, 
spBool inv);
 
  336extern void fmerasecol(
spFMatrix mat, 
long col, 
long offset, 
long length, 
spBool inv);
 
  337extern void dmerasecol(
spDMatrix mat, 
long col, 
long offset, 
long length, 
spBool inv);
 
  343extern long smcutrowto(
spSMatrix mat, 
long row, 
long offset, 
long length, 
spSVector vec, 
long vec_offset, 
int overlap);
 
  344extern long smcutrow(
spSMatrix mat, 
long row, 
long offset, 
long length, 
spSVector vec);
 
  346extern long lmcutrowto(
spLMatrix mat, 
long row, 
long offset, 
long length, 
spLVector vec, 
long vec_offset, 
int overlap);
 
  347extern long lmcutrow(
spLMatrix mat, 
long row, 
long offset, 
long length, 
spLVector vec);
 
  349extern long fmcutrowto(
spFMatrix mat, 
long row, 
long offset, 
long length, 
spFVector vec, 
long vec_offset, 
int overlap);
 
  350extern long fmcutrow(
spFMatrix mat, 
long row, 
long offset, 
long length, 
spFVector vec);
 
  352extern long dmcutrowto(
spDMatrix mat, 
long row, 
long offset, 
long length, 
spDVector vec, 
long vec_offset, 
int overlap);
 
  353extern long dmcutrow(
spDMatrix mat, 
long row, 
long offset, 
long length, 
spDVector vec);
 
  355extern long smcutcolto(
spSMatrix mat, 
long col, 
long offset, 
long length, 
spSVector vec, 
long vec_offset, 
int overlap);
 
  356extern long smcutcol(
spSMatrix mat, 
long col, 
long offset, 
long length, 
spSVector vec);
 
  358extern long lmcutcolto(
spLMatrix mat, 
long col, 
long offset, 
long length, 
spLVector vec, 
long vec_offset, 
int overlap);
 
  359extern long lmcutcol(
spLMatrix mat, 
long col, 
long offset, 
long length, 
spLVector vec);
 
  361extern long fmcutcolto(
spFMatrix mat, 
long col, 
long offset, 
long length, 
spFVector vec, 
long vec_offset, 
int overlap);
 
  362extern long fmcutcol(
spFMatrix mat, 
long col, 
long offset, 
long length, 
spFVector vec);
 
  364extern long dmcutcolto(
spDMatrix mat, 
long col, 
long offset, 
long length, 
spDVector vec, 
long vec_offset, 
int overlap);
 
  365extern long dmcutcol(
spDMatrix mat, 
long col, 
long offset, 
long length, 
spDVector vec);
 
  368extern long smpasterowfrom(
spSMatrix mat, 
long row, 
long offset, 
long length,
 
  369                           spSVector vec, 
long vec_offset, 
int overlap);
 
  370extern long smpasterow(
spSMatrix mat, 
long row, 
spSVector vec, 
long offset, 
long length, 
int overlap);
 
  371extern long lmpasterowfrom(
spLMatrix mat, 
long row, 
long offset, 
long length,
 
  372                           spLVector vec, 
long vec_offset, 
int overlap);
 
  373extern long lmpasterow(
spLMatrix mat, 
long row, 
spLVector vec, 
long offset, 
long length, 
int overlap);
 
  374extern long fmpasterowfrom(
spFMatrix mat, 
long row, 
long offset, 
long length,
 
  375                           spFVector vec, 
long vec_offset, 
int overlap);
 
  376extern long fmpasterow(
spFMatrix mat, 
long row, 
spFVector vec, 
long offset, 
long length, 
int overlap);
 
  377extern long dmpasterowfrom(
spDMatrix mat, 
long row, 
long offset, 
long length,
 
  378                           spDVector vec, 
long vec_offset, 
int overlap);
 
  379extern long dmpasterow(
spDMatrix mat, 
long row, 
spDVector vec, 
long offset, 
long length, 
int overlap);
 
  380extern long smpastecolfrom(
spSMatrix mat, 
long col, 
long offset, 
long length,
 
  381                           spSVector vec, 
long vec_offset, 
int overlap);
 
  382extern long smpastecol(
spSMatrix mat, 
long col, 
spSVector vec, 
long offset, 
long length, 
int overlap);
 
  383extern long lmpastecolfrom(
spLMatrix mat, 
long col, 
long offset, 
long length,
 
  384                           spLVector vec, 
long vec_offset, 
int overlap);
 
  385extern long lmpastecol(
spLMatrix mat, 
long col, 
spLVector vec, 
long offset, 
long length, 
int overlap);
 
  386extern long fmpastecolfrom(
spFMatrix mat, 
long col, 
long offset, 
long length,
 
  387                           spFVector vec, 
long vec_offset, 
int overlap);
 
  388extern long fmpastecol(
spFMatrix mat, 
long col, 
spFVector vec, 
long offset, 
long length, 
int overlap);
 
  389extern long dmpastecolfrom(
spDMatrix mat, 
long col, 
long offset, 
long length,
 
  390                           spDVector vec, 
long vec_offset, 
int overlap);
 
  391extern long dmpastecol(
spDMatrix mat, 
long col, 
spDVector vec, 
long offset, 
long length, 
int overlap);
 
  393extern long smpastematfrom(
spSMatrix matto, 
long rowto, 
long colto, 
long rowlength, 
long collength,
 
  394                           spSMatrix matfrom, 
long rowfrom, 
long colfrom, 
int overlap);
 
  396                       long rowlength, 
long collength, 
int overlap);
 
  397extern long lmpastematfrom(
spLMatrix matto, 
long rowto, 
long colto, 
long rowlength, 
long collength,
 
  398                           spLMatrix matfrom, 
long rowfrom, 
long colfrom, 
int overlap);
 
  400                       long rowlength, 
long collength, 
int overlap);
 
  401extern long fmpastematfrom(
spFMatrix matto, 
long rowto, 
long colto, 
long rowlength, 
long collength,
 
  402                           spFMatrix matfrom, 
long rowfrom, 
long colfrom, 
int overlap);
 
  404                       long rowlength, 
long collength, 
int overlap);
 
  405extern long dmpastematfrom(
spDMatrix matto, 
long rowto, 
long colto, 
long rowlength, 
long collength,
 
  406                           spDMatrix matfrom, 
long rowfrom, 
long colfrom, 
int overlap);
 
  408                       long rowlength, 
long collength, 
int overlap);
 
  410extern long smpastematrowfrom(
spSMatrix matto, 
long rowto, 
long offset, 
long length,
 
  411                              spSMatrix matfrom, 
long rowfrom, 
long offsetfrom, 
int overlap);
 
  412extern long smpastematrow(
spSMatrix matto, 
long rowto, 
spSMatrix matfrom, 
long rowfrom,
 
  413                          long offset, 
long length, 
int overlap);
 
  414extern long smpastematcolfrom(
spSMatrix matto, 
long colto, 
long offset, 
long length,
 
  415                              spSMatrix matfrom, 
long colfrom, 
long offsetfrom, 
int overlap);
 
  416extern long smpastematcol(
spSMatrix matto, 
long colto, 
spSMatrix matfrom, 
long colfrom,
 
  417                          long offset, 
long length, 
int overlap);
 
  418extern long lmpastematrowfrom(
spLMatrix matto, 
long rowto, 
long offset, 
long length,
 
  419                              spLMatrix matfrom, 
long rowfrom, 
long offsetfrom, 
int overlap);
 
  420extern long lmpastematrow(
spLMatrix matto, 
long rowto, 
spLMatrix matfrom, 
long rowfrom,
 
  421                          long offset, 
long length, 
int overlap);
 
  422extern long lmpastematcolfrom(
spLMatrix matto, 
long colto, 
long offset, 
long length,
 
  423                              spLMatrix matfrom, 
long colfrom, 
long offsetfrom, 
int overlap);
 
  424extern long lmpastematcol(
spLMatrix matto, 
long colto, 
spLMatrix matfrom, 
long colfrom,
 
  425                          long offset, 
long length, 
int overlap);
 
  426extern long fmpastematrowfrom(
spFMatrix matto, 
long rowto, 
long offset, 
long length,
 
  427                              spFMatrix matfrom, 
long rowfrom, 
long offsetfrom, 
int overlap);
 
  428extern long fmpastematrow(
spFMatrix matto, 
long rowto, 
spFMatrix matfrom, 
long rowfrom,
 
  429                          long offset, 
long length, 
int overlap);
 
  430extern long fmpastematcolfrom(
spFMatrix matto, 
long colto, 
long offset, 
long length,
 
  431                              spFMatrix matfrom, 
long colfrom, 
long offsetfrom, 
int overlap);
 
  432extern long fmpastematcol(
spFMatrix matto, 
long colto, 
spFMatrix matfrom, 
long colfrom,
 
  433                          long offset, 
long length, 
int overlap);
 
  434extern long dmpastematrowfrom(
spDMatrix matto, 
long rowto, 
long offset, 
long length,
 
  435                              spDMatrix matfrom, 
long rowfrom, 
long offsetfrom, 
int overlap);
 
  436extern long dmpastematrow(
spDMatrix matto, 
long rowto, 
spDMatrix matfrom, 
long rowfrom,
 
  437                          long offset, 
long length, 
int overlap);
 
  438extern long dmpastematcolfrom(
spDMatrix matto, 
long colto, 
long offset, 
long length,
 
  439                              spDMatrix matfrom, 
long colfrom, 
long offsetfrom, 
int overlap);
 
  440extern long dmpastematcol(
spDMatrix matto, 
long colto, 
spDMatrix matfrom, 
long colfrom,
 
  441                          long offset, 
long length, 
int overlap);
 
  493extern short smmin(
spSMatrix mat, 
long *row, 
long *col);
 
  494extern long lmmin(
spLMatrix mat, 
long *row, 
long *col);
 
  495extern float fmmin(
spFMatrix mat, 
long *row, 
long *col);
 
  496extern double dmmin(
spDMatrix mat, 
long *row, 
long *col);
 
  497extern short smmax(
spSMatrix mat, 
long *row, 
long *col);
 
  498extern long lmmax(
spLMatrix mat, 
long *row, 
long *col);
 
  499extern float fmmax(
spFMatrix mat, 
long *row, 
long *col);
 
  500extern double dmmax(
spDMatrix mat, 
long *row, 
long *col);
 
  502extern spSMatrix xsmcrop(
spSMatrix mat, 
long row_offset, 
long row_length, 
long col_offset, 
long col_length);
 
  503extern spLMatrix xlmcrop(
spLMatrix mat, 
long row_offset, 
long row_length, 
long col_offset, 
long col_length);
 
  504extern spFMatrix xfmcrop(
spFMatrix mat, 
long row_offset, 
long row_length, 
long col_offset, 
long col_length);
 
  505extern spDMatrix xdmcrop(
spDMatrix mat, 
long row_offset, 
long row_length, 
long col_offset, 
long col_length);
 
  516extern void smshiftrow(
spSMatrix x, 
long shift);
 
  517extern void smshiftcol(
spSMatrix x, 
long shift);
 
  518extern void lmshiftrow(
spLMatrix x, 
long shift);
 
  519extern void lmshiftcol(
spLMatrix x, 
long shift);
 
  520extern void fmshiftrow(
spFMatrix x, 
long shift);
 
  521extern void fmshiftcol(
spFMatrix x, 
long shift);
 
  522extern void dmshiftrow(
spDMatrix x, 
long shift);
 
  523extern void dmshiftcol(
spDMatrix x, 
long shift);
 
  538extern void smsupdiag(
spSMatrix A, 
long shift);
 
  539extern void lmsupdiag(
spLMatrix A, 
long shift);
 
  540extern void fmsupdiag(
spFMatrix A, 
long shift);
 
  541extern void dmsupdiag(
spDMatrix A, 
long shift);
 
  581extern void dmscoper(
spDMatrix x, 
const char *op, 
double t);
 
  614                          spDVectors *xoeigvecs );
 
  617                          long max_iteration, 
double tolerance,
 
  644                         double *detr, 
double *deti); 
 
  675extern double dmnorm(
spDMatrix A, 
long p);
 
  677extern double dmcondp(
spDMatrix A, 
long p);
 
  680extern double dmrank(
spDMatrix A, 
double tolerance);
 
  683                         long *onum_leading_zero , 
long *onum_trailing_zero );
 
  684extern spDVector xdvrootscompan(
spDMatrix C , 
long num_leading_zero, 
long num_trailing_zero);
 
  691#define smextractrow(mat, k, vec) smcutrow(mat, (long)(k), 0, mat->col, vec) 
  692#define lmextractrow(mat, k, vec) lmcutrow(mat, (long)(k), 0, mat->col, vec) 
  693#define fmextractrow(mat, k, vec) fmcutrow(mat, (long)(k), 0, mat->col, vec) 
  694#define dmextractrow(mat, k, vec) dmcutrow(mat, (long)(k), 0, mat->col, vec) 
  695#define smextractcol(mat, k, vec) smcutcol(mat, (long)(k), 0, mat->row, vec) 
  696#define lmextractcol(mat, k, vec) lmcutcol(mat, (long)(k), 0, mat->row, vec) 
  697#define fmextractcol(mat, k, vec) fmcutcol(mat, (long)(k), 0, mat->row, vec) 
  698#define dmextractcol(mat, k, vec) dmcutcol(mat, (long)(k), 0, mat->row, vec) 
  700#define xsmextractrow(mat, k) xsmcutrow(mat, (long)(k), 0, mat->col) 
  701#define xlmextractrow(mat, k) xlmcutrow(mat, (long)(k), 0, mat->col) 
  702#define xfmextractrow(mat, k) xfmcutrow(mat, (long)(k), 0, mat->col) 
  703#define xdmextractrow(mat, k) xdmcutrow(mat, (long)(k), 0, mat->col) 
  704#define xsmextractcol(mat, k) xsmcutcol(mat, (long)(k), 0, mat->row) 
  705#define xlmextractcol(mat, k) xlmcutcol(mat, (long)(k), 0, mat->row) 
  706#define xfmextractcol(mat, k) xfmcutcol(mat, (long)(k), 0, mat->row) 
  707#define xdmextractcol(mat, k) xdmcutcol(mat, (long)(k), 0, mat->row) 
  710#define smcopyrow(mat, k, vec) smpasterowfrom(mat, (long)(k), 0, vec->length, vec, 0, 0) 
  711#define lmcopyrow(mat, k, vec) lmpasterowfrom(mat, (long)(k), 0, vec->length, vec, 0, 0) 
  712#define fmcopyrow(mat, k, vec) fmpasterowfrom(mat, (long)(k), 0, vec->length, vec, 0, 0) 
  713#define dmcopyrow(mat, k, vec) dmpasterowfrom(mat, (long)(k), 0, vec->length, vec, 0, 0) 
  715#define smcopycol(mat, k, vec) smpastecolfrom(mat, (long)(k), 0, vec->length, vec, 0, 0) 
  716#define lmcopycol(mat, k, vec) lmpastecolfrom(mat, (long)(k), 0, vec->length, vec, 0, 0) 
  717#define fmcopycol(mat, k, vec) fmpastecolfrom(mat, (long)(k), 0, vec->length, vec, 0, 0) 
  718#define dmcopycol(mat, k, vec) dmpastecolfrom(mat, (long)(k), 0, vec->length, vec, 0, 0) 
  721#define smcopyto(matto, rowto, colto, matfrom) smpastematfrom(matto, rowto, colto, 0, 0, matfrom, 0, 0, 0) 
  722#define lmcopyto(matto, rowto, colto, matfrom) lmpastematfrom(matto, rowto, colto, 0, 0, matfrom, 0, 0, 0) 
  723#define fmcopyto(matto, rowto, colto, matfrom) fmpastematfrom(matto, rowto, colto, 0, 0, matfrom, 0, 0, 0) 
  724#define dmcopyto(matto, rowto, colto, matfrom) dmpastematfrom(matto, rowto, colto, 0, 0, matfrom, 0, 0, 0) 
  726#define smcopymatrow(matto, rowto, matfrom, rowfrom) smpastematrowfrom(matto, rowto, 0, matfrom->col, matfrom, rowfrom, 0, 0) 
  727#define smcopymatcol(matto, colto, matfrom, colfrom) smpastematcolfrom(matto, colto, 0, matfrom->row, matfrom, colfrom, 0, 0) 
  728#define lmcopymatrow(matto, rowto, matfrom, rowfrom) lmpastematrowfrom(matto, rowto, 0, matfrom->col, matfrom, rowfrom, 0, 0) 
  729#define lmcopymatcol(matto, colto, matfrom, colfrom) lmpastematcolfrom(matto, colto, 0, matfrom->row, matfrom, colfrom, 0, 0) 
  730#define fmcopymatrow(matto, rowto, matfrom, rowfrom) fmpastematrowfrom(matto, rowto, 0, matfrom->col, matfrom, rowfrom, 0, 0) 
  731#define fmcopymatcol(matto, colto, matfrom, colfrom) fmpastematcolfrom(matto, colto, 0, matfrom->row, matfrom, colfrom, 0, 0) 
  732#define dmcopymatrow(matto, rowto, matfrom, rowfrom) dmpastematrowfrom(matto, rowto, 0, matfrom->col, matfrom, rowfrom, 0, 0) 
  733#define dmcopymatcol(matto, colto, matfrom, colfrom) dmpastematcolfrom(matto, colto, 0, matfrom->row, matfrom, colfrom, 0, 0) 
  735#define xsmzeros(row, col) xsmnums(row, col, 0) 
  736#define xlmzeros(row, col) xlmnums(row, col, 0) 
  737#define xfmzeros(row, col) xfmnums(row, col, 0.0f) 
  738#define xdmzeros(row, col) xdmnums(row, col, 0.0) 
  739#define xsmones(row, col) xsmnums(row, col, 1) 
  740#define xlmones(row, col) xlmnums(row, col, 1) 
  741#define xfmones(row, col) xlmnums(row, col, 1.0f) 
  742#define xdmones(row, col) xdmnums(row, col, 1.0) 
  744#define smzeros(mat, row, col) smnums(mat, row, col, 0) 
  745#define lmzeros(mat, row, col) lmnums(mat, row, col, 0) 
  746#define fmzeros(mat, row, col) fmnums(mat, row, col, 0.0f) 
  747#define dmzeros(mat, row, col) dmnums(mat, row, col, 0.0) 
  748#define smones(mat, row, col) smnums(mat, row, col, 1) 
  749#define lmones(mat, row, col) lmnums(mat, row, col, 1) 
  750#define fmones(mat, row, col) fmnums(mat, row, col, 1.0f) 
  751#define dmones(mat, row, col) dmnums(mat, row, col, 1.0) 
  753#define smizeros(mat, row, col) sminums(mat, row, col, 0) 
  754#define lmizeros(mat, row, col) lminums(mat, row, col, 0) 
  755#define fmizeros(mat, row, col) fminums(mat, row, col, 0.0f) 
  756#define dmizeros(mat, row, col) dminums(mat, row, col, 0.0) 
  757#define smiones(mat, row, col) sminums(mat, row, col, 1) 
  758#define lmiones(mat, row, col) lminums(mat, row, col, 1) 
  759#define fmiones(mat, row, col) fminums(mat, row, col, 1.0f) 
  760#define dmiones(mat, row, col) dminums(mat, row, col, 1.0) 
  762#define xsmrizeros(row, col) xsmrinums(row, col, 0) 
  763#define xlmrizeros(row, col) xlmrinums(row, col, 0) 
  764#define xfmrizeros(row, col) xfmrinums(row, col, 0.0f) 
  765#define xdmrizeros(row, col) xdmrinums(row, col, 0.0) 
  766#define xsmriones(row, col) xsmrinums(row, col, 1) 
  767#define xlmriones(row, col) xlmrinums(row, col, 1) 
  768#define xfmriones(row, col) xfmrinums(row, col, 1.0f) 
  769#define xdmriones(row, col) xdmrinums(row, col, 1.0) 
  771#define xsmnull() xsmalloc(0, 0) 
  772#define xlmnull() xlmalloc(0, 0) 
  773#define xfmnull() xfmalloc(0, 0) 
  774#define xdmnull() xdmalloc(0, 0) 
  776#define msset(xs, index, x) {(xs)->matrix[index]=(x);} 
  788typedef spSMatrices SMATRICES;
 
  789typedef spLMatrices LMATRICES;
 
  790typedef spFMatrices FMATRICES;
 
  791typedef spDMatrices DMATRICES;
 
  796#define xdvmtimes xdvmvtimes 
Matrix type that contains the elements of double type.
Definition matrix.h:152
double ** imag
Definition matrix.h:167
long row
Definition matrix.h:155
long col
Definition matrix.h:158
double ** data
Definition matrix.h:162
Vector type that contains the elements of double type.
Definition vector.h:248
Matrix type that contains the elements of float type.
Definition matrix.h:117
float ** data
Definition matrix.h:127
long row
Definition matrix.h:120
long col
Definition matrix.h:123
float ** imag
Definition matrix.h:132
Vector type that contains the elements of float type.
Definition vector.h:214
Matrix type that contains the elements of long type.
Definition matrix.h:82
long ** data
Definition matrix.h:92
long row
Definition matrix.h:85
long col
Definition matrix.h:88
long ** imag
Definition matrix.h:97
Vector type that contains the elements of long type.
Definition vector.h:180
Matrix type that contains the elements of short type.
Definition matrix.h:47
short ** imag
Definition matrix.h:62
short ** data
Definition matrix.h:57
long row
Definition matrix.h:50
long col
Definition matrix.h:53
Vector type that contains the elements of short type.
Definition vector.h:146