#ifndef _DOUBLE_REF_H
#define _DOUBLE_REF_H

class ANY;

/*
 *
 * Non-expanded forms of basic type
*/

class DOUBLE_REF : public virtual ANY {
public:
	DOUBLE val;
	DOUBLE_REF(); 
	virtual void set_value( DOUBLE); 
	virtual DOUBLE item (); 
	virtual STRING *out(); 
	virtual void print( ANY *);

	virtual DOUBLE_REF* _Clone (int, int, DOUBLE_REF*); 
	virtual DOUBLE_REF* _localClone (int, int); 
	virtual void _Copy ( int, int, DOUBLE_REF*); 
	BOOLEAN _Equal ( int, int, DOUBLE_REF*); 
	void*   _rev_cvt ( int _type);
	BOOLEAN is_equal (DOUBLE_REF*); 
	BOOLEAN equal (ANY*, DOUBLE_REF*); 
	void copy ( DOUBLE_REF*);
	DOUBLE_REF* clone ( DOUBLE_REF*);
	BOOLEAN deep_equal ( DOUBLE_REF*, DOUBLE_REF*);
	void deep_copy ( DOUBLE_REF*);
	DOUBLE_REF* deep_clone ( DOUBLE_REF*);
	BOOLEAN _INFIX_LEQ ( DOUBLE_REF*);
	DOUBLE_REF* _INFIX_ADD ( DOUBLE_REF*);
	DOUBLE_REF* _INFIX_SUB ( DOUBLE_REF*);
	DOUBLE_REF* _INFIX_MUL ( DOUBLE_REF*);
	DOUBLE_REF* _INFIX_DIV ( DOUBLE_REF*);
   	BOOLEAN _Conforms_to ( int other_id);
};

DOUBLE_REF* _ert_clone_DOUBLE ( DOUBLE);
DOUBLE_REF* _ert_clone_DOUBLE_REF ( DOUBLE_REF *v);
DOUBLE_REF* _DOUBLE_REF_chk ( DOUBLE_REF*, char *);
DOUBLE_REF* _bibt_DOUBLE_DOUBLE_REF ( DOUBLE);


#endif /* _DOUBLE_REF_H */
