#ifndef SVDCMP_H
# define SVDCMP_H

# ifndef MATRIX_H
#  include <nmatrix.h>
# endif


class svdcmp	{
	svdcmp();	// unused;

	public:
	matrix u;
	matrix w;	/* diagonal */
	matrix v;

	svdcmp(C matrix& a);	/* u*w*transpose(v) = a */

	operator!() C {return u.badmat() || w.badmat() || v.badmat();}
	operator void *() C {return !(*this) ? 0 : (void *)this;}

	udoublet size() C;

	static Objection fail;
	static Objection badarg;
	};
#endif
