/*
 *    Copyright (c) Yaron Keren 1994-1996. All rights reserved.
 */
#include "file_19.h"
#include "file_7.h"
#include "file_11.h"
#include <math.h>
int isstr(M x) {
return(x.gettype()==M_TEXT);
}
int issame(M x, M y) {
if ( (x.rows()!=y.rows())||(x.cols()!=y.cols()) )
return(0);
double *l_467,*l_469;
l_467=x.addr(); l_469=y.addr();
int i=x.size();
while ( (i)&&(*l_467==*l_469) ) {
l_467++; l_469++; i--;
}
return(!i);
}
int l_179(const M& x) {
double *l_467,*l_468;
l_467=x.addr(); l_468=x.addi();
int i=x.size();
while ( (i)&&(*l_467==floor(*l_467))&&(fabs(*l_467)<1e7)&&
(*l_468==0) ) {
l_467++; l_468++; i--;
}
return(!i);
}
int l_175(const M& x) {
return( (x.cols()==1)||(x.rows()==1) );
}
int istrue(M x) {
  int i=x.size();
if (!i) return 0;
double *pr=x.addr(1,1);
while ( (i) && ((*pr)!=0) ) {
i--;
pr++;
}
return(!i);
}
int istrue(double x) {
return((int)x);
}
int l_177(const M& x) {
return l_177(x.addi(),x.size());
}
int l_177(double *pi, int i) {
while ( (i) && ((*pi)==0) ) {
i--;
pi++;
}
return(i!=0);
}
int isreal(M x) {
return !l_177(x);
}
int l_176(const M& x) {
return(x.size()==1);
}
M issparse(M) {
return(zero_M);
}
M isglobal(M) {
return(zero_M);
}
int isempty(M x) {
return(x.size()==0);
}
int l_174(const M& x) {
int m=x.rows();
int n=x.cols();
if (m!=n) {
error("\151\163\150er\155\151t\151an\072 \045\163 \155atr\151x n\157t \163\161\165are", x.getname());
}
int h=0;
for (int j=1;j<=n;j++) {
for (int i=1;i<=j;i++)  {
h=(x.r(i,j)==x.r(j,i)) && (x.i(i,j)==-x.i(j,i));
if (!h) break;
}
if (!h) break;
}
return(h);
}
