// Decompiled by Jad v1.5.8e. Copyright 2001 Pavel Kouznetsov.
// Jad home page: http://www.geocities.com/kpdus/jad.html
// Decompiler options: packimports(3) fieldsfirst 
// Source File Name:   AbstractNode.java

package lt.monarch.function.node;

import lt.monarch.function.*;

// Referenced classes of package lt.monarch.function.node:
//			ConstantNode

public abstract class AbstractNode
	implements Node
{

	public boolean equals(Object obj)
	{
		if(obj == null)
			return false;
		if(obj == this)
			return true;
		else
			return getClass() == obj.getClass();
	}

	public Object clone()
	{
		return cloneNode();
	}

	public Node simplify()
	{
		return simplifyOperation();
	}

	public Node simplifyOperation()
	{
		return (Node)this;
	}

	public Node derivative(Variable variable)
	{
		return (Node)new ConstantNode(0.0D);
	}

	public void visited(lt.monarch.function.Node.Visitor visitor)
	{
		visitor.visit(this);
	}

	public void compile(NodeCompiler nodecompiler)
	{
		throw new FunctionError("Compilation not supported");
	}

	public abstract double evaluate();

	public abstract Node cloneNode();

	public AbstractNode()
	{
	}
}
