Thread View: gnu.gcc.bug
1 messages
1 total messages
Started by Daya Gaur
Wed, 26 Aug 1992 12:23
BUG
Author: Daya Gaur
Date: Wed, 26 Aug 1992 12:23
Date: Wed, 26 Aug 1992 12:23
3191 lines
53829 bytes
53829 bytes
Hi,
I was trying to compile the Matrix class library developed by E. S. Tisdale
at UCLA.
The compiler gives a message internal error signal 6 and comes out.
In the last I have pointed the statement which causes the problem.
Attached with this e-mail is the code generated by g++ with -E option.
Version of the gcc compiler and machine are listed below.
$ gcc -v
Reading specs from /usr/local/lib/gcc-lib/sparc-sun-sunos4.1.1/2.2.2/specs
gcc version 2.2.2
********** C O D E S T A R T S*******************
# 1 "src/do.cc"
# 1 "src/../include/double.Matrix.h" 1
# 1 "/home/isl/lib.sun4/g++-include/stream.h" 1 3
# 1 "/home/isl/lib.sun4/g++-include/iostream.h" 1 3
#pragma interface
# 1 "/home/isl/lib.sun4/g++-include/streambuf.h" 1 3
#pragma interface
# 1 "/home/isl/lib.sun4/g++-include/_G_config.h" 1 3
# 23 "/home/isl/lib.sun4/g++-include/streambuf.h" 2 3
class ostream; class streambuf; class backupbuf;
extern "C" int __underflow(streambuf*);
extern "C" int __overflow(streambuf*, int);
typedef long streamoff;
typedef long streampos;
typedef unsigned long __fmtflags;
struct _ios_fields {
streambuf *_strbuf;
ostream* _tie;
int _width;
unsigned long _flags;
char _fill;
__fmtflags _state;
unsigned short _precision;
};
enum state_value {
_good = 0 ,
_eof = 1 ,
_fail = 2 ,
_bad = 4 };
enum open_mode {
input = 1 ,
output = 2 ,
atend = 4 ,
append = 8 };
class ios : public _ios_fields {
public:
typedef __fmtflags fmtflags;
enum io_state {
goodbit = 0 ,
eofbit = 1 ,
failbit = 2 ,
badbit = 4 };
enum open_mode {
in = 1 ,
out = 2 ,
ate = 4 ,
app = 8 ,
trunc = 16 ,
nocreate = 32 ,
noreplace = 64 };
enum seek_dir { beg, cur, end};
enum { skipws=01, left=02, right=04, internal=010,
dec=020, oct=040, hex=0100,
showbase=0200, showpoint=0400, uppercase=01000, showpos=02000,
scientific=04000, fixed=0100000, unitbuf=020000, stdio=040000,
dont_close=0x80000000
};
ostream* tie() const { return _tie; }
ostream* tie(ostream* val) { ostream* save=_tie; _tie=val; return save; }
char fill() const { return _fill; }
char fill(char newf) { char oldf = _fill; _fill = newf; return oldf; }
fmtflags flags() const { return _flags; }
fmtflags flags(fmtflags new_val) {
fmtflags old_val = _flags; _flags = new_val; return old_val; }
int precision() const { return _precision; }
int precision(int newp) {
unsigned short oldp = _precision; _precision = (unsigned short)newp;
return oldp; }
fmtflags setf(fmtflags val) {
fmtflags oldbits = _flags;
_flags |= val; return oldbits; }
fmtflags setf(fmtflags val, fmtflags mask) {
fmtflags oldbits = _flags;
_flags = (_flags & ~mask) | (val & mask); return oldbits; }
fmtflags unsetf(fmtflags mask) {
fmtflags oldbits = _flags & mask;
_flags &= ~mask; return oldbits; }
int width() const { return _width; }
int width(int val) { int save = _width; _width = val; return save; }
static const unsigned long basefield;
static const unsigned long adjustfield;
static const unsigned long floatfield;
streambuf* rdbuf() const { return _strbuf; }
void clear(int state = 0) { _state = state; }
void set(int flag) { _state |= flag; }
int good() const { return _state == 0; }
int eof() const { return _state & ios::eofbit; }
int fail() const { return _state & (ios::badbit|ios::failbit); }
int bad() const { return _state & ios::badbit; }
int rdstate() const { return _state; }
operator void*() const { return fail() ? (void*)0 : (void*)this; }
int operator!() const { return fail(); }
void unset(state_value flag) { _state &= ~flag; }
void close();
int is_open();
int readable();
int writable();
protected:
ios(streambuf*sb) { _strbuf=sb; _state=0; _width=0; _fill=' ';
_flags=ios::skipws; _precision=6; }
};
typedef ios::seek_dir _seek_dir;
class streammarker {
friend class streambuf;
friend int __underflow(streambuf*);
struct streammarker *_next;
streambuf *_sbuf;
streampos _spos;
void set_streampos(streampos sp) { _spos = sp; }
void set_offset(int offset) { _pos = offset; _spos = (streampos)(-2); }
int _pos;
public:
streammarker(streambuf *sb);
~streammarker();
int saving() { return _spos == -2; }
int delta(streammarker&);
int delta();
};
struct __streambuf {
int _flags;
char* _gptr;
char* _egptr;
char* _eback;
char* _pbase;
char* _pptr;
char* _epptr;
char* _base;
char* _ebuf;
struct streambuf *_chain;
friend class streammarker;
char *_other_gbase;
char *_aux_limit;
char *_other_egptr;
streammarker *_markers;
unsigned short _cur_column;
char _unused;
char _shortbuf[1];
};
extern unsigned __adjust_column(unsigned start, const char *line, int count);
struct streambuf : private __streambuf {
friend class ios;
friend class istream;
friend class ostream;
friend class streammarker;
friend int __underflow(streambuf*);
protected:
static streambuf* _list_all;
streambuf*& xchain() { return _chain; }
void _un_link();
void _link_in();
char* gptr() const { return _gptr; }
char* pptr() const { return _pptr; }
char* egptr() const { return _egptr; }
char* epptr() const { return _epptr; }
char* pbase() const { return _pbase; }
char* eback() const { return _eback; }
char* ebuf() const { return _ebuf; }
char* base() const { return _base; }
void xput_char(char c) { *_pptr++ = c; }
int xflags() { return _flags; }
int xflags(int f) { int fl = _flags; _flags = f; return fl; }
void xsetflags(int f) { _flags |= f; }
void xsetflags(int f, int mask) { _flags = (_flags & ~mask) | (f & mask); }
void gbump(int n) { _gptr += n; }
void pbump(int n) { _pptr += n; }
void setb(char* b, char* eb, int a=0);
void setp(char* p, char* ep) { _pbase=_pptr=p; _epptr=ep; }
void setg(char* eb, char* g, char *eg) { _eback=eb; _gptr=g; _egptr=eg; }
char *shortbuf() { return _shortbuf; }
int in_backup() { return _flags & 0x100 ; }
char *Gbase() { return in_backup() ? _other_gbase : _eback; }
char *eGptr() { return in_backup() ? _other_egptr : _egptr; }
char *Bbase() { return in_backup() ? _eback : _other_gbase; }
char *Bptr() { return _aux_limit; }
char *eBptr() { return in_backup() ? _egptr : _other_egptr; }
char *Nbase() { return _other_gbase; }
char *eNptr() { return _other_egptr; }
int have_backup() { return _other_gbase != ((void*)0) ; }
int have_markers() { return _markers != ((void*)0) ; }
int _least_marker();
void switch_to_main_get_area();
void switch_to_backup_area();
void free_backup_area();
void unsave_markers();
int put_mode() { return _flags & 0x800 ; }
int switch_to_get_mode();
streambuf(int flags=0);
public:
static int flush_all();
static void flush_all_linebuffered();
virtual int underflow() = 0;
virtual int overflow(int c = (-1) ) = 0;
virtual int doallocate();
virtual streampos seekoff(streamoff, _seek_dir, int mode=ios::in|ios::out);
virtual streampos seekpos(streampos pos, int mode = ios::in|ios::out);
int seekmark(streammarker& mark, int delta = 0);
int sputbackc(char c);
int sungetc();
virtual ~streambuf();
int unbuffered() { return _flags & 2 ? 1 : 0; }
int linebuffered() { return _flags & 0x200 ? 1 : 0; }
void unbuffered(int i)
{ if (i) _flags |= 2 ; else _flags &= ~2 ; }
void linebuffered(int i)
{ if (i) _flags |= 0x200 ; else _flags &= ~0x200 ; }
int allocate() {
if (base() || unbuffered()) return 0;
else return doallocate(); }
void allocbuf() { if (base() == ((void*)0) ) doallocbuf(); }
void doallocbuf();
virtual int sync();
virtual int pbackfail(int c);
virtual int ungetfail();
virtual streambuf* setbuf(char* p, int len);
int in_avail() { return _egptr - _gptr; }
int out_waiting() { return _pptr - _pbase; }
virtual int sputn(const char* s, int n);
virtual int sgetn(char* s, int n);
int ignore(int);
virtual int get_column();
virtual int set_column(int);
long sgetline(char* buf, int n, char delim, int putback_delim);
int sbumpc() {
if (_gptr >= _egptr && __underflow(this) == (-1) ) return (-1) ;
else return *(unsigned char*)_gptr++; }
int sgetc() {
if (_gptr >= _egptr && __underflow(this) == (-1) ) return (-1) ;
else return *(unsigned char*)_gptr; }
int snextc() {
if (++_gptr >= _egptr && __underflow(this) == (-1) ) return (-1) ;
else return *(unsigned char*)_gptr; }
int sputc(int c) {
if (_pptr >= _epptr) return __overflow(this, (unsigned char)c);
return *_pptr++ = c, (unsigned char)c; }
void stossc() { if (_gptr < _egptr) _gptr++; }
int vscan(char const *fmt0, char * ap);
int vform(char const *fmt0, char * ap);
};
class backupbuf : public streambuf {
friend class streammarker;
protected:
backupbuf(int flags=0) : streambuf(flags|0x4000 ) { }
public:
virtual int pbackfail(int c);
virtual int underflow();
virtual int overflow(int c = (-1) );
};
struct __file_fields {
short _fileno;
int _blksize;
long _offset;
};
class filebuf : public backupbuf {
protected:
struct __file_fields _fb;
void init();
public:
filebuf();
filebuf(int fd);
filebuf(int fd, char* p, int len);
~filebuf();
filebuf* attach(int fd);
filebuf* open(const char *filename, const char *mode);
filebuf* open(const char *filename, int mode, int prot = 0664);
virtual int underflow();
virtual int overflow(int c = (-1) );
int is_open() { return _fb._fileno >= 0; }
int fd() { return is_open() ? _fb._fileno : (-1) ; }
filebuf* close();
virtual int doallocate();
virtual streampos seekoff(streamoff, _seek_dir, int mode=ios::in|ios::out);
int sputn(const char* s, int n);
int sgetn(char* s, int n);
virtual int sync();
protected:
int is_reading() { return eback() != egptr(); }
char* cur_ptr() { return is_reading() ? gptr() : pptr(); }
char* file_ptr() { return eGptr(); }
int do_flush();
virtual int sys_read(char* buf, int size);
virtual long sys_seek(long , _seek_dir);
virtual int sys_write(const void*, long);
virtual int sys_stat(void*);
virtual int sys_close();
};
inline int ios::readable() { return !(rdbuf()->_flags & 4 ); }
inline int ios::writable() { return !(rdbuf()->_flags & 8 ); }
inline int ios::is_open() { return (rdbuf()->_flags & 4 +8 )
!= 4 +8 ; }
# 25 "/home/isl/lib.sun4/g++-include/iostream.h" 2 3
class istream; class ostream;
typedef ios& (*__manip)(ios&);
typedef istream& (*__imanip)(istream&);
typedef ostream& (*__omanip)(ostream&);
extern istream& ws(istream& ins);
extern ostream& flush(ostream& outs);
extern ostream& endl(ostream& outs);
extern ostream& ends(ostream& outs);
class ostream : public ios
{
void do_osfx();
public:
ostream();
ostream(streambuf* sb, ostream* tied=((void*)0) );
~ostream();
int opfx() { if (!good()) return 0; if (_tie) _tie->flush(); return 1; }
void osfx() { if (flags() & (ios::unitbuf|ios::stdio))
do_osfx(); }
streambuf* ostreambuf() const { return _strbuf; }
ostream& flush();
ostream& put(char c) { _strbuf->sputc(c); return *this; }
ostream& write(const char *s, int n);
ostream& write(const unsigned char *s, int n) { return write((char*)s, n);}
ostream& write(const signed char *s, int n) { return write((char*)s, n);}
ostream& write(const void *s, int n) { return write((char*)s, n);}
ostream& seekp(streampos);
ostream& seekp(streamoff, _seek_dir);
streampos tellp();
ostream& form(const char *format ...);
ostream& vform(const char *format, char * args);
};
extern ostream& operator<<(ostream&, char c);
inline ostream& operator<<(ostream& os, unsigned char c)
{ return os << (char)c; }
extern ostream& operator<<(ostream &os, signed char c) { return os << (char)c;}
extern ostream& operator<<(ostream&, const char *s);
inline ostream& operator<<(ostream& os, const unsigned char *s)
{ return os << (const char*)s; }
inline ostream& operator<<(ostream& os, const signed char *s)
{ return os << (const char*)s; }
extern ostream& operator<<(ostream&, void *p);
extern ostream& operator<<(ostream&, int n);
extern ostream& operator<<(ostream&, long n);
extern ostream& operator<<(ostream&, unsigned int n);
extern ostream& operator<<(ostream&, unsigned long n);
inline ostream& operator<<(ostream& os, short n) {return os << (int)n;}
inline ostream& operator<<(ostream& os, unsigned short n)
{return os << (unsigned int)n;}
extern ostream& operator<<(ostream&, float n);
extern ostream& operator<<(ostream&, double n);
inline ostream& operator<<(ostream& os, __omanip func) { return (*func)(os); }
inline ostream& operator<<(ostream& os, __manip func) {(*func)(os); return os;}
extern ostream& operator<<(ostream&, streambuf*);
class istream : public ios
{
int _gcount;
int _skip_ws();
public:
istream();
istream(streambuf* sb, ostream*tied=((void*)0) );
~istream();
streambuf* istreambuf() const { return _strbuf; }
istream& get(char& c);
istream& get(unsigned char& c) { return get((char&)c); }
istream& get(signed char& c) { return get((char&)c); }
istream& read(char *ptr, int n);
istream& read(unsigned char *ptr, int n) { return read((char*)ptr, n); }
istream& read(signed char *ptr, int n) { return read((char*)ptr, n); }
istream& read(void *ptr, int n) { return read((char*)ptr, n); }
istream& getline(char* ptr, int len, char delim = '\n');
istream& get(char* ptr, int len, char delim = '\n');
istream& get(streambuf& sb, char delim = '\n');
istream& gets(char **s, char delim = '\n');
int ipfx(int need) {
if (!good()) { set(ios::failbit); return 0; }
if (_tie && (need == 0 || rdbuf()->in_avail() < need)) _tie->flush();
if (!need && (flags() & ios::skipws)) return _skip_ws();
return 1;
}
int ipfx0() {
if (!good()) { set(ios::failbit); return 0; }
if (_tie) _tie->flush();
if (flags() & ios::skipws) return _skip_ws();
return 1;
}
int ipfx1() {
if (!good()) { set(ios::failbit); return 0; }
if (_tie && rdbuf()->in_avail() == 0) _tie->flush();
return 1;
}
int get() { if (!ipfx1()) return (-1) ;
int ch = _strbuf->sbumpc();
if (ch == (-1) ) set(ios::eofbit);
return ch; }
int peek() { if (!ipfx1()) return (-1) ;
int ch = _strbuf->sgetc();
if (ch == (-1) ) set(ios::eofbit);
return ch; }
int gcount() { return _gcount; }
istream& ignore(int n=1, int delim = (-1) );
istream& seekg(streampos);
istream& seekg(streamoff, _seek_dir);
streampos tellg();
istream& putback(char ch) {
if (good() && _strbuf->sputbackc(ch) == (-1) ) clear(ios::badbit);
return *this;}
istream& unget() {
if (good() && _strbuf->sungetc() == (-1) ) clear(ios::badbit);
return *this;}
istream& scan(const char *format ...);
istream& vscan(const char *format, char * args);
istream& unget(char ch) { return putback(ch); }
int skip(int i);
};
extern istream& operator>>(istream&, char*);
inline istream& operator>>(istream& is, unsigned char* p)
{ return is >> (char*)p; }
inline istream& operator>>(istream& is, signed char*p) {return is >> (char*)p;}
extern istream& operator>>(istream&, char& c);
extern istream& operator>>(istream& s, unsigned char& c) {return s>>(char&)c;}
extern istream& operator>>(istream& s, signed char& c) {return s >> (char&)c;}
extern istream& operator>>(istream&, int&);
extern istream& operator>>(istream&, long&);
extern istream& operator>>(istream&, short&);
extern istream& operator>>(istream&, unsigned int&);
extern istream& operator>>(istream&, unsigned long&);
extern istream& operator>>(istream&, unsigned short&);
extern istream& operator>>(istream&, float&);
extern istream& operator>>(istream&, double&);
inline istream& operator>>(istream& is, __manip func) {(*func)(is); return is;}
inline istream& operator>>(istream& is, __imanip func) { return (*func)(is); }
extern istream& operator>>(istream&, streambuf*);
class iostream : public ios {
int _gcount;
public:
iostream();
iostream(streambuf* sb, ostream*tied=((void*)0) );
operator istream&() { return *(istream*)this; }
operator ostream&() { return *(ostream*)this; }
~iostream();
istream& get(char& c) { return ((istream*)this)->get(c); }
istream& get(unsigned char& c) { return ((istream*)this)->get((char&)c); }
istream& get(signed char& c) { return ((istream*)this)->get((char&)c); }
istream& read(char *ptr, int n) { return ((istream*)this)->read(ptr, n); }
istream& read(unsigned char *ptr, int n)
{ return ((istream*)this)->read((char*)ptr, n); }
istream& read(signed char *ptr, int n)
{ return ((istream*)this)->read((char*)ptr, n); }
istream& read(void *ptr, int n)
{ return ((istream*)this)->read((char*)ptr, n); }
istream& getline(char* ptr, int len, char delim = '\n')
{ return ((istream*)this)->getline(ptr, len, delim); }
istream& get(char* ptr, int len, char delim = '\n')
{ return ((istream*)this)->get(ptr, len, delim); }
istream& gets(char **s, char delim = '\n')
{ return ((istream*)this)->gets(s, delim); }
istream& ignore(int n=1, int delim = (-1) )
{ return ((istream*)this)->ignore(n, delim); }
int ipfx(int need) { return ((istream*)this)->ipfx(need); }
int ipfx0() { return ((istream*)this)->ipfx0(); }
int ipfx1() { return ((istream*)this)->ipfx1(); }
int get() { return _strbuf->sbumpc(); }
int peek() { return ipfx1() ? _strbuf->sgetc() : (-1) ; }
int gcount() { return _gcount; }
istream& putback(char ch) { return ((istream*)this)->putback(ch); }
istream& unget() { return ((istream*)this)->unget(); }
istream& seekg(streampos pos) { return ((istream*)this)->seekg(pos); }
istream& seekg(streamoff off, _seek_dir dir)
{ return ((istream*)this)->seekg(off, dir); }
streampos tellg() { return ((istream*)this)->tellg(); }
istream& scan(const char *format ...);
istream& vscan(const char *format, char * args)
{ return ((istream*)this)->vscan(format, args); }
istream& unget(char ch) { return putback(ch); }
int opfx() { return ((ostream*)this)->opfx(); }
void osfx() { ((ostream*)this)->osfx(); }
ostream& flush() { return ((ostream*)this)->flush(); }
ostream& put(char c) { return ((ostream*)this)->put(c); }
ostream& write(const char *s, int n)
{ return ((ostream*)this)->write(s, n); }
ostream& write(const unsigned char *s, int n)
{ return ((ostream*)this)->write((char*)s, n); }
ostream& write(const signed char *s, int n)
{ return ((ostream*)this)->write((char*)s, n); }
ostream& write(const void *s, int n)
{ return ((ostream*)this)->write((char*)s, n); }
ostream& form(const char *format ...);
ostream& vform(const char *format, char * args)
{ return ((ostream*)this)->vform(format, args); }
ostream& seekp(streampos pos) { return ((ostream*)this)->seekp(pos); }
ostream& seekp(streamoff off, _seek_dir dir)
{ return ((ostream*)this)->seekp(off, dir); }
streampos tellp() { return ((ostream*)this)->tellp(); }
};
extern istream cin;
extern ostream cout, cerr, clog;
struct Iostream_init { } ;
inline ios& dec(ios& i)
{ i.setf(ios::dec, ios::dec|ios::hex|ios::oct); return i; }
inline ios& hex(ios& i)
{ i.setf(ios::hex, ios::dec|ios::hex|ios::oct); return i; }
inline ios& oct(ios& i)
{ i.setf(ios::oct, ios::dec|ios::hex|ios::oct); return i; }
# 7 "/home/isl/lib.sun4/g++-include/stream.h" 2 3
extern char* form(const char*, ...);
extern char* dec(long, int=0);
extern char* dec(int, int=0);
extern char* dec(unsigned long, int=0);
extern char* dec(unsigned int, int=0);
extern char* hex(long, int=0);
extern char* hex(int, int=0);
extern char* hex(unsigned long, int=0);
extern char* hex(unsigned int, int=0);
extern char* oct(long, int=0);
extern char* oct(int, int=0);
extern char* oct(unsigned long, int=0);
extern char* oct(unsigned int, int=0);
inline istream& WS(istream& str) { return ws(str); }
# 4 "src/../include/double.Matrix.h" 2
# 1 "/home/isl/lib.sun4/g++-include/builtin.h" 1 3
#pragma interface
# 1 "/home/isl/lib.sun4/g++-include/stddef.h" 1 3
extern "C" {
# 1 "/usr/local/lib/gcc-lib/sparc-sun-sunos4.1.1/2.2.2/include/stddef.h" 1 3
typedef int ptrdiff_t;
typedef int size_t;
typedef short unsigned int wchar_t;
# 7 "/home/isl/lib.sun4/g++-include/stddef.h" 2 3
}
# 31 "/home/isl/lib.sun4/g++-include/builtin.h" 2 3
# 1 "/home/isl/lib.sun4/g++-include/std.h" 1 3
# 1 "/home/isl/lib.sun4/g++-include/stdlib.h" 1 3
extern "C" {
int abs(int);
void volatile abort(void);
double atof(const char*);
int atoi(const char*);
long atol(const char*);
int atexit(auto void (*p) (void));
int bsearch (const void *, const void *, size_t,
size_t, auto int (*ptf)(const void*, const void*));
void* calloc(size_t, size_t);
void cfree(void*);
void volatile exit(int);
char* fcvt(double, int, int*, int*);
void free(void*);
char* getenv(const char*);
int getopt(int, const char**, const char*);
int getpw(int, char*);
char* gcvt(double, int, char*);
char* ecvt(double, int, int*, int*);
extern char** environ;
long labs(long);
void* malloc(size_t);
size_t malloc_usable_size(void*);
int putenv(const char*);
extern char* optarg;
extern int opterr;
extern int optind;
void qsort(void*, size_t, size_t, auto int (*ptf)(void*,void*));
int rand(void);
void* realloc(void*, size_t);
int setkey(const char*);
int srand(unsigned int);
double strtod(const char*, char**);
long strtol(const char*, char**, int);
unsigned long stroul(const char**, int);
int system(const char*);
long random(void);
void srandom(int);
char* setstate(char*);
char* initstate(unsigned, char*, int);
double drand48(void);
void lcong48(short*);
long jrand48(short*);
long lrand48(void);
long mrand48(void);
long nrand48(short*);
short* seed48(short*);
void srand48(long);
char* ctermid(char*);
char* cuserid(char*);
char* tempnam(const char*, const char*);
char* tmpnam(char*);
}
# 24 "/home/isl/lib.sun4/g++-include/std.h" 2 3
# 1 "/home/isl/lib.sun4/g++-include/string.h" 1 3
extern "C" {
char* strcat(char*, const char*);
char* strchr(const char*, int);
int strcmp(const char*, const char*);
int strcoll(const char*, const char*);
char* strcpy(char*, const char*);
int strcspn(const char*, const char*);
char* strdup(const char*);
int strlen(const char*);
char* strncat(char*, const char*, int );
int strncmp(const char*, const char*, int );
char* strncpy(char*, const char*, int );
char* strpbrk(const char*, const char*);
char* strrchr(const char*, int);
int strspn(const char*, const char*);
char* strstr(const char*, const char *);
char* strtok(char*, const char*);
int strxfrm(char*, const char*, int );
char* index(const char*, int);
char* rindex(const char*, int);
}
# 1 "/home/isl/lib.sun4/g++-include/memory.h" 1 3
extern "C" {
void* memalign (...) ;
void* memccpy (...) ;
void* memchr (...) ;
int memcmp (...) ;
void* memcpy (...) ;
void* memmove (...) ;
void* memset (...) ;
int ffs (...) ;
int getpagesize (...) ;
void* valloc (...) ;
void bcopy (...) ;
int bcmp (...) ;
void bzero (...) ;
}
# 39 "/home/isl/lib.sun4/g++-include/string.h" 2 3
# 25 "/home/isl/lib.sun4/g++-include/std.h" 2 3
# 1 "/home/isl/lib.sun4/g++-include/unistd.h" 1 3
extern "C" {
# 1 "/usr/local/lib/gcc-lib/sparc-sun-sunos4.1.1/2.2.2/include/unistd.h" 1 3
# 1 "/home/isl/lib.sun4/g++-include/sys/types.h" 1 3
extern "C"
{
# 1 "/usr/local/lib/gcc-lib/sparc-sun-sunos4.1.1/2.2.2/include/sys/types.h" 1 3
# 1 "/usr/local/lib/gcc-lib/sparc-sun-sunos4.1.1/2.2.2/include/sys/stdtypes.h" 1 3
typedef int sigset_t;
typedef unsigned int speed_t;
typedef unsigned long tcflag_t;
typedef unsigned char cc_t;
typedef int pid_t;
typedef unsigned short mode_t;
typedef short nlink_t;
typedef long clock_t;
typedef long time_t;
# 16 "/usr/local/lib/gcc-lib/sparc-sun-sunos4.1.1/2.2.2/include/sys/types.h" 2 3
# 1 "/usr/include/sys/sysmacros.h" 1 3
# 19 "/usr/local/lib/gcc-lib/sparc-sun-sunos4.1.1/2.2.2/include/sys/types.h" 2 3
typedef unsigned char u_char;
typedef unsigned short u_short;
typedef unsigned int u_int;
typedef unsigned long u_long;
typedef unsigned short ushort;
typedef unsigned int uint;
typedef struct _physadr_t { int r[1]; } *physadr_t;
typedef struct label_t {
int val[2];
} label_t;
typedef struct _quad_t { long val[2]; } quad_t;
typedef long daddr_t;
typedef char * caddr_t;
typedef unsigned long ino_t;
typedef short dev_t;
typedef long off_t;
typedef unsigned short uid_t;
typedef unsigned short gid_t;
typedef long key_t;
typedef char * addr_t;
typedef long fd_mask;
typedef struct fd_set {
fd_mask fds_bits[(((256 )+(( (sizeof (fd_mask) * 8 ) )-1))/( (sizeof (fd_mask) * 8 ) )) ];
} fd_set;
# 113 "/usr/local/lib/gcc-lib/sparc-sun-sunos4.1.1/2.2.2/include/sys/types.h" 3
# 15 "/home/isl/lib.sun4/g++-include/sys/types.h" 2 3
}
# 73 "/usr/local/lib/gcc-lib/sparc-sun-sunos4.1.1/2.2.2/include/unistd.h" 2 3
extern void _exit( );
extern int access( );
extern unsigned alarm( );
extern int chdir( );
extern int __hide_chmod ( );
extern int chown( );
extern int close( );
extern char *ctermid( );
extern char *cuserid( );
extern int dup( );
extern int dup2( );
extern int __hide_execl ( );
extern int __hide_execle ( );
extern int __hide_execlp ( );
extern int execv( );
extern int execve( );
extern int execvp( );
extern pid_t fork( );
extern long fpathconf( );
extern char *getcwd( );
extern gid_t getegid( );
extern uid_t geteuid( );
extern gid_t getgid( );
extern int getgroups( );
extern char *getlogin( );
extern pid_t getpgrp( );
extern pid_t getpid( );
extern pid_t getppid( );
extern uid_t getuid( );
extern int isatty( );
extern int link( );
extern off_t lseek( );
extern long pathconf( );
extern int pause( );
extern int pipe( );
extern int read( );
extern int rmdir( );
extern int setgid( );
extern int setpgid( );
extern pid_t setsid( );
extern int setuid( );
extern unsigned sleep( );
extern long sysconf( );
extern pid_t tcgetpgrp( );
extern int tcsetpgrp( );
extern char *ttyname( );
extern int unlink( );
extern int write( );
# 18 "/home/isl/lib.sun4/g++-include/unistd.h" 2 3
# 45 "/home/isl/lib.sun4/g++-include/unistd.h" 3
extern void volatile _exit(int);
extern unsigned alarm (...) ;
extern int brk (...) ;
extern int chdir (...) ;
extern int chmod (...) ;
extern int chown (...) ;
extern int close (...) ;
extern char* crypt (...) ;
extern int dup (...) ;
extern int dup2 (...) ;
extern char* encrypt (...) ;
extern int execl (...) ;
extern int execle (...) ;
extern int execlp (...) ;
extern int exect (...) ;
extern int execv (...) ;
extern int execve (...) ;
extern int execvp (...) ;
extern int fchown (...) ;
extern int fork (...) ;
extern int fsync (...) ;
extern int ftruncate (...) ;
extern char* getcwd (...) ;
extern int getdomainname (...) ;
extern int getdtablesize (...) ;
extern int getgroups (...) ;
extern unsigned short geteuid (...) ;
extern unsigned short getegid (...) ;
extern unsigned short getgid (...) ;
extern long gethostid (...) ;
extern int gethostname (...) ;
extern int getpgrp (...) ;
extern int getpid (...) ;
extern int getppid (...) ;
extern char* getlogin (...) ;
extern char* getpass (...) ;
extern unsigned short getuid (...) ;
extern int ioctl (...) ;
extern int isatty (...) ;
extern int link (...) ;
extern int mkstemp (...) ;
extern char* mktemp (...) ;
extern int nice (...) ;
extern int pause (...) ;
extern int pipe (...) ;
extern int readlink (...) ;
extern int rename (...) ;
extern int rmdir (...) ;
extern void* sbrk (...) ;
extern int syscall (...) ;
extern int setgid (...) ;
extern int sethostname (...) ;
extern int setpgrp (...) ;
extern int setregid (...) ;
extern int setreuid (...) ;
extern int setuid (...) ;
extern unsigned sleep (...) ;
extern void swab (...) ;
extern int symlink (...) ;
extern int truncate (...) ;
extern char* ttyname (...) ;
extern int ttyslot (...) ;
extern int unlink (...) ;
extern int vfork (...) ;
extern int vadvise (...) ;
extern int vhangup (...) ;
extern long lseek (...) ;
extern int read (...) ;
extern int write (...) ;
extern int access (...) ;
extern int flock (...) ;
}
# 27 "/home/isl/lib.sun4/g++-include/std.h" 2 3
# 1 "/home/isl/lib.sun4/g++-include/stdio.h" 1 3
#pragma interface
extern "C" {
# 1 "/usr/local/lib/gcc-lib/sparc-sun-sunos4.1.1/2.2.2/include/stdio.h" 1 3
extern struct _iobuf {
int _cnt;
unsigned char *_ptr;
unsigned char *_base;
int _bufsiz;
short _flag;
char _file;
} _iob[];
extern struct _iobuf *__hide_fopen ();
extern struct _iobuf *__hide_fdopen ();
extern struct _iobuf *__hide_freopen ();
extern struct _iobuf *__hide_popen ();
extern struct _iobuf *tmpfile();
extern long __hide_ftell ();
extern char *fgets();
extern char *gets();
extern char *__hide_sprintf ();
extern char *ctermid();
extern char *cuserid();
extern char *__hide_tempnam ();
extern char *tmpnam();
# 69 "/home/isl/lib.sun4/g++-include/stdio.h" 2 3
}
extern "C" {
int fclose(struct _iobuf *);
struct _iobuf * fdopen(int, const char*);
int fflush(struct _iobuf *);
int fgetc(struct _iobuf *);
char* fgets(char*, int, struct _iobuf *);
struct _iobuf * fopen(const char*, const char*);
int fprintf(struct _iobuf *, const char* ...);
int fputc(int, struct _iobuf *);
int fputs(const char*, struct _iobuf *);
int fread(void*, int , int , struct _iobuf *);
struct _iobuf * freopen(const char*, const char*, struct _iobuf *);
int fscanf(struct _iobuf *, const char* ...);
int fseek(struct _iobuf *, long, int);
long ftell(struct _iobuf *);
int fwrite(const void*, int , int , struct _iobuf *);
char* gets(char*);
int getw(struct _iobuf *);
int pclose(struct _iobuf *);
void perror(const char*);
struct _iobuf * popen(const char*, const char*);
int printf(const char* ...);
int puts(const char*);
int putw(int, struct _iobuf *);
int rewind(struct _iobuf *);
int scanf(const char* ...);
void setbuf(struct _iobuf *, char*);
void setbuffer(struct _iobuf *, char*, int);
int setlinebuf(struct _iobuf *);
int setvbuf(struct _iobuf *, char*, int, int );
int sscanf(char*, const char* ...);
struct _iobuf * tmpfile();
int ungetc(int, struct _iobuf *);
int vfprintf (...) ;
int vprintf (...) ;
char* sprintf (...) ;
char* vsprintf (...) ;
extern int _filbuf (...) ;
extern int _flsbuf (...) ;
}
# 28 "/home/isl/lib.sun4/g++-include/std.h" 2 3
# 1 "/home/isl/lib.sun4/g++-include/errno.h" 1 3
extern "C" {
# 1 "/usr/include/errno.h" 1 3
# 1 "/usr/include/sys/errno.h" 1 3
# 10 "/usr/include/errno.h" 2 3
extern int errno;
# 9 "/home/isl/lib.sun4/g++-include/errno.h" 2 3
extern char* sys_errlist[];
extern int sys_nerr;
extern int errno;
void perror(const char*);
char* strerr(int);
}
# 29 "/home/isl/lib.sun4/g++-include/std.h" 2 3
# 1 "/home/isl/lib.sun4/g++-include/fcntl.h" 1 3
extern "C" {
# 1 "/usr/include/fcntl.h" 1 3
# 1 "/usr/include/sys/fcntlcom.h" 1 3
struct flock {
short l_type;
short l_whence;
long l_start;
long l_len;
short l_pid;
short l_xxx;
};
struct eflock {
short l_type;
short l_whence;
long l_start;
long l_len;
short l_pid;
short l_xxx;
long l_rpid;
long l_rsys;
};
# 1 "/home/isl/lib.sun4/g++-include/sys/stat.h" 1 3
extern "C"
{
# 1 "/usr/include/sys/stat.h" 1 3
struct stat {
dev_t st_dev;
ino_t st_ino;
mode_t st_mode;
short st_nlink;
uid_t st_uid;
gid_t st_gid;
dev_t st_rdev;
off_t st_size;
time_t st_atime;
int st_spare1;
time_t st_mtime;
int st_spare2;
time_t st_ctime;
int st_spare3;
long st_blksize;
long st_blocks;
long st_spare4[2];
};
int __hide_chmod ( );
int fstat( );
int mkdir( );
int mkfifo( );
int stat( );
mode_t umask( );
# 14 "/home/isl/lib.sun4/g++-include/sys/stat.h" 2 3
extern int chmod (...) ;
extern int stat (...) ;
extern int lstat (...) ;
extern int fstat (...) ;
}
# 147 "/usr/include/sys/fcntlcom.h" 2 3
int __hide_open ( );
int __hide_creat ( );
int __hide_fcntl ( );
# 6 "/usr/include/fcntl.h" 2 3
# 14 "/home/isl/lib.sun4/g++-include/fcntl.h" 2 3
int fcntl(int, int, ...);
int creat (...) ;
int open (...) ;
}
# 30 "/home/isl/lib.sun4/g++-include/std.h" 2 3
extern "C" {
int strcasecmp (...) ;
}
# 32 "/home/isl/lib.sun4/g++-include/builtin.h" 2 3
# 1 "/home/isl/lib.sun4/g++-include/math.h" 1 3
#pragma interface
# 64 "/home/isl/lib.sun4/g++-include/math.h" 3
extern "C" {
double acos(double);
double acosh(double);
double asin(double);
double asinh(double);
double atan(double);
double atan2(double, double);
double atanh(double);
double cbrt(double);
double ceil(double);
double copysign(double,double);
double cos(double);
double cosh(double);
double drem(double,double);
double erf(double);
double erfc(double);
double exp(double);
double expm1(double);
double fabs(double);
double finite(double);
double floor(double);
double fmod(double, double);
double frexp(double, int*);
double gamma(double);
double hypot(double,double);
double infnan(int);
int isinf(double);
int isnan(double);
double j0(double);
double j1(double);
double jn(int, double);
double ldexp(double, int);
double lgamma(double);
double log(double);
double log10(double);
double log1p(double);
double logb(double);
double modf(double, double*);
double pow(double, double);
double rint(double);
double scalb(double, int);
double sin(double);
double sinh(double);
double sqrt(double);
double tan(double);
double tanh(double);
double y0(double);
double y1(double);
double yn(int, double);
double aint(double);
double anint(double);
int irint(double);
int nint(double);
}
struct libm_exception
{
int type;
char* name;
double arg1, arg2, retval;
};
extern "C" int matherr(libm_exception*);
# 1 "/home/isl/lib.sun4/g++-include/values.h" 1 3
# 57 "/home/isl/lib.sun4/g++-include/values.h" 3
# 166 "/home/isl/lib.sun4/g++-include/values.h" 3
# 150 "/home/isl/lib.sun4/g++-include/math.h" 2 3
# 33 "/home/isl/lib.sun4/g++-include/builtin.h" 2 3
typedef void (*one_arg_error_handler_t)(const char*);
typedef void (*two_arg_error_handler_t)(const char*, const char*);
long gcd(long, long);
long lg(unsigned long);
double pow(double, long);
long pow(long, long);
double start_timer();
double return_elapsed_time(double last_time = 0.0);
char* dtoa(double x, char cvt = 'g', int width = 0, int prec = 6);
char* chr(char ch, int width = 0);
char* str(const char* s, int width = 0);
unsigned int hashpjw(const char*);
unsigned int multiplicativehash(int);
unsigned int foldhash(double);
extern volatile void default_one_arg_error_handler(const char*);
extern volatile void default_two_arg_error_handler(const char*, const char*);
extern two_arg_error_handler_t lib_error_handler;
extern two_arg_error_handler_t
set_lib_error_handler(two_arg_error_handler_t f);
double abs(double arg);
float abs(float arg);
short abs(short arg);
long abs(long arg);
int sign(long arg);
int sign(double arg);
long sqr(long arg);
double sqr(double arg);
int even(long arg);
int odd(long arg);
long lcm(long x, long y);
void setbit(long& x, long b);
void clearbit(long& x, long b);
int testbit(long x, long b);
inline double abs(double arg)
{
return (arg < 0.0)? -arg : arg;
}
inline float abs(float arg)
{
return (arg < 0.0)? -arg : arg;
}
inline short abs(short arg)
{
return (arg < 0)? -arg : arg;
}
inline long abs(long arg)
{
return (arg < 0)? -arg : arg;
}
inline int sign(long arg)
{
return (arg == 0) ? 0 : ( (arg > 0) ? 1 : -1 );
}
inline int sign(double arg)
{
return (arg == 0.0) ? 0 : ( (arg > 0.0) ? 1 : -1 );
}
inline long sqr(long arg)
{
return arg * arg;
}
inline double sqr(double arg)
{
return arg * arg;
}
inline int even(long arg)
{
return !(arg & 1);
}
inline int odd(long arg)
{
return (arg & 1);
}
inline long lcm(long x, long y)
{
return x / gcd(x, y) * y;
}
inline void setbit(long& x, long b)
{
x |= (1 << b);
}
inline void clearbit(long& x, long b)
{
x &= ~(1 << b);
}
inline int testbit(long x, long b)
{
return ((x & (1 << b)) != 0);
}
# 5 "src/../include/double.Matrix.h" 2
# 1 "/home/isl/lib.sun4/g++-include/math.h" 1 3
# 215 "/home/isl/lib.sun4/g++-include/math.h" 3
# 6 "src/../include/double.Matrix.h" 2
# 1 "/home/isl/lib.sun4/g++-include/libc.h" 1 3
# 7 "src/../include/double.Matrix.h" 2
class doubleMatrix;
class doubleArray
{
public:
int L;
int M;
int N;
double* X;
doubleArray (int l, int m, int n, double* d = 0 );
doubleArray (int m, int n, double* d = 0 );
doubleArray (int n, double* d = 0 );
doubleArray (const doubleArray& a);
doubleArray ();
~doubleArray ();
double* operator [] (int i) const;
doubleMatrix operator - () const;
doubleArray& operator + () const;
operator double () const;
operator double* () const;
friend doubleMatrix operator * (const doubleArray& a, const double& b);
friend doubleMatrix operator * (const double& a, const doubleArray& b);
friend doubleMatrix operator * (const doubleArray& a, const doubleArray& b);
friend doubleMatrix operator / (const doubleArray& a, const double& b);
friend doubleMatrix operator / (const double& a, const doubleArray& b);
friend doubleMatrix operator / (const doubleArray& a, const doubleArray& b);
friend doubleMatrix operator % (const doubleArray& a, const doubleArray& b);
friend doubleMatrix operator + (const doubleArray& a, const double& b);
friend doubleMatrix operator + (const double& a, const doubleArray& b);
friend doubleMatrix operator + (const doubleArray& a, const doubleArray& b);
friend doubleMatrix operator - (const doubleArray& a, const double& b);
friend doubleMatrix operator - (const double& a, const doubleArray& b);
friend doubleMatrix operator - (const doubleArray& a, const doubleArray& b);
friend doubleMatrix operator << (const doubleArray& a, int n);
friend ostream& operator << (ostream& s, const doubleArray& a);
friend doubleMatrix operator >> (const doubleArray& a, int n);
friend istream& operator >> (istream& s, const doubleArray& a);
friend int operator < (const doubleArray& a, const double& b);
friend int operator < (const double& a, const doubleArray& b);
friend int operator < (const doubleArray& a, const doubleArray& b);
friend int operator <= (const doubleArray& a, const double& b);
friend int operator <= (const double& a, const doubleArray& b);
friend int operator <= (const doubleArray& a, const doubleArray& b);
friend int operator > (const doubleArray& a, const double& b);
friend int operator > (const double& a, const doubleArray& b);
friend int operator > (const doubleArray& a, const doubleArray& b);
friend int operator >= (const doubleArray& a, const double& b);
friend int operator >= (const double& a, const doubleArray& b);
friend int operator >= (const doubleArray& a, const doubleArray& b);
friend int operator == (const doubleArray& a, const double& b);
friend int operator == (const double& a, const doubleArray& b);
friend int operator == (const doubleArray& a, const doubleArray& b);
friend int operator != (const doubleArray& a, const double& b);
friend int operator != (const double& a, const doubleArray& b);
friend int operator != (const doubleArray& a, const doubleArray& b);
friend doubleMatrix operator & (const doubleArray& a, const doubleArray& b);
friend doubleMatrix operator ^ (const doubleArray& a, const doubleArray& b);
friend doubleMatrix operator | (const doubleArray& a, const doubleArray& b);
doubleArray& operator = (const double& a);
doubleArray& operator = (const doubleArray& a);
doubleArray& operator *= (const double& b);
doubleArray& operator *= (const doubleArray& b);
doubleArray& operator /= (const double& b);
doubleArray& operator /= (const doubleArray& b);
doubleArray& operator += (const double& b);
doubleArray& operator += (const doubleArray& b);
doubleArray& operator -= (const double& b);
doubleArray& operator -= (const doubleArray& b);
doubleArray& operator <<=(int n);
doubleArray& operator >>=(int n);
void error(const char* msg) const;
int& l();
int& m();
int& n();
double*& x();
doubleArray s(int i = 0, int m = 1, int j = 0) const;
doubleArray s(int i, int m, int j, int n) const;
doubleMatrix _(int i = 0, int m = 1, int j = 0) const;
doubleMatrix _(int i, int m, int j, int n) const;
doubleMatrix i() const;
doubleMatrix t() const;
doubleMatrix sum() const;
doubleMatrix sumsq() const;
friend doubleMatrix ffct(const doubleArray& a);
doubleMatrix min() const;
doubleMatrix max() const;
int index(const double&a)const;
int min_index() const;
int max_index() const;
friend doubleMatrix abs(const doubleArray& a);
friend doubleMatrix sgn(const doubleArray& a);
friend doubleMatrix exp(const doubleArray& a);
friend doubleMatrix log(const doubleArray& a);
friend doubleMatrix sin(const doubleArray& a);
friend doubleMatrix sinh(const doubleArray& a);
friend doubleMatrix cos(const doubleArray& a);
friend doubleMatrix cosh(const doubleArray& a);
friend doubleMatrix tan(const doubleArray& a);
friend doubleMatrix tanh(const doubleArray& a);
friend doubleMatrix sqrt(const doubleArray& a);
};
inline doubleArray::doubleArray(int l, int m, int n, double* d = 0 )
{ L = l; M = m; N = n; X = d; }
inline doubleArray::doubleArray(int m, int n, double* d = 0 )
{ M = m; L = N = n; X = d; }
inline doubleArray::doubleArray(int n, double* d = 0 )
{ M = 1; L = N = n; X = d; }
inline doubleArray::doubleArray(const doubleArray& a)
{ L = a.L; M = a.M; N = a.N; X = a.X; }
inline doubleArray::doubleArray()
{ L = N = M = 0; X = 0 ; }
inline doubleArray::~doubleArray()
{ }
inline double* doubleArray::operator [] (int i) const { return &X[i*L]; }
inline doubleArray& doubleArray:: operator + () const { return *this; }
inline doubleArray::operator double () const { return X[0]; }
inline doubleArray::operator double* () const { return X; }
inline int operator <= (const doubleArray& a, const double& b)
{ return !(b < a); }
inline int operator <= (const double& a, const doubleArray& b)
{ return !(b < a); }
inline int operator <= (const doubleArray& a, const doubleArray& b)
{ return !(b < a); }
inline int operator > (const doubleArray& a, const double& b)
{ return (b < a); }
inline int operator > (const double& a, const doubleArray& b)
{ return (b < a); }
inline int operator > (const doubleArray& a, const doubleArray& b)
{ return (b < a); }
inline int operator >= (const doubleArray& a, const double& b)
{ return !(a < b); }
inline int operator >= (const double& a, const doubleArray& b)
{ return !(a < b); }
inline int operator >= (const doubleArray& a, const doubleArray& b)
{ return !(a < b); }
inline int operator == (const double& a, const doubleArray& b)
{ return (b == a); }
inline int operator != (const doubleArray& a, const double& b)
{ return !(a == b); }
inline int operator != (const double& a, const doubleArray& b)
{ return !(b == a); }
inline int operator != (const doubleArray& a, const doubleArray& b)
{ return !(a == b); }
inline int& doubleArray::l() { return L; }
inline int& doubleArray::m() { return M; }
inline int& doubleArray::n() { return N; }
inline double*& doubleArray::x() { return X; }
inline doubleArray doubleArray::s(int i, int m, int j, int n) const
{ return doubleArray(L, m, n, &X[i*L+j]); }
inline doubleArray doubleArray::s(int i = 0, int m = 1, int j = 0) const
{ return doubleArray(L, m, N-j, &X[i*L+j]); }
inline char* format(char* s, int n = 0, char* w = " ")
{
static char empty[1] = "";
extern int Array_number;
extern char* Array_format;
extern char* Array_space;
Array_number = n;
Array_format = s;
Array_space = w;
return empty;
}
extern void default_doubleArray_error_handler(const char*);
extern one_arg_error_handler_t doubleArray_error_handler;
extern one_arg_error_handler_t
set_doubleArray_error_handler(one_arg_error_handler_t f);
class doubleMatrix : public doubleArray
{
public:
doubleMatrix (int m, int n, double* d);
doubleMatrix (const doubleMatrix& a);
doubleMatrix (const doubleArray& a);
doubleMatrix (int m, int n, const double& a);
doubleMatrix (int n, const double& a);
doubleMatrix (int m, int n);
doubleMatrix (int n);
doubleMatrix ();
~doubleMatrix ();
doubleMatrix& operator = (const doubleMatrix& a);
doubleMatrix& resize(const doubleArray& a);
doubleMatrix& resize(int m, int n, double* d);
doubleMatrix& resize(int n, double* d);
doubleMatrix& resize(int m, int n, const double& a);
doubleMatrix& resize(int n, const double& a);
doubleMatrix& resize(int m, int n);
doubleMatrix& resize(int n = 0);
};
inline doubleMatrix::doubleMatrix(int m, int n, double* d) :
(m, n, d) { }
inline doubleMatrix::doubleMatrix(int m, int n, const double& a) :
(m, n, new double [m*n]) { double* t = X; while (t < &X[m*n]) *t++ = a; }
inline doubleMatrix::doubleMatrix(int n, const double& a) :
(n, new double [n]) { double* t = X; while (t < &X[n]) *t++ = a; }
inline doubleMatrix::doubleMatrix(int m, int n) :
(m, n, new double [m*n]) { }
inline doubleMatrix::doubleMatrix(int n) :
(n, new double [n]) { }
inline doubleMatrix::doubleMatrix() :
() { }
inline doubleMatrix::~doubleMatrix()
{ delete X; }
inline doubleMatrix& doubleMatrix::operator = (const doubleMatrix& a)
{ doubleArray::operator = (a); return *this; }
inline doubleMatrix& doubleMatrix::resize(const doubleArray& a)
{
delete X;
L = a.N; M = a.M; N = a.N; X = new double [M*N]; *this = a;
return *this;
}
inline doubleMatrix& doubleMatrix::resize(int m, int n, double* d)
{
delete X;
L = n; M = m; N = n; X = d;
return *this;
}
inline doubleMatrix& doubleMatrix::resize(int n, double* d)
{
delete X;
L = n; M = 1; N = n; X = d;
return *this;
}
inline doubleMatrix& doubleMatrix::resize(int m, int n, const double& a)
{
delete X;
L = n; M = m; N = n; X = new double [m*n];
double* t = X; while (t < &X[m*n]) *t++ = a;
return *this;
}
inline doubleMatrix& doubleMatrix::resize(int n, const double& a)
{
delete X;
L = n; M = 1; N = n; X = new double [n];
double* t = X; while (t < &X[n]) *t++ = a;
return *this;
}
inline doubleMatrix& doubleMatrix::resize(int m, int n)
{
delete X;
L = n; M = m; N = n; X = new double [m*n];
return *this;
}
inline doubleMatrix& doubleMatrix::resize(int n = 0)
{
delete X;
L = n; M = 1; N = n; X = new double [n];
return *this;
}
inline doubleMatrix doubleArray::_(int i, int m, int j, int n) const
{ return doubleMatrix(s(i, m, j, n)); }
inline doubleMatrix doubleArray::_(int i = 0, int m = 1, int j = 0) const
{ return doubleMatrix(s(i, m, j, N-j)); }
# 1 "src/do.cc" 2
doubleMatrix sgn(const doubleArray& a)
{
double* newX = new double [a.M*a.N];
double* t = newX;
double* u = a.X;
double* v = a.X + a.N;
do
{
while (u < v)
// ERROR
*t++ = ((*u++ < 0.0) ? -1.0: 1.0);
// Above Line gives the error
u += a.L - a.N;
} while ((v += a.L) <= &a.X[a.M*a.L]);
return doubleMatrix(a.M, a.N, newX);
}
************* END OF CODE ***********************
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads