🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

1 total messages Started by Daya Gaur Wed, 26 Aug 1992 12:23
BUG
#1004
Author: Daya Gaur
Date: Wed, 26 Aug 1992 12:23
3191 lines
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