// Decompiled by Jad v1.5.8e. Copyright 2001 Pavel Kouznetsov.
// Jad home page: http://www.geocities.com/kpdus/jad.html
// Decompiler options: packimports(3) space 
// 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()
    {
    }
}
